if(jQuery){(function(a){a.extend(a.fn,{dropdown:function(b,c){a(document).click(function(){a(".dropdown").dropdownHide()});if(!b){var b={}}if(b.selectAll==undefined){b.selectAll=true}if(b.selectAllText==undefined){b.selectAllText="Отметить все"}if(b.noneSelected==undefined){b.noneSelected=""}if(b.oneOrMoreSelected==undefined){b.oneOrMoreSelected="*"}a(this).each(function(){var f=a(this),e=f.attr("multiple");if(f.data("replacedWithDropdown")==true){f.data("dropdown").remove();f.data("dropdownOptions").remove()}else{f.data("replacedWithDropdown",true);f.data("callback",c);f.bind("DOM:onChangeClassName",function(){var j=f.data("dropdown").get(0);j.className="dropdown";jQuery.each((this.className||"").split(/\s+/),function(k,l){if(j.nodeType==1&&!jQuery.className.has(j.className,l)){j.className+=(j.className?" ":"")+("dropdown-"+l)}})});f.bind("DOM:onChangeInnerHTML",function(){a(this).dropdown(b)})}var i=a('<input type="text" readonly="readonly" class="dropdown" value="" style="cursor: default;" />');f.after(i);var g='<div class="dropdown-options '+(e?"dropdown-options-multiple":"dropdown-options-single")+'" style="position: absolute; z-index: 99999; display: none;">';if(e&&b.selectAll){g+='<label class="dropdown-select-all dropdown-option-label"><input type="checkbox" class="dropdown-select-all" />'+((f.attr("dropdown-select-all-text"))||b.selectAllText)+"</label>"}f.find("OPTION").each(function(){if(e&&b.selectAll&&a(this).val()==""){return}g+='<label class="dropdown-option-label"><input class="dropdown-option" type="checkbox" value="'+a(this).val()+'"';if(a(this).attr("selected")){g+=' checked="checked"'}g+=" />"+a(this).html()+"&nbsp;</label>"});g+="</div>";var h=a(g);a("body").append(h);i.data("dropdownOptions",h);h.data("dropdown",i);i.data("originalField",this);f.data("dropdown",i).data("dropdownOptions",h);i.mouseover(function(){if(!f.attr("readonly")){a(this).addClass("dropdown-hover")}}).mouseout(function(){a(this).removeClass("dropdown-hover")}).click(function(){if(f.attr("readonly")||a(this).hasClass("dropdown-active")){a(this).dropdownHide()}else{a(this).dropdownShow()}return false}).focus(function(){if(!f.attr("readonly")){a(this).addClass("dropdown-focus").removeClass("dropdown-error dropdown-success dropdown-status dropdown-warning dropdown-required")}}).blur(function(j){a(this).removeClass("dropdown-focus")});if(b.selectAll){var d=true;h.find("INPUT:checkbox").not(".dropdown-select-all").each(function(){if(!a(this).attr("checked")){d=false}});if(d){h.find("INPUT.dropdown-select-all").attr("checked",true).parent().addClass("dropdown-checked")}}h.find("LABEL.dropdown-select-all").click(function(){_this=a(this).find("INPUT:checkbox");var j=_this.attr("checked");if(j==false){a(_this).parent().parent().find("INPUT:checkbox").attr("checked",true).parent().addClass("dropdown-checked");_this.attr("checked",false).parent().removeClass("dropdown-checked")}else{a(_this).parent().parent().find("INPUT:checkbox").attr("checked",false).parent().removeClass("dropdown-checked");_this.attr("checked",true).parent().addClass("dropdown-checked")}});h.find("LABEL").click(function(l){_this=a(this).find("INPUT:checkbox");var j=_this.parent().parent(),k=_this.attr("checked");_this.attr("checked",!k);k=!k;if(!e){j.find("input:checked[value!="+_this.attr("value")+"]").attr("checked",false);if(!k){j.data("dropdown").dropdownHide();_this.attr("checked",true);return false}}j.dropdownUpdateSelected(b);j.find("LABEL").removeClass("dropdown-checked").find("INPUT:checked").parent().addClass("dropdown-checked");j.data("dropdown").focus();if(!k){j.find("INPUT:checkbox.dropdown-select-all").attr("checked",false).parent().removeClass("dropdown-checked")}j.data("dropdown").dropdownOnChange();if(!e){j.data("dropdown").dropdownHide()}l.stopPropagation()});h.find("LABEL").find("INPUT:checkbox").click(function(){a(this).parent().click()});h.each(function(){a(this).dropdownUpdateSelected(b);a(this).find("INPUT:checked").parent().addClass("dropdown-checked")});h.find("LABEL").mouseover(function(){a(this).parent().find("LABEL").removeClass("dropdown-hover");a(this).addClass("dropdown-hover")}).mouseout(function(){a(this).parent().find("LABEL").removeClass("dropdown-hover")});i.keydown(function(j){j.preventDefault();var k=a(this).data("dropdownOptions");if(k.is(":visible")){if(j.keyCode==9){a(this).addClass("dropdown-focus").trigger("click");a(this).focus().next(":input").focus();return true}if(j.keyCode==27||j.keyCode==37||j.keyCode==39){a(this).addClass("dropdown-focus").trigger("click")}if(j.keyCode==40){if(k.find("LABEL.dropdown-hover").size()==0){k.find("LABEL:visible:first").addClass("dropdown-hover")}else{k.find("LABEL.dropdown-hover").removeClass("dropdown-hover").next("LABEL:visible").addClass("dropdown-hover");if(k.find("LABEL.dropdown-hover").size()==0){k.find("LABEL:visible:first").addClass("dropdown-hover")}}a(this).dropdownAdjustViewport(a(this));return false}if(j.keyCode==38){if(k.find("LABEL.dropdown-hover").size()==0){k.find("LABEL:visible:first").addClass("dropdown-hover")}else{k.find("LABEL.dropdown-hover").removeClass("dropdown-hover").prev("LABEL:visible").addClass("dropdown-hover");if(k.find("LABEL.dropdown-hover").size()==0){k.find("LABEL:visible:last").addClass("dropdown-hover")}}a(this).dropdownAdjustViewport(a(this));return false}if(j.keyCode==13||j.keyCode==32){if(e&&k.find("LABEL.dropdown-hover INPUT:checkbox").hasClass("dropdown-select-all")){if(k.find("LABEL.dropdown-hover INPUT:checkbox").attr("checked")){k.find("INPUT:checkbox").attr("checked",false).parent().removeClass("dropdown-checked")}else{k.find("INPUT:checkbox").attr("checked",true).parent().addClass("dropdown-checked")}k.dropdownUpdateSelected(b);i.dropdownOnChange();if(!e){i.dropdownHide()}return false}if(k.find("LABEL.dropdown-hover INPUT:checkbox").attr("checked")){if(!e){i.dropdownHide();k.find("LABEL.dropdown-hover INPUT:checkbox").attr("checked",true);return false}k.find("LABEL.dropdown-hover INPUT:checkbox").attr("checked",false);k.dropdownUpdateSelected(b);k.find("LABEL").removeClass("dropdown-checked").find("INPUT:checked").parent().addClass("dropdown-checked");k.find("INPUT:checkbox.dropdown-select-all").attr("checked",false).parent().removeClass("dropdown-checked");i.dropdownOnChange()}else{if(!e){k.find("input:checked").attr("checked",false)}k.find("LABEL.dropdown-hover INPUT:checkbox").attr("checked",true);k.dropdownUpdateSelected(b);k.find("LABEL").removeClass("dropdown-checked").find("INPUT:checked").parent().addClass("dropdown-checked");i.dropdownOnChange();if(!e){i.dropdownHide()}}}return false}else{if(j.keyCode==38||j.keyCode==40||j.keyCode==13||j.keyCode==32){a(this).removeClass("dropdown-focus").trigger("click");k.find("LABEL:visible:first").addClass("dropdown-hover");return false}if(j.keyCode==9){a(this).focus().next(":input").focus();return true}}if(j.keyCode==13){return false}});f.hide()})},dropdownHide:function(){this.each(function(){a(this).removeClass("dropdown-active");var b=a(this).data("dropdownOptions");if(b){b.hide()}})},dropdownShow:function(){var b=a(this).data("dropdownOptions");a(".dropdown").dropdownHide();b.find("LABEL").removeClass("dropdown-hover");a(this).addClass("dropdown-active");b.show();a(this).dropdownSyncPosition();dropdownCurrent=a(this);var c="";b.hover(function(){clearTimeout(c)},function(){c=setTimeout('jQuery(dropdownCurrent).dropdownHide(); $(dropdownCurrent).unbind("hover");',250)})},dropdownSyncPosition:function(){this.each(function(){var b=a(this).data("dropdownOptions");if(b){var c=a(this).offset();b.css("top",c.top+a(this).outerHeight()).css("left",c.left)}})},dropdownUpdateSelected:function(d){var b=a(this).find("INPUT:checkbox:checked:not(.dropdown-select-all)").size();if(b==0){a(this).data("dropdown").val(d.noneSelected)}else{if(d.oneOrMoreSelected=="*"){var c="";a(this).find("INPUT:checkbox:checked:not(.dropdown-select-all)").each(function(){if(a(this).parent().text()!=d.selectAllText){c=c+a.trim(a(this).parent().text())+", "}});c=c.substr(0,c.length-2);a(this).data("dropdown").val(c)}else{a(this).data("dropdown").val(d.oneOrMoreSelected.replace("%",b))}}},dropdownOnChange:function(){this.each(function(){var b=a(this).data("originalField");dropdownOptions=a(this).data("dropdownOptions"),callback=a(b).data("callback");if(b&&dropdownOptions){var c=[];dropdownOptions.find("INPUT:checkbox:checked").not(".dropdown-select-all").each(function(){c.push(a(this).val())});a(b).val(c);if(callback){callback(a(this))}if(document.createEvent){var d=document.createEvent("HTMLEvents");d.initEvent("change",true,false);b.dispatchEvent(d)}else{if(document.createEventObject){var d=document.createEventObject();d.bubbles=true;d.cancelable=false;b.fireEvent("onchange",d)}}}})},dropdownAdjustViewport:function(g){var h=a(this).data("dropdownOptions");var f=0;var e=0,b=0;h.find("LABEL").each(function(){if(a(this).hasClass("dropdown-hover")){e=f;b=a(this).outerHeight();return}f+=a(this).outerHeight()});var d=h.scrollTop();var c=h.height();h.scrollTop(e-((c/2)-(b/2)))}});a(window).resize(function(){a(".dropdown").dropdownSyncPosition()})})(jQuery)};
