(function($){$.fn.sexyCombo=function(_1){return this.each(function(){if("SELECT"!=this.tagName.toUpperCase()){return;}new _2(this,_1);});};var _3={skin:"sexy",suffix:"__sexyCombo",hiddenSuffix:"__sexyComboHidden",renameOriginal:false,initialHiddenValue:"",emptyText:"",autoFill:false,triggerSelected:true,filterFn:null,dropUp:false,separator:",",key:"value",value:"text",showListCallback:null,hideListCallback:null,initCallback:null,initEventsCallback:null,changeCallback:null,textChangeCallback:null,checkWidth:true};$.sexyCombo=function(_4,_5){if(_4.tagName.toUpperCase()!="SELECT"){return;}this.config=$.extend({},_3,_5||{});this.selectbox=$(_4);this.options=this.selectbox.children().filter("option");this.wrapper=this.selectbox.wrap("<div>").hide().parent().addClass("combo").addClass(this.config.skin);this.input=$("<input type='text' />").appendTo(this.wrapper).attr("autocomplete","off").attr("value","").attr("name",this.selectbox.attr("name")+this.config.suffix);var _6=this.selectbox.attr("name");var _7=_6+this.config.hiddenSuffix;if(this.config.renameOriginal){this.selectbox.attr("name",_7);}this.hidden=$("<input type='hidden' />").appendTo(this.wrapper).attr("autocomplete","off").attr("value",this.config.initialHiddenValue).attr("name",this.config.renameOriginal?_6:_7);this.icon=$("<div />").appendTo(this.wrapper).addClass("icon");this.listWrapper=$("<div />").appendTo(this.wrapper).addClass("list-wrapper");this.updateDrop();this.list=$("<ul />").appendTo(this.listWrapper);var _8=this;var _9=[];this.options.each(function(){var _a=$.trim($(this).text());if(_8.config.checkWidth){_9.push($("<li />").appendTo(_8.list).html("<span>"+_a+"</span>").addClass("visible").find("span").outerWidth());}else{$("<li />").appendTo(_8.list).html("<span>"+_a+"</span>").addClass("visible");}});this.listItems=this.list.children();if(_9.length){_9=_9.sort(function(a,b){return a-b;});var _b=_9[_9.length-1];}this.singleItemHeight=this.listItems.outerHeight();this.listWrapper.addClass("invisible");if($.browser.opera){this.wrapper.css({position:"relative",left:"0",top:"0"});}this.filterFn=("function"==typeof (this.config.filterFn))?this.config.filterFn:this.filterFn;this.lastKey=null;this.multiple=this.selectbox.attr("multiple");var _8=this;this.wrapper.data("sc:lastEvent","click");this.overflowCSS="overflowY";if((this.config.checkWidth)&&(this.listWrapper.innerWidth()<_b)){this.overflowCSS="overflow";}this.notify("init");this.initEvents();};var _2=$.sexyCombo;_2.fn=_2.prototype={};_2.fn.extend=_2.extend=$.extend;_2.fn.extend({initEvents:function(){var _c=this;this.icon.bind("click",function(e){if(!_c.wrapper.data("sc:positionY")){_c.wrapper.data("sc:positionY",e.pageY);}});this.input.bind("click",function(e){if(!_c.wrapper.data("sc:positionY")){_c.wrapper.data("sc:positionY",e.pageY);}});this.wrapper.bind("click",function(e){if(!_c.wrapper.data("sc:positionY")){_c.wrapper.data("sc:positionY",e.pageY);}});this.icon.bind("click",function(){if(_c.input.attr("disabled")){_c.input.attr("disabled",false);}_c.wrapper.data("sc:lastEvent","click");_c.filter();_c.iconClick();});this.listItems.bind("mouseover",function(e){if("LI"==e.target.nodeName.toUpperCase()){_c.highlight(e.target);}else{_c.highlight($(e.target).parent());}});this.listItems.bind("click",function(e){_c.listItemClick($(e.target));});this.input.bind("keyup",function(e){_c.wrapper.data("sc:lastEvent","key");_c.keyUp(e);});this.input.bind("keypress",function(e){if(_2.KEY.RETURN==e.keyCode){e.preventDefault();}if(_2.KEY.TAB==e.keyCode){e.preventDefault();}});$(document).bind("click",function(e){if((_c.icon.get(0)==e.target)||(_c.input.get(0)==e.target)){return;}_c.hideList();});this.triggerSelected();this.applyEmptyText();this.input.bind("click",function(e){_c.wrapper.data("sc:lastEvent","click");_c.icon.trigger("click");});this.wrapper.bind("click",function(){_c.wrapper.data("sc:lastEvent","click");});this.input.bind("keydown",function(e){if(9==e.keyCode){e.preventDefault();}});this.wrapper.bind("keyup",function(e){var k=e.keyCode;for(key in _2.KEY){if(_2.KEY[key]==k){return;}}_c.wrapper.data("sc:lastEvent","key");});this.input.bind("click",function(){_c.wrapper.data("sc:lastEvent","click");});this.icon.bind("click",function(e){if(!_c.wrapper.data("sc:positionY")){_c.wrapper.data("sc:positionY",e.pageY);}});this.input.bind("click",function(e){if(!_c.wrapper.data("sc:positionY")){_c.wrapper.data("sc:positionY",e.pageY);}});this.wrapper.bind("click",function(e){if(!_c.wrapper.data("sc:positionY")){_c.wrapper.data("sc:positionY",e.pageY);}});this.notify("initEvents");},getTextValue:function(){return this.__getValue("input");},getCurrentTextValue:function(){return this.__getCurrentValue("input");},getHiddenValue:function(){return this.__getValue("hidden");},getCurrentHiddenValue:function(){return this.__getCurrentValue("hidden");},__getValue:function(_d){_d=this[_d];if(!this.multiple){return $.trim(_d.val());}var _e=_d.val().split(this.config.separator);var _f=[];for(var i=0,len=_e.length;i<len;++i){_f.push($.trim(_e[i]));}_f=_2.normalizeArray(_f);return _f;},__getCurrentValue:function(_10){_10=this[_10];if(!this.multiple){return $.trim(_10.val());}return $.trim(_10.val().split(this.config.separator).pop());},iconClick:function(){if(this.listVisible()){this.hideList();this.input.blur();}else{this.showList();this.input.focus();if(this.input.val().length){this.selection(this.input.get(0),0,this.input.val().length);}}},listVisible:function(){return this.listWrapper.hasClass("visible");},showList:function(){if(!this.listItems.filter(".visible").length){return;}this.listWrapper.removeClass("invisible").addClass("visible");this.wrapper.css("zIndex","99999");this.listWrapper.css("zIndex","99999");this.setListHeight();var _11=this.listWrapper.height();var _12=this.wrapper.height();var _13=parseInt(this.wrapper.data("sc:positionY"))+_12+_11;var _14=$(window).height()+$(document).scrollTop();if(_13>_14){this.setDropUp(true);}else{this.setDropUp(false);}if(""==$.trim(this.input.val())){this.highlightFirst();this.listWrapper.scrollTop(0);}else{this.highlightSelected();}this.notify("showList");},hideList:function(){if(this.listWrapper.hasClass("invisible")){return;}this.listWrapper.removeClass("visible").addClass("invisible");this.wrapper.css("zIndex","0");this.listWrapper.css("zIndex","99999");this.notify("hideList");},getListItemsHeight:function(){var _15=this.singleItemHeight;return _15*this.liLen();},setOverflow:function(){var _16=this.getListMaxHeight();if(this.getListItemsHeight()>_16){this.listWrapper.css(this.overflowCSS,"scroll");}else{this.listWrapper.css(this.overflowCSS,"hidden");}},highlight:function(_17){if((_2.KEY.DOWN==this.lastKey)||(_2.KEY.UP==this.lastKey)){return;}this.listItems.removeClass("active");$(_17).addClass("active");},setComboValue:function(val,pop,_18){var _19=this.input.val();var v="";if(this.multiple){v=this.getTextValue();if(pop){v.pop();}v.push($.trim(val));v=_2.normalizeArray(v);v=v.join(this.config.separator)+this.config.separator;}else{v=$.trim(val);}this.input.val(v);this.setHiddenValue(val);this.filter();if(_18){this.hideList();}this.input.removeClass("empty");if(this.multiple){this.input.focus();}if(this.input.val()!=_19){this.notify("textChange");}},setHiddenValue:function(val){var set=false;val=$.trim(val);var _1a=this.hidden.val();if(!this.multiple){for(var i=0,len=this.options.length;i<len;++i){if(val==this.options.eq(i).text()){this.hidden.val(this.options.eq(i).val());set=true;break;}}}else{var _1b=this.getTextValue();var _1c=[];for(var i=0,len=_1b.length;i<len;++i){for(var j=0,_1d=this.options.length;j<_1d;++j){if(_1b[i]==this.options.eq(j).text()){_1c.push(this.options.eq(j).val());}}}if(_1c.length){set=true;this.hidden.val(_1c.join(this.config.separator));}}if(!set){this.hidden.val(this.config.initialHiddenValue);}if(_1a!=this.hidden.val()){this.notify("change");}this.selectbox.val(this.hidden.val());this.selectbox.trigger("change");},listItemClick:function(_1e){this.setComboValue(_1e.text(),true,true);this.inputFocus();},filter:function(){if("yes"==this.wrapper.data("sc:optionsChanged")){var _1f=this;this.listItems.remove();this.options=this.selectbox.children().filter("option");this.options.each(function(){var _20=$.trim($(this).text());$("<li />").appendTo(_1f.list).text(_20).addClass("visible");});this.listItems=this.list.children();this.listItems.bind("mouseover",function(e){_1f.highlight(e.target);});this.listItems.bind("click",function(e){_1f.listItemClick($(e.target));});_1f.wrapper.data("sc:optionsChanged","");}var _21=this.input.val();var _1f=this;this.listItems.each(function(){var _22=$(this);var _23=_22.text();if(_1f.filterFn.call(_1f,_1f.getCurrentTextValue(),_23,_1f.getTextValue())){_22.removeClass("invisible").addClass("visible");}else{_22.removeClass("visible").addClass("invisible");}});this.setOverflow();this.setListHeight();},filterFn:function(_24,_25,_26){if("click"==this.wrapper.data("sc:lastEvent")){return true;}if(!this.multiple){return _25.toLowerCase().indexOf(_24.toLowerCase())==0;}else{for(var i=0,len=_26.length;i<len;++i){if(_25==_26[i]){return false;}}return _25.toLowerCase().search(_24.toLowerCase())==0;}},getListMaxHeight:function(){var _27=parseInt(this.listWrapper.css("maxHeight"),10);if(isNaN(_27)){_27=this.singleItemHeight*10;}return _27;},setListHeight:function(){var _28=this.getListItemsHeight();var _29=this.getListMaxHeight();var _2a=this.listWrapper.height();if(_28<_2a){this.listWrapper.height(_28);return _28;}else{if(_28>_2a){this.listWrapper.height(Math.min(_29,_28));return Math.min(_29,_28);}}},getActive:function(){return this.listItems.filter(".active");},keyUp:function(e){this.lastKey=e.keyCode;var k=_2.KEY;switch(e.keyCode){case k.RETURN:case k.TAB:this.setComboValue(this.getActive().text(),true,true);if(!this.multiple){break;}case k.DOWN:this.highlightNext();break;case k.UP:this.highlightPrev();break;case k.ESC:this.hideList();break;default:this.inputChanged();break;}},liLen:function(){return this.listItems.filter(".visible").length;},inputChanged:function(){this.filter();if(this.liLen()){this.showList();this.setOverflow();this.setListHeight();}else{this.hideList();}this.setHiddenValue(this.input.val());this.notify("textChange");},highlightFirst:function(){this.listItems.removeClass("active").filter(".visible:eq(0)").addClass("active");this.autoFill();},highlightSelected:function(){this.listItems.removeClass("active");var val=$.trim(this.input.val());try{this.listItems.each(function(){var _2b=$(this);if(_2b.text()==val){_2b.addClass("active");self.listWrapper.scrollTop(0);self.scrollDown();}});this.highlightFirst();}catch(e){}},highlightNext:function(){var _2c=this.getActive().next();while(_2c.hasClass("invisible")&&_2c.length){_2c=_2c.next();}if(_2c.length){this.listItems.removeClass("active");_2c.addClass("active");this.scrollDown();}},scrollDown:function(){if("scroll"!=this.listWrapper.css(this.overflowCSS)){return;}var _2d=this.getActiveIndex()+1;var _2e=this.listItems.outerHeight()*_2d-this.listWrapper.height();if($.browser.msie){_2e+=_2d;}if(this.listWrapper.scrollTop()<_2e){this.listWrapper.scrollTop(_2e);}},highlightPrev:function(){var _2f=this.getActive().prev();while(_2f.length&&_2f.hasClass("invisible")){_2f=_2f.prev();}if(_2f.length){this.getActive().removeClass("active");_2f.addClass("active");this.scrollUp();}},getActiveIndex:function(){return $.inArray(this.getActive().get(0),this.listItems.filter(".visible").get());},scrollUp:function(){if("scroll"!=this.listWrapper.css(this.overflowCSS)){return;}var _30=this.getActiveIndex()*this.listItems.outerHeight();if(this.listWrapper.scrollTop()>_30){this.listWrapper.scrollTop(_30);}},applyEmptyText:function(){if(!this.config.emptyText.length){return;}var _31=this;this.input.bind("focus",function(){_31.inputFocus();}).bind("blur",function(){_31.inputBlur();});if(""==this.input.val()){this.input.addClass("empty").val(this.config.emptyText);}},inputFocus:function(){if(this.input.hasClass("empty")){this.input.removeClass("empty").val("");}},inputBlur:function(){if(""==this.input.val()){this.input.addClass("empty").val(this.config.emptyText);}},triggerSelected:function(){if(!this.config.triggerSelected){return;}var _32=this;try{this.options.each(function(){if($(this).attr("selected")){_32.setComboValue($(this).text(),false,true);throw new Error();}});}catch(e){return;}_32.setComboValue(this.options.eq(0).text(),false,false);},autoFill:function(){if(!this.config.autoFill||(_2.KEY.BACKSPACE==this.lastKey)||this.multiple){return;}var _33=this.input.val();var _34=this.getActive().text();this.input.val(_34);this.selection(this.input.get(0),_33.length,_34.length);},selection:function(_35,_36,end){if(_35.createTextRange){var _37=_35.createTextRange();_37.collapse(true);_37.moveStart("character",_36);_37.moveEnd("character",end);_37.select();}else{if(_35.setSelectionRange){_35.setSelectionRange(_36,end);}else{if(_35.selectionStart){_35.selectionStart=_36;_35.selectionEnd=end;}}}},updateDrop:function(){if(this.config.dropUp){this.listWrapper.addClass("list-wrapper-up");}else{this.listWrapper.removeClass("list-wrapper-up");}},setDropUp:function(_38){this.config.dropUp=_38;this.updateDrop();},notify:function(evt){if(!$.isFunction(this.config[evt+"Callback"])){return;}this.config[evt+"Callback"].call(this);}});_2.extend({KEY:{UP:38,DOWN:40,DEL:46,TAB:9,RETURN:13,ESC:27,COMMA:188,PAGEUP:33,PAGEDOWN:34,BACKSPACE:8},log:function(msg){var _39=$("#log");_39.html(_39.html()+msg+"<br />");},createSelectbox:function(_3a){var _3b=$("<select />").appendTo(_3a.container).attr({name:_3a.name,id:_3a.id,size:"1"});if(_3a.multiple){_3b.attr("multiple",true);}var _3c=_3a.data;var _3d=false;for(var i=0,len=_3c.length;i<len;++i){_3d=_3c[i].selected||false;$("<option />").appendTo(_3b).attr("value",_3c[i][_3a.key]).text(_3c[i][_3a.value]).attr("selected",_3d);}return _3b.get(0);},create:function(_3e){var _3f={name:"",id:"",data:[],multiple:false,key:"value",value:"text",container:$(document),url:"",ajaxData:{}};_3e=$.extend({},_3f,_3e||{});if(_3e.url){return $.getJSON(_3e.url,_3e.ajaxData,function(_40){delete _3e.url;delete _3e.ajaxData;_3e.data=_40;return _2.create(_3e);});}_3e.container=$(_3e.container);var _41=_2.createSelectbox(_3e);return new _2(_41,_3e);},deactivate:function(_42){_42=$(_42);_42.each(function(){if("SELECT"!=this.tagName.toUpperCase()){return;}var _43=$(this);if(!_43.parent().is(".combo")){return;}});},activate:function(_44){_44=$(_44);_44.each(function(){if("SELECT"!=this.tagName.toUpperCase()){return;}var _45=$(this);if(!_45.parent().is(".combo")){return;}_45.parent().find("input[type='text']").attr("disabled",false);});},changeOptions:function(_46){_46=$(_46);_46.each(function(){if("SELECT"!=this.tagName.toUpperCase()){return;}var _47=$(this);var _48=_47.parent();var _49=_48.find("input[type='text']");var _4a=_48.find("ul").parent();_4a.removeClass("visible").addClass("invisible");_48.css("zIndex","0");_4a.css("zIndex","99999");_49.val("");_48.data("sc:optionsChanged","yes");var _4b=_47;_4b.parent().find("input[type='text']").val(_4b.find("option:eq(0)").text());_4b.parent().data("sc:lastEvent","click");_4b.find("option:eq(0)").attr("selected","selected");});},normalizeArray:function(arr){var _4c=[];for(var i=0,len=arr.length;i<len;++i){if(""==arr[i]){continue;}_4c.push(arr[i]);}return _4c;}});})(jQuery);
