function object(b){var a=function(){};a.prototype=b;return new a()}var QuickSelect;(function(a){QuickSelect=function(s,g){var p=this;s=a(s);p.options=g;p.AllItems={};var d=false,o=-1,f=false,l,u,j,n=false,i,h;if(/MSIE (\d+\.\d+);/.test(navigator.userAgent)){if(Number(RegExp.$1)<=7){n=true}}i=a('<div class="'+g.resultsClass+'" style="display:block;position:absolute;z-index:9999;"></div>').hide();h=a("<iframe />");h.css({border:"none",position:"absolute",display:"none"});if(g.width>0){i.css("width",g.width);h.css("width",g.width)}a("body").append(i);if(n){a("body").append(h)}p.getLabel=function(v){return v.label||(typeof(v)==="string"?v:v[0])||""};var c=function(v){return v.values||(v.value?[v.value]:(typeof(v)==="string"?[v]:v))||[]};var m=function(w){var x=a("li",i);if(!x){return}if(typeof(w)==="number"){o=o+w}else{o=x.index(w)}if(o<0){o=0}else{if(o>=x.size()){o=x.size()-1}}x.removeClass(g.selectedClass);a(x[o]).addClass(g.selectedClass);if(g.autoFill&&p.last_keyCode!=8){s.val(u+a(x[o]).text().substring(u.length));var z=u.length,y=s.val().length,A=s.get(0);if(A.createTextRange){var v=A.createTextRange();v.collapse(true);v.moveStart("character",z);v.moveEnd("character",y);v.select()}else{if(A.setSelectionRange){A.setSelectionRange(z,y)}else{if(A.selectionStart){A.selectionStart=z;A.selectionEnd=y}}}A.focus()}};var t=function(){if(j){clearTimeout(j)}s.removeClass(g.loadingClass);if(i.is(":visible")){i.hide()}if(h.is(":visible")){h.hide()}};p.selectItem=function(v,y){if(!v){v=document.createElement("li");v.item=""}var x=p.getLabel(v.item),w=c(v.item);s.lastSelected=x;s.val(x);u=x;i.empty();a(g.additionalFields).each(function(A,z){a(z).val(w[A+1])});if(!y){t()}if(g.onItemSelect){setTimeout(function(){g.onItemSelect(v)},1)}return true};var e=function(){var v=a("li."+g.selectedClass,i).get(0);if(v){return p.selectItem(v)}else{if(g.exactMatch){s.val("");a(g.additionalFields).each(function(x,w){a(w).val("")})}return false}};var r=function(B){i.empty();if(!f||B===null||B.length===0){return t()}var A=document.createElement("ul"),w=B.length,x=function(){m(this)},z=function(){},v=function(E){E.preventDefault();E.stopPropagation();p.selectItem(this)};i.append(A);if(g.maxVisibleItems>0&&g.maxVisibleItems<w){w=g.maxVisibleItems}for(var y=0;y<w;y++){var D=B[y],C=document.createElement("li");i.append(C);a(C).text(g.formatItem?g.formatItem(D,y,w):p.getLabel(D));C.item=D;if(D.className){C.className=D.className}A.appendChild(C);a(C).hover(x,z).click(v)}s.removeClass(g.loadingClass);return true};var b=function(v,w){g.finderFunction.apply(p,[v,function(x){r(g.matchMethod.apply(p,[v,x]));w()}])};var k=function(){var x=s.offset(),w=(g.width>0?g.width:s.width()),v=a("li",i);i.css({width:parseInt(w,10)+"px",top:x.top+s.height()+5+"px",left:x.left+"px"});if(n){h.css({width:parseInt(w,10)-2+"px",top:x.top+s.height()+6+"px",left:x.left+1+"px",height:i.height()-2+"px"}).show()}i.show();if(g.autoSelectFirst||(g.selectSingleMatch&&v.length==1)){m(v.get(0))}};var q=function(){if(l>=9&&l<=45){return}var v=s.val();if(v==u){return}u=v;if(v.length>=g.minChars){s.addClass(g.loadingClass);b(v,k)}else{if(v.length===0&&(g.onBlank?g.onBlank():true)){a(g.additionalFields).each(function(x,w){w.value=""})}s.removeClass(g.loadingClass);i.hide();h.hide()}};i.mousedown(function(v){if(v.srcElement){d=v.srcElement.tagName!="DIV"}});s.keydown(function(v){l=v.keyCode;switch(v.keyCode){case 38:v.preventDefault();m(-1);break;case 40:v.preventDefault();if(!i.is(":visible")){k();m(0)}else{m(1)}break;case 13:if(e()){v.preventDefault();s.select()}break;case 9:break;case 27:if(o>-1&&g.exactMatch&&s.val()!=a(a("li",i).get(o)).text()){o=-1}a("li",i).removeClass(g.selectedClass);t();v.preventDefault();break;default:if(j){clearTimeout(j)}j=setTimeout(q,g.delay);break}}).focus(function(){f=true}).blur(function(v){if(o>-1){e()}f=false;if(j){clearTimeout(j)}j=setTimeout(function(){t();if(g.exactMatch&&s.val()!=s.lastSelected){p.selectItem(null,true)}},200)})};QuickSelect.matchers={quicksilver:function(g,f){var e,b,c=this;e=(c.options.matchCase?g:g.toLowerCase());c.AllItems[e]=[];for(var d=0;d<f.length;d++){b=(c.options.matchCase?c.getLabel(f[d]):c.getLabel(f[d]).toLowerCase());if(b.score(e)>0){c.AllItems[e].push(f[d])}}return c.AllItems[e].sort(function(i,h){i=(c.options.matchCase?c.getLabel(i):c.getLabel(i).toLowerCase());h=(c.options.matchCase?c.getLabel(h):c.getLabel(h).toLowerCase());i=i.score(e);h=h.score(e);return(i>h?-1:(h>i?1:0))})},contains:function(g,f){var e,b,c=this;e=(c.options.matchCase?g:g.toLowerCase());c.AllItems[e]=[];for(var d=0;d<f.length;d++){b=(c.options.matchCase?c.getLabel(f[d]):c.getLabel(f[d]).toLowerCase());if(b.indexOf(e)>-1){c.AllItems[e].push(f[d])}}return c.AllItems[e].sort(function(j,h){j=(c.options.matchCase?c.getLabel(j):c.getLabel(j).toLowerCase());h=(c.options.matchCase?c.getLabel(h):c.getLabel(h).toLowerCase());var k=j.indexOf(e);var i=h.indexOf(e);return(k>i?-1:(k<i?1:(j>h?-1:(h>j?1:0))))})},startsWith:function(g,f){var e,b,c=this;e=(c.options.matchCase?g:g.toLowerCase());c.AllItems[e]=[];for(var d=0;d<f.length;d++){b=(c.options.matchCase?c.getLabel(f[d]):c.getLabel(f[d]).toLowerCase());if(b.indexOf(e)===0){c.AllItems[e].push(f[d])}}return c.AllItems[e].sort(function(i,h){i=(c.options.matchCase?c.getLabel(i):c.getLabel(i).toLowerCase());h=(c.options.matchCase?c.getLabel(h):c.getLabel(h).toLowerCase());return(i>h?-1:(h>i?1:0))})}};QuickSelect.finders={data:function(b,c){c(this.options.data)},ajax:function(d,e){var b=this.options.ajax+"?q="+encodeURI(d);for(var c in this.options.ajaxParams){if(this.options.ajaxParams.hasOwnProperty(c)){b+="&"+c+"="+encodeURI(this.options.ajaxParams[c])}}a.getJSON(b,e)}};a.fn.quickselect=function(b,c){if(b=="instance"&&a(this).data("quickselect")){return a(this).data("quickselect")}b=b||{};b.data=(typeof(b.data)==="object"&&b.data.constructor==Array)?b.data:undefined;b.ajaxParams=b.ajaxParams||{};b.delay=b.delay||400;if(!b.delay){b.delay=(!b.ajax?400:10)}b.minChars=b.minChars||1;b.cssFlavor=b.cssFlavor||"quickselect";b.inputClass=b.inputClass||b.cssFlavor+"_input";b.loadingClass=b.loadingClass||b.cssFlavor+"_loading";b.resultsClass=b.resultsClass||b.cssFlavor+"_results";b.selectedClass=b.selectedClass||b.cssFlavor+"_selected";b.finderFunction=b.finderFunction||QuickSelect.finders[!b.data?"ajax":"data"];if(b.finderFunction==="data"||b.finderFunction==="ajax"){b.finderFunction=QuickSelect.finders[b.finderFunction]}b.matchMethod=b.matchMethod||QuickSelect.matchers[(typeof("".score)==="function"&&"l".score("l")==1?"quicksilver":"contains")];if(b.matchMethod==="quicksilver"||b.matchMethod==="contains"||b.matchMethod==="startsWith"){b.matchMethod=QuickSelect.matchers[b.matchMethod]}if(b.matchCase===undefined){b.matchCase=false}if(b.exactMatch===undefined){b.exactMatch=false}if(b.autoSelectFirst===undefined){b.autoSelectFirst=true}if(b.selectSingleMatch===undefined){b.selectSingleMatch=true}if(b.additionalFields===undefined){b.additionalFields=a("nothing")}b.maxVisibleItems=b.maxVisibleItems||-1;if(b.autoFill===undefined||b.matchMethod!="startsWith"){b.autoFill=false}b.width=parseInt(b.width,10)||0;return this.each(function(){var l=this,n=object(b);if(l.tagName=="INPUT"){var j=new QuickSelect(l,n);a(l).data("quickselect",j)}else{if(l.tagName=="SELECT"){n.delay=n.delay||10;n.finderFunction="data";var d=l.name,e=l.id,i=l.className,m=a(l).attr("accesskey"),g=a(l).attr("tabindex"),h=a("option:selected",l).get(0);n.data=[];a("option",l).each(function(o,p){n.data.push({label:a(p).text(),values:[p.value,p.value],className:p.className})});var k=a("<input type='text' class='"+i+"' id='"+e+"_quickselect' autocomplete='off' accesskey='"+m+"' tabindex='"+g+"' />");if(h){k.val(a(h).text())}var f=a("<input type='hidden' id='"+e+"' name='"+l.name+"' />");if(h){f.val(h.value)}n.additionalFields=f;a(l).after(k).after(f).remove();console.log(n);k.quickselect(n)}}})}})(jQuery);
