function CndSuggest(_1){this.input=_1;this.lastValue="";this.lastTime=null;this.lastSelected=null;this.url=_1.form.action;this.method=_1.form.method.toUpperCase();this.params={OUTPUTFORMAT:"JSON"};if(CndSuggest.useDojo){dojo.query("input[type=hidden]",_1.form).forEach(function(e){if(e.name!=="cssmarker"){this.params[e.name]=e.value;}},this);}else{if(CndSuggest.usePrototype){$(_1.form).select("input[type=hidden]").each(function(e){if(e.name!=="cssmarker"){this.params[e.name]=e.value;}},this);}}this.select=null;this.handleKeypressed=function(_2){_2=(_2)?_2:window.event;if(_2.keyCode!==13&&this.input.value!==this.lastValue&&this.input.value!==""){this.lastValue=this.input.value;var _3=new Date();this.lastTime=_3.getTime();var _4=this;setTimeout(function(){_4.handleSuggest();},CndSuggest.timeout+30);}};this.handleSuggest=function(){var _5=new Date();var _6=_5.getTime()-this.lastTime;if(_6>CndSuggest.timeout){this.loadSuggest();}};this.loadSuggest=function(){var _7=this;var _8=this.params.valueOf();_8[this.input.name]=this.lastValue;if(CndSuggest.useDojo){dojo.xhr(this.method,{url:this.url,handleAs:"json",content:_8,load:function(_9,_a){_7.performAddSuggest(_9);}},this.method=="POST");}else{if(CndSuggest.usePrototype){var _b=new Ajax.Request(this.url,{parameters:_8,onSuccess:function(_c){_7.performAddSuggest(_c.responseJSON);}});}}};this.getSelectElement=function(){if(!this.select){this.select=document.createElement("ul");this.select.className="condero[suggest] hidden";this.select.style.visibility="hidden";this.select.style.position="absolute";this.select.style.left="0px";this.select.style.top=this.input.offsetHeight+"px";this.input.form.appendChild(this.select);var _d=this;var _e=function(_f){_d.mouseSelection.call(_d,_f);};this.select.onmouseover=_e;}return this.select;};this.showResults=function(){if(this.select){this.select.style.visibility="visible";this.select.className="condero[suggest] visible";}};this.hideResults=function(){if(this.select){this.select.style.visibility="hidden";this.select.className="condero[suggest] hidden";}};this.keySelection=function(_10){if(this.select){var _11=this.select.getElementsByTagName("li");if(_11.length>0){_10=(_10)?_10:window.event;var _12=_10.keyCode;var sel=null;if(_12==38){sel=_11[_11.length-1];if(this.lastSelected){this.lastSelected.className="";if(this.lastSelected.previousSibling){sel=this.lastSelected.previousSibling;}}this.lastSelected=sel;this.lastSelected.className=this.checkedClass;if(this.lastSelected.offsetTop>=this.select.scrollTop+this.select.clientHeight){this.select.scrollTop=this.lastSelected.offsetHeight+this.lastSelected.offsetTop-this.select.clientHeight;}else{if(this.lastSelected.offsetTop<this.select.scrollTop){this.select.scrollTop=this.lastSelected.offsetTop;}}this.handleSelection(this.lastSelected.innerHTML,this.lastSelected.getAttribute("value"));}else{if(_12==40){sel=_11[0];if(this.lastSelected){this.lastSelected.className="";if(this.lastSelected.nextSibling){sel=this.lastSelected.nextSibling;}}this.lastSelected=sel;this.lastSelected.className=this.checkedClass;if(this.lastSelected.offsetTop>=this.select.scrollTop+this.select.clientHeight){this.select.scrollTop=this.lastSelected.offsetHeight+this.lastSelected.offsetTop-this.select.clientHeight;}else{if(this.lastSelected.offsetTop<this.select.scrollTop){this.select.scrollTop=this.lastSelected.offsetTop;}}this.handleSelection(this.lastSelected.innerHTML,this.lastSelected.getAttribute("value"));}else{if(_12==13){this.fire();return true;}else{if(_12==27){this.hideResults();}}}}}}};this.mouseSelection=function(_13){var src=(_13)?_13.target:window.event.srcElement;if(src!==this.lastSelected){if(this.lastSelected){this.lastSelected.className="";}src.className=this.checkedClass;this.lastSelected=src;}this.handleSelection(src.innerHTML,src.getAttribute("value"));};this.fire=function(_14){this.hideResults();this.input.focus();if(this.lastSelected){this.handleFire(this.lastSelected.innerHTML,this.lastSelected.getAttribute("value"));}};};CndSuggest.prototype.checkedClass="selected";CndSuggest.prototype.handleSelection=function(_15,_16){};CndSuggest.prototype.handleFire=function(_17,_18){this.input.value=_17;};CndSuggest.prototype.performAddSuggest=function(_19){var _1a=null;try{_1a=CndSuggest.reader.getRecords(_19);}catch(ex){}if(_1a instanceof Array&&_1a.length>0){var _1b=this.getSelectElement();for(var i=_1b.childNodes.length-1;i>=0;i--){_1b.removeChild(_1b.childNodes[i]);}_1b.scrollTop=0;this.lastSelected=null;var _1c=this;var _1d=function(_1e){_1c.fire.call(_1c,_1e);};var _1f=0;for(i=0;i<_1a.length;i++){var _20=CndSuggest.reader.getLabel(_1a[i]);var _21=CndSuggest.reader.getValue(_1a[i]);if(_20===""||_21===""){continue;}var _22=document.createElement("li");_22.innerHTML=_20;_22.setAttribute("value",_21);_22.onclick=_1d;_1b.appendChild(_22);_1f++;}if(_1f>0){this.showResults();}}else{this.hideResults();}};CndSuggest.init=function(_23,_24){CndSuggest.reader=_23;CndSuggest.timeout=(_24)?_24:380;CndSuggest.useDojo=false;CndSuggest.usePrototype=false;CndSuggest.useJQuery=false;var _25=false;if(dojo){CndSuggest.useDojo=true;_25=dojo.isWebKit||dojo.isIE;}else{if(Prototype){CndSuggest.usePrototype=true;_25=Prototype.Browser.WebKit||Prototype.Browser.IE;}else{alert("Keine Unterstuetzte JS Bibliothek gefunden (Prototype");return;}}if(CndSuggest.useDojo){dojo.query("form input[class*=\"condero[suggest]\"]").forEach(function(e){dojo.attr(e,"autocomplete","off");var _26=new CndSuggest(e);dojo.connect(e,"onkeyup",function(_27){_26.handleKeypressed.call(_26,_27);});dojo.connect(e,(_25?"keydown":"keypress"),function(_28){if(_26.keySelection.call(_26,_28)){_28.preventDefault();}});dojo.connect(e,"click",function(_29){_26.hideResults();});dojo.connect(e,"blur",function(_2a){setTimeout(function(){_26.hideResults();},1000);});});}else{if(CndSuggest.usePrototype){$$("form input[class~=\"condero[suggest]\"]").inputs.each(function(e){e.setAttribute("autocomplete","off");var _2b=new CndSuggest(e);Event.observe(e,"keyup",function(_2c){_2b.handleKeypressed.call(_2b,_2c);});Event.observe(e,(_25?"keydown":"keypress"),function(_2d){if(_2b.keySelection.call(_2b,_2d)){if(CndSuggest.usePrototype){_2d.stop();}}});Event.observe(e,"click",function(_2e){_2b.hideResults();});Event.observe(e,"blur",function(_2f){setTimeout(function(){_2b.hideResults();},1000);});});}}};
