(function(b){b.selectList=function(c,a){function d(n,q){if(a.addAnimate&&o)typeof a.addAnimate=="function"?a.addAnimate(n.hide()[0],q):n.hide().fadeIn(300,q);else{n.show();q&&q.call(n[0])}}function f(n,q){if(a.removeAnimate&&o)typeof a.removeAnimate=="function"?a.removeAnimate(n[0],q):n.fadeOut(300,q);else{n.hide();q&&q.call(n[0])}}function e(n,q,y){if(b(n).is("option")){l=b(n);if(l[0].index<m)return;n=l.val();q=l.text()}else{l=j.find('option[value="'+n.replace("'",'\\"')+'"]');l=l.length?l.filter(function(){return!q||
b(this).text()==q}).add(l).eq(0):null}if(q===undefined)q=l?l.text():n;l&&!a.duplicates&&l.attr("disabled","disabled").data("disabled",1);v=b(a.template.replace(/%text%/g,b("<b/>").text(q).html()).replace(/%value%/g,n)).hide();v.data("value",n).data("text",q).data("option",l).addClass(a.classPrefix+"-item");v.click(function(){a.clickRemove&&g(b(this))});if(m&&!w)j[0].selectedIndex=0;var C=function(){y!==false&&a.onAdd(c,n,q)};if(a.sort&&(p=k.children().eq(0)).length){for(;p.length&&(typeof a.sort==
"function"?a.sort(v[0],p[0]):b(v[0]).data("text")>b(p[0]).data("text")==(a.sort!="desc"));)p=p.next();d(p.length?v.insertBefore(p):v.appendTo(k),C)}else d(v.appendTo(k),C);b(c).empty();k.children().each(function(){b(c).append(b("<option/>").attr({value:b(this).data("value"),selected:"selected"}))});h()}function g(n,q){f(n,function(){var y=b(this).data("value"),C=b(this).data("text");b(this).data("option")&&b(this).data("option").removeAttr("disabled").removeData("disabled");b(this).remove();b(c).find('option[value="'+
y+'"]').remove();h();q!==false&&a.onRemove(c,y,C)})}function h(){c.form&&typeof b(c.form).validate=="function"&&b(c).add(j).hasClass(b(c.form).validate().settings.errorClass)&&b(c.form).validate().element(c)}var j,k,p,v,l,o,m=0,u,r,w,A;this.val=function(){return b(c).val()};this.add=function(n,q){e(n,q)};this.remove=function(n){k.children().each(function(){if(b(this).data("value")==n||typeof n=="undefined")g(b(this))})};this.setOptions=function(n){var q=n.sort&&n.sort!=a.sort;a=b.extend(a,n);if(q){var y=
[];k.children().each(function(){y[y.length]=b(this).data("value");y[y.length]=b(this).data("text")});k.empty();for(n=0;n<y.length;n+=2)e(y[n],y[n+1],false)}};this.setOptions(a=b.extend({addAnimate:true,classPrefix:"selectlist",clickRemove:true,removeAnimate:true,template:"<li>%text%</li>",onAdd:function(){},onRemove:function(){}},a));j=b(c).clone();j.removeAttr("id").removeAttr("name").addClass(a.classPrefix+"-select").insertAfter(b(c));b(c).empty().hide();(k=b(a.list||b("<ul/>").insertAfter(j))).addClass(a.classPrefix+
"-list");j.find(":selected").each(function(){e(b(this),null,false)});j.removeAttr("multiple");j.get(0).removeAttribute("size");if(j.attr("title")){j.prepend(b("<option/>").text(j.attr("title")));m=1;j[0].selectedIndex=0}j.bind(b.browser.msie||b.browser.safari?"keydown":"keypress",function(n){w=true;if((n.keyCode||n.which)==13){A=true;j.change();w=true;return false}}).change(function(){if(w||r){u=true;l=j.find("option:selected");if(!l.data("disabled")&&(!w||A))e(l);if(w)w=u=r=false;A=false}}).mousedown(function(){r=
true});j.find("option").click(function(n){if(b.browser.mozilla&&n.pageX>=j.offset().left&&n.pageX<=j.offset().left+j.outerWidth()&&n.pageY>=j.offset().top&&n.pageY<=j.offset().top+j.outerHeight())return false;r=true;b(this).attr("disabled")||b(this).data("disabled")||w||u||e(b(this));w||(u=r=false);return false});o=true};b.fn.selectList=function(c){c=c||{};this.filter("select").each(function(){b(this).data("selectList")?b(this).data("selectList").setOptions(c):b(this).data("selectList",new b.selectList(this,
c))});if(c.instance)return this.filter("select").data("selectList");return this}})(jQuery);
