!function(n){var t=function(i,r,u){u&&(u.stopPropagation(),u.preventDefault()),this.$element=n(i),this.$newElement=null,this.$button=null,this.$menu=null,this.options=n.extend({},n.fn.selectpicker.defaults,this.$element.data(),typeof r=="object"&&r),this.options.title==null&&(this.options.title=this.$element.attr("title")),this.val=t.prototype.val,this.render=t.prototype.render,this.refresh=t.prototype.refresh,this.setStyle=t.prototype.setStyle,this.selectAll=t.prototype.selectAll,this.deselectAll=t.prototype.deselectAll,this.init()};t.prototype={constructor:t,init:function(){var i,r;this.$element.hide(),this.multiple=this.$element.prop("multiple"),i=this.$element.attr("id"),this.$newElement=this.createView(),this.$element.after(this.$newElement),this.$menu=this.$newElement.find("> .dropdown-menu"),this.$button=this.$newElement.find("> button"),i!==undefined&&(r=this,this.$button.attr("data-id",i),n('label[for="'+i+'"]').click(function(){r.$button.focus()})),this.multiple&&this.$newElement.addClass("show-tick"),this.checkDisabled(),this.checkTabIndex(),this.clickListener(),this.render(),this.liHeight(),this.setWidth(),this.setStyle(),this.options.container&&this.selectPosition(),this.$menu.data("this",this),this.$newElement.data("this",this)},createDropdown:function(){var t="<div class='btn-group bootstrap-select'><button type='button' class='btn btn-default dropdown-toggle' data-toggle='dropdown'><div class='filter-option pull-left'><\/div>&nbsp;<div class='caret'><\/div><\/button><div class='dropdown-menu open'><ul class='dropdown-menu inner' role='menu'><\/ul><\/div><\/div>";return n(t)},createView:function(){var n=this.createDropdown(),t=this.createLi();return n.find("ul").append(t),n},reloadLi:function(){this.destroyLi();var n=this.createLi();this.$newElement.find("ul").append(n)},destroyLi:function(){this.$newElement.find("li").remove()},createLi:function(){var i=this,t=[],r="";return this.$element.find("option").each(function(){var u=n(this),e=u.attr("class")||"",o=u.attr("style")||"",f=u.data("content")?u.data("content"):u.html(),c=u.data("subtext")!==undefined?'<small class="muted">'+u.data("subtext")+"<\/small>":"",s=u.data("icon")!==undefined?'<i class="glyphicon '+u.data("icon")+'"><\/i> ':"";if(s!==""&&(u.is(":disabled")||u.parent().is(":disabled"))&&(s="<span>"+s+"<\/span>"),u.data("content")||(f=s+'<span class="text">'+f+c+"<\/span>"),i.options.hideDisabled&&(u.is(":disabled")||u.parent().is(":disabled")))t.push('<a style="min-height: 0; padding: 0"><\/a>');else if(u.parent().is("optgroup")&&u.data("divider")!=!0)if(u.index()==0){var h=u.parent().attr("label"),l=u.parent().data("subtext")!==undefined?'<small class="muted">'+u.parent().data("subtext")+"<\/small>":"",a=u.parent().data("icon")?'<i class="'+u.parent().data("icon")+'"><\/i> ':"";h=a+'<span class="text">'+h+l+"<\/span>",u[0].index!=0?t.push('<div class="div-contain"><div class="divider"><\/div><\/div><dt>'+h+"<\/dt>"+i.createA(f,"opt "+e,o)):t.push("<dt>"+h+"<\/dt>"+i.createA(f,"opt "+e,o))}else t.push(i.createA(f,"opt "+e,o));else u.data("divider")==!0?t.push('<div class="div-contain"><div class="divider"><\/div><\/div>'):n(this).data("hidden")==!0?t.push(""):t.push(i.createA(f,e,o))}),n.each(t,function(n,t){r+="<li rel="+n+">"+t+"<\/li>"}),this.multiple||this.$element.find("option:selected").length!=0||i.options.title||this.$element.find("option").eq(0).prop("selected",!0).attr("selected","selected"),n(r)},createA:function(n,t,i){return'<a tabindex="0" class="'+t+'" style="'+i+'">'+n+'<i class="glyphicon glyphicon-ok icon-ok check-mark"><\/i><\/a>'},render:function(){var t=this,i,r,u,f;this.$element.find("option").each(function(i){t.setDisabled(i,n(this).is(":disabled")||n(this).parent().is(":disabled")),t.setSelected(i,n(this).is(":selected"))}),i=this.$element.find("option:selected").map(function(){var u=n(this),e=u.data("icon")&&t.options.showIcon?'<i class="glyphicon '+u.data("icon")+'"><\/i> ':"",f;return f=t.options.showSubtext&&u.attr("data-subtext")&&!t.multiple?' <small class="muted">'+u.data("subtext")+"<\/small>":"",u.data("content")&&t.options.showContent?u.data("content"):u.attr("title")!=undefined?u.attr("title"):e+u.html()+f}).toArray(),r=this.multiple?i.join(", "):i[0],t.multiple&&t.options.selectedTextFormat.indexOf("count")>-1&&(u=t.options.selectedTextFormat.split(">"),f=this.options.hideDisabled?":not([disabled])":"",(u.length>1&&i.length>u[1]||u.length==1&&i.length>=2)&&(r=t.options.countSelectedText.replace("{0}",i.length).replace("{1}",this.$element.find('option:not([data-divider="true"]):not([data-hidden="true"])'+f).length))),r||(r=t.options.title!=undefined?t.options.title:t.options.noneSelectedText),t.$newElement.find(".filter-option").html(r)},setStyle:function(n,t){this.$element.attr("class")&&this.$newElement.addClass(this.$element.attr("class").replace(/selectpicker|mobile-device/gi,""));var i=n?n:this.options.style;t=="add"?this.$button.addClass(i):(this.$button.removeClass(this.options.style),this.$button.addClass(i))},liHeight:function(){var n=this.$newElement.clone(),t;n.appendTo("body"),t=n.addClass("open").find(".dropdown-menu li > a").outerHeight(),n.remove(),this.$newElement.data("liHeight",t)},setSize:function(){var f=this,t=this.$menu,h=t.find(".inner"),k=h.find("li > a"),w=this.$newElement.outerHeight(),c=this.$newElement.data("liHeight"),b=t.find("li .divider").outerHeight(!0),r=parseInt(t.css("padding-top"))+parseInt(t.css("padding-bottom"))+parseInt(t.css("border-top-width"))+parseInt(t.css("border-bottom-width")),l=this.options.hideDisabled?":not(.disabled)":"",a=n(window),e=r+parseInt(t.css("margin-top"))+parseInt(t.css("margin-bottom"))+2,i,u,o,v=function(){u=f.$newElement.offset().top-a.scrollTop(),o=a.height()-u-w},s,y,p;v(),this.options.size=="auto"?(s=function(){var n;v(),i=o-e,f.$newElement.toggleClass("dropup",u>o&&i-e<t.height()&&f.options.dropupAuto),f.$newElement.hasClass("dropup")&&(i=u-e),n=t.find("li").length+t.find("dt").length>3?c*3+e-2:0,t.css({"max-height":i+"px",overflow:"hidden","min-height":n+"px"}),h.css({"max-height":i-r+"px","overflow-y":"auto","min-height":n-r+"px"})},s(),n(window).resize(s),n(window).scroll(s)):this.options.size&&this.options.size!="auto"&&t.find("li"+l).length>this.options.size&&(y=t.find("li"+l+" > *").filter(":not(.div-contain)").slice(0,this.options.size).last().parent().index(),p=t.find("li").slice(0,y+1).find(".div-contain").length,i=c*this.options.size+p*b+r,this.$newElement.toggleClass("dropup",u>o&&i<t.height()&&this.options.dropupAuto),t.css({"max-height":i+"px",overflow:"hidden"}),h.css({"max-height":i-r+"px","overflow-y":"auto"}))},setWidth:function(){if(this.options.width=="auto"){this.$menu.css("min-width","0");var n=this.$newElement.clone().appendTo("body"),t=n.find("> .dropdown-menu").css("width");n.remove(),this.$newElement.css("width",t)}else this.options.width&&this.$newElement.css("width",this.options.width)},selectPosition:function(){var i=this,e="<div />",t=n(e),r,f,u=function(n){t.addClass(n.attr("class")).toggleClass("dropup",n.hasClass("dropup")),r=n.offset(),f=n.hasClass("dropup")?0:n[0].offsetHeight,t.css({top:r.top+f,left:r.left,width:n[0].offsetWidth,position:"absolute"})};this.$newElement.on("click",function(){u(n(this)),t.appendTo(i.options.container),t.toggleClass("open",!n(this).hasClass("open")),t.append(i.$menu)});n(window).resize(function(){u(i.$newElement)});n(window).on("scroll",function(){u(i.$newElement)});n("html").on("click",function(r){n(r.target).closest(i.$newElement).length<1&&t.removeClass("open")})},mobile:function(){this.$element.addClass("mobile-device").appendTo(this.$newElement),this.options.container&&this.$menu.hide()},refresh:function(){this.reloadLi(),this.render(),this.setWidth(),this.setStyle(),this.checkDisabled()},setSelected:function(n,t){this.$menu.find("li").eq(n).toggleClass("selected",t)},setDisabled:function(n,t){t?this.$menu.find("li").eq(n).addClass("disabled").find("a").attr("href","#").attr("tabindex",-1):this.$menu.find("li").eq(n).removeClass("disabled").find("a").removeAttr("href").attr("tabindex",0)},isDisabled:function(){return this.$element.is(":disabled")},checkDisabled:function(){var n=this;this.isDisabled()?(this.$button.addClass("disabled"),this.$button.attr("tabindex","-1")):this.$button.hasClass("disabled")&&(this.$button.removeClass("disabled"),this.$button.removeAttr("tabindex")),this.$button.click(function(){return!n.isDisabled()})},checkTabIndex:function(){if(this.$element.is("[tabindex]")){var n=this.$element.attr("tabindex");this.$button.attr("tabindex",n)}},clickListener:function(){var t=this;n("body").on("touchstart.dropdown",".dropdown-menu",function(n){n.stopPropagation()});this.$newElement.on("click",function(){t.setSize()});this.$menu.on("click","li a",function(i){var e=n(this).parent().index(),s=n(this).parent(),o=t.$element.val(),u,r,f;t.multiple&&i.stopPropagation(),i.preventDefault(),t.isDisabled()||n(this).parent().hasClass("disabled")||(u=t.$element.find("option"),r=u.eq(e),t.multiple?(f=r.prop("selected"),r.prop("selected",!f)):(u.prop("selected",!1),r.prop("selected",!0)),t.$button.focus(),o!=t.$element.val()&&t.$element.change())});this.$menu.on("click","li.disabled a, li dt, li .div-contain",function(n){n.preventDefault(),n.stopPropagation(),t.$button.focus()});this.$element.change(function(){t.render()})},val:function(n){return n!=undefined?(this.$element.val(n),this.$element.change(),this.$element):this.$element.val()},selectAll:function(){this.$element.find("option").prop("selected",!0).attr("selected","selected"),this.render()},deselectAll:function(){this.$element.find("option").prop("selected",!1).removeAttr("selected"),this.render()},keydown:function(t){var y,r,f,i,e,h,c,l,a,o,v,s,u,p;(y=n(this),f=y.parent(),o=f.data("this"),o.options.container&&(f=o.$menu),r=n("[role=menu] li:not(.divider):visible a",f),r.length)&&(/(38|40)/.test(t.keyCode)?(i=r.index(r.filter(":focus")),h=r.parent(":not(.disabled)").first().index(),c=r.parent(":not(.disabled)").last().index(),e=r.eq(i).parent().nextAll(":not(.disabled)").eq(0).index(),l=r.eq(i).parent().prevAll(":not(.disabled)").eq(0).index(),a=r.eq(e).parent().prevAll(":not(.disabled)").eq(0).index(),t.keyCode==38&&(i!=a&&i>l&&(i=l),i<h&&(i=h)),t.keyCode==40&&(i!=a&&i<e&&(i=e),i>c&&(i=c),i==-1&&(i=0)),r.eq(i).focus()):(v={48:"0",49:"1",50:"2",51:"3",52:"4",53:"5",54:"6",55:"7",56:"8",57:"9",59:";",65:"a",66:"b",67:"c",68:"d",69:"e",70:"f",71:"g",72:"h",73:"i",74:"j",75:"k",76:"l",77:"m",78:"n",79:"o",80:"p",81:"q",82:"r",83:"s",84:"t",85:"u",86:"v",87:"w",88:"x",89:"y",90:"z",96:"0",97:"1",98:"2",99:"3",100:"4",101:"5",102:"6",103:"7",104:"8",105:"9"},s=[],r.each(function(){n(this).parent().is(":not(.disabled)")&&n.trim(n(this).text().toLowerCase()).substring(0,1)==v[t.keyCode]&&s.push(n(this).parent().index())}),u=n(document).data("keycount"),u++,n(document).data("keycount",u),p=n.trim(n(":focus").text().toLowerCase()).substring(0,1),p!=v[t.keyCode]?(u=1,n(document).data("keycount",u)):u>=s.length&&n(document).data("keycount",0),r.eq(s[u-1]).focus()),/(13|32)/.test(t.keyCode)&&(n(":focus").click(),o.multiple?t.preventDefault():f.parent().toggleClass("open",!(t.keyCode==32)),n(document).data("keycount",0)))},hide:function(){this.$newElement.hide()},show:function(){this.$newElement.show()},destroy:function(){this.$newElement.remove(),this.$element.remove()}},n.fn.selectpicker=function(i,r){var f=arguments,u,e=this.each(function(){var h,s;if(n(this).is("select")){var c=n(this),e=c.data("selectpicker"),o=typeof i=="object"&&i;if(e){if(o)for(h in o)e.options[h]=o[h]}else c.data("selectpicker",e=new t(this,o,r));typeof i=="string"&&(s=i,e[s]instanceof Function?([].shift.apply(f),u=e[s].apply(e,f)):u=e.options[s])}});return u!=undefined?u:e},n.fn.selectpicker.defaults={style:null,size:"auto",title:null,selectedTextFormat:"values",noneSelectedText:"Nothing selected",countSelectedText:"{0} of {1} selected",width:null,container:!1,hideDisabled:!1,showSubtext:!1,showIcon:!0,showContent:!0,dropupAuto:!0};n(document).data("keycount",0).on("keydown","[data-toggle=dropdown], [role=menu]",t.prototype.keydown)}(window.jQuery)