



function getXmlHttpRequestObject() {
	if (window.XMLHttpRequest) {
		return new XMLHttpRequest();
	} else if(window.ActiveXObject) {
		return new ActiveXObject("Microsoft.XMLHTTP");
	} else {
		alert("It's about time to upgrade your Browser don't you think?");
	}
}

var searchReq = getXmlHttpRequestObject();

function initAppEvents() {
	if (navigator.userAgent.indexOf("Safari") > 0) {
		document.getElementById('txtSearch').addEventListener("keydown",liveSearchKeyPress,false);
	} else if (navigator.product == "Gecko") {
		
		document.getElementById('txtSearch').addEventListener("keypress",liveSearchKeyPress,false);
		
	} else {
		document.getElementById('txtSearch').attachEvent('onkeydown',liveSearchKeyPress);
		isIE = true;
	}
}

function searchSuggest(langx) {
	if (searchReq.readyState == 4 || searchReq.readyState == 0) {
		var str = escape(document.getElementById('txtSearch').value);
		searchReq.open("GET", 'includes/searchSuggest.php?lang='+langx+'&search=' + str, true);
		searchReq.onreadystatechange = handleSearchSuggest; 
		searchReq.send(null);
		initAppEvents();
	}		
}

function handleSearchSuggest() {
	if (searchReq.readyState == 4) {
		
		var ss = document.getElementById('search_suggest');
		ss.innerHTML = '';
		var str = searchReq.responseText.split("\n");
		
		if (str.length-1 != 0) {
			document.getElementById('search_suggest').style.display = "inline";
		}
		else {
			document.getElementById('search_suggest').style.display = "none";
		}
			
		for(i=0; i < str.length - 1; i++) {
			var suggest = '<div onmouseover="javascript:suggestOver(this);" ';
			suggest += 'onmouseout="javascript:suggestOut(this);" ';
			suggest += 'onclick="javascript:setSearch(getElementById(\'hiddenValue'+i+'\').innerHTML);" ';
			suggest += 'class="suggest_link" id="suggest_link_div'+i+'">' + str[i] + '</div>';
			ss.innerHTML += suggest;
			
		}
	}
}

function liveSearchKeyPress(event) {
	if (event.keyCode == 40 ) {
		
		//KEY DOWN
		highlight = document.getElementById("LSHighlight");
		if (!highlight) {
			highlight = document.getElementById("search_suggest").firstChild;
			
		} else {
			highlight.removeAttribute("id");
			highlight = highlight.nextSibling;
		}
		
		if (highlight) {
			highlight.setAttribute("id","LSHighlight");
			//document.getElementById("txtSearch").value = highlight.innerHTML;
		} 
		if (!isIE) { event.preventDefault(); }
	}
	else if (event.keyCode == 38 ) {
		//KEY UP
		highlight = document.getElementById("LSHighlight");
		if (!highlight) {
			highlight = document.getElementById("search_suggest").lastChild;
		} 
		else {
			highlight.removeAttribute("id");
			highlight = highlight.previousSibling;
		}
		if (highlight) {
				highlight.setAttribute("id","LSHighlight");
		}
		if (!isIE) { event.preventDefault(); }
	} 
}

//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(value) {
	document.getElementById('search_suggest').style.display = "none";
	document.getElementById('search_suggest').innerHTML = '';
	document.getElementById('txtSearch').focus();
	document.getElementById('txtSearch').value = value;
}




/* OTHER FUNCTIONS */ 
function switchDisplay(eid) {
	if (document.getElementById(eid).style.display == 'none') {
		document.getElementById(eid).style.display = 'inline'; 
		return 'visible';
	}
	else {
		document.getElementById(eid).style.display = 'none'; 
		return 'invisible';
	}
}

function switchGBBookView(eid,lang) {
	if (switchDisplay(eid) == 'visible') {
		document.getElementById('gbbutton').src = 'images/styleElements/backToViewButton_'+lang+'.gif';
	}
	else {
		document.getElementById('gbbutton').src = 'images/styleElements/newEntryButton_'+lang+'.gif';
	}
}
	