var currentClass = null;
var currentElement = null;
var focusElement = null;

function highlight(element){
	if (element == null)
		currentElement = window.event.srcElement;
	else
		currentElement = element;
	if (focusElement != null && currentElement == focusElement){
		currentElement = null;
    	return;
	}
	if (currentClass == null)
		currentClass = currentElement.className;
		currentElement.className = currentClass+"Highlight";
}

function undo(){
	if (currentElement != null)
		currentElement.className = currentClass;
		currentElement = null;
		currentClass = null;
}

function changeFormActionandSubmit(url){
	document.forms[0].action = url;
	submitForm();
}

function submitForm(){
	document.forms[0].submit();
}

function proto(){
	alert("Sorry, this feature is not Implemented in this prototype.");
}

//Gets the browser specific XmlHttpRequest Object
function getXmlHttpRequestObject() {
	if (window.XMLHttpRequest) {
		return new XMLHttpRequest();
	} else if(window.ActiveXObject) {
		return new ActiveXObject("Microsoft.XMLHTTP");
	} else {
		alert("Your Browser doesn't support AJAX!!");
	}
}

//Our XmlHttpRequest object to get the auto suggest
var searchReq = getXmlHttpRequestObject();

//Called from keyup on the search textbox.
//Starts the AJAX request.
function searchSuggest() {
// DISABLED BECAUSE THIS WAS DESIGNED TO USE SESSION SCOPING WHICH
// WE ARE NOT ALLOWING SINCE WE RUN IN A CLUSTER WITH NO STICKY BIT
return;

	if (searchReq.readyState == 4 || searchReq.readyState == 0) {
		var str = escape(document.getElementById('searchQuery').value);		
		searchReq.open("GET", 'BookAppSearch?q=' + str +"&sid="+Math.random(), true);
		searchReq.onreadystatechange = handleSearchSuggest; 
		searchReq.send(null);
	}		
}

var curFocus;
function setFocus(element) {	
	if(element == undefined) {
		curFocus=null;
	}
	else if(element.id == "searchQuery") {
		curFocus=element;
	}
	else {
		curFocus=element;
	}
}

//Called when the AJAX response is returned.
function handleSearchSuggest() {
	if (searchReq.readyState == 4) {
		var ss = document.getElementById('search_suggest')
		ss.innerHTML = '';
		var str = searchReq.responseText.split("\n");
		for(i=0; i < str.length - 1; i++) {
			//Build our element string.  This is cleaner using the DOM, but
			//IE doesn't support dynamically added attributes.
			var suggest = '<div id=smartBox onfocus="javascript:setFocus(this);" ';
			suggest += 'onmouseover="javascript:suggestOver(this);" ';
			suggest += 'onmouseout="javascript:suggestOut(this);" ';
			suggest += 'onclick="javascript:setSearch(this);" ';					
			suggest += 'class="suggest_link">' + str[i] + '</div>';
			ss.innerHTML += suggest;
		}
	}
}

var selected;

//Mouse over function
function suggestOver(div_value) {
	div_value.className = 'suggest_link_over';		
}
//Mouse out function
function suggestOut(div_value) {
	div_value.className = 'suggest_link';
}
//Click function
function setSearch(div_value) {
// DISABLED BECAUSE THIS WAS DESIGNED TO USE SESSION SCOPING WHICH
// WE ARE NOT ALLOWING SINCE WE RUN IN A CLUSTER WITH NO STICKY BIT
return;
	curFocus=div_value;
	selected = div_value.innerHTML;
	document.getElementById('searchQuery').value = div_value.innerHTML;
	//document.getElementById('search_suggest').innerHTML = '';
}

//Remove function
function removeSuggest() {
// DISABLED BECAUSE THIS WAS DESIGNED TO USE SESSION SCOPING WHICH
// WE ARE NOT ALLOWING SINCE WE RUN IN A CLUSTER WITH NO STICKY BIT
return;
	if (curFocus != null && curFocus.id == ('smartBox')){
		document.getElementById('searchQuery').value = selected;
		//document.getElementById('search_suggest').innerHTML = '';
	}
	else{
		//document.getElementById('search_suggest').innerHTML = '';
	}	
}

