var ionSuggest={config:{minChar:3,delay:300,url:"",apiParams:{o:"json",surpressErros:true}},setup:function(p){var m=jQuery.noConflict();var e=m.extend({},ionSuggest.config,p);var g=null;var k=null;var h=e.inputEl.attr("value");var c=[];m(e.inputEl).attr("autocomplete","off").bind("keyup click",function(r){var t=this;var q=this.value;var s=e.suggMenu.find("li")[0];if(m.trim(q).length>=e.minChar){if(r.keyCode==(27||9)){e.suggMenu.hide();e.inputEl.val(h).focus()}else{if(r.keyCode==13){d()}else{if(r.keyCode==40&&s){a()}else{if(r.keyCode==38&&s){l()}else{if(q!==h){h=q;if(c[q]){n(c[q]);return}e.data=m.extend({},e.apiParams,{q:q});setTimeout(function(){if(e.data.q!==k){k=e.data.q;m.getJSON(e.url,e.data,function(u){if(u&&u.ion.queries){n(u.ion.queries);b(u.ion.q,u.ion.queries)}})}},e.delay)}}}}}}else{e.suggMenu.hide().empty()}return false});m(document).bind("click",function(){h=e.inputEl.attr("value");e.suggMenu.hide()});var n=function(q){if(!q||typeof q!=="object"||!q[0]){e.suggMenu.hide().empty();return}g=null;e.suggMenu.empty();m(q).each(function(){j(this.toString())});e.suggMenu.show()};var j=function(q){var r=m("<li>");if(m.browser.msie&&m.browser.version==6){r.css("display","inline-block")}r.text(q).bind("mouseover",function(){o(this)}).bind("click",function(){m(this).addClass("selected");e.inputEl.val(q);e.suggMenu.hide();e.formEl.submit()}).appendTo(e.suggMenu)};var b=function(r,q){if(!c[r]){c.push(r);c[r]=q}};var o=function(q){g=q;e.suggMenu.find("li").removeClass("selected");m(g).addClass("selected")};var f=function(){g=null;e.suggMenu.find("li.selected").removeClass("selected");e.inputEl.val(h).focus()};var a=function(){var q=e.suggMenu.find("li:eq(0)");var r=m(g).next()[0];i(q,r)};var l=function(){var q=e.suggMenu.find("li:last-child");var r=m(g).prev()[0];i(q,r)};var i=function(q,r){if((e.suggMenu).css("display")!=="block"){e.suggMenu.show();return}if(!g){o(q);e.inputEl.val(q.text())}else{if(r){o(r);e.inputEl.val(r.innerHTML)}else{f()}}};var d=function(){h=e.inputEl.attr("value");e.suggMenu.hide()};return false}};