/*! select-mania v1.1b */ !function(e){var a={defaults:{width:"100%",size:"medium",themes:[],placeholder:"Select an item",removable:!1,empty:!1,search:!1,ajax:!1,data:{},scrollContainer:null},setup:function(t){var i=Object.keys(this.defaults),n=!0;Object.keys(t).forEach(function(a){-1===e.inArray(a,i)&&(console.error("selectMania | wrong setup settings"),n=!1)}),n&&(this.defaults=e.extend(!0,{},a.defaults,t))}},t={internalSettings:function(e,a){return a.multiple=!1,a.values=[],a.multiple=e.is("[multiple]"),a.disabled=e.is("[disabled]"),e.find("option:selected").each(function(){a.values.push({value:this.value,text:this.text})}),a},getAttrSettings:function(e){var a={};return["width","size","placeholder","removable","empty","search","scrollContainer"].forEach(function(t){if(e.is("[data-"+t+"]")){var i=e.attr("data-"+t);"true"!==i&&"false"!==i||(i="true"===i),a[t]=i}}),a},initialize:function(a,t){var l=this,s=e.extend(!0,{},t),c=l.getAttrSettings(a);if((s=e.extend(s,c)).empty&&a.val(""),s=l.internalSettings(a,s),l.controlSettings(a,s)){var o=i.build(a,s);o.data("selectMania-originalSelect",a),a.data("selectMania-element",o),!1!==s.ajax&&l.initAjax(o,s),l.updateClean(o),a.addClass("select-mania-original"),o.insertBefore(a),a.appendTo(o),n.bind(o)}},update:function(a){var t=this;$selectManiaEl=a.data("selectMania-element"),$valueList=$selectManiaEl.find(".select-mania-values").first(),$itemList=$selectManiaEl.find(".select-mania-items").first(),a.is("[disabled]")?$selectManiaEl.addClass("select-mania-disabled"):$selectManiaEl.removeClass("select-mania-disabled"),$selectManiaEl.find(".select-mania-value").remove(),$itemList.empty(),a.find("option:selected").each(function(){e(this).is(":selected")&&$valueList.append(i.buildValue({value:this.value,text:this.text}))}),$itemList.append(i.buildItemList(a.children())),t.updateClean($selectManiaEl),n.bind($selectManiaEl)},destroy:function(e){$selectManiaEl=e.data("selectMania-element"),e.insertAfter($selectManiaEl),$selectManiaEl.remove(),e.removeClass("select-mania-original")},openDropdown:function(a){var i=this,l=a.closest(".select-mania");if(l.is("[data-selectMania-scrollContainer]")){var s=e(l.attr("data-selectMania-scrollContainer"));t.positionDropdown(a),a.addClass("select-mania-absolute"),s.off("scroll.selectMania").on("scroll.selectMania",function(){s.off("scroll.selectMania"),t.closeDropdown(e(".select-mania-dropdown.open"))}),e(window).off("resize.selectMania").on("resize.selectMania",function(){t.positionDropdown(a)})}a.stop().addClass("open").slideDown(100),a.find(".select-mania-items").scrollTop(0),i.focusSearch(a),e(document).off("keydown.selectMania").on("keydown.selectMania",n.keyboardControl)},closeDropdown:function(a){var t=a.data("selectMania-element");if(e(document).off("keydown.selectMania"),a.find(".select-mania-item").removeClass("select-mania-hover"),a.hasClass("select-mania-absolute")){var i=a.data("selectMania-element").find(".select-mania-inner").first();a.removeClass("open").hide().insertAfter(i),e(window).off("resize.selectMania");var n=e(t.attr("data-selectMania-scrollContainer"));n.length>0&&n.off("scroll.selectMania")}else a.stop().removeClass("open").slideUp(100)},positionDropdown:function(e){var a=e.data("selectMania-element"),t=e.find(".select-mania-items"),i=t.scrollTop(),n=a.offset(),l=a.outerWidth(),s=a.outerHeight();e.appendTo("body").css({position:"absolute",top:n.top+s,left:n.left,width:l}),t.scrollTop(i)},selectItem:function(e){var a=e.closest(".select-mania-dropdown"),l=a.data("selectMania-element"),s=l.data("selectMania-originalSelect");if(!e.is(".select-mania-selected")){var c=e.attr("data-value"),o=i.buildValue({value:c,text:e.text()});l.is(".select-mania-multiple")?(l.find(".select-mania-values").append(o),t.addMultipleVal(s,c)):(a.find(".select-mania-item").removeClass("select-mania-selected"),l.find(".select-mania-values .select-mania-value").remove(),l.find(".select-mania-values").append(o),s.val(c)),e.addClass("select-mania-selected"),s.trigger("change")}a.is(".select-mania-absolute")&&t.positionDropdown(a),l.is(".select-mania-multiple")||t.closeDropdown(a),t.updateClean(l),n.bind(l)},focusSearch:function(e){e.find(".select-mania-search-input").focus()},addMultipleVal:function(e,a){var t=e.val();t instanceof Array||(t=[]),t.push(a),e.val(t)},removeMultipleVal:function(a,t){var i=a.val();i instanceof Array||(i=[]),i.splice(e.inArray(t,i),1),a.val(i)},updateClean:function(e){var a=e.data("selectMania-originalSelect");null!==a.val()&&a.val().length>0?e.find(".select-mania-clear-icon").show():e.find(".select-mania-clear-icon").hide()},doSearch:function(a){var t=a.data("selectMania-dropdown"),i=t.find(".select-mania-search-input").first().val();""!==(i=i.toLowerCase().trim())?(t.find(".select-mania-item").each(function(){-1!==e(this).text().toLowerCase().indexOf(i)?e(this).removeClass("select-mania-hidden"):e(this).addClass("select-mania-hidden")}),t.find(".select-mania-group").each(function(){e(this).find(".select-mania-item:not(.select-mania-hidden)").length>0?e(this).removeClass("select-mania-hidden"):e(this).addClass("select-mania-hidden")})):t.find(".select-mania-group, .select-mania-item").removeClass("select-mania-hidden")},doSearchAjax:function(e){var a=this,i=e.data("selectMania-dropdown").find(".select-mania-search-input").first().val();e.data("selectMania-ajaxReady",!1),e.data("selectMania-ajaxPage",1),a.dropdownLoading(e),e.data("selectMania-ajaxFunction")(i,1,e.data("selectMania-ajaxData"),function(i){a.dropdownLoading(e,!0),t.replaceItems(e,i),n.bind(e),a.initAjax(e)})},addItems:function(e,a){this.addOrReplaceItems(e,a,!1)},replaceItems:function(e,a){this.addOrReplaceItems(e,a,!0)},addOrReplaceItems:function(a,t,l){var s=this,c=a.data("selectMania-dropdown"),o=a.data("selectMania-originalSelect"),r=c.find(".select-mania-items"),d=e(t);s.getVal(a).forEach(function(a){d.filter(function(){return e(this).attr("value")===a.value&&e(this).text()===a.text}).prop("selected",!0)}),$builtItems=i.buildItemList(d),!0===l&&(o.find("option").remove(":not(:checked)"),r.empty()),r.append($builtItems),o.append(d),n.bind(a)},initAjax:function(e,a){"object"==typeof a&&(a.hasOwnProperty("ajax")&&"function"==typeof a.ajax&&e.data("selectMania-ajaxFunction",a.ajax),a.hasOwnProperty("data")&&"object"==typeof a.data&&e.data("selectMania-ajaxData",a.data)),e.data("selectMania-ajaxPage",1),e.data("selectMania-ajaxReady",!0),e.data("selectMania-ajaxScrollDone",!1)},dropdownLoading:function(a,t){var i=!1;if(void 0!==t&&!0===t&&(i=!0),$dropdownContainer=a.find(".select-mania-items-container").first(),$dropdownContainer.find(".icon-loading-container").remove(),!0!==i){var n=e('
');n.append(''),$dropdownContainer.append(n)}},getVal:function(a){var t=[];return a.find(".select-mania-value").each(function(){var a=e(this).find(".select-mania-value-text").first().text();t.push({value:e(this).attr("data-value"),text:a})}),t},clear:function(e){var a=e.data("selectMania-dropdown");e.find(".select-mania-value").remove(),a.find(".select-mania-item").removeClass("select-mania-selected");var t=e.data("selectMania-originalSelect");e.is(".select-mania-multiple")?t.val([]):t.val("")},setVal:function(a,t){var i=this,l=a.data("selectMania-originalSelect");i.clear(a),t.length>1&&!a.is(".select-mania-multiple")&&(t=t.slice(0,1)),t.forEach(function(t){var n=e.extend({value:"",text:"",selected:!0},t);i.setOneValSelectMania(a,n),i.setOneValOriginal(l,n)}),i.updateClean(a),n.bind(a)},setOneValSelectMania:function(a,t){var n=i.buildValue(t);a.find(".select-mania-values").append(n);var l=a.find('.select-mania-item[data-value="'+t.value+'"]').filter(function(){return e(this).text()===t.text});l.length>0&&l.first().addClass("select-mania-selected")},setOneValOriginal:function(a,t){var n=a.find('option[value="'+t.value+'"]').filter(function(){return e(this).text()===t.text});if(n.length<1){var l=i.buildOption(t);a.append(l)}else n.first()[0].selected=!0},controlTarget:function(a,t){return-1===e.inArray("isSelect",t)||a.is("select")?-1===e.inArray("isInitialized",t)||a.hasClass("select-mania-original")?-1!==e.inArray("notInitialized",t)&&a.hasClass("select-mania-original")?(console.error("selectMania | ignore because already initialized"),console.log(a[0]),!1):!(-1!==e.inArray("isSingle",t)&&a.length>1)||(console.error("selectMania | check method can be called on single element only"),console.log(a[0]),!1):(console.error("selectMania | select is not initialized"),console.log(a[0]),!1):(console.error("selectMania | invalid select element"),console.log(a[0]),!1)},controlSettings:function(a,t){return!1!==t.ajax&&"function"!=typeof t.ajax?(t.ajax=!1,console.error("selectMania | invalid ajax function"),console.log(a[0]),console.log(t),!1):-1===e.inArray(t.size,["tiny","small","medium","large"])?(t.size="medium",console.error("selectMania | invalid size"),console.log(a[0]),console.log(t),!1):!(null!==t.scrollContainer&&e(t.scrollContainer).length<1)||(t.scrollContainer=null,console.error("selectMania | invalid scroll container"),console.log(a[0]),console.log(t),!1)},controlValues:function(e,a){return a instanceof Array||(console.error("selectMania | values parameter is not a valid array"),console.log(e[0]),console.log(a),!1)},navigateItem:function(a,t){var i=a.closest(".select-mania"),n=a.find(".select-mania-items"),l=".select-mania-item:not(.select-mania-disabled):not(.select-mania-hidden)";i.hasClass("select-mania-multiple")&&(l+=":not(.select-mania-selected)");var s=a.find(l),c=a.find(l+".select-mania-hover"),o=e();if(c.length>0?"next"===t?o=s.slice(s.index(c)+1).first():"previous"===t&&(o=s.slice(0,s.index(c)).last()):o=s.first(),o.length>0){a.find(".select-mania-item").removeClass("select-mania-hover"),o.addClass("select-mania-hover");var r=o.position(),d=o.outerHeight(!0),u=n.height(),m=n.scrollTop();r.top<0?n.scrollTop(m+r.top):r.top+d>u&&n.scrollTop(m+r.top+d-u)}}},i={build:function(a,t){var i=this,n="select-mania-"+t.size,l='style="width:'+t.width+';"',s=e('");t.multiple&&s.addClass("select-mania-multiple"),t.disabled&&s.addClass("select-mania-disabled"),t.themes instanceof Array&&t.themes.length>0&&t.themes.forEach(function(e){s.addClass("select-mania-theme-"+e)}),!1!==t.ajax&&s.addClass("select-mania-ajax"),null!==t.scrollContainer&&s.attr("data-selectMania-scrollContainer",t.scrollContainer);var c=i.buildInner(t),o=i.buildDropdown(a,t);return s.append(c).append(o),s.data("selectMania-dropdown",o),o.data("selectMania-element",s),s},buildInner:function(a){var t=this,i=e(''),n=e(''),l=e('