You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
187 lines
6.9 KiB
187 lines
6.9 KiB
10 years ago
|
/*
|
||
|
* The EBSCO module javascript
|
||
|
**/
|
||
|
(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);
|