// Constants
var AutoMenuOffWidth = 800;
//if (document.getElementById || document.all)
var animSpeed = 1;
var duration = 40;
var SidebarWidth = 220;
//var browser = ModernBrowser();
// Variables
var step = duration;
var sidebar;
var start;
var tmpcount = 0;
var windowWidth = GetWindowWidth();
var lastWidth = 1000;

function ScreenCheck() {
	if ( document.getElementById("LibSideBar") ) {
		tmpcount++;
		//if ( document.getElementById("LibSideBar").style ) 
		//	sidebar = document.getElementById ? document.getElementById("LibSideBar").style : document.all.LibSideBar.style
		if (document.getElementById || document.all) {
			sidebar = document.getElementById ? document.getElementById("LibSideBar").style : document.all.LibSideBar.style
		}
		windowWidth = GetWindowWidth();
		
		if (browser == 'ie' && windowWidth == lastWidth) {
			return;
		}
		if (windowWidth < AutoMenuOffWidth) {
			if (tmpcount <= 1)	{ step = 0; } //else { step = duration; }
			SetMenu('off');
		}
		else {
			SetMenu('on');
		}
		//window.status+= 'ScreenCheck Run: ' + tmpcount +' width:'+ document.body.clientWidth;
	}
}

/*function ModernBrowser() {
	// 0 for old browser, 1 for new, -1 for ancient (Netscape 4 or less)
	var b = navigator.userAgent;
	if			(b.match("Opera"))				{ return 'op';	}
	else if	(b.match("Safari"))				{ return 'sf';	}
	else if	(b.match("FireFox"))			{ return 'ff';	}
	else if	(b.match("MSIE 7.0"))			{ return 'ie7';	}
	else if	(b.match("MSIE"))					{ return 'ie';	}
	else if	(b.match("Mozilla/5.0"))	{ return 'mz';	}
	else if	(b.match("Mozilla") && !b.match("Gecko"))		{ return 'ns';	}
	// If not matched yet, we'll assume it's a new browser
	return 'na';
}*/

function GetWindowWidth() {
	var width = 1000;
	if( typeof( window.innerWidth ) == 'number' ) {
		//Non-IE
		width = window.innerWidth;
	} else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
		//IE 6+ in 'standards compliant mode'
		width = document.documentElement.clientWidth;
	} else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
		//IE 4 compatible
		width = document.body.clientWidth;
	}
	return width;
}

function SetMenu(state) {
	//window.status = "";
	var TopBar = document.getElementById('LibTopBar');
	var Menu = document.MenuToggeler;
	var Corner = document.getElementById('LibHeadCorner');
	if (state == 'on') {
		TopBar.className = "MenuOn";
		Corner.usemap = '#PegMap';
		Menu.MenuSet[0].checked = true;

		clearInterval(start);
		start=setInterval("Fade('in')",animSpeed);
	}
	else {
		TopBar.className = "MenuOff";
		Corner.usemap = '#PegMapMini';
		Menu.MenuSet[1].checked = true;
		
		clearInterval(start);
		start=setInterval("Fade('out')",animSpeed);
	}
	lastWidth = GetWindowWidth();

	window.status = 'Menu '+state;// Currently: '+autoState + "; Run Count=" + tmpcount;
}

var tmp = 100000;
function Fade(goal){
	currentGoal = goal;
	//opacity = parseInt(sidebar.opacity * 100);
	var left = parseInt(sidebar.left);
	var top = parseInt(sidebar.top);
	var width = SidebarWidth;
	position = Math.sin( Math.PI * (step/duration) - Math.PI * 0.5 ) * 0.5 - 0.5;
	left = parseInt(position * width);
	tmp = left;
	if ( goal == "in" ) {
		if ( step < duration ) {
			sidebar.left = left + 'px';
			sidebar.display = 'block';
			if ( left + width < width &&  left + width > 90 ) {
				document.getElementById('LibContent').style.paddingLeft = left + width +'px';
			}
			step++;
			busy = true;
		}
		else {
			clearInterval(start);
			step = duration;
			sidebar.left = '0px';
			sidebar.top = '124px';
			sidebar.display = 'block';
			document.getElementById('LibContent').style.paddingLeft = width + 'px';
		}
	}
	else if ( goal == "out" ) {
		if ( step > 0 ) {
			sidebar.left = left + 'px';
			if ( left + width > 90 ) {
				document.getElementById('LibContent').style.paddingLeft = position * width + width + 'px';
			}
			step--;
		}
		else {
			clearInterval(start);
			step = 0;
			document.getElementById('PegAnim').style.display = 'none';
			document.getElementById('LibSideBar').style.display = 'none';
			document.getElementById('LibContent').style.paddingLeft = '90px';
		}
	}
	//document.getElementById("output").innerHTML = document.getElementById("output").innerHTML + sidebar.opacity + "<br>\n";
}

