// Javascript Document

var objSearchResults = {

	addListeners: function () {
		if (!document.getElementsByTagName || !document.getElementById)
			return;		
		
		var arrButtons = document.getElementsByTagName('input');
		for (var i = 0; i < arrButtons.length; i++) {
			objSubmit = arrButtons[i];
			if (objSubmit.className && (' ' + objSubmit.className + ' ').indexOf(' searchResults ') != -1) {
				rwScript.addEvent(objSubmit, 'click', objSearchResults.getButtonClick(objSubmit), false);
			}
		}
		
		var cboPage = document.getElementById('page');
		rwScript.addEvent(cboPage, 'change', objSearchResults.getPageUpdate(cboPage), false);
		cboPage = document.getElementById('page_btm');
		rwScript.addEvent(cboPage, 'change', objSearchResults.getPageUpdate(cboPage), false);
		
		if (document.getElementById('jumpTo')) {
			var cboJumpTo = document.getElementById('jumpTo');
			rwScript.addEvent(cboJumpTo, 'change', objSearchResults.getJumpToChange(cboJumpTo), false);
			cboJumpTo = document.getElementById('jumpTo_btm');
			rwScript.addEvent(cboJumpTo, 'change', objSearchResults.getJumpToChange(cboJumpTo), false);
		}
	},

// Page Combo Change
	updatePage: function(e, targetElement) {
		var el = window.event ? targetElement : e ? e.currentTarget : null;
		if (!el) return;

		if (el.id.indexOf('_btm') != -1) {
			// bottom form
			var frmSearchResults = document.getElementById('crs_r_Search_NextPage_btm');
			var txtLoopStart = document.getElementById('loopStart_btm');
			var cboPage = document.getElementById('page_btm');
		
		} else {
			// top form
			var frmSearchResults = document.getElementById('crs_r_Search_NextPage');
			var txtLoopStart = document.getElementById('loopStart');
			var cboPage = document.getElementById('page');
		}

		var intSelectedPage = cboPage.options[cboPage.selectedIndex].value;
		var intLoopStart = (intSelectedPage - 1) * 30;
		
		txtLoopStart.value = intLoopStart;
		frmSearchResults.submit();
	},
	getPageUpdate: function (node) { return function(e) { objSearchResults.updatePage(e, node); }; },

// Next or Previous Button Clicked
	setResults: function (e, targetElement) {
		var el = window.event ? targetElement : e ? e.currentTarget : null;
		if (!el) return;

		if (el.id.indexOf('_btm') != -1) {
			// bottom form
			var txtLoopStart = document.getElementById('loopStart_btm');

		} else {
			// top form
			var txtLoopStart = document.getElementById('loopStart');
			
		}
		var intNewLoopStart;

		switch (el.id) {
		case "srPrevious" :
		case "srPrevious_btm" :
			intNewLoopStart = objResults.intLoopStart - 30;
			break;
		case "srNext" :
		case "srNext_btm" :
			intNewLoopStart = objResults.intLoopEnd + 1;
			break;
		default :
			intNewLoopStart = txtLoopStart.value;
		}
		
		txtLoopStart.value = intNewLoopStart;
	},
	getButtonClick: function (node) { return function(e) { objSearchResults.setResults(e, node); }; },

// Jump To List Used
	jumpToResults: function (e, targetElement) {
		var el = window.event ? targetElement : e ? e.currentTarget : null;
		if (!el) return;

		if (el.id.indexOf('_btm') != -1) {
			// bottom form
			var txtLoopStart = document.getElementById('loopStart_btm');
		} else {
			// top form
			var txtLoopStart = document.getElementById('loopStart');
		}
		var intNewLoopStart;
		
		switch (el.options[el.selectedIndex].value) {
		case "srTitles" :
			intNewLoopStart = objResults.intTitles;
			break;
		case "srSubjects" :
			intNewLoopStart =  objResults.intSubjects;
			break;
		case "srCatalogues" :
			intNewLoopStart =  objResults.intCatalogue;
			break;
		case "srAuthors" :
			intNewLoopStart =  objResults.intAuthors;	
			break;
		default :
			intNewLoopStart = txtLoopStart.value;
		}
		
		txtLoopStart.value = intNewLoopStart;
	},
	getJumpToChange: function (node) { return function(e) { objSearchResults.jumpToResults(e, node); }; }

};

rwScript.addEvent(window, 'load', objSearchResults.addListeners, false);
rwScript.addEvent(window, 'unload', EventCache.flush, false);
