(function($){$.extend($.fn,{replaceFormElements:function(a){var b=new $.fn.replaceFormElements.prototype(a,this);return b}});var ReplaceFormElements={elements:[],init:function(){var a=this;this.elements.each(function(){switch(this.type){case"select-one":a.initSingleSelect(this);break;case"checkbox":a.initCheckbox(this);break}a.copyEvents(this)})},initSingleSelect:function(a){var b=this;var c=this.buildSelect(a);var d=$(a).is(":visible")?false:true;var e=a.disabled;this.initForAll(c,a);this.val(c,a.selectedIndex);var f=function(a){if(a.keyCode==38||a.keyCode==40){a.preventDefault()}};c.bind({mouseover:function(){if(!$(this).data("state").disabled){$(this).addClass("hover")}},mouseout:function(){if(!$(this).data("state").disabled){$(this).removeClass("hover")}},click:function(){if(!$(this).data("state").disabled){if($(this).data("expanded")==1){b.collapse(this)}else{b.dropDown(this)}}},focus:function(){if(!$(this).data("state").disabled){$(this).addClass("focus");$(document).bind("keydown",f)}},blur:function(){if(!$(this).data("state").disabled){if($(this).data("noblur")!==1){b.collapse(this);$(this).removeClass("focus")}$(document).unbind("keydown",f)}},keyup:function(d){if($(this).data("state").disabled)return false;d.preventDefault();var e="ABCDEFGHIJKLMNOPQRSTUVW0123456789";var f=String.fromCharCode(d.keyCode);if(d.keyCode==38){if(a.selectedIndex>0){b.val(c,a.selectedIndex-1)}}else if(d.keyCode==40){if(a.selectedIndex<a.options.length-1){b.val(c,a.selectedIndex+1)}}else if(e.indexOf(f)!=-1){c.data("characters",c.data("characters")?c.data("characters")+f:f);clearTimeout(c.data("inputTracker"));var g=setTimeout(function(){$(a).children("option").each(function(){if(this.text.toLowerCase().indexOf(c.data("characters").toLowerCase())==0){b.val(c,$(this).index());c.data("characters",null);return false}})},250);c.data("inputTracker",g)}}});if(d)b.hide(c);if(e)b.disable(c);this.observe(c,a)},observe:function(a,b){var c=this;a.data("state",{disabled:b.disabled?true:false,visible:$(b).is(":visible")?true:false,className:b.className});if(b.type=="select-one"){a.data("state").selectedIndex=b.selectedIndex}var d=setInterval(function(){if(!a.data("state")){clearInterval(a.data("observer"));return false}if(a.data("state").disabled!=b.disabled){a.data("state").disabled=b.disabled;if(b.disabled){c.disable(a)}else{c.enable(a)}}var d=$(b).is(":visible");if(a.data("state").visible!=d){a.data("state").visible=d;if(d){c.show(a)}else{c.hide(a)}}if(b.type=="select-one"){var e=b.selectedIndex;if(a.data("state").selectedIndex!=e){a.data("state").selectedIndex=e;c.select(a,e)}}var f=b.className.split(",");$.each(f,function(){var b=this.toString();if(!a.hasClass(b)){a.addClass(b)}});f=a.attr("class").split(" ");$.each(f,function(){var d=this.toString();if((" select focus hover "+c.settings.className+" "+b.className+" ").indexOf(" "+d+" ")==-1){a.removeClass(d)}});if(c.settings.enableDisabledOptionObserver){$(b).children("option").each(function(b){var c=a.data("dropdown").children(".option:nth-child("+(b+1)+")");if($(this).is(":disabled")==true){if(!c.hasClass("disabled")){c.addClass("disabled")}}else{c.removeClass("disabled")}})}},c.settings.trackInterval);a.data("observer",d)},buildSelect:function(a){var b=$("<div />").addClass("select").attr("tabindex",a.tabindex?a.tabindex:0).css({width:this.settings.width,height:this.settings.height});if(a.id)b.attr("id",a.id+"-replaced");else b.attr("id","select-"+(new Date).getTime());if(this.settings.className!="")b.addClass(this.settings.className);var c=$("<div>").addClass("value");c.appendTo(b);var d=$("<span>").addClass("arrow");d.appendTo(b);this.buildDropDown(a,b);return b},buildDropDown:function(a,b){$(b).attr("id",$(a).attr("name"));var c=this;var d=$("<ul />").addClass("select-dropdown").css({display:"none",zIndex:this.settings.zIndexAbsTop,position:"absolute"}).bind({mouseenter:function(){b.data("noblur",1)},mouseleave:function(){b.data("noblur",0)}});$(a).children("option").each(function(e){var f;if(c.settings.decorateOption){f=c.settings.decorateOption(a,this,e)}else{f="<span>"+this.text+"</span>"}var g=$("<li>").addClass("option").html(f).click(function(){c.select(b,e)}).bind({mouseenter:function(){$(this).addClass("hover")},mouseleave:function(){$(this).removeClass("hover")}}).css("zoom",1).appendTo(d);if(c.settings.enableDisabledOptions&&$(this).is(":disabled")==true){g.addClass("disabled");g.css("opacity",c.settings.disabledOpacity)}});d.attr("id",b.attr("id")+"-dropdown");d.appendTo($("body"));b.data("dropdown",d);if(d.height()>this.settings.dropdownMaxHeight){d.css({overflow:"auto",height:this.settings.dropdownMaxHeight})}return d},dropDown:function(a){$(a).data("expanded",1);var b=$(a).data("dropdown");b.css({top:$(a).offset().top+this.settings.height,left:$(a).offset().left,width:$(a).width()});if(this.settings.animateExpand)this.settings.animateExpand(a);else b.show()},select:function(el,idx){var originalElement=$(el).data("originalElement");var currentIndex=originalElement.selectedIndex;if($(el).data("dropdown").children(".option:nth-child("+(idx+1)+")").hasClass("disabled"))return false;this.val(el,idx);this.collapse(el);$(el).data("dropdown").children(".option").removeClass("selected");$(el).data("dropdown").children(".option:nth-child("+(idx+1)+")").addClass("selected");$(el).focus();if(currentIndex!=originalElement.selectedIndex){var test="originalElement.onchange";var execute="originalElement.onchange()";if(eval(test))eval(execute);$(originalElement).trigger("change")}},collapse:function(a){if($(a).data("expanded")==0)return false;$(a).data("expanded",0);if(this.settings.animateCollapse)this.settings.animateCollapse(a);else $(a).data("dropdown").hide();$(a).focus();return true},initForAll:function(a,b){a.insertAfter($(b));$(b).css({position:"absolute",left:-1e4,top:-1e4}).attr("tabindex",-1);if(b.id){$('label[for="'+b.id+'"]').each(function(){$(this).attr("for",a.attr("id"));$(this).click(function(){var a=$(this).attr("for");$("#"+a).focus()})})}a.data("originalElement",b)},initCheckbox:function(a){var b=this;var c=this.buildCheckbox(a);var d=$(a).is(":visible")?false:true;var e=a.disabled;this.initForAll(c,a);c.bind({mouseover:function(){if(!$(this).data("state").disabled){$(this).addClass("hover")}},mouseout:function(){if(!$(this).data("state").disabled){$(this).removeClass("hover")}},click:function(){if(!$(this).data("state").disabled){};},focus:function(){if(!$(this).data("state").disabled){$(this).addClass("focus")}},blur:function(){if(!$(this).data("state").disabled){$(this).removeClass("focus")}},keyup:function(a){if(!$(this).data("state").disabled){a.preventDefault()}}});if(d)b.hide(c);if(e)b.disable(c);this.observe(c,a)},buildCheckbox:function(a){var b=$("<div />").addClass("checkbox").attr("tabindex",a.tabindex?a.tabindex:0).css({position:"relative"});if(a.id)b.attr("id",a.id+"-replaced");else b.attr("id","checkbox-"+(new Date).getTime());if(this.settings.className!="")b.addClass(this.settings.className);var c=$("<span>").addClass("tick").css({position:"absolute"});c.appendTo(b);return b},val:function(a,b){var c=$(a).data("originalElement");switch(c.type){case"select-one":var d=a.find("div.value");if(this.settings.decorateValue){var e=this.settings.decorateValue(a,b);d.html(e)}else{d.html(c.options[b].text)}c.options[b].selected=true;break}},show:function(a){a.show()},hide:function(a){a.hide()},enable:function(a){a.css("opacity",1);a.removeAttr("disabled")},disable:function(a){a.css("opacity",this.settings.disabledOpacity);a.attr("disabled","disabled")},undo:function(){},copyEvents:function(originalEl){$this=this;$(["onchange","onclick","onfocus","onblur","onmouseover","omousedown","onmouseup"]).each(function(idx){jOriginalEl=$(originalEl);switch(this.toString()){case"onchange":var test="originalEl."+this.toString();var execute="originalEl."+this.toString()+"()";if(eval(test))eval(execute);break}})},fireAttrEvent:function(originalEl,eventName){var test="originalEl."+this.toString();var execute="originalEl."+this.toString()+"()";if(eval(test))eval(execute)},destroy:function(){var a=this;this.elements.each(function(){switch(this.type){case"select-one":a.destroySingleSelect(this);break;case"checkbox":a.destroyCheckbox(this);break}})},destroySingleSelect:function(a){var b=$("#"+a.id+"-replaced");clearInterval(b.data("observer"));b.remove();$(a).css({position:"inherit",left:"auto",top:"auto"})}};ReplaceFormElements.Settings={width:200,height:20,zIndexAbsTop:99999,className:"",disabledOpacity:.7,trackInterval:200,dropdownMaxHeight:200,dropdownDirection:"auto",decorateOption:null,decorateValue:null,animateExpand:null,animateCollapse:null,enableDisabledOptions:false,enableDisabledOptionObserver:false};$.fn.replaceFormElements.prototype=function(a,b){this.settings=$.extend(true,{},$.fn.replaceFormElements.prototype.defaults,a);this.elements=b;this.init()};$.extend($.fn.replaceFormElements.prototype,{defaults:ReplaceFormElements.Settings,prototype:ReplaceFormElements})})(jQuery)
