/* * The EBSCO module javascript * * Copyright [2014] [EBSCO Information Services] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. **/ (function ($) { $(document).ready(function () { // var updatePublishDateSlider = function () { var from = parseInt($('#DT1').val()); var min = 1000; if (!from || from < min) { from = min; } // and keep the max at 1 years from now var max = (new Date()).getFullYear() + 1; var to = max; // update the slider with the new min/max/values $('#ebsco-advanced-search-sliderDT1').slider('option', { min: min, max: max, values: [from, to] }); }; /* * Self executing function **/ var onLoad = function () { // EBSCO/Search : Expand limiters $('._more_limiters').live('click', function (event) { $("#moreLimiters").hide(); $("#limitersHidden").removeClass("offscreen"); }); // Search : Collapse limiters $('._less_limiters').live('click', function (event) { $("#moreLimiters").show(); $("#limitersHidden").addClass("offscreen"); }); // EBSCO/Search : Collapse / expand facets $('.expandable').live('click', function (event) { var span = $(this).find('dt span'), id = $(this).attr('id').replace('facet-',''); if (span.length > 0) { if (span.hasClass('collapsed')) { $('#narrowGroupHidden_' + id).show(); span.removeClass('collapsed'); span.addClass('expanded'); } else if (span.hasClass('expanded')) { $('#narrowGroupHidden_' + id).hide(); span.removeClass('expanded'); span.addClass('collapsed'); } } else if ($(this).attr('href')) { var dl = $(this).parents('dl'), id = dl.attr('id').replace('narrowGroupHidden_', ''), span = $('#facet-' + id).find('dt span'); dl.hide(); span.removeClass('expanded'); span.addClass('collapsed'); } }); // EBSCO/Search : Less facets $('._less_facets').live('click', function (event) { var id = $(this).attr('id').replace('less-facets-',''); var dl = $('#facet-' + id); dl.trigger('click'); }); // Search : Ajax request the Record action $('._record_link').live('click', function (event) { var element = $(this); var position = element.position(); event.preventDefault(); $('#spinner').show(); $("#spinner").offset({left:event.pageX - 18,top:event.pageY - 18}); $.get(element.attr('href'), function (data) { $('#main').html(data); $('#spinner').hide(); }); }); // Advanced Search : Add a new search term $('._add_row').live('click', function (event) { event.preventDefault(); var newSearch = $('#advanced-row-template').html(); var rows = $('._advanced-row'); if (rows) { // Find the index of the next row var index = rows.length - 1; // one row is the template itself, so don't count it // Replace NN string with the index number newSearch = newSearch.replace(/NN/g, index); lastSearch = $('#edit-add-row'); lastSearch.before(newSearch); } }); // Advanced Search : Delete an advanced search row $('._delete_row').live('click', function (event) { event.preventDefault(); $(this).parents('._advanced-row').remove(); }); // Advanced Search : Reset the form fields to default values $('.ebsco-advanced input[name="reset"]').live('click', function (event) { event.preventDefault(); $('#ebsco-advanced-search-form').find('input, select').each(function (index) { var type = this.type; switch(type) { case 'text': $(this).val(''); break; case 'checkbox': $(this).attr('checked', ''); break; case 'select-multiple': $(this).children('option').each(function (index) { $(this).attr('selected', ''); }); break; case 'select-one': $(this).children('option').each(function (index) { $(this).attr('selected', ''); }); // for IE $(this).children('option:first').attr('selected', 'selected'); break; case 'radio': $(this).attr('checked', ''); $(this).parent().siblings().first().children('input:first').attr('checked', 'checked'); break; } }); }); // Auto submit the seelct boxes with '_jump_menu' class $('._jump_menu').live('change', function (event) { var name = $(this).attr('id').replace('ebsco-', ''), value = $(this).attr('value'), url = $('#ebsco-sort-form').attr('action'); url += "&" + name + "=" + value; window.location.href = url; }); // Retain search filters checkbox functionality $('#edit-remember').live('click', function (event) { $("#ebsco-basic-search-form :input[type='checkbox'][name^='filter[']").attr('checked', $(this).attr('checked')); }); // Advanced Search : handle 'Date Published from' limiter // Create the UI slider (if slider function is defined) if(typeof $("#ebsco-advanced-search-sliderDT1").slider == 'function') { $('#ebsco-advanced-search-sliderDT1').slider({ range: true, min: 0, max: 9999, values: [0, 9999], slide: function (event, ui) { $('#DT1').val(ui.values[0]); if(ui.values[0] == 1000) { $('#ebsco-advanced-search-limiterDT1').val(''); } else { $('#ebsco-advanced-search-limiterDT1').val('addlimiter(DT1:' + ui.values[0] + '-1/2013-1)'); } } }); // initialize the slider with the original values // in the text boxes updatePublishDateSlider(); // when user enters values into the boxes // the slider needs to be updated too $('#DT1').change(function(){ updatePublishDateSlider(); }); } }(); }); })(jQuery);