/*
	Dateiname:			ajax_search.js
	Zweck:				JavaScripts für AJAX
	Ersteller:			Hakan
	Datum:				26.05.2008
	Version:			4.1.1a
							 
	Aenderungen :
	Datum		Version	Wer		Beschreibung

	------------------------------------------------------------
	
	Kundenspezifische Anpassungen:
	Datum		Wer		Beschreibung
	
*/
var currFolders = new Array();
var actmarked = null;
var searchString = "";
var resultlayer = null;
var searchfield = "";

/*
window.onload = function(){ 
	$("searchword1").onkeydown = showDown; 
	$("searchword1").onkeyup = searchSuggest; 
	//$("searchword2").onkeydown = showDown; 
	//$('searchword2').onkeyup = searchSuggest;
}*/


// XmlHttpRequest Object
function getXmlHttpRequestObject() {
	if (window.XMLHttpRequest) {
		return new XMLHttpRequest();
	} else if(window.ActiveXObject) {
		return new ActiveXObject("Microsoft.XMLHTTP");
	} else {
		alert("Your Browser Sucks!\nIt's about time to upgrade don't you think?");
	}
}

// Creating XmlHttpRequest
var XmlReq = getXmlHttpRequestObject();
var resultlayer = "";

// Called from keyup on the search textbox. Starts the AJAX request.
/*function searchSuggest(searchword,mandant,xmlhttpaction,suggestlayer,installation_id,lastversion) {
	resultlayer = suggestlayer;
	if (XmlReq.readyState == 4 || XmlReq.readyState == 0) {
		var str = escape(searchword);
		// alert('/indexXMLhttp.cfm?searchword='+searchword+'&mandant='+mandant+'&xmlhttpaction='+xmlhttpaction+'&installation_id='+installation_id+'&lastversion='+lastversion);
		// indexXMLhttp.cfm?searchword=Maec&mandant=standard&xmlhttpaction=searchsuggest&installation_id=10&lastversion=1
		XmlReq.open("GET", '/indexXMLhttp.cfm?searchword='+searchword+'&mandant='+mandant+'&xmlhttpaction='+xmlhttpaction+'&installation_id='+installation_id+'&lastversion='+lastversion, true);
		XmlReq.onreadystatechange = handleSearchSuggest; 
		XmlReq.send(null);
	}		
}*/

function searchSuggest(e) {
	//evt = (evt) ? evt : ((event) ? event : null); 16.09.2008 paza - neue version weil in IE nicht funktioniert
	var evt = e || window.event;
	if(evt.keyCode==40 || evt.keyCode==38 || evt.keyCode==13) return;

	feldName = (evt.target) ? evt.target.name : evt.srcElement.name;
	nowNr = parseInt(feldName.substring(feldName.length-1));
	nowObj = suchKriterien[nowNr];
	//id = suchKriterien[nowNr];
	searchword = nowObj.ajax_searchform.value.replace(/%/g,'*');
	resultlayer = nowObj.suggestlayer;
	searchfield = "searchword" + nowNr;
	
	if (XmlReq.readyState == 4 || XmlReq.readyState == 0) {
		var str = escape(searchword);
		// alert('/indexXMLhttp.cfm?searchword='+searchword+'&mandant='+mandant+'&xmlhttpaction='+xmlhttpaction+'&installation_id='+installation_id+'&lastversion='+lastversion);
		// indexXMLhttp.cfm?searchword=Maec&mandant=standard&xmlhttpaction=searchsuggest&installation_id=10&lastversion=1
		XmlReq.open("GET", '/indexXMLhttp.cfm?searchword='+searchword+'&mandant='+nowObj.mandant+'&xmlhttpaction='+nowObj.xmlhttpaction+'&installation_id='+nowObj.installation_id+'&lastversion='+nowObj.lastversion, true);
		XmlReq.onreadystatechange = handleSearchSuggest; 
		XmlReq.send(null);
	}
}

//Called when the AJAX response is returned.
function handleSearchSuggest() {
	if (XmlReq.readyState == 4) {
		var ss = $(resultlayer)
		ss.innerHTML = '';
		var str = XmlReq.responseText.split("|");
		
		while(currFolders.length) {currFolders.pop();}
		for(i=0; i < str.length - 1; i++) {
			var suggest = '<div onmouseover="javascript:suggestOver(this);" ';
			suggest += 'onmouseout="javascript:suggestOut(this);" ';
			suggest += 'onclick="javascript:setSearch(trim(this.innerHTML));" ';
			suggest += 'class="suggest_link" id="result' + i + '">' + str[i] + '</div>';
			inputstring =  str[i].replace(/^\s\s*/, '').replace(/\s\s*$/, '');
			currFolders.push(inputstring);	
			ss.innerHTML += suggest;
		}
	}
}

function trim (zeichenkette) {
  return zeichenkette.replace (/^\s+/, '').replace (/\s+$/, '');
}


//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(searchfield).value = value;
	document.getElementById(resultlayer).innerHTML = '';
	document.getElementById(resultlayer).focus();
	//Änderung 13.06.08 ms
	/*document.getElementById('searchword').value = value;
	document.getElementById('search_suggest').innerHTML = '';
	document.form_shopsearch.shop_searchtext.focus();*/
}


//PaZA'Code
function $(x){return document.getElementById(x);}

function goDown(){
	if(currFolders.length<1){
		actmarked=null;
		return;
	}
	
	if(actmarked!=null&&actmarked<currFolders.length-1){
		actmarked++;
	}else{
		actmarked=0;
	}

	for(x in currFolders){
		if(x==actmarked) {	$("result" + x).className  = "suggest_link_over"; searchString = currFolders[x]; $(searchfield).value = currFolders[x];}
		else			 {	$("result" + x).className  = "suggest_link";}
	}
}

function goUp(){
	if(currFolders.length<1){
		actmarked=null;
		return;
	}
	
	if(actmarked!=null&&actmarked>0){
		actmarked--;
	}else{
		actmarked=currFolders.length-1;
	}

	for(x in currFolders){
		if(x==actmarked) {	$("result" + x).className  = "suggest_link_over"; searchString = currFolders[x]; $(searchfield).value = currFolders[x];}
		else			 {	$("result" + x).className  = "suggest_link";}
	}
}




function showDown(evt) {
	//evt = (evt) ? evt : ((event) ? event : null);  16.09.2008 paza - neue version weil in IE nicht funktioniert
	var evt = evt || window.event;
	if (evt) {
		if(evt.keyCode==40) 						goDown();
		else if(evt.keyCode==38)					goUp();
		//else if(evt.keyCode==13&&actmarked!=null)	setSearch(searchString); 16.09.2008 paza - entfernt
	}
} 


// 16.09.2008 paza - Links funktionieren in JS nicht mit "&amp;" statt "&" ! 
function ajaxSuchUrl(url){
	location.href= url.replace(/\&amp;/g, "&");
}

