/********************************************************/
/** JAVASCRIPT LIBRARY V1.00 WEBSHOP SYSTEM            **/
/********************************************************/
/** Copyright: (C) 2009 RightVision GmbH               **/
/********************************************************/
var aktiveZeile = 0;
var searchResults = 0;
var doSearch = 1;
var keyENTER = 13;
var keyARROWUP = 38;
var keyARROWDOWN = 40;
var tempQuery = "";
/********************************************************/
/** Suchfunktionen                                     **/
/********************************************************/
function CheckEnter(e,fieldName) {
	var ENTER_KEY = 13;
	var code = 0;
	if (!e) { e = window.event; }
	if (window.event) {
		code = e.KeyCode;
	}
	else if (e.which) {
		code = e.which;
	}
	if ( code == ENTER_KEY ) {
		callSimpleSearch(fieldName);
	}
}
function callSimpleSearch(fieldName) {
	var activeURL = "" + top.location.href;
	var centered = "";
	if (activeURL.indexOf("c=1") > 0) { centered = "&c=1"; }
	var myquery = document.forms["form"+fieldName].elements[fieldName].value;
	var url = "";
	var mygroup = "";
	if (myquery != '') {
		//if (fieldName == "suchen1") {
		//	var selection = document.forms["form"+fieldName].elements[fieldName+"Gruppe"].selectedIndex;
		//	mygroup = document.forms["form"+fieldName].elements[fieldName+"Gruppe"].options[selection].text;
		//}
		if (myquery != defsuch) {
			if (mygroup.length > 2) {
				if (mygroup == 'Pharma') {
					url = '/webshop.aspx&'+centered+'mm=20&ps=1:1&query=' + myquery;
				} else {	
					url = '/webshop.aspx&'+centered+'simpleSearch=' + myquery + '&grp=' + mygroup;
				}	
			} else {
				url = '/webshop.aspx&'+centered+'simpleSearch=' + myquery;
			}
		}
	}
	if (url != '') {
		location.href = url;
	}
}
function CleanSearch(fieldName) {
	myobject = eval("document.forms['form"+fieldName+"'].elements['"+fieldName+"']");
	myquery  = myobject.value;
	if (myquery == defsuch) {
		myobject.value = '';
	}
}
function SetSearch(fieldName) {
	myobject = eval("document.forms['form"+fieldName+"'].elements['"+fieldName+"']");
	myquery  = myobject.value;
	if (myquery == '') {
		myobject.value = defsuch;
	}
}
function SetSearchText(fieldName,searchText) {
	document.forms['form"+fieldName+"'].elements['"+fieldName+"'].value = searchText;
}
function highlightWord(node,word) {
	if (node.hasChildNodes) {
		for (var hi_cn=0; hi_cn < node.childNodes.length; hi_cn++) {
			highlightWord(node.childNodes[hi_cn],word);
		}
	}
	// And do this node itself
	if (node.nodeType == 3) {
	// text node
	tempNodeVal = node.nodeValue.toLowerCase();
	tempWordVal = word.toLowerCase();
	if (tempNodeVal.indexOf(tempWordVal) != -1) {
			pn = node.parentNode;
			if (pn.className != "highlight") {
				// word has not already been highlighted!
				nv = node.nodeValue;
				ni = tempNodeVal.indexOf(tempWordVal);
				// Create a load of replacement nodes
				before = document.createTextNode(nv.substr(0,ni));
				docWordVal = nv.substr(ni,word.length);
				after = document.createTextNode(nv.substr(ni+word.length));
				hiwordtext = document.createTextNode(docWordVal);
				hiword = document.createElement("span");
				hiword.className = "highlight";
				hiword.appendChild(hiwordtext);
				pn.insertBefore(before,node);
				pn.insertBefore(hiword,node);
				pn.insertBefore(after,node);
				pn.removeChild(node);
			}
		}
	}
}
/********************************************************/
/** Funktionen für SearchLikeGoogle()                  **/
/********************************************************/
function timedClose(){
	doSearch = 0;
	aktiveZeile = 0; 
	searchResults = 0;
	tempQuery = "";
	document.getElementById("dsearcher").style.visibility = "hidden";
	document.getElementById("dsearchtext").innerHTML = "";
}
function closeSearcher(wert){
	if (wert == 1) {
		timedClose();
	} else {
		setTimeout("timedClose()", 250);
	}
}
function doSimpleSearch(queryString) {
	document.forms["formsuchen1"].elements["suchen1"].value = queryString;
	callSimpleSearch('suchen1');
}
function getValueSearchResults() {
	var resultat = 0;
	try {
		resultat = parseInt(document.forms["ResultForm"].elements["SearchResults"].value);
	} catch(err) {} 
	return resultat;
}
function getSelection(zeile) {
	var selection = "";
	try{
		selection = document.getElementById("resultZeile"+zeile).innerHTML;
	} catch(err) {} 
	return selection;
}
function getQueryString() {
	var query = "";
	try{
		query = document.forms["formsuchen1"].elements["suchen1"].value;
	} catch(err) {} 
	return query;
}
function setQueryString(queryString) {
	try{
		document.forms["formsuchen1"].elements["suchen1"].value = queryString;
	} catch(err) {} 
}
function switchColor(zeile) {
	searchResults = getValueSearchResults();
	if (searchResults >= 1) {
		for(i = 1; i <= searchResults; i++) { 
			try {
				document.getElementById('resultZeile'+i).className = ""; 
				document.getElementById('trefferZeile'+i).className = ""; 
			} catch(err) {} 
		}
	}
	if (zeile > 0 && zeile <= searchResults) {
		document.getElementById('resultZeile'+zeile).className = "mm00_3";
		document.getElementById('trefferZeile'+zeile).className = "mm00_3";
	}
}
function CheckKeyDown(e) {
	var keyCode = '';
	if (!e) { e = window.event; }
	if (e.which) {
		keyCode = e.which;
	} else if (e.keyCode) {
		keyCode = e.keyCode;
	}
	searchHandler(keyCode);
}
function CheckKeyUp(e) {
	var keyCode = '';
	if (!e) { e = window.event; }
	if (window.event) {
		keyCode = e.KeyCode;
	} else if (e.which) {
		keyCode = e.which;
	}
}
function CheckKeyPress(e) {
	var keyCode = '';
	if (!e) { e = window.event; }
	if (e.which) {
		keyCode = e.which;
	} else if (e.keyCode) {
		keyCode = e.keyCode;
	}
}
function searchHandler(keyCode) {
	doSearch = 1;
	var query = getQueryString();
	if (query == "") {
		closeSearcher(1);
	} else {
		if ( keyCode == keyENTER ) { 
			callSimpleSearch('suchen1');
		}
		searchResults = getValueSearchResults();
		if ( keyCode == keyARROWUP ) {
			doSearch = 0;
			if (aktiveZeile > 0) { 
				aktiveZeile--; 
			} else {
				aktiveZeile = searchResults;
			}
			switchColor(aktiveZeile);
			setQueryString(getSelection(aktiveZeile));
		}
		if ( keyCode == keyARROWDOWN ) {
			doSearch = 0;
			if (aktiveZeile < searchResults) { 
				aktiveZeile++;
			} else {
				if (aktiveZeile >= searchResults) {
					aktiveZeile = 0;
				}
			}
			switchColor(aktiveZeile);
			setQueryString(getSelection(aktiveZeile));
		}
	}
	if ( doSearch > 0 ) { 
		setTimeout("showQueryStrings()", 10); 
	}
}
function showQueryStrings() {
	var query = getQueryString();
	if (query == "") {
		closeSearcher(1);
	} else {
		var searchStrings = new Object();
		searchStrings.basedomain = "http://" + window.location.hostname;
		searchStrings.ajaxobj = createAjaxObj();
		searchStrings.filetype = "txt";
		searchStrings.addrandomnumber = 1;
		searchStrings.getAjaxRequest = function(url, parameters, callbackfunc, filetype){
			searchStrings.ajaxobj = createAjaxObj();
			if (searchStrings.addrandomnumber==1){
				var parameters = parameters + "&amp;ts=" + new Date().getTime();
			}
			if (this.ajaxobj){
				this.filetype = filetype;
				this.ajaxobj.onreadystatechange = callbackfunc;
				this.ajaxobj.open('GET', url + "?" + parameters, true);
				this.ajaxobj.send(null);
			}
		}
		function callbackFunction() {
			var responseBody = "";
			var myajax = searchStrings.ajaxobj;
			var myfiletype = searchStrings.filetype;
			if (myajax.readyState == 4){
				if (myajax.status == 200 | window.location.href.indexOf("http") == -1){
					if (myfiletype == "txt"){
						responseBody = myajax.responseText;
					} else {
						responseBody = myajax.responseXML;
					}
					if (responseBody != "") {
						document.getElementById("dsearchtext").innerHTML = responseBody;
						document.getElementById("dsearcher").style.visibility = "visible";
					} else {
						closeSearcher(1);
					}
				}
			}
		}
		var postRequestString = "OpenAgent&query=" + query; 
		searchStrings.getAjaxRequest("/data/ajaxGetQueryStrings.aspx", postRequestString, callbackFunction, "txt");
	}
}
