/* Scripts for MIT Libraries */

/* Create a namespace */
var MITLibraries = {};

/* Make the search area grey box resize to fit height of its container */
MITLibraries.enableSearchSidebar = function() {
	var searchHeight = $("div.ui-tabs-panel:not('.ui-tabs-hide')").height();
	var paddingOffset = 29;
	var newHeight = searchHeight - paddingOffset;
	$("div.ui-tabs-panel:not('.ui-tabs-hide') div.mitlibrarysearchoptions").height(newHeight);
};

/* Have the radio buttons for each search give focus to the corresponding search field */
MITLibraries.enableRadioFocus = function() {
	$("div.mitlibrarysearchtabcontent input.radio").click( function() {
		$(this).parent().parent().parent().parent().children("div.searchfield").children("input").focus();
		var newtitle = $(this).attr("rel");
		$(this).parent().parent().parent().parent().children("div.searchfield").children("input").attr("title", newtitle);
	});
};

/* Set the buttons to be submit buttons in IE */
MITLibraries.enableIEButtons = function() {
	if ($.browser.msie) {
		$("form.searchform button").click( function() {
			$(this).parent("div").parent("form").submit();
		});
	}
};


/* Check for empty search terms on submit */
MITLibraries.enableSimpleValidation = function() {
	// for every form *except* the Barton searches, which need special validation
	$("form.searchform:not(.barton)").submit( function() {		
		if ($(this).children("div.searchfield").children("input.searchtext").val() == "") {
			alert("Please fill in a search term.");
			return false;
		} else {
			return true;
		};
	});
};

/* Barton search functionality*/
MITLibraries.enableBartonSearch = function () {
	$("form#bartonsearch").submit( function() {
		if ($(this).children("div.searchfield").children("input.searchtext").val() == "") {
			alert("Please fill in a search term.");
			return false;
		} else {
			var x = $("form#bartonsearch input[name = 'code']:checked").val();
			var opt = x.split("_");
			$("form#bartonsearch input[name = 'code']:checked").val(opt[1]);
			if ( opt[0] == "find" || opt[0] == "F8" ) {	
				$("form#bartonsearch div.hiddenfields").append("<input type='hidden' name='func' value='find-b'/>");
				$("form#bartonsearch input[name = 'code']").attr("name","find_code");
			} else {
				$("form#bartonsearch div.hiddenfields").append("<input type='hidden' name='func' value='scan'/>");
				$("form#bartonsearch input[name = 'code']").attr("name","scan_code");
				$("form#bartonsearch input[name = 'request']").attr("name","scan_start");
			};
		  return true;
		}
		
	});
};

/* Barton Course Reserve search functionality */

MITLibraries.enableBartonCourseSearch = function () {
	$("form#bartoncoursesearch").submit( function() {
		if (
			($(this).children("div.searchfield").children("input.searchtext").val() == "") ||
			($(this).children("div.searchfield").children("input.searchtext").val() == "Enter course number. (Ex.: 2.009)")
		) {
			alert("Please fill in a search term.");
			return false;
		} else {
			var x = $("form#bartoncoursesearch input[name = 'code']:checked").val();
			var opt = x.split("_");
			$("form#bartoncoursesearch input[name = 'code']:checked").val(opt[1]);
			$("form#bartoncoursesearch div.hiddenfields").append("<input type='hidden' name='local_base' value='u-mit30'/>");
			if ( opt[0] == "find") {	
				$("form#bartoncoursesearch div.hiddenfields input[name = 'func']").val("find-b");
				$("form#bartoncoursesearch input[name = 'code']").attr("name","find_code");
			} else {
				$("form#bartoncoursesearch div.hiddenfields input[name = 'func']").val("scan");
				$("form#bartoncoursesearch input[name = 'code']").attr("name","scan_code");
				$("form#bartoncoursesearch input[name = 'request']").attr("name","scan_start");
			};
		  return true;
		}
		
	});
};

/* Initialize everything when page is ready */
$(document).ready(function() {
	$("body").removeClass("nojs");
	
	// Fix IE6 flicker problem
	try {
		document.execCommand('BackgroundImageCache', false, true);
	} catch(e) {};
	
	// Fix problem with Firefox not checking radio buttons on load
	if($.browser.mozilla) $("form").attr("autocomplete", "off"); 
	
	// Initialize search tabs
	$("#mitlibrarysearches").tabs({
		// When a tab is shown...
		show: function(event, ui) {
			// If there's a sidebar in the tab being viewed, adjust its height to match the height of the container (mostly in case of people using larger fonts than we designed for)
			if ($("div.mitlibrarysearchoptions:not(:hidden)").length > 0) {
				MITLibraries.enableSearchSidebar();
			};
			// Give focus to the search field
			$("div.searchfield input.searchtext:not(:hidden)").focus();
		},
		cookie: { expires: 30 }
	});
	
	// Initialize other functionality
	MITLibraries.enableSearchSidebar();	 
	MITLibraries.enableRadioFocus();
	MITLibraries.enableSimpleValidation();
	MITLibraries.enableBartonSearch();
	MITLibraries.enableBartonCourseSearch();
	MITLibraries.enableIEButtons();
	
	$("form#bartonsearch input.searchtext").focus();
});