(function(a){if(a){a.searchsuggest={init:function(g,c,e,b,d,f){return new a.searchsuggest.SuggestionHandler().initialize(g,c,e,b,d,f)},SuggestionHandler:function(){this.acListTotal=0;this.acListCurrent=-1;this.acDelay=300;this.acURL=null;this.acFormId=null;this.acSearchId=null;this.acResultsId=null;this.acSearchField=null;this.acResultsDiv=null;this.fieldDefault=null;this.acResultsDivWidth=null;this.showdbg=false;var b=this;this.initialize=function(h,d,f,c,e,g){window.console&&this.showdbg&&console.log("app.searchsuggest.init");this.acFormId="#"+h;this.acSearchId="#"+d;this.acResultsId="#"+c;this.acURL=e;this.fieldDefault=f;g!=null?this.acResultsDivWidth=g:this.acResultsDivWidth=null;a.util.disableAutoComplete(d);jQuery("body").append('<div id="'+c+'"></div>');this.acSearchField=jQuery(this.acSearchId);this.acResultsDiv=jQuery(this.acResultsId);this.repositionResultsDiv();this.acSearchField.bind("blur",this,function(j){setTimeout(j.data.clear,250)});this.acSearchField.keyup(function(l){var k=l.keyCode||window.event.keyCode;var j=b.acSearchField.val();if(b.updownArrow(k)){return}if(k==13||k==27){b.clear();return}setTimeout(function(){b.suggest(j)},b.acDelay)});this.acSearchField.focus(function(){var j=b.acSearchField.val();if(j==b.fieldDefault){b.acSearchField.val("")}});jQuery(this.acFormId).submit(function(){var k=jQuery(b.acFormId).attr("action");var j=b.acSearchField.val();window.location=a.util.appendParamToURL(k,"q",j);return false})};this.suggest=function(e){window.console&&this.showdbg&&console.log("this.suggest");var d=this.acSearchField.val();if(d==""){this.clear();return}if(e!=d){return}var c=a.util.appendParamToURL(this.acURL,"q",d);jQuery.getJSON(c,function(g){var f=b.acListTotal=g.suggestions.length;if(f>0){var j="";for(i=0;i<f;i++){j+='<div class="unselected"><div class="suggestionterm">'+g.suggestions[i].suggestion+"</div>";j+='<span class="hits">'+g.suggestions[i].hits+"</span></div>"}b.acResultsDiv.html(j);b.acResultsDiv.css("display","block");b.repositionResultsDiv();var h=jQuery(b.acResultsId+" > div");window.console&&this.showdbg&&console.log("divs "+h);h.mouseover(function(){h.each(function(){this.className="unselected"});this.className="selected";b.acSearchField.val(this.childNodes[0].innerHTML)});h.click(function(){b.acSearchField.val(jQuery(this).children().first().text());b.clear();jQuery(b.acFormId).submit()})}else{b.clear()}})};this.clear=function(){window.console&&b.showdbg&&console.log("this.clear");b.acResultsDiv.html("");b.acResultsDiv.css("display","none")};this.repositionResultsDiv=function(){window.console&&this.showdbg&&console.log("this.repositionResultsDiv");var g=this.acSearchField.offset();window.console&&this.showdbg&&console.log("inPos.top =  "+g.top+"   inPos.left = "+g.left);var f=g.top;var d=g.left;var e=this.acSearchField.outerHeight();var c=this.acSearchField.outerWidth();window.console&&this.showdbg&&console.log("inHeight  =  "+e);this.acResultsDiv.addClass("suggestions");this.acResultsDiv.css("position","absolute");this.acResultsDiv.css("left",d+"px");this.acResultsDiv.css("top",f+e+1);this.acResultsDiv.css("width",this.acResultsDivWidth!=null?this.acResultsDivWidth:c);this.acResultsDiv.css("z-index","7777")};this.updownArrow=function(c){if(c==40||c==38){if(c==38){if(b.acListCurrent==0||b.acListCurrent==-1){b.acListCurrent=b.acListTotal-1}else{b.acListCurrent--}}else{if(b.acListCurrent==b.acListTotal-1){b.acListCurrent=0}else{b.acListCurrent++}}this.acResultsDiv.children().each(function(d){if(d==b.acListCurrent){b.acSearchField.val(jQuery(this).children().first().text());this.className="selected"}else{this.className="unselected"}});return true}else{b.acListCurrent=-1;return false}}}}}else{alert("app namespace is not loaded yet!")}})(app);
