function FFSuggest(){var C;var y;var b=false;var x="";var E="";var l="";var A="";var u="";var c;var L=new Array();var f;var q=0;var g=false;var a=false;var d="suggestImage";var D="suggestTextQuery";var p="suggestTextType";var t="suggestTextAmount";var s="suggestTextQueryTyped";var e="suggestFooter";var w="suggestHeader";var K="suggestRow";var J="suggestHighlight";this.init=function(M,O,N,S,T,U,P,Q,R){E=M;A=O;l=N;pChannelParamName=P;pChannel=Q;u=S;x=T;b=U;a=R;if(E==""){if(b){alert("no searchurl defined")}return null}else{if(x==""){if(b){alert("no instancename defined")}return null}else{if(A==""){if(b){alert("no formname defined")}return null}else{if(l==""){if(b){alert("no queryparamname defined")}return null}else{if(u==""){if(b){alert("need a layer for output")}}}}}}c=document[A][l];c.onkeyup=m;c.onfocus=z;c.onblur=B;document[A].onsubmit=r};function r(){g=true;if(L[q]!=undefined){document[A][l].value=L[q].split("###")[0];j()}else{var M=document[A][l];M.value=$.trim(M.value);if(M.value.length==0){M.focus();g=false}}return g}this.handleClick=function(){if(L[q]!=undefined){document[A][l].value=L[q].split("###")[0];j();document[A].submit()}};this.handleMouseOver=function(N){var M=F(N);v();if(M!=null){k(M);q=N}};this.handleMouseOut=function(N){var M=F(N);if(M!=null){i(M);q=-1}};function m(M){M=(M)?M:((event)?event:null);var N=M.keyCode;if(N==38){o("up")}else{if(N==27){B()}else{if(N==40){o("down")}else{if(c.value==""){B();if(y!=null){y.innerHTML=""}return null}if(f!=c.value){H()}f=c.value}}}}function o(O){var P=q;if(O=="up"){P--}else{P+=1}if(P<0){v();c.focus();q=-1}else{var N=F(P);if(N!=null){v();k(N);q=P}}var M=c.value;c.value="";c.focus();c.value=M}function H(){var O=c.value;if(O.length>50){return}var N=E+"?"+l+"="+encodeURIComponent(O)+"&"+pChannelParamName+"="+pChannel;try{if(window.XMLHttpRequest){C=new XMLHttpRequest()}else{if(window.ActiveXObject){C=new ActiveXObject("Microsoft.XMLHTTP")}else{if(b){alert("no ajax connection")}}}y=document.getElementById(u);if(y!=null){if(O!=""){C.open("GET",N,true);C.onreadystatechange=n;C.send(null)}else{B()}}else{if(b){alert("no layer for output found")}}}catch(M){B();if(M==undefined){if(b){alert("Error: "+M.getmessage)}}else{if(b){alert("Error: "+M)}}}}function B(){if(y!=null){y.style.display="none";h()}}this.hideLayerOutsideCall=function(){if(y!=null){y.style.display="none";h()}};function z(){if(y!=null&&L!=null&&L.length>=1){y.style.display="block"}}function n(){if(g==false){if(C.readyState==4){if(C.status!=200){B();if(b){alert("Error ("+C.status+"): "+C.statusText)}}else{G(C.responseText)}}}}function I(M){if(typeof(onSuggestCompleted)=="function"){onSuggestCompleted(M)}}function h(){if(typeof(onSuggestLayerHidden)=="function"){onSuggestLayerHidden()}}function G(S){var Q=3;if(a){Q++}q=-1;L=new Array();L=S.split("\n");var M='<table cellpadding="0" cellspacing="0" class="'+u+'" width="100%" border="0" onMouseDown="'+x+'.handleClick();">';M+='<tr class="'+w+'" ><td nowrap="nowrap" colspan="'+Q+'">Vorschl&#228;ge zu Ihrer Suche...</td></tr>';var R=new Array();for(var N=0;N<L.length;N++){var O=L[N].charCodeAt(0);if(O!=13&&O!=10&&L[N].length>=1){R.push(L[N])}}L=R;var P=c.value;for(var N=0;N<L.length;N++){pSuggestParts=new Array();pSuggestParts=L[N].split("###");M+='<tr id="'+u+"_"+N+'" class="'+K+'" onMouseOver="'+x+".handleMouseOver("+N+');" onMouseOut="'+x+".handleMouseOut("+N+');">';if(a){M+='<td nowrap="nowrap" class="'+d+'"><img src="'+pSuggestParts[3]+'" alt=""/></td>'}M+='<td nowrap="nowrap" class="'+D+'">'+pSuggestParts[0].replace(new RegExp("("+P+")","ig"),'<span class="'+s+'">$1</span>')+'</td><td nowrap="nowrap" class="'+p+'">'+pSuggestParts[2]+'</td><td nowrap="nowrap" class="'+t+'">'+pSuggestParts[1]+"</td></tr>"}M+='<tr><td class="'+e+'" colspan="'+Q+'">&nbsp;</td></tr></table>';if(L.length>=1){z();y.innerHTML=M;I(true)}else{B();y.innerHTML="";I(false)}}function k(M){M.className=J}function i(M){M.className=K}function v(){var N;for(var M=0;M<L.length;M++){N=F(M);if(N!=null){i(N)}}}function F(N){var M;
M=document.getElementById(u+"_"+N);return M}function j(){var M=document.createElement("input");M.name="queryFromSuggest";M.type="hidden";M.value="true";document[A].appendChild(M)}};
