﻿(function(a){var b=c("searchable");b.defaults={maxListSize:100,maxMultiMatch:50,exactMatch:false,wildcards:true,ignoreCase:true,warnMultiMatch:"top {0} matches ...",warnNoMatch:"no matches ...",latency:200,zIndex:"auto"};b.execute=function(x,F){if(a.browser.msie&&parseInt(jQuery.browser.version)<7){return this}if(this.nodeName!="SELECT"||this.size>1){return this}var w=a(this);var y={index:-1,options:null};var j="lang";var h=false;a.browser.chrome=/chrome/.test(navigator.userAgent.toLowerCase());if(a.browser.chrome){a.browser.safari=false}if(a.meta){x=a.extend({},options,w.data())}var E=a("<div/>");var n=a("<div/>");var k=a("<input/>");var u=a("<select/>");var D=a("<option>"+x.warnMultiMatch.replace(/\{0\}/g,x.maxMultiMatch)+"</option>").attr("disabled","true");var m=a("<option>"+x.warnNoMatch+"</option>").attr("disabled","true");var v={option:function(G){return a(u.get(0).options[G])},selected:function(){return u.find(":selected")},selectedIndex:function(G){if(G>-1){u.get(0).selectedIndex=G}return u.get(0).selectedIndex},size:function(G){u.attr("size",Math.max(2,Math.min(G,20)))},reset:function(){if((w.get(0).selectedIndex-1)==w.data("index")){return}var J=w.get(0).selectedIndex;var K=w.get(0).length;var L=Math.floor(x.maxMultiMatch/2);var G=Math.max(1,(J-L));var H=Math.min(K,Math.max(x.maxMultiMatch,(J+L)));var M=J-G;u.empty();v.size(H-G);for(var I=G;I<H;I++){u.append(a(w.get(0).options[I]).clone().attr(j,I-1))}if(H>x.maxMultiMatch){u.append(D)}u.get(0).selectedIndex=M}};f();var A=false;n.mouseover(function(){A=true});n.mouseout(function(){A=false});u.mouseover(function(){A=true});u.mouseout(function(){A=false});k.click(function(G){if(!h){g(G,true)}else{e(G,true)}});k.blur(function(G){if(!A&&h){e(G,true)}});w.keydown(function(G){if(G.keyCode!=9){g(G,false,true)}});w.click(function(G){u.focus()});u.click(function(G){if(v.selectedIndex()<0){return}e(G)});u.focus(function(G){k.focus()});u.blur(function(G){if(!A){e(G,true)}});u.mousemove(function(G){if(a.browser.opera&&parseFloat(jQuery.browser.version)>=9.8){return true}var H=Math.floor(parseFloat(/([0-9\.]+)px/.exec(v.option(0).css("font-size"))));var I=4;if(a.browser.opera){I=2.5}if(a.browser.safari||a.browser.chrome){I=3}H+=Math.round(H/I);v.selectedIndex(Math.floor((G.pageY-u.offset().top+this.scrollTop)/H))});n.click(function(G){k.click()});k.keyup(function(G){if(jQuery.inArray(G.keyCode,new Array(9,13,16,33,34,35,36,38,40))>-1){return true}r=a.trim(k.val().toLowerCase());d();C=setTimeout(t,x.latency)});k.keydown(function(G){if(G.shiftKey||G.ctrlKey||G.altKey){return}switch(G.keyCode){case 9:e(G);l(w,G.shiftKey?-1:1);break;case 13:e(G);w.focus();break;case 27:e(G,true);w.focus();break;case 33:if(v.selectedIndex()-u.attr("size")>0){v.selectedIndex(v.selectedIndex()-=u.attr("size"))}else{v.selectedIndex(0)}B();break;case 34:if(v.selectedIndex()+u.attr("size")<u.get(0).options.length-1){v.selectedIndex(v.selectedIndex()+=u.attr("size"))}else{v.selectedIndex(u.get(0).options.length-1)}B();break;case 38:if(v.selectedIndex()>0){v.selectedIndex(v.selectedIndex()-1);B()}break;case 40:if(v.selectedIndex()<u.get(0).options.length-1){v.selectedIndex(v.selectedIndex()+1);B()}break;default:return true}return false});function f(){w.css("text-decoration","none");w.width(w.outerWidth());w.height(w.outerHeight());E.css("position","relative");E.css("width",w.outerWidth());if(a.browser.msie){E.css("z-index",F)}n.css({position:"absolute",top:0,left:0,width:w.outerWidth(),height:w.outerHeight(),"background-color":"#FFFFFF",opacity:"0.01"});k.attr("type","text");k.hide();k.height(w.outerHeight());k.css({position:"absolute",top:0,left:0,margin:"0px",padding:"0px","outline-style":"none","border-style":"solid","border-bottom-style":"none","border-color":"transparent","background-color":"transparent"});var K=new Array();K.push("border-left-width");K.push("border-top-width");K.push("font-size");K.push("font-stretch");K.push("font-variant");K.push("font-weight");K.push("color");K.push("text-align");K.push("text-indent");K.push("text-shadow");K.push("text-transform");K.push("padding-left");K.push("padding-top");for(var G=0;G<K.length;G++){k.css(K[G],w.css(K[G]))}if(a.browser.msie&&parseInt(jQuery.browser.version)<8){k.css("padding","0px");k.css("padding-left","3px");k.css("border-left-width","2px");k.css("border-top-width","3px")}else{if(a.browser.chrome){k.height(w.innerHeight());k.css("text-transform","none");k.css("padding-left",o(k.css("padding-left"))+3);k.css("padding-top",2)}else{if(a.browser.safari){k.height(w.innerHeight());k.css("padding-top",2);k.css("padding-left",3);k.css("text-transform","none")}else{if(a.browser.opera){k.height(w.innerHeight());var J=o(w.css("padding-left"));k.css("padding-left",J==1?J+1:J);k.css("padding-top",0)}else{if(a.browser.mozilla){k.css("padding-top","0px");k.css("border-top","0px");k.css("padding-left",o(w.css("padding-left"))+3)}else{k.css("padding-left",o(w.css("padding-left"))+3);k.css("padding-top",o(w.css("padding-top"))+1)}}}}}var H=o(w.css("padding-left"))+o(w.css("padding-right"))+o(w.css("border-left-width"))+o(w.css("border-left-width"))+23;k.width(w.outerWidth()-H);var L=w.css("width");var I=w.outerWidth();w.css("width","auto");var I=I>w.outerWidth()?I:w.outerWidth();w.css("width",L);u.hide();v.size(w.get(0).length);u.css({position:"absolute",top:w.outerHeight(),left:0,width:I,border:"1px solid #333","font-weight":"normal",padding:0,"background-color":w.css("background-color"),"text-transform":w.css("text-transform")});var M=/^\d+$/.test(w.css("z-index"))?w.css("z-index"):1;if(x.zIndex&&/^\d+$/.test(x.zIndex)){M=x.zIndex}n.css("z-index",(M).toString(10));k.css("z-index",(M+1).toString(10));u.css("z-index",(M+2).toString(10));w.wrap(E);w.after(n);w.after(k);w.after(u)}function g(G,H,I){if(w.attr("disabled")){return false}w.prepend("<option />");if(typeof I=="undefined"){h=!h}v.reset();B();z();if(H){u.show()}k.show();k.focus();k.select();w.get(0).selectedIndex=0;if(typeof G!="undefined"){G.stopPropagation()}}function e(G,H){h=false;w.find(":first").remove();d();k.hide();u.hide();if(typeof H!="undefined"){q()}p();if(typeof G!="undefined"){G.stopPropagation()}}function d(){if(C!=null){clearTimeout(C)}}function p(){if(v.selectedIndex()<0||v.selected().get(0).disabled){return}w.get(0).selectedIndex=parseInt(u.find(":selected").attr(j));w.change();w.data("index",new Number(w.get(0).selectedIndex))}function B(){if(v.selectedIndex()>-1&&!v.selected().get(0).disabled){k.val(u.find(":selected").text())}else{k.val(w.find(":selected").text())}}function z(){y.index=v.selectedIndex();y.options=new Array();for(var G=0;G<u.get(0).options.length;G++){y.options.push(u.get(0).options[G])}}function q(){u.empty();for(var G=0;G<y.options.length;G++){u.append(y.options[G])}v.selectedIndex(y.index);v.size(y.options.length)}function l(I,J){var G=I.parents("form,body").eq(0).find("button,input[type!=hidden],textarea,select");var H=G.index(I);if(H>-1&&H+J<G.length&&H+J>=0){G.eq(H+J).focus();return true}return false}function i(I){var H=["/",".","*","+","?","|","(",")","[","]","{","}","\\","^","$"];var G=new RegExp("(\\"+H.join("|\\")+")","g");return I.replace(G,"\\$1")}var C=null;var s;var r;function t(){if(s==r){C=null;return}var I=0;s=r;u.hide();u.empty();var K=i(r);if(x.exactMatch){K="^"+K}if(x.wildcards){K=K.replace(/\\\*/g,".*");K=K.replace(/\\\?/g,".")}var G;if(x.ignoreCase){G="i"}r=new RegExp(K,G);for(var H=1;H<w.get(0).length&&I<x.maxMultiMatch;H++){if(r.length==0||r.test(w.get(0).options[H].text)){var J=a(w.get(0).options[H]).clone().attr(j,H-1);if(w.data("index")==H){J.text(w.data("text"))}u.append(J);I++}}if(I>=1){v.selectedIndex(0)}else{if(I==0){u.append(m)}}if(I>=x.maxMultiMatch){u.append(D)}v.size(I);u.show();C=null}function o(H){try{H=parseFloat(H.replace(/[\s]*px/,""));if(!isNaN(H)){return H}}catch(G){}return 0}return};function c(d){var e=a[d]={};a.fn[d]=function(g){g=a.extend(e.defaults,g);var f=this.size();return this.each(function(h){e.execute.call(this,g,f-h)})};return e}})(jQuery);
