var vault=new function(){var n;if(typeof $=="undefined"){console.warn("VAULT [vault.core]: 'jQuery' plugin is not referenced.");return}n=this;n.config={};var t=function(t){t.length>0&&n.showErrorMessage(t.join("\r\n"))},i=function(n,t){n.showErrorTooltip(t)},r=function(n,t){if(typeof $.fn.qtip=="undefined"){console.warn("VAULT [vault.core]: 'qtip' plugin is not referenced.");return}vault.qtip.errorPlacement(n,t)},u=function(n){if(typeof bootbox=="undefined"){console.warn("VAULT [vault.core]: 'bootbox' plugin is not referenced.");alert(n);return}vault.bootbox.showErrorDialog(n)};n.config.core=new function(){this.modelErrorPlacementDelegate=t;this.propertyErrorPlacementDelegate=i;this.validatorErrorPlacementDelegate=r;this.errorMessageDisplayDelegate=u;this.connectionErrorMessage="Connection error."};n.globals=new function(){this.fullPostProgressIndicatorActive=!1};$.fn.vaultConfig=function(n,t){if(!t){console.warn("VAULT [vault.core]: 'property' parameter is undefined, unable to read configuration.");return}n||console.warn("VAULT [vault.core]: 'plugin' parameter is undefined, unable to read configuration.");var i=$(this).data(n.toLowerCase()+"-"+t.toLowerCase());if(!i&&!vault.config[n]){console.warn("VAULT [vault.core]: Unable to get configuration property '"+t+"' for plugin '"+n+"'.");return}return i?i:vault.config[n][t]};$.fn.setValidatorErrorPlacement=function(){$(this).find("form").addBack("form").each(function(){var n=$.data(this,"validator");n&&(n.settings.errorPlacement=vault.config.core.validatorErrorPlacementDelegate,n.settings.ignore=[])})};String.prototype.toTitleCase=function(){return this.replace(/([^\s:\-])([^\s:\-]*)/g,function(n,t,i){return t.toUpperCase()+i.toLowerCase()})};String.prototype.escapeAttributeValue=function(){return this.replace(/([!"#$%&'()*+,./:;<=>?@\[\\\]^`{|}~])/g,"\\$1")};String.prototype.parseQueryString=function(){for(var n,r=/\+/g,u=/([^&=]+)=?([^&]*)/g,i=function(n){return decodeURIComponent(n.replace(r," "))},t={};n=u.exec(this);)t[i(n[1])]=i(n[2]);return t};Boolean.parse=function(n){if(!n)return!1;switch(n.toString().trim().toLowerCase()){case"true":return!0;case"false":return!1;default:throw new Error("Boolean.parse: Cannot convert value '"+n+"' to boolean.");}};n.copy=function(n,t){for(var i in n)t[i]=n[i]};n.makeIdSelector=function(n){return n.indexOf("#")==0?n:"#"+n};n.convertToFunctionsArray=function(t){var i,r;if(typeof t=="string")for(t=t.split(","),i=0;i<t.length;i++)t[i]=n.convertToFunctionObject(t[i]);return r=[],t&&$.each(t,function(n,t){if(t)if(t.fn)r.push(t);else{var i={};i.fn=t;r.push(i)}}),r};n.convertToFunctionObject=function(n){var i,t,r;if(n=n.trim(),n.indexOf(".")==-1){if(t=window[n],!t)throw"VAULT [vault.core]: '"+n+"' is undefined.";return t}if(i=n.split("."),t=window[i[0]],!t)throw"VAULT [vault.core]: '"+i[0]+"' is undefined.";for(r=0;r<i.length;r++){if(r+1==i.length)break;if(t=t[i[r+1]],!t)throw"VAULT [vault.core]: '"+i[r+1]+"' is undefined.";}return t};n.batchExecuteFunctions=function(n,t){var i,r;if(n)for(n instanceof Array||(n=[n]),i=0;i<n.length;i++)if(n[i].fn){if(n[i].params||(n[i].params={}),t)for(r in t)n[i].params[r]&&console.warn("VAULT [vault.core]: Duplicate property detected."),n[i].params[r]=t[r];n[i].fn(n[i].params)}else n[i](t)};n.handleBadRequest=function(n,t){try{var i=JSON.parse(n.responseText);i.redirectTo&&(window.location.href=i.redirectTo);i.propertyErrors&&vault.showPropertyErrors(i.propertyErrors,t);i.modelErrors&&vault.showModelErrors(i.modelErrors)}catch(r){console.warn(r)}};n.showPropertyErrors=function(n,t){var r,i,u,f;if(n.length>0){for(r=t?t:$("body"),i=0;i<n.length;i++)u=n[i].propertyName,f=n[i].errorMessage,$elements=r.find("[name='"+u+"']"),$elements.each(function(n,t){var i=$(t),e="#s2id_"+u.replace(".","_");(i.prev(e).length>0&&(i=r.find(e)),i.is("input[type='hidden']"))||vault.config.core.propertyErrorPlacementDelegate(i,f)});r.scrollToFirstError()}};$.fn.scrollToFirstError=function(){var i=$(this),n=1e4,t;i.find(".has-error").each(function(t,i){var r=$(i);r.offset().top<n&&(n=r.offset().top)});t=i.closest(".modal");t&&t.animate({scrollTop:n})};n.showModelErrors=function(n){vault.config.core.modelErrorPlacementDelegate(n)};n.showErrorMessage=function(t){n.config.core.errorMessageDisplayDelegate(t)};$.fn.attachValidator=function(){if(typeof $.validator.unobtrusive=="undefined"){console.warn("VAULT [vault.core]: 'Microsoft.jQuery.Unobtrusive.Validation' plugin is not referenced.");return}$(this).find("form").addBack("form").each(function(n,t){var i=$(t);i.removeData("validator");i.removeData("unobtrusiveValidation");$.validator.unobtrusive.parse(i);i.setValidatorErrorPlacement()})};n.showGlobalProgressIndicator=function(){$(".vault-progress-indicator").show();vault.globals.fullPostProgressIndicatorActive=!0};n.hideGlobalProgessIndicator=function(n){vault.globals.fullPostProgressIndicatorActive&&n?(vault.globals.fullPostProgressIndicatorActive=!1,$(".vault-progress-indicator").hide()):n||$(".vault-progress-indicator").hide()};n.init=function(n){n||(n={});var t=$("body");if(t.setValidatorErrorPlacement(),$(document).ajaxError(function(n,t,i,r){var u;if(r!="abort"&&t)switch(t.status){case 400:vault.handleBadRequest(t,i.$form);break;case 401:if(t.redirectTo){window.location.href=t.redirectTo;return}try{if(u=JSON.parse(t.responseText),u.redirectTo){window.location.href=u.redirectTo;return}}catch(f){console.warn(f.toString());return}case 404:try{if(u=JSON.parse(t.responseText),u.redirectTo){window.location.href=u.redirectTo;return}}catch(f){console.warn(f.toString());return}case 409:if(t.errorMessage){vault.showErrorMessage(t.errorMessage);return}if(t.responseText)try{if(u=JSON.parse(t.responseText),u.errorMessage){vault.showErrorMessage(u.errorMessage);return}}catch(f){console.warn(f.toString());return}break;case 500:if(t.errorMessage){vault.showErrorMessage(t.errorMessage);return}try{if(u=JSON.parse(t.responseText),u.redirectTo){window.location.href=u.redirectTo;return}if(u.errorMessage){vault.showErrorMessage(u.errorMessage);return}}catch(f){console.warn(f.toString());return}break;case 503:if(t.errorMessage){vault.showErrorMessage(t.errorMessage);return}try{if(u=JSON.parse(t.responseText),u.redirectTo){window.location.href=u.redirectTo;return}if(u.errorMessage){vault.showErrorMessage(u.errorMessage);return}}catch(f){console.warn(f.toString());return}}}),!n.ignoreAjaxViews)t.on("ajax.view.loaded","[data-ajax-container]",function(){var n=$(this);n.attachValidator()});if(!n.disableTitleCase)t.on("change keydown keyup","[data-titlecase]",function(){var n=$(this);n.val(n.val().toTitleCase())});if(!n.disableKeyFiltering)t.on("keypress","[data-val-regex-pattern]",function(n){var t=$(this),f=t.data("regex-suppress"),i,r,u;if(!f){if((i=new RegExp(t.data("val-regex-pattern")),!n.charCode)||n.ctrlKey)return!0;if(r=this.value.substring(0,this.selectionStart),u=this.value.substring(this.selectionEnd,this.value.length),!i.test(r+String.fromCharCode(n.charCode)+u))return!1}});if($.ajaxSetup({beforeSend:function(n){return vault.showGlobalProgressIndicator(),typeof csrfToken=="undefined"?console.warn("VAULT: Anti-CSRF Token is undefined!"):n.setRequestHeader("X-JsonRequestVerificationToken",csrfToken),!0},statusCode:{200:function(n){if(n&&(n.redirectTo&&n.autoRedirect&&(window.location.href=n.redirectTo),n.responseText))try{var t=JSON.parse(n.responseText);if(t.redirectTo){window.location.href=t.redirectTo;return}}catch(i){console.warn(i.toString());return}}}}),$(".field-validation-error").each(function(){var n=$(this).text(),t=$('[name="'+$(this).attr("data-valmsg-for")+'"]:first');t.not(".valid").showErrorTooltip(n)}),!n.ignoreKeypress){t.on("keypress","[data-keypress-enter]",function(n){if(n.which==13){n.preventDefault();var t=$(this).data("keypress-enter"),i=vault.convertToFunctionsArray(t);vault.batchExecuteFunctions(i)}});t.on("keypress","[data-keypress-codes]",function(n){for(var u,f,r=$(this),t=r.data("keypress-codes").split(","),i=0;i<t.length;i++)t[i]=parseInt(t[i].trim());t.indexOf(n.which)>-1&&(n.preventDefault(),u=r.data("keypress-functions"),f=vault.convertToFunctionsArray(u),vault.batchExecuteFunctions(f))})}if(!n.disableProgressIndicator){$(document).ajaxStop(function(){vault.hideGlobalProgessIndicator()});$(window).on("blur",function(){vault.hideGlobalProgessIndicator(!0)});$(window).on("beforeunload",function(){vault.showGlobalProgressIndicator(!0)})}}};vault.ajax=new function(){function t(n,t){vault.bootbox.showDeleteConfirmationDialog(n,t)}function i(n){var t=function(n){window.history.pushState("","","/");$.ajax({url:n.url,contentType:"application/json",type:"POST",success:function(){window.location.reload(!0)}})},i={url:n},r={confirmDialogTitle:vault.config.ajax.reloadConfirmationDialogTitle,confirmDialogMessage:vault.config.ajax.reloadConfirmationDialogMessage};vault.bootbox.showConfirmDialog(t,i,r)}function r(n){var t=function(n){vault.config.ajax.ajaxLinkExecutionDelegate(n.$anchor)},i={$anchor:n},r={confirmDialogTitle:n.vaultConfig("ajax","link-confirmation-dialog-title"),confirmDialogMessage:n.vaultConfig("ajax","link-confirmation-dialog-message")};vault.bootbox.showConfirmDialog(t,i,r)}function u(n){var r=n.attr("href"),u=n.vaultConfig("ajax","method"),t=n.data("ajax-before-send"),i;t&&(i=vault.convertToFunctionsArray(t),vault.batchExecuteFunctions(i,{$anchor:n}));var f=function(n){return function(t){var i=n.data("ajax-on-success"),r,u;i&&(r=vault.convertToFunctionsArray(i),u={$anchor:n,response:t},vault.batchExecuteFunctions(r,u))}},e=function(n){return function(t){var i=n.data("ajax-on-error"),r,u;return i&&(r=vault.convertToFunctionsArray(i),u={$anchor:n,response:t},vault.batchExecuteFunctions(r,u)),!0}},o=function(){$("body").enableButtons()};$("body").disableButtons();$.ajax({url:r,cache:!1,type:u,$anchor:n,contentType:"application/json",success:f(n),error:e(n),complete:o})}function f(n){var t=function(n){vault.config.ajax.ajaxSubmitExecutionDelegate(n.$button)},i={$button:n},r={confirmDialogTitle:n.vaultConfig("ajax","submit-confirmation-dialog-title"),confirmDialogMessage:n.vaultConfig("ajax","submit-confirmation-dialog-message")};vault.bootbox.showConfirmDialog(t,i,r)}function e(n){var o,i,r;$("body").disableButtons();var t=n.closest("form[data-ajax-post]"),u=n.data("ajax-on-success")?n.data("ajax-on-success"):t.data("ajax-on-success"),f=n.data("ajax-on-error")?n.data("ajax-on-error"):t.data("ajax-on-error"),e=n.data("ajax-before-send")?n.data("ajax-before-send"):t.data("ajax-before-send"),s=t.data("ajax-ko");e&&(o=vault.convertToFunctionsArray(e),vault.batchExecuteFunctions(o,{$form:t,$button:n}));t.find("[data-tinymce-element]").length>0&&typeof tinyMCE!="undefined"&&tinyMCE.triggerSave();i=[];u&&(i=vault.convertToFunctionsArray(u));r=[];f&&(r=vault.convertToFunctionsArray(f));t.postAsJson(i,r,s,n)}var n=this;vault.config.ajax=new function(){this.method="GET";this.deleteConfirmationDelegate=t;this.reloadConfirmationDelegate=i;this.ajaxLinkConfirmationDelegate=r;this.ajaxLinkExecutionDelegate=u;this.ajaxSubmitConfirmationDelegate=f;this.ajaxSubmitExecutionDelegate=e;this.reloadConfirmationDialogTitle="Page reload confirmation";this.reloadConfirmationDialogMessage="Page must be reloaded in order to apply changes. Data might be lost. Would you like to continue?";this.submitConfirmationDialogTitle="Form submit confirmation";this.submitConfirmationDialogMessage="Are you sure that you want to submit this form?";this.linkConfirmationDialogTitle="Action confirmation";this.linkConfirmationDialogMessage="Are you sure that you want to perform this action?"};$.fn.disableButtons=function(){var n=$(this);n.find(".btn").each(function(n,t){var i=$(t);i.prop("disabled")||i.hasClass("disabled")||(i.is("a")?i.addClass("disabled"):i.prop("disabled",!0),i.data("ajax-disabled",!0))})};$.fn.enableButtons=function(){var n=$(this);n.find(".btn").each(function(n,t){var i=$(t);i.data("ajax-disabled")&&(i.is("a")?i.removeClass("disabled"):i.prop("disabled",!1),i.removeData("ajax-disabled"))})};$.fn.serializeToObject=function(){var i,n,t;return i=this.serializeArray(),t=$(this),n={},$.each(i,function(){var t;t=this.value!=null?this.value:"";n[this.name]!=null?(n[this.name].push||(n[this.name]=[n[this.name]]),n[this.name].push(t)):n[this.name]=t}),t.find("input[type=hidden]").each(function(i,r){var e=$(r),u=e.attr("name"),f=t.find("input[type=checkbox][name='"+u+"']");f.length==1&&f.prop("checked")==!0&&(n[u]=!0)}),n};$.fn.postAsJson=function(n,t,i,r){var u=$(this),f,s,e,o;if(!i&&(u.validate(),!u.valid())){u.scrollToFirstError();$("body").enableButtons();return}url=u.attr("action");i?(s=ko.contextFor(u[0]),f=ko.toJS(s.$data)):f=u.serializeToObject();r&&r.data("ajax-url")&&(url=r.data("ajax-url"));Boolean.parse(u.data("ajax-url-encoded"))==!0?(e="application/x-www-form-urlencoded",o=f):(e="application/json",o=JSON.stringify(f));$.ajax({contentType:e,data:o,$form:u,type:"POST",url:url,success:function(t){if(n){var i={$form:u,$button:r,response:t};vault.batchExecuteFunctions(n,i)}Boolean.parse(u.data("prevent-close"))==!0&&u.saveInitialValues()},statusCode:{400:function(){return!1}},error:function(n){if(t){var i={formId:u.attr("id"),response:n};vault.batchExecuteFunctions(t,i)}return!0},complete:function(){$("body").enableButtons()}})};n.init=function(n){n||(n={});var t=$("body");if(!n.ignoreAjaxViews)t.on("click","a[data-ajax-view]",function(n){var u,r,f,i;if(n.preventDefault(),t.disableButtons(),u=$(this),r=u.attr("href"),!r){console.warn("VAULT - data-ajax-view handler: 'href' tag is undefined!");return}if(f=vault.makeIdSelector(u.data("ajax-view")),i=$(f),i.length!=1){console.warn("VAULT - data-ajax-view handler: Container does not exist!");return}i.attr("data-ajax-container")||i.attr("data-ajax-container",!0);i.trigger("ajax.view.requesting",{url:r});typeof ga!="undefined"&&ga("send","pageview",{page:r});$.ajax({url:r,type:"GET",cache:!1,dataType:"html",success:function(n){i.trigger("ajax.view.loading",{url:r});i.html(n);i.trigger("ajax.view.loaded",{url:r})},complete:function(){t.enableButtons()}})});if(!n.ignoreAjaxReload)t.on("click ","a[data-ajax-reload]",function(n){n.preventDefault();var i=$(this),t=i.attr("href");if(!t){console.error("VAULT - data-ajax-link handler: 'href' tag is undefined!");return}vault.config.ajax.reloadConfirmationDelegate(t)});if(!n.ignoreAjaxLinks)t.on("click","a[data-ajax-link]",function(n){var t,i,r;if(n.preventDefault(),t=$(this),i=t.attr("href"),!i){console.error("VAULT - data-ajax-link handler: 'href' tag is undefined!");return}r=Boolean.parse(t.data("ajax-confirm"));r?vault.config.ajax.ajaxLinkConfirmationDelegate(t):vault.config.ajax.ajaxLinkExecutionDelegate(t)});if(!n.ignoreAjaxForms){t.on("click","form[data-ajax-post] [data-ajax-button='save'],[data-ajax-button='submit']",function(n){n.preventDefault();var t=$(this),i=Boolean.parse(t.data("ajax-confirm"));i?vault.config.ajax.ajaxSubmitConfirmationDelegate(t):vault.config.ajax.ajaxSubmitExecutionDelegate(t)});t.on("click","[data-ajax-button='delete']",function(n){var i,r,u;if(n.preventDefault(),i=$(this),r=i.attr("href"),!r){console.warn("VAULT - data-ajax-button delete handler: 'href' tag is undefined!");return}u={$anchor:i};vault.config.ajax.deleteConfirmationDelegate(u,function(n){var f=n.$anchor.attr("href"),r=i.data("ajax-before-send"),u;r&&(u=vault.convertToFunctionsArray(r),vault.batchExecuteFunctions(u,{$anchor:n.$anchor}));$.ajax({url:f,type:i.vaultConfig("ajax","method"),contentType:"application/json",success:function(t){var r=i.data("ajax-on-success"),u,f;r&&(u=vault.convertToFunctionsArray(r),f={$anchor:n.$anchor,response:t},vault.batchExecuteFunctions(u,f))},error:function(t){var r=i.data("ajax-on-error"),u,f;return r&&(u=vault.convertToFunctionsArray(r),f={$anchor:n.$anchor,response:t},vault.batchExecuteFunctions(u,f)),!0},complete:function(){t.enableButtons()}})})})}}};vault.qtip=new function(){if(typeof $.fn.qtip=="undefined"){console.error("VAULT [vault.qtip]: 'qTip2' plugin is undefined.");return}var n=this;vault.config.qtip=new function(){this.errorStyleClasses="qtip-red"};$.fn.showErrorTooltip=function(n){var t=$(this),i,u,f,r;if(t.parent().addClass("has-error"),t.data("qtip")?t.qtip("option","content.text",n):t.qtip({content:{text:n},position:{my:"left center",at:"right center",viewport:$(window)},show:{ready:!0},hide:!1,style:{classes:vault.config.qtip.errorStyleClasses}}),i=t,u=!1,t.hasClass("select2-container")&&(r=t.attr("id").replace("s2id_","#"),i=$(r)),t.hasClass("mce-container")&&(u=!0,f=tinymce.activeEditor,f))f.on("change",function(){t.clearErrorTooltip()});if(t.hasClass("file-upload-button")&&(r="#"+t.attr("for"),i=$(r)),!u)i.one("input change",function(){t.clearErrorTooltip()})};$.fn.clearErrorTooltip=function(){var n=$(this);n.parent().removeClass("has-error");n.qtip("destroy",!0)};n.errorPlacement=function(n,t){var f=t[0].name.escapeAttributeValue(),r=$(this).find("[data-valmsg-for='"+f+"']"),e=r.attr("data-valmsg-replace"),s=e?$.parseJSON(e)!==!1:null;r.removeClass("field-validation-valid").addClass("field-validation-error");n.data("unobtrusiveContainer",r);s?(r.empty(),n.removeClass("input-validation-error").appendTo(r)):n.hide();var i=$(t),u=$(t),h=i.parents("form"),o="#s2id_"+f.replace(".","_");i.prev(o).length>0&&(u=h.find(o));i.is("textarea")&&i.prev(".mce-container").size()!=0&&(u=i.prev(".mce-container"));!n.is(":empty")&&i.not(".valid").length>0?u.showErrorTooltip(n):u.clearErrorTooltip()};n.init=function(n){var t,i;n||(n={});t=$("body");typeof $.fn.qtip!="undefined"&&(i=$.fn.hide,$.fn.hide=function(){return $(this).find("[data-hasqtip]").qtip("destroy",!0),i.apply(this,arguments)});t.on("hidden.bs.modal",".modal",function(){var n=$(this);n.find(".qtip").remove()});t.on("ajax.view.loading","[data-ajax-container]",function(){t.find(".qtip").remove()})}};vault.select2=new function(){var n=this;n.defaultFormatResult=function(n){return n.name?n.name:n.text};n.defaultFormatSelection=function(n){return n.name?n.name:n.text};vault.config.select2=new function(){this.formatResult="vault.select2.defaultFormatResult";this.formatSelection="vault.select2.defaultFormatSelection";this.allowClear=!1;this.multi=!1;this.width="100%";this.rows=10;this.minimumInputLength=3;this.quietMillis=500};var i=function(n){var t=$(this);t.data("select2-default",n.val)},r=function(){var n=$(this),t=vault.convertToFunctionsArray(n.data("select2-changed"));vault.batchExecuteFunctions(t)},t=function(n,t){n.ignoreBlankDropdowns||t.initBlankDropdowns();n.disableCascade||t.initParentDropDowns();n.ignoreSelectElements||t.initSelectElements();n.ignoreLazy||t.initLazyDropDowns()};$.fn.setDropdownDefaultValue=function(){var n=$(this),t;if(n.data("select2-default")===undefined)n.data("select2-default",n.val());else{t=n.data("select2-default");n.select2("val",t);n.off("select2-selecting",i);n.on("select2-selecting",i)}};$.fn.fillSelect2=function(n,t,i){var u=$(this);return $.ajax({url:n,type:"GET",contentType:"application/json",data:t,success:function(n){var e,f,o,c,t,s,h;Boolean.parse(u.data("select2-clear"))===!0?u.val("").trigger("change"):u.removeAttr("data-select2-clear");Boolean.parse(u.data("select2-combo"))===!0&&(e=function(n,t){var i=$(t).filter(function(){return this.name.localeCompare(n)===0});return i.length===0?{id:n,name:n}:{id:i.id,name:i.name}});f=u.vaultConfig("select2","multi");typeof $.fn.qtip!="undefined"&&(o=u.attr("id"),c=u.siblings("#s2id_"+o).each(function(n,t){$(t).qtip("destroy",!0)}));u.select2({allowClear:u.vaultConfig("select2","allowClear"),formatResult:vault.convertToFunctionObject(u.vaultConfig("select2","formatResult")),formatSelection:vault.convertToFunctionObject(u.vaultConfig("select2","formatSelection")),createSearchChoice:e,id:function(n){return n.id},escapeMarkup:function(n){return n},data:{results:n,text:"name"},width:u.vaultConfig("select2","width"),multiple:f});t=u.data("select2-replace-zero")?u.data("select2-replace-zero").toLowerCase():"none";s=parseInt(u.select2("val"))===0||u.select2("val")==="";s&&t!=="none"&&n instanceof Array&&n.length>0&&(t==="first"&&u.select2("val",n[0].id),t==="last"&&u.select2("val",n[n.length-1].id));f||u.setDropdownDefaultValue();vault.batchExecuteFunctions(i);h=vault.convertToFunctionsArray(u.data("select2-filled"));vault.batchExecuteFunctions(h,{items:n});u.off("change",r);u.on("change",r)}}),this};$.fn.fillLazySelect2=function(n){var t=$(this),i=t.vaultConfig("select2","multi");return t.select2({allowClear:t.vaultConfig("select2","allowClear"),formatResult:vault.convertToFunctionObject(t.vaultConfig("select2","formatResult")),formatSelection:vault.convertToFunctionObject(t.vaultConfig("select2","formatSelection")),id:function(n){return n.id},escapeMarkup:function(n){return n},width:t.vaultConfig("select2","width"),multiple:i,minimumInputLength:t.vaultConfig("select2","minimumInputLength"),ajax:{url:n,quietMillis:t.vaultConfig("select2","quietMillis"),params:{contentType:"application/json; charset=utf-8",dataType:"json"},data:function(n,i){return{searchTerm:n,rows:t.vaultConfig("select2","rows"),page:i}},results:function(n){return{results:n.records,more:n.more}}},initSelection:function(t,r){$.ajax({url:n,type:"GET",contentType:"application/json",data:{initialKeys:t.val()},success:function(n){n.records.length>0&&(i?r(n.records):r(n.records[0]))}})}}),this};$.fn.initSelectElements=function(){var n=$(this);n.find("select").addBack("select").each(function(n,t){var i=$(t);Boolean.parse(i.data("select2-ignore"))!==!0&&(i.removeClass("hidden"),i.select2({allowClear:i.vaultConfig("select2","allowClear"),formatResult:vault.convertToFunctionObject(i.vaultConfig("select2","formatResult")),formatSelection:vault.convertToFunctionObject(i.vaultConfig("select2","formatSelection")),escapeMarkup:function(n){return n},width:i.vaultConfig("select2","width")}),i.parents("[data-grid-form]").length===0&&i.trigger("change"))})};$.fn.initLazyDropDowns=function(){$(this).find("[data-select2-lazy]").each(function(){var n=$(this),t=n.data("select2-source");n.fillLazySelect2(t)})};$.fn.initParentDropDowns=function(){$(this).find("[data-select2-parent]").each(function(){var n=$(this),t=n.data("select2-source"),i=Boolean.parse(n.data("select2-clear"))===!1;n.fillSelect2(t,null,function(){n.data("select2-child")&&i&&n.trigger("change")})})};$.fn.initBlankDropdowns=function(){var n=$(this);n.find("[data-select2-source]").each(function(n,t){var i=$(t);i.select2({allowClear:i.vaultConfig("select2","allowClear"),formatResult:vault.convertToFunctionObject(i.vaultConfig("select2","formatResult")),formatSelection:vault.convertToFunctionObject(i.vaultConfig("select2","formatSelection")),id:function(n){return n.id},escapeMarkup:function(n){return n},data:{results:[],text:"name"},width:i.vaultConfig("select2","width")})})};n.init=function(n){n||(n={});var i=$("body");if(t(n,i),!n.disableCascade)i.on("change","[data-select2-child]",function(){var n=$(this),r=n.data("select2-child").split(","),t=n.closest(".modal"),u=t.length>0?t:i;$.each(r,function(t,i){var r=u.find(vault.makeIdSelector(i)),f=n.val(),e=r.data("select2-source");r.fillSelect2(e,{parentId:f},function(){r.trigger("change")})})});if(!n.ignoreModals)i.on("show.bs.modal",".modal",function(){var i=$(this);t(n,i)});if(!n.ignoreAjaxViews)i.on("ajax.view.loaded","[data-ajax-container]",function(){var i=$(this);t(n,i)})}};vault.tinyMce=new function(){var t=this,n;typeof tinyMCE!="undefined"&&(tinyMCE.baseURL="/Scripts/tinymce/");vault.config.tinyMce=new function(){this.height=300;this.plugins=["advlist autolink link image lists charmap print preview hr anchor pagebreak spellchecker","searchreplace wordcount visualblocks visualchars code fullscreen insertdatetime media nonbreaking","save table contextmenu directionality emoticons template paste textcolor"]};$.fn.initTinyMce=function(){var n=$(this);tinymce.init({selector:vault.makeIdSelector(n.attr("id")),height:n.vaultConfig("tinyMce","height"),plugins:n.vaultConfig("tinyMce","plugins")})};n=function(n,t){t.find("[data-tinymce-element]").each(function(){$(this).initTinyMce()})};t.init=function(t){t||(t={});var i=$("body");if(!t.ignoreModals){i.on("show.bs.modal",".modal",function(){var i=$(this);n(t,i)});i.on("hide.bs.modal",".modal",function(){var t=$(this),n=t.find("[data-tinymce-element]");n.length>0&&n.each(function(){var n=$(this);n.tinymce().remove()})})}if(!t.ignoreAjaxViews)$("body").on("ajax.view.loaded","[data-ajax-container]",function(){var i=$(this);n(t,i)});$(document).on("focusin",function(n){$(n.target).closest(".mce-window").length&&n.stopImmediatePropagation()})}};vault.tooltip=new function(){var t=this,n;vault.config.tooltip=new function(){this.showDelay=1e3;this.hideDelay=0};$.fn.initPlaceHolderTooltip=function(){var n=$(this);n.tooltip({placement:"top",delay:{show:1e3,hide:0},title:n.attr("placeholder")})};$.fn.initSelect2Tooltip=function(){var n=$(this);n.data("has-tooltip")||n.data("tooltip-skip")||(n.tooltip({placement:"top",delay:{show:n.vaultConfig("tooltip","showDelay"),hide:n.vaultConfig("tooltip","hideDelay")},title:function(){var n=$(this).attr("placeholder");return(n===undefined||n=="")&&(n=$(this).siblings("input[data-select2-source!='']").data("placeholder")),n}}),n.data("has-tooltip")||(n.data("has-tooltip",!0),setTimeout(function(){n.is(":hover")&&n.tooltip("show")},1e3)))};n=function(n,t){var i,r;n.ignoreInputs||(i=t.find("input[placeholder]").not("[data-tooltip-skip]"),i.each(function(){$(this).initPlaceHolderTooltip()}));n.ignoreTextAreas||(r=t.find("textarea[placeholder]").not("[data-tooltip-skip]"),r.each(function(){$(this).initPlaceHolderTooltip()}))};t.init=function(t){t||(t={});var i=$("body");if(n(t,i),!t.ignoreSelect2)i.on("mouseenter",".select2-container",function(){$(this).initSelect2Tooltip()});if(!t.ignoreModals)i.on("show.bs.modal",".modal",function(){var i=$(this);n(t,i)});if(!t.ignoreAjaxViews)i.on("ajax.view.loaded","[data-ajax-container]",function(){var i=$(this);n(t,i)})}};vault.grid=new function(){function t(n,t,i){var r=ko.utils.arrayMap(t,function(n){return new i(n)});n.push.apply(n,r)}function i(n){function r(){var r=$("form"+vault.makeIdSelector(i.formId)),n={};r&&r.length>0&&(n=r.first().serializeToObject());n.rows=i.pageSize();n.page=i.page()==0?1:i.page();n.sidx=i.sidx();n.sord=i.sord();$.ajax({url:i.sourceUrl,data:JSON.stringify(n),contentType:"application/json",type:i.method,success:function(n){i.clear();t(i.rows,n.records,i.viewModel);i.lastPage(Math.ceil(n.total/i.pageSize()));n.records.length==0&&i.page(i.lastPage()==0?1:i.lastPage())},complete:function(){$.unblockUI()}})}if(!n){console.error("VAULT [vault.grid]: 'config' is undefined.");return}if(!n.sourceUrl){console.error("VAULT [vault.grid]: 'config.sourceUrl' is undefined.");return}if(!n.viewModel){console.error("VAULT [vault.grid]: 'config.viewModel' is undefined.");return}if(!n.sidx){console.error("VAULT [vault.grid]: 'config.sidx' is undefined.");return}if(!n.containerId){console.error("VAULT [vault.grid]: 'config.containerId' is undefined.");return}var i=this;i.sidx=ko.observable(n.sidx);i.pageSizes=n.pageSizes?n.pageSizes:vault.config.grid.pageSizes;i.sord=ko.observable(n.sord?n.sord:vault.config.grid.sord);i.pageSize=ko.observable(n.pageSize?n.pageSize:vault.config.grid.pageSize);i.page=ko.observable(n.page?n.page:vault.config.grid.page);i.formId=n.formId?n.formId:vault.config.grid.formId;i.method=n.method?n.method:vault.config.grid.method;i.autoBind=typeof n.autoBind!="undefined"?n.autoBind:vault.config.grid.autoBind;i.rows=ko.observableArray();i.lastPage=ko.observable(1);i.containerId=vault.makeIdSelector(n.containerId);i.sourceUrl=n.sourceUrl;i.viewModel=n.viewModel;i.sord.subscribe(function(){i.ajaxLoad()});i.page.subscribe(function(){i.ajaxLoad()});i.sidx.subscribe(function(){i.ajaxLoad()});i.pageSize.subscribe(function(){i.ajaxLoad()});i.init=function(){var n=$("[data-property='"+i.sidx()+"']");n.removeClass("sort_none");i.sord()=="ASC"?n.addClass("sort_asc"):n.addClass("sort_desc")};i.addRow=function(n){i.rows.push(n)};i.clear=function(){i.rows.removeAll()};i.goto=function(n){n!="..."&&i.page(n)};i.next=function(){i.page()<i.lastPage()&&i.goto(i.page()+1)};i.prev=function(){i.page()>1&&i.goto(i.page()-1)};i.first=function(){i.page()>1&&i.goto(1)};i.last=function(){i.page()<i.lastPage()&&i.goto(i.lastPage())};i.pagerClick=function(){i.goto(this)};i.pagers=ko.computed(function(){var t=[],r,n;if(i.lastPage()<=10)for(n=1;n<=i.lastPage();n++)t.push(n);if(i.lastPage()>10)if(i.page()<6){for(n=1;n<8;n++)t.push(n);t.push("...");t.push(i.lastPage())}else if(i.page()>=6&&i.lastPage()-i.page()>=5){for(t.push(1),t.push("..."),r=i.lastPage()-i.page()<3?i.lastPage()-4:i.page()-2,n=r;n<r+5;n++)t.push(n);t.push("...");t.push(i.lastPage())}else if(i.lastPage()-i.page()<5)for(t.push(1),t.push("..."),n=i.lastPage()-6;n<=i.lastPage();n++)t.push(n);return t});i.sort=function(n,t){var r=$(t.target),u;r.is("th[data-property]")||(r=r.parent("th[data-property]"));u=r.data("property");i.sidx()==u?i.sord()=="ASC"?(r.removeClass("sort_asc"),r.addClass("sort_desc"),i.sord("DESC")):(r.removeClass("sort_desc"),r.addClass("sort_asc"),i.sord("ASC")):(r.removeClass("sort_none"),r.siblings("[data-property]").each(function(n,t){$(t).removeClass("sort_asc").removeClass("sort_desc").addClass("sort_none")}),i.sord()=="ASC"?r.addClass("sort_asc"):r.addClass("sort_desc"),i.sidx(u))};i.bind=function(){var n=$(i.containerId);n.length>0?(ko.applyBindings(i,n[0]),i.ajaxLoad(),n.removeClass("hidden")):console.error("VAULT [vault.grid]: Invalid container id: "+i.containerId)};i.ajaxLoad=function(){$(i.containerId).length!=0&&(vault.grid.blockedUI?vault.grid.queue.push(i):(vault.grid.blockedUI=!0,$.blockUI({message:$(".vault-grid-loader"),css:{top:($(window).height()-64)/2+"px",left:($(window).width()-64)/2+"px",width:"64px",border:"none",backgroundColor:"transparent",opacity:"1",cursor:"wait"},onBlock:function(){r()},onUnblock:function(){if(vault.grid.blockedUI=!1,vault.grid.queue.length>0){var n=vault.grid.queue.shift();n.ajaxLoad()}}})))};i.init()}if(typeof ko=="undefined"){console.error("VAULT [vault.grid]: 'knockoutjs' plugin is not referenced.");return}if(typeof $.blockUI=="undefined"){console.error("VAULT [vault.grid]: 'jQuery.BlockUI' plugin is not referenced.");return}var n=this;n.blockedUI=!1;n.queue=[];$.blockUI.defaults.overlayCSS.opacity=0;vault.config.grid=new function(){this.sord="ASC";this.pageSizes=[5,10,20,50];this.pageSize=10;this.page=1;this.formId="gridSearchForm";this.method="POST";this.autoBind=!0};n.create=function(n){var t=new i(n);return t.autoBind&&t.bind(),t};n.loadGridByName=function(n){var t=vault.convertToFunctionObject(n);if(!t){console.error("VAULT [vault.grid]: grid '"+n+"' is not defined.");return}t.ajaxLoad()};n.init=function(t){t||(t={});var i=$("body"),r=vault.makeIdSelector(vault.config.grid.formId);i.on("submit","form"+r+", form[data-grid-form]",function(n){n.preventDefault()});if(!t.ignoreGridReload){i.on("switchChange.bootstrapSwitch","form[data-grid-form] input[data-bootswitch]",function(){var t=$(this).closest("form[data-grid-form]").data("grid-form");n.loadGridByName(t)});i.on("change","[data-grid-reload]",function(){var t=$(this).attr("data-grid-reload");n.loadGridByName(t)});i.on("change","form[data-grid-form] input, form[data-grid-form] select",function(){var t=$(this),i;typeof t.data("date")=="undefined"&&(i=t.closest("form[data-grid-form]").data("grid-form"),n.loadGridByName(i))});i.on("changeDate","form[data-grid-form] input[data-date]",function(){var t=$(this).closest("form[data-grid-form]").data("grid-form");n.loadGridByName(t)});i.on("click",".vault-grid-search-bar > span.input-group-addon",function(){var n=$(this).parent(),t=n.find("input");t.trigger("change")})}}};vault.modal=new function(){var n=this,i;vault.config.modal=new function(){this.unsavedDataNoticeMessage="Your data has not been saved yet, are you sure that you want to quit?";this.unsavedDataNoticeTitle="Unsaved data!"};var r=function(n){var i=$(this),t=i.find("form[data-prevent-close]").first(),r=t.serializeToObject(),u=!1;return $.each(r,function(i){if(n.data.initialFormValues[i]!=r[i]){var f=t.find("[name='"+i+"']");t.find("[name='"+i+"'][data-prevent-ignore]").length==0&&(u=!0)}}),u&&Boolean.parse(t.data("allow-close"))!=!0?(bootbox.dialog({message:vault.config.modal.unsavedDataNoticeMessage,title:vault.config.modal.unsavedDataNoticeTitle,closeButton:!0,buttons:{yes:{label:vault.config.bootbox.yesButtonLabel,className:vault.config.bootbox.yesButtonClasses,callback:function(){t.data("allow-close",!0);i.modal("hide")}},close:{label:vault.config.bootbox.noButtonLabel,className:vault.config.bootbox.noButtonClasses}}}),!1):void 0},t=function(n){var i=$(this),r;i.off("hidden.bs.modal",t);vault.batchExecuteFunctions(n.data.afterClose);r=i.parent();r.remove()},u=function(){var n=$("form[data-prevent-close]").first();n.length>0&&Boolean.parse(n.data("snapshot-created"))!=!0&&n.saveInitialValues()};$.fn.saveInitialValues=function(){var n=$(this),t=n.closest(".modal"),i;if(t.length>0){i=n.serializeToObject();t.off("hide.bs.modal",r);t.on("hide.bs.modal",{initialFormValues:i},r);n.data("snapshot-created",!0)}};i=function(n){var t=$(this);clearTimeout(n.data.timer);n.data.timer=setTimeout(function(){t.find(".input-validation-error").qtip("reposition");t.find("[data-hasqtip]").qtip("reposition");t.find("input[data-date]").datepicker("place");t.find("[data-datetimepicker]").each(function(){$(this).data("DateTimePicker").place()})},50)};$.fn.reload=function(){var n=$(this),t=n.data("modal-src");n.on("hidden.bs.modal",{url:t},function(n){vault.modal.openUrl(n.data.url)});n.modal("hide")};$.fn.applyScrollingFix=function(){var n=$(this),t;n.off("scroll",i);n.on("scroll",{timer:t},i)};n.open=function(n){var u=n.container,t=n.url,f=n.method,i,r;n.beforeOpen&&(i=n.beforeOpen);n.afterClose&&(r=n.afterClose);$.ajax({url:t,type:f,cache:!1,success:function(n){vault.batchExecuteFunctions(i);vault.modal.openInContainer(u,n,r,t)},complete:function(){$("body").enableButtons()}})};n.openUrl=function(t,i,r){var f=$("body"),e,u;f.disableButtons();e=document.createElement("span");u=$(e);f.append(u);(typeof r=="undefined"||r===null)&&(r=[]);r.container=u;r.url=t;r.method=i?i:vault.config.ajax.method;n.open(r)};n.openInContainer=function(n,i,r,u){n.html(i);var f=n.find(".modal");u&&f.data("modal-src",u);f.modal("show");f.off("hidden.bs.modal",t);f.on("hidden.bs.modal",{afterClose:r},t)};n.init=function(t){t||(t={});var i=$("body");if(!t.ignoreOpenInPopup)i.on("click","[data-modal-open]",function(t){var r;t.preventDefault();i.disableButtons();var u=$(this),f=u.vaultConfig("ajax","method"),e=u.attr("href"),o=document.createElement("span");$container=$(o);i.append($container);r=[];r.beforeOpen=vault.convertToFunctionsArray(u.data("modal-before-open"));r.afterClose=vault.convertToFunctionsArray(u.data("modal-after-close"));r.container=$container;r.url=e;r.method=f;n.open(r)});t.ignorePreventClose||$(document).ajaxStop(u);i.on("show.bs.modal",".modal",function(){var n=$(this);n.attachValidator();setTimeout(function(){n.applyScrollingFix()},500)});i.find("[data-modal-open].cloak").each(function(){var n=$(this);n.removeClass("cloak")});i.on("hide.bs.modal",".modal",function(){$("body").find(".modal").each(function(n,t){var i=$(t);i.css({"overflow-y":"auto"})})})}};vault.bootbox=new function(){var n=this,t;vault.config.bootbox=new function(){this.saveSuccessDialogTitle="Data saved!";this.saveSuccessDialogMessage="Data has been successfully saved.";this.deleteConfirmationDialogTitle="Delete confirmation.";this.deleteConfirmationDialogMessage="Are you sure that you want to permanently delete this selected element.";this.okButtonLabel="OK";this.okButtonClasses="btn-info btn-dialog btn-ok";this.yesButtonLabel="Yes";this.yesButtonClasses="btn-success btn-dialog btn-yes";this.noButtonLabel="No";this.noButtonClasses="btn-warning btn-dialog btn-no";this.errorDialogTitle="Error!";this.infoDialogTitle="Information!";this.warningDialogTitle="Warning!";this.confirmDialogTitle="Confirm action!";this.confirmDialogMessage="Please confirm that you want to continue with the action."};t=function(n){if(n.$modal){var t=n.$modal,r=t.parent(),i=t.find("form[data-prevent-close]");i.length>0&&i.first().data("allow-close",!0);t.modal("hide")}n.callback&&n.callback(n)};n.showErrorDialog=function(n){bootbox.dialog({message:n,title:vault.config.bootbox.errorDialogTitle,closeButton:!0,buttons:{close:{label:vault.config.bootbox.okButtonLabel,className:vault.config.bootbox.okButtonClasses}}})};n.showSaveSuccessDialog=function(n){n||(n={});bootbox.dialog({message:n.message?n.message:vault.config.bootbox.saveSuccessDialogMessage,title:n.title?n.title:vault.config.bootbox.saveSuccessDialogTitle,closeButton:!0,buttons:{close:{label:n.buttonLabel?n.buttonLabel:vault.config.bootbox.okButtonLabel,className:n.buttonClasses?n.buttonClasses:vault.config.bootbox.okButtonClasses,callback:function(){t(n)}}},onEscape:function(){t(n)}})};n.showDeleteConfirmationDialog=function(n,t){bootbox.dialog({message:n.$anchor.vaultConfig("bootbox","deleteConfirmationDialogMessage"),title:n.$anchor.vaultConfig("bootbox","deleteConfirmationDialogTitle"),closeButton:!0,buttons:{yes:{label:n.$anchor.vaultConfig("bootbox","yesButtonLabel"),className:n.$anchor.vaultConfig("bootbox","yesButtonClasses"),callback:function(){t(n)}},no:{label:n.$anchor.vaultConfig("bootbox","noButtonLabel"),className:n.$anchor.vaultConfig("bootbox","noButtonClasses")}}})};n.showInfoDialog=function(n,t){bootbox.dialog({message:n,title:vault.config.bootbox.infoDialogTitle,closeButton:!0,buttons:{close:{label:vault.config.bootbox.okButtonLabel,className:vault.config.bootbox.okButtonClasses,callback:function(){typeof t!="undefined"&&t()}}}})};n.showWarningDialog=function(n,t){bootbox.dialog({message:n,title:vault.config.bootbox.warningDialogTitle,closeButton:!0,buttons:{close:{label:vault.config.bootbox.okButtonLabel,className:vault.config.bootbox.okButtonClasses,callback:function(){typeof t!="undefined"&&t()}}}})};n.showConfirmDialog=function(n,t,i){i||(i={});bootbox.dialog({message:i.confirmDialogMessage?i.confirmDialogMessage:vault.config.bootbox.confirmDialogMessage,title:i.confirmDialogTitle?i.confirmDialogTitle:vault.config.bootbox.confirmDialogTitle,buttons:{yes:{label:i.yesButtonLabel?i.yesButtonLabel:vault.config.bootbox.yesButtonLabel,className:i.yesButtonClasses?i.yesButtonClasses:vault.config.bootbox.yesButtonClasses,callback:function(){n(t)}},no:{label:i.noButtonLabel?i.noButtonLabel:vault.config.bootbox.noButtonLabel,className:i.noButtonClasses?i.noButtonClasses:vault.config.bootbox.noButtonClasses}}})}};vault.ko=new function(){var n=this;if(typeof ko=="undefined"){console.error("VAULT [vault.ko]: 'knockoutjs' plugin is undefined.");return}n.init=function(){ko.bindingHandlers.radioChecked={init:function(n,t,i,r,u){var f=t(),e=function(){return{change:function(){f(n.value)}}};ko.bindingHandlers.event.init(n,e,i,r,u)}};typeof moment!="undefined"&&(ko.bindingHandlers.dateString={update:function(n,t,i){var f=t(),r=ko.utils.unwrapObservable(f),u;r?(u=i.get("datePattern")||"DD.MM.YYYY",$(n).text(moment(r).format(u))):$(n).text("")}});typeof $.fn.qtip!="undefined"&&(ko.bindingHandlers.qtip={update:function(n,t,i){var r=!1,u,f,e;i.has("visible")&&(u=ko.utils.unwrapObservable(i.get("visible")),u||(r=!0));!r&&i.has("enable")&&(f=ko.utils.unwrapObservable(i.get("enable")),f||(r=!0));!r&&i.has("disable")&&(e=ko.utils.unwrapObservable(i.get("disable")),e&&(r=!0));r&&$(n).find("[data-hasqtip]").addBack("[data-hasqtip]").each(function(n,t){$(t).qtip("destroy",!0)})}});typeof $.fn.select2!="undefined"&&(ko.bindingHandlers.select2={init:function(n,t){var i=t();ko.utils.domNodeDisposal.addDisposeCallback(n,function(){$(n).select2("destroy")})},update:function(n,t,i){if(i.has("value")){var r=ko.utils.unwrapObservable(i.get("value"));$(n).trigger("change")}}})}};vault.date=new function(){var n=this;vault.config.date=new function(){this.format="dd.mm.yyyy";this.autoClose=!0};$.fn.initDefaultDatePicker=function(){var n=$(this);n.datepicker({format:n.vaultConfig("date","format"),autoclose:n.vaultConfig("date","autoClose")})};$.fn.initDatePickers=function(){var n=$(this),t=n.find("input[data-date]");t.each(function(n,t){var i=$(t);i.initDefaultDatePicker();i.on("show.bs.modal",function(n){n.stopPropagation()});i.on("hide.bs.modal",function(n){n.stopPropagation()});if(i.data("date-child"))i.on("changeDate",function(n){var t=$(this),i=new Date(n.date);$(vault.makeIdSelector(t.data("date-child"))).datepicker("setDate",n.date).datepicker("update");$(vault.makeIdSelector(t.data("date-child"))).datepicker("setStartDate",i)})})};n.init=function(n){n||(n={});var t=$("body");t.initDatePickers();t.on("click","input[data-date]+span",function(){$(this).siblings("input").focus()});if(n.disableMoment||$.validator.addMethod("date",function(n,t){if(n&&n!=null&&n==""){var i=$(t).vaultConfig("date","format");return moment(n,i).isValid()}return!0}),!n.ignoreModals)t.on("show.bs.modal",".modal",function(){var n=$(this);n.initDatePickers()});if(!n.ignoreAjaxViews)t.on("ajax.view.loaded","[data-ajax-container]",function(){var n=$(this);n.initDatePickers()})}};vault.time=new function(){var n=this;vault.config.time=new function(){this.format="HH:mm:ss"};$.fn.initTimePicker=function(){var n=$(this);n.datetimepicker({pickDate:!1,pickTime:!0,format:n.vaultConfig("time","format")})};$.fn.initTimePickers=function(){var n=$(this),t=n.find("[data-time]");t.each(function(n,t){var i=$(t);i.initTimePicker();i.on("show.bs.modal",function(n){n.stopPropagation()});i.on("hide.bs.modal",function(n){n.stopPropagation()})})};n.init=function(n){n||(n={});var t=$("body");if(t.initTimePickers(),!n.ignoreModals)t.on("show.bs.modal",".modal",function(){var n=$(this);n.initTimePickers()});if(!n.ignoreAjaxViews)t.on("ajax.view.loaded","[data-ajax-container]",function(){var n=$(this);n.initTimePickers()})}};vault.datetime=new function(){var n=this;vault.config.datetime=new function(){this.format="DD.MM.YYYY HH:mm"};$.fn.initDateTimePicker=function(){var n=$(this);n.datetimepicker({pickDate:!0,pickTime:!0,format:n.vaultConfig("datetime","format"),autoclose:!0})};$.fn.initDateTimePickers=function(){var n=$(this),t=n.find("[data-datetime]");t.each(function(n,t){console.log(t);var i=$(t);i.initDateTimePicker()})};n.init=function(n){n||(n={});var t=$("body");t.initDateTimePickers();t.on("click","[data-datetime] span",function(){$(this).siblings("input").focus()});t.on("click","[data-datetime] input",function(){$(this).siblings("input").blur();$(this).siblings("input").focus()});if(!n.ignoreModals)t.on("show.bs.modal",".modal",function(){var n=$(this);n.initDateTimePickers()});if(!n.ignoreAjaxViews)t.on("ajax.view.loaded","[data-ajax-container]",function(){var n=$(this);n.initDateTimePickers()})}};vault.defaultMenu=new function(){var n=this;$.fn.expandMenuByUrl=function(n,t){var r=$(this),i=r.find("[href='"+n+"']"),u;if(i.length==0){console.error("[vault.menu] Menu does not contain item with URL '"+n+"'.");return}i.data("ajax-view")!=undefined&&t&&i.trigger("click");i.hasClass("active")||i.addClass("active");i.addClass("keep");u=i.parents(".list-group");u.each(function(n,t){var i=$(t);i.prev("a").addClass("keep");i.hasClass("in")||(i.collapse("show"),i.prev("a").addClass("active"))});r.clearActiveItems(0)};$.fn.clearActiveItems=function(n){var t=$(this),i=t.find(".active").not(".keep");return i.each(function(t,i){var r=$(i),u=parseInt(r.data("menu-level"));r.hasClass("expandable")?u>=n&&(r.next("div").collapse("hide"),r.removeClass("active")):r.removeClass("active")}),t.find(".keep").removeClass("keep"),t};n.init=function(){$("body").on("click",".expandable",function(n){n.preventDefault();var t=$(this),r=t.closest(".default-menu"),i=parseInt(t.data("menu-level"));t.hasClass("active")?(t.clearActiveItems(i),t.next("div").collapse("hide"),t.removeClass("active")):(r.clearActiveItems(i),t.next("div").collapse("show"),t.addClass("active"))});$("body").on("click","[data-ajax-view]",function(){var n=$(this),t=n.closest(".default-menu");t.length>0&&t.expandMenuByUrl(n.attr("href"))})}};vault.bootswitch=new function(){var n=this;vault.config.bootswitch=new function(){this.onColor="primary";this.offColor="default";this.onText="ON";this.offText="OFF";this.animate=!0};$.fn.initBootstrapSwitches=function(){$(this).find("[data-bootswitch]").each(function(){$(this).bootstrapSwitch(vault.config.bootswitch)})};n.init=function(n){n||(n={});var t=$("body");if(t.initBootstrapSwitches(),!n.ignoreModals)t.on("show.bs.modal",".modal",function(){var n=$(this);n.initBootstrapSwitches()});if(!n.ignoreAjaxViews)t.on("ajax.view.loaded","[data-ajax-container]",function(){var n=$(this);n.initBootstrapSwitches()})}};vault.print=new function(){var n=this;vault.config.print=new function(){};n.init=function(n){if(n||(n={}),!n.ignorePrintButtons)$("body").on("click",".btn-print",function(){$printTarget=$(vault.makeIdSelector($(this).data("print-target")));$printTarget.printThis()})}};vault.wizard=new function(){function t(n){function i(){var n=t.$container.find(".wizard-step-content");n.addClass("hidden");n.eq(t.currentStep()).removeClass("hidden")}if(!n){console.error("VAULT [vault.wizard]: 'config' is undefined.");return}if(!n.containerId){console.error("VAULT [vault.wizard]: 'config.containerId' is undefined.");return}if(!n.steps){console.error("VAULT [vault.wizard]: 'config.steps' is undefined.");return}if(!(n.steps instanceof Array)){console.error("VAULT [vault.wizard]: 'config.steps' is must be array of strings.");return}var t=this;if(t.firstStep=typeof n.firstStep!="undefined"?n.firstStep:vault.config.wizard.firstStep,t.currentStep=ko.observable(t.firstStep),t.steps=n.steps,t.$container=$(vault.makeIdSelector(n.containerId)),t.$container.size==0){console.error("VAULT [vault.wizard]: No DOM element was found with ID: "+n.containerId);return}return t.next=function(){t.currentStep()<t.steps.length-1&&(t.currentStep(t.currentStep()+1),i())},t.prev=function(){t.currentStep()>0&&(t.currentStep(t.currentStep()-1),i())},i(),t}if(typeof ko=="undefined"){console.error("VAULT [vault.wizard]: 'knockoutjs' plugin is not referenced.");return}var n=this;vault.config.wizard=new function(){this.firstStep=0};n.create=function(n){var i=new t(n);return ko.applyBindings(i,i.$container[0]),i.$container.removeClass("hidden"),i};n.init=function(n){n||(n={})}}