function setOpacity(obj,value) {
	obj.opacity = value / 100;
	obj.filter = 'alpha(opacity=' + value + ')';
}

function SetContentWidth(exception) {
	if ( browser == 'ie' ) {
		var newwidth =  document.body.clientWidth - exception;
		//window.status = "You are using IE so I set your content area to " + newwidth ;
		document.getElementById('LibContent').style.width = newwidth - 4 + "px";
	}
/*	else {
		window.alert("Check failed\n"+ModernBrowser());
	}*/
}

/*function ClearField(obj,defaultVal) {
	//if (ModernBrowser() != 'sf') {
		if ( obj.value == defaultVal ) {
			obj.value = "";
		}
		else if ( obj.value == "" ) {
			obj.value = defaultVal;
		}
	//}
}

function goHere(me) {
	if (me.value != '0')	window.location = me.value;
}*/

// Hours for the Sidemenu
function HoursSelector() {
	//window.alert('found an hours row');
	var Calendar = new Date();
	var weekday = Calendar.getDay();
	if ( weekday >= 1 && weekday <= 4) {
		weekday = '';
	}
	var HoursRows = $$('.HoursRow');
	HoursRows.each( function(row) {
		
		if (row.id == 'Hours'+weekday) {
			row.addClass('Active');
		}
		else {
			row.removeClass('InActive');
		}
	});
}
	
	//var row = $('Hours'+weekday);
	//if (row) {
	//	row.AddClass
	//	row.style.color = "#bb0000";
	//	row.style.textDecoration = "underline";
		//row.style.color = "#bb0000";
		//row.style.textDecoration = "underline";
	//}
// End Hours Section

/*function UCFLib_OnLoad() {
	HoursSelector()
	ScreenCheck()
}


//window.onload="ScreenCheck()";
//window.onresize="ScreenCheck()";

window.onload = UCFLib_OnLoad;
//if (browser != 'ie') {
	window.onresize = ScreenCheck;
//}
*/


/*function SuggestSearchTerms(sender) {
	var str = sender.value;
	var resultsObj = document.getElementById("SearchSuggestions");
	if (resultsObj) {
	
		resultsObj.innerHTML="";
		resultsObj.style.display = 'none';
		
		if (str.length==0) { 
			return;
		}
		
		xmlHttp=GetXmlHttpObject();
		
		if (xmlHttp==null) {
			//alert ("Your browser does not support AJAX!");
			return;
		} 
		
		var url="/Web/SearchSuggest.asp";
		url=url+"?q="+str;
		url=url+"&sid="+Math.random();
		
		xmlHttp.onreadystatechange= function() {
			
			if (xmlHttp.readyState==4) {
				var resultsObj = document.getElementById("SearchSuggestions");
				resultsObj.innerHTML="";
				var xmlDoc = xmlHttp.responseXML.documentElement;
				var Terms = xmlDoc.getElementsByTagName("term");
				if (Terms.length > 0) {
					var docFragObj = document.createDocumentFragment();
					
					//var newSelectNode = document.createElement("select");
					//newSelectNode 
					
					//var newUl = document.createElement("ul");
					
					for (var i = 0; i < Terms.length && i <= 25; i++) {
						var newA = document.createElement("a");
						var newText = document.createTextNode( Terms[i].firstChild.nodeValue );
						newA.setAttribute("href", "#");
						
						AddEvent(newA, "click", SearchForThis);
						
						newA.appendChild(newText); //append text to new div
						docFragObj.appendChild(newA);
						
						//window.alert("Adding: " + Terms[i].firstChild.value);
					}
					//resultsObj.innerHTML = "Some example text";
					//newUl.appendChild( docFragObj );
					resultsObj.appendChild( docFragObj );
					resultsObj.style.display = 'block';
				}
			}
			//resultsObj = docFragObj ;
			//resultsObj.innerHTML=xmlHttp.responseText;
		};
		xmlHttp.open("GET",url,true);
		xmlHttp.send(null);
	}
}*/

