var ComboBox=function(a,s){var m=$(a);var d=0;if(m.attr("tagName").toLowerCase()!="select"){return}var e=m.attr("selectedIndex"),c=m.attr("id")+Math.random(10).toString().replace(".",""),l='<input type="hidden" class="'+m.attr("class")+' comboBoxHidden" id="'+m.attr("id")+'" name="'+m.attr("name")+'" value="'+m[0][e].value+'" /><span class="comboBox" id="'+c+'"><input type="text" readonly="readonly" value="'+m[0][e].text+'"/><span class="comboBoxSelect">&nbsp;</span></span><ul class="comboBoxList" style="position:absolute;padding:0;margin:0;">';var g=0,k={},f=0,b="",p=m.children().length-1;m.children().each(function(u,v){if(v.tagName.toLowerCase()=="optgroup"){l+='<li><span class="comboBoxParent">'+v.label+"</span>";l+="<ul>";$(v).children().each(function(x,w){b="";if(g==e){b="current";f=g}l+='<li id="'+c+"-"+g+'" class="comboBoxChild '+b+((g%2)==1?" alt":"")+'"><a href="#'+w.value+'">'+w.text+"</a></li>";k[g]=w.text;g++});l+="</ul></li>"}else{b="";if(g==e){b="current";f=g}l+='<li id="'+c+"-"+g+'" class="comboBoxChild '+b+((g%2)==1?" alt":"")+'"><a href="#'+v.value+'">'+v.text+"</a></li>";k[g]=v.text;g++}});l+="</ul>";$(l).insertAfter(m);m.remove();var o=$("#"+c),t=$($(o).children()[0]),r=o.next(),n=o.prev();r.hide();o.click(function(u){u.preventDefault();if(!r.hasClass("visible")){setTimeout(function(){r.toggleClass("visible");r.show();var v=parseInt(o.position().top+o.height()+parseInt(o.css("padding-top"),10)+parseInt(o.css("padding-bottom"),10)+parseInt(o.css("border-top-width"),10),10),w=parseInt(o.position().top,10)+parseInt(o.css("margin-top"),10),F=parseInt(o.position().left,10),B=o.width(),D=parseInt($(document).scrollTop(),10),x=parseInt($(window).height()+D,10),E=x-v,A=parseInt(w-D),C=true;r.css("height","auto");r.css("margin-left",o.css("margin-left"));r.css("width",B+"px");if((parseInt(r.height(),10)+v)>x){if(A>E){C=false}}var z=F+"px";var y=r.height();if(C){y=E>y?y:E-10;r.css({left:z,top:"auto",height:y+"px",overflow:"auto","border-bottom":"1px solid","border-top":"none","margin-top":"-"+o.css("margin-bottom")});if($.browser.msie&&parseInt($.browser.version)<8){r.css("top",(w+30)+"px")}}else{y=A>y?y:A-10;r.css({left:z,top:(w-y)+"px",height:y+"px",overflow:"auto","border-top":"1px solid","border-bottom":"none","margin-bottom":"0"});if($.browser.msie&&parseInt($.browser.version)<8){r.css("top",(w-y)+"px")}}if(F!=parseInt(r.position().left,10)){r.css("left","auto")}if($.browser.msie&&parseInt($.browser.version)<8){r.css("left",F+"px")}},1)}});var h=function(u){var u=$(u);f=parseInt(u.attr("id").split("-")[1],10);r.find(".current").removeClass("current");var v=$(u.children()[0]);u.addClass("current");n.val(v.attr("href").split("#")[1]);t.val(v.html().replace("&nbsp;"," "));r.hide();n.trigger("change");r.toggleClass("visible")};var q="",j,i;o.keydown(function(v){var u=v.keyCode||v.charCode;if(u!=9){v.preventDefault()}if(u==38&&f==0||u==40&&f==p){return}if(u==40){h("#"+c+"-"+(f+1));return}if(u==38){h("#"+c+"-"+(f-1));return}clearTimeout(j);clearTimeout(i);q+=String.fromCharCode(u);j=setTimeout(function(){for(var x in k){var w=k[x];if(w.substr(0,q.length).toLowerCase()==q.toLowerCase()){h("#"+c+"-"+x);clearTimeout(j);break}}},300);i=setTimeout(function(){q=""},1000)});r.find("li").click(function(u){u.preventDefault();u.stopPropagation();h(this)});r.find(".comboBoxChild").hover(function(u){$(this).addClass("comboBoxChildHover")},function(){$(this).removeClass("comboBoxChildHover")});$(document).click(function(){r.hide();r.removeClass("visible")})};jQuery.fn.extend({comboBox:function(){this.each(function(a,b){ComboBox(b)});return this},comboBoxVal:function(){if(this.hasClass("comboBox")){return this.prev().val()}},comboBoxHtml:function(){if(this.hasClass("comboBox")){return this.val()}}});