var AjaxSuggestionObj=new Array();

function initAjaxSearch(){
try{
	if(HasAjax){
		var ajaxInput = document.getElementById("ajax_quicksearch");
		addEvent(ajaxInput,"focus",AjaxGotFocus);
		addEvent(ajaxInput,"blur",function(){setTimeout("AjaxLostFocus();",50);});
		ajaxInput.autocomplete="off";
	} else {
		//alert("dieser Browser unterstuetzt kein Ajax");
	}
} catch(e){}
}

function AjaxGotFocus(evt){
try{
	var ajaxInput = getEventSourceObject(evt);
	AjaxSuggestionObj["Input"]=ajaxInput;
	if(ajaxInput.value=='Suchwort'){ajaxInput.value='';}
	addEvent(ajaxInput,"keyup",AjaxHandleKeyPress);
} catch(e){}
}

function AjaxLostFocus(evt){
try{
	var ajaxInput = getEventSourceObject(evt);
	if(ajaxInput.value==''){ajaxInput.value='Suchwort';}
	removeEvent(ajaxInput,"keyup",AjaxHandleKeyPress);
	AjaxDestroySuggestion(evt);
} catch(e){}
}

function AjaxHandleKeyPress(evt){
try{
	var ajaxInput = getEventSourceObject(evt);
	var ajaxKeyCode = getEventKeyCode(evt);
	var ajaxURL = document.getElementById("ajax_url").value;
	switch(ajaxKeyCode){
		case 40:AjaxMarkNxt();break;//down
		case 38:AjaxMarkPrev();break;// up
		case 37:break;// Pfeil recht 
		case 39:break;// Pfeil links 
		case 16:break;// Shift loesen nichts aus
		case 27:AjaxDestroySuggestion();break;// ESC klappt ajax zu
		default:(ajaxInput.value.length>=3)?ajaxWarteschlange("/weinwelt_at/cfm/index.cfm?fuseaction=Interface.ajaxsuggest&search="+encodeURI(ajaxInput.value)):AjaxDestroySuggestion();AjaxSuggestionObj["InputOldValue"]=ajaxInput.value;
	}
} catch(e){}
}

var ajaxWait=false;
function ajaxWarteschlange(url){
	try{clearTimeout(ajaxWait);}catch(e){}
	try{
	var _locUrl=url;
	ajaxWait=window.setTimeout(function(){ajaxXMLRequest(_locUrl,"AjaxHandleRequest(ajaxReq)");},800);
	}catch(e){}
}

function AjaxHandleRequest(req){
try{
	if(typeof closeWarenkorb=="function")
		closeWarenkorb();
	if(!document.getElementById("ajax_quicksearch_layer")){
		AjaxCreateSuggestion();
	}

	var Sum=req.responseXML.getElementsByTagName("suggestions")[0].getElementsByTagName("all")[0].firstChild.nodeValue;
	if(parseInt(Sum) > 0){
		var Sugg=new Array();
		var Suggestions = req.responseXML.getElementsByTagName("suggestions")[0].getElementsByTagName("suggestion");
		for(var i=0;i<Suggestions.length;i++){
			Sugg[i]=new Array(Suggestions[i].getElementsByTagName("link")[0].firstChild.nodeValue,Suggestions[i].getElementsByTagName("text")[0].firstChild.nodeValue,Suggestions[i].getElementsByTagName("source")[0].firstChild.nodeValue);
		}
		AjaxAddSuggestion(Sugg,Sum);
	} else {
		AjaxDestroySuggestion();
	}
} catch(e){
	AjaxSuggestionObj["InputOldValue"]="";
	AjaxDestroySuggestion();
}
}

function AjaxCreateSuggestion(){
try{
	var MainDiv = document.createElement("div");
		MainDiv.className = "AjaxMainBox";
		MainDiv.id="ajax_quicksearch_layer";
	var HeadlineDiv = document.createElement("div");
		HeadlineDiv.className = "headline";
		AjaxSuggestionObj["Headline"]=HeadlineDiv;
		var HeadlineCntSpan = document.createElement("span");
			HeadlineCntSpan.className="Count";
			HeadlineDiv.appendChild(HeadlineCntSpan);
			AjaxSuggestionObj["Count"]=HeadlineCntSpan;
		HeadlineDiv.appendChild(document.createTextNode(" von "));
		var HeadlineSumSpan = document.createElement("span");
			HeadlineSumSpan.className="Sum";
			HeadlineDiv.appendChild(HeadlineSumSpan);
			AjaxSuggestionObj["Sum"]=HeadlineSumSpan;
		HeadlineDiv.appendChild(document.createTextNode(" werden angezeigt."));
		var HeadlineCloseDiv = document.createElement("div");
			HeadlineCloseDiv.className="close";
		var HeadlineCloseImg = document.createElement("img");
			HeadlineCloseImg.src="/global_weinwelt_at/html/images/gi_icon_ajax_close.gif";
			addEvent(HeadlineCloseImg,"click",AjaxDestroySuggestion);
			HeadlineCloseDiv.appendChild(HeadlineCloseImg);
			HeadlineDiv.appendChild(HeadlineCloseDiv);
	MainDiv.appendChild(HeadlineDiv);
	var SuggestionDiv = document.createElement("div");
		SuggestionDiv.className = "suggestion";
		AjaxSuggestionObj["Trefferliste"]=SuggestionDiv;
	MainDiv.appendChild(SuggestionDiv);
	AjaxSuggestionObj["MainDiv"]=MainDiv;
	document.getElementById("ajaxsuche").appendChild(MainDiv);
} catch(e){}
}