function SuggestSearchTerms(sender) {
	var str = sender.value;
	var resultsObj = $("SearchSuggestions");
	if (resultsObj) {
	
		resultsObj.set('html','');
		
		if (str.length <= 1) { 
			resultsObj.setStyle('display','none');
			return;
		}
		
		xmlHttp=GetXmlHttpObject();
		
		if (xmlHttp==null) {
			//alert ("Your browser does not support AJAX!");
			return;
		} 
		
		var url = "/Web/SearchSuggest.asp";
		url+= "?q=" + str;
		url+= "&sid=" + Math.random();
		
		xmlHttp.onreadystatechange= function() {
			
			if (xmlHttp.readyState==4) {
				var resultsObj = $("SearchSuggestions");
				resultsObj.set('html','');
				
				var xmlDoc = xmlHttp.responseXML.documentElement;
				var Terms = xmlDoc.getElementsByTagName("term");
				if (Terms.length > 0) {
					var docFragObj = document.createDocumentFragment();
					
					//var newSelectNode = document.createElement("select");
					//newSelectNode 
					
					//var newUl = document.createElement("ul");
					
					for (var i = 0; i < Terms.length && i <= 25; i++) {
						var linkObj = new Element('a', {
							'text': Terms[i].firstChild.nodeValue,
							'href': '#',
							'events': {
								'click': SearchForThis
							}
						});
						docFragObj.appendChild(linkObj);
						
						//window.alert("Adding: " + Terms[i].firstChild.value);
					}
					//resultsObj.innerHTML = "Some example text";
					//newUl.appendChild( docFragObj );
					resultsObj.appendChild( docFragObj );
					resultsObj.style.display = 'block';
				}
			}
			//resultsObj = docFragObj ;
			//resultsObj.innerHTML=xmlHttp.responseText;
		};
		xmlHttp.open("GET",url,true);
		xmlHttp.send(null);
	}
}

function SuggestSearchTerms2(sender) {
	var str = sender.value;
	var resultsObj = $('SearchSuggestions');
	if (resultsObj) {
	
		resultsObj.set('html','');
		//var myFx = new Fx.Tween(resultsObj, {link: 'cancel'});
		//myFx.set('height', '0px');
		//resultsObj.hide();
		
		if (str.length <= 1) { 
		resultsObj.setStyle('display','none');
			return;
		}
		
		var url = "/Web/SearchSuggest.asp";
		url+= "?q=" + str;
		url+= "&sid=" + Math.random();
		
		//, update: 'SearchSuggestions'
		var myHTMLRequest = new Request.HTML({
			url: url,
			async: true,
			onSuccess: function(responseText, responseXML) {
				//console.log(responseXML);
				
				var resultsObj = $('SearchSuggestions');
				resultsObj.set('html','');
				
				//var xmlDoc = responseXML;//.documentElement;
				//var Terms = xmlDoc.getElementsByTagName("term");
				//if (Terms.length > 0) {
					var docFragObj = document.createDocumentFragment();
				//var SearchTerms = responseXML.getElement('term');
				var SearchTerms = responseXML.getElements('term');
				var Terms = SearchTerms[0];
				//console.log(Terms );
				Terms.each( function(termObj) {
					
					
					//var newSelectNode = document.createElement("select");
					//newSelectNode 
					
					//var newUl = document.createElement("ul");
					
					//for (var i = 0; i < Terms.length && i <= 25; i++) {
					
						//console.log(Terms[i]);
						var linkObj = new Element('a', {
							//'text': Terms[i].nodeValue,
							'text': termObj.get('text'),
							'href': '#',
							'events': {
								'click': SearchForThis
							}
						});
						
						
						//var newA = document.createElement("a");
						//var newText = document.createTextNode( Terms[i].firstChild.nodeValue );
						//newA.setAttribute("href", "#");
						
						//AddEvent(newA, "click", SearchForThis);
						
						//newA.appendChild(newText); //append text to new div
						docFragObj.appendChild(linkObj);
						
						//window.alert("Adding: " + Terms[i].firstChild.value);
				});
				//}
					//resultsObj.innerHTML = "Some example text";
					//newUl.appendChild( docFragObj );
					resultsObj.appendChild( docFragObj );
					//resultsObj.show();
					//myFx.start('height', '20em');
					if (Terms.length > 0) {
						resultsObj.setStyle('display','block');
					}
					else {
						resultsObj.setStyle('display','none');
					}
			}
		});
		myHTMLRequest.get();
	}
}

function SearchForThis(ev){
	ev = ev || window.event;
	var sender = ev.srcElement || ev.target;

	var resultsObj = document.getElementById("SearchSuggestions");
	
	if (resultsObj) {
		//var me = this;
		document.getElementById("SearchSiteField").value = sender.innerHTML;
		resultsObj.style.display = 'none';
	}
	return false;
}


function SearchCatalogFieldClear(obj) {
	ClearField(obj,"Catalog Search Text");
}
function SearchSiteFieldClear(obj) {
	ClearField(obj,"Website Search Text");
}
function SearchCatalogFieldReset(obj) {
	ResetField(obj,"Catalog Search Text");
}
function SearchSiteFieldReset(obj) {
	ResetField(obj,"Website Search Text");
}
function SearchCatalogFieldSubmit() {
	SearchCatalogFieldClear(document.getElementById("SearchCatalogField"));
}
function SearchSiteFieldSubmit() {
	SearchSiteFieldClear(document.getElementById("SearchSiteField"));
}
