jQuery.fn.extend({selectbox:function(a){return this.each(function(){new jQuery.SelectBox(this,a)})}});if(!window.console){var console={log:function(a){}}}jQuery.SelectBox=function(t,e){var b=e||{};b.inputType=b.inputType||"span";b.inputClass=b.inputClass||"selectbox";b.containerClass=b.containerClass||"selectbox-wrapper";b.hoverClass=b.hoverClass||"current";b.currentClass=b.currentClass||"selected";b.groupClass=b.groupClass||"groupname";b.maxHeight=b.maxHeight||200;b.loopnoStep=b.loopnoStep||false;b.onChangeCallback=b.onChangeCallback||false;b.onChangeParams=b.onChangeParams||false;b.debug=b.debug||false;var k=t.id;var f=0;var d=false;var s=0;var r=jQuery(t);var p=h(b);var c=m(b);r.hide().before(c).before(p);q();c.click(function(){if(!d){p.toggle()}}).focus(function(){if(p.not(":visible")){d=true;p.show()}}).keydown(function(u){switch(u.keyCode){case 38:u.preventDefault();l(-1);break;case 40:u.preventDefault();l(1);break;case 13:u.preventDefault();$("li."+b.hoverClass).trigger("click");break;case 27:i();break}}).blur(function(){if(p.is(":visible")&&s>0){if(b.debug){console.log("container visible and has focus")}}else{if((jQuery.browser.msie&&jQuery.browser.version.substr(0,1)<8)||jQuery.browser.safari){if(document.activeElement.getAttribute("id").indexOf("_container")==-1){i()}else{c.focus()}}else{i()}}});function i(){s=0;p.hide()}function q(){p.append(n(c.attr("id"))).hide();var u=c.css("width");if(p.height()>b.maxHeight){p.width(parseInt(u)+parseInt(c.css("paddingRight"))+parseInt(c.css("paddingLeft")));p.height(b.maxHeight)}else{p.width(u)}}function h(v){var u=document.createElement("div");p=jQuery(u);p.attr("id",k+"_container");p.addClass(v.containerClass);p.css("display","none");return p}function m(v){if(b.inputType=="span"){var u=document.createElement("span");var w=jQuery(u);w.attr("id",k+"_input");w.addClass(v.inputClass);w.attr("tabIndex",r.attr("tabindex"));w.css("width",r.css("width"))}else{var u=document.createElement("input");var w=jQuery(u);w.attr("id",k+"_input");w.attr("type","text");w.addClass(v.inputClass);w.attr("autocomplete","off");w.attr("readonly","readonly");w.attr("tabIndex",r.attr("tabindex"));w.css("width",r.css("width"))}return w}function l(v){var u=jQuery("li",p);if(!u||u.length==0){return false}firstchoice=0;while($(u[firstchoice]).hasClass(b.groupClass)){firstchoice++}f+=v;if($(u[f]).hasClass(b.groupClass)){f+=v}if(f<firstchoice){(b.loopnoStep?f=u.size()-1:f=u.size())}else{if(b.loopnoStep&&f>u.size()-1){f=firstchoice}else{if(f>u.size()){f=firstchoice}}}a(u,f);u.removeClass(b.hoverClass);jQuery(u[f]).addClass(b.hoverClass)}function a(v,w){var u=jQuery(v[w]).get(0);var v=p.get(0);if(u.offsetTop+u.offsetHeight>v.scrollTop+v.clientHeight){v.scrollTop=u.offsetTop+u.offsetHeight-v.clientHeight}else{if(u.offsetTop<v.scrollTop){v.scrollTop=u.offsetTop}}}function g(){var u=jQuery("li."+b.currentClass,p).get(0);var v=(""+u.id).split("_");var w=v[v.length-1];if(b.onChangeCallback){r.get(0).selectedIndex=$("li",p).index(u);b.onChangeParams={selectedVal:r.val()};b.onChangeCallback(b.onChangeParams)}else{r.val(w);r.change()}if(b.inputType=="span"){c.html($(u).html())}else{c.val($(u).html())}return true}function o(){return r.val()}function j(){return c.val()}function n(y){var z=new Array();var w=document.createElement("ul");z=r.children("option");if(z.length==0){var v=new Array();v=r.children("optgroup");for(x=0;x<v.length;x++){z=$("#"+v[x].id).children("option");var u=document.createElement("li");u.setAttribute("id",y+"_"+$(this).val());u.innerHTML=$("#"+v[x].id).attr("label");u.className=b.groupClass;w.appendChild(u);z.each(function(){var A=document.createElement("li");A.setAttribute("id",y+"_"+$(this).val());A.innerHTML=$(this).html();if($(this).is(":selected")){c.html($(this).html());$(A).addClass(b.currentClass)}w.appendChild(A);$(A).mouseover(function(B){s=1;if(b.debug){console.log("over on : "+this.id)}jQuery(B.target,p).addClass(b.hoverClass)}).mouseout(function(B){s=-1;if(b.debug){console.log("out on : "+this.id)}jQuery(B.target,p).removeClass(b.hoverClass)}).click(function(B){var C=$("li."+b.hoverClass,p).get(0);if(b.debug){console.log("click on :"+this.id)}$("li."+b.currentClass,p).removeClass(b.currentClass);$(this).addClass(b.currentClass);g();r.get(0).blur();i()})})}}else{z.each(function(){var A=document.createElement("li");A.setAttribute("id",y+"_"+$(this).val());A.innerHTML=$(this).html();if($(this).is(":selected")){b.inputType=="span"?c.html($(this).html()):c.val($(this).html());$(A).addClass(b.currentClass)}w.appendChild(A);$(A).mouseover(function(B){s=1;if(b.debug){console.log("over on : "+this.id)}jQuery(B.target,p).addClass(b.hoverClass)}).mouseout(function(B){s=-1;if(b.debug){console.log("out on : "+this.id)}jQuery(B.target,p).removeClass(b.hoverClass)}).click(function(B){var C=$("li."+b.hoverClass,p).get(0);if(b.debug){console.log("click on :"+this.id)}$("li."+b.currentClass,p).removeClass(b.currentClass);$(this).addClass(b.currentClass);g();r.get(0).blur();i()})})}return w}};