function AjaxAddSuggestion(sugg,sum){
try{
if(AjaxSuggestionObj["Trefferliste"].childNodes.length>0){
removeChildNodes(AjaxSuggestionObj["Trefferliste"]);
removeChildNodes(AjaxSuggestionObj["Count"]);
removeChildNodes(AjaxSuggestionObj["Sum"]);
}
	AjaxSuggestionObj["Treffer"]=new Array();
	for(var i=0; i<sugg.length; i++){
		var Link = document.createElement("a");
		Link.href=sugg[i][0];
		Link.innerHTML=sugg[i][1];
		//Link.appendChild(document.createTextNode(sugg[i][1]));
		Link.style.backgroundImage="url("+sugg[i][2]+")";
		Link.className="suggestionEntry";
		Link.id="suggestionEntry"+i;
		addEvent(Link,"mouseover",function(evt){AjaxMarkEntry(getEventSourceObject(evt).id.split("suggestionEntry").join(""));});
		AjaxSuggestionObj["Trefferliste"].appendChild(Link);
		AjaxSuggestionObj["Treffer"][i]=Link;
		}
	AjaxSuggestionObj["Count"].appendChild(document.createTextNode(i));
	AjaxSuggestionObj["Sum"].appendChild(document.createTextNode(sum+" Produkt"+((sum>1)?"en":"")));
	if(Browser=="MSIE"&&Version<7)
		makeTopMost(AjaxSuggestionObj["MainDiv"]);
	AjaxSuggestionObj["LastSuggestionEntry"]=false;
} catch(e){}
}


function AjaxMarkNxt(){
try{
	if(AjaxSuggestionObj["LastSuggestionEntry"]===false){
		ID=0;
	} else if (((AjaxSuggestionObj["LastSuggestionEntry"]*1)+1)<AjaxSuggestionObj["Treffer"].length){
		ID=(AjaxSuggestionObj["LastSuggestionEntry"]*1)+1;
	} else {
		ID=0;
	}
	if(AjaxSuggestionObj["Treffer"][AjaxSuggestionObj["LastSuggestionEntry"]])
		AjaxSuggestionObj["Treffer"][AjaxSuggestionObj["LastSuggestionEntry"]].className="suggestionEntry";
	AjaxSuggestionObj["Treffer"][ID].className="suggestionEntry on";
	AjaxSuggestionObj["LastSuggestionEntry"]=ID;
	
	markText(AjaxSuggestionObj["Input"],AjaxSuggestionObj["Treffer"][ID].firstChild.nodeValue,AjaxSuggestionObj["InputOldValue"]);
} catch(e){}
}

function AjaxMarkPrev(){
try{
	if(AjaxSuggestionObj["LastSuggestionEntry"]===false){
		ID=AjaxSuggestionObj["Treffer"].length-1;
	}
	if (((AjaxSuggestionObj["LastSuggestionEntry"]*1)-1)>=0){
		ID=(AjaxSuggestionObj["LastSuggestionEntry"]*1)-1;
	} else {
		ID=AjaxSuggestionObj["Treffer"].length-1;
	}
	if(AjaxSuggestionObj["Treffer"][AjaxSuggestionObj["LastSuggestionEntry"]])
		AjaxSuggestionObj["Treffer"][AjaxSuggestionObj["LastSuggestionEntry"]].className="suggestionEntry";
	AjaxSuggestionObj["Treffer"][ID].className="suggestionEntry on";
	AjaxSuggestionObj["LastSuggestionEntry"]=ID;
	
	markText(AjaxSuggestionObj["Input"],AjaxSuggestionObj["Treffer"][ID].firstChild.nodeValue,AjaxSuggestionObj["InputOldValue"]);
} catch(e){}
}

function AjaxMarkEntry(ID){
try{
	for(var i=0;i<AjaxSuggestionObj["Treffer"].length;i++)
		if(i!=ID)
			AjaxSuggestionObj["Treffer"][i].className="suggestionEntry";
		else
			AjaxSuggestionObj["Treffer"][i].className="suggestionEntry on";
			
	markText(AjaxSuggestionObj["Input"],AjaxSuggestionObj["Treffer"][ID].firstChild.nodeValue,AjaxSuggestionObj["InputOldValue"]);
	AjaxSuggestionObj["LastSuggestionEntry"]=ID;
} catch(e){}
}

function AjaxDestroySuggestion(){
try{
if(document.getElementById("ajax_quicksearch_layer")){
	var ajaxLayer = document.getElementById("ajax_quicksearch_layer");
	removeTopMost(AjaxSuggestionObj["MainDiv"]);
	removeObject(ajaxLayer);
	AjaxSuggestionObj["LastSuggestionEntry"]=false;
}
} catch(e){}
}