/*! jQuery Validation Plugin - v1.14.0 - 6/30/2015
 * http://jqueryvalidation.org/
 * Copyright (c) 2015 Jörn Zaefferer; Licensed MIT */
!function(a){"function"==typeof define&&define.amd?define(["jquery"],a):a(jQuery)}(function(a){a.extend(a.fn,{validate:function(b){if(!this.length)return void(b&&b.debug&&window.console&&console.warn("Nothing selected, can't validate, returning nothing."));var c=a.data(this[0],"validator");return c?c:(this.attr("novalidate","novalidate"),c=new a.validator(b,this[0]),a.data(this[0],"validator",c),c.settings.onsubmit&&(this.on("click.validate",":submit",function(b){c.settings.submitHandler&&(c.submitButton=b.target),a(this).hasClass("cancel")&&(c.cancelSubmit=!0),void 0!==a(this).attr("formnovalidate")&&(c.cancelSubmit=!0)}),this.on("submit.validate",function(b){function d(){var d,e;return c.settings.submitHandler?(c.submitButton&&(d=a("<input type='hidden'/>").attr("name",c.submitButton.name).val(a(c.submitButton).val()).appendTo(c.currentForm)),e=c.settings.submitHandler.call(c,c.currentForm,b),c.submitButton&&d.remove(),void 0!==e?e:!1):!0}return c.settings.debug&&b.preventDefault(),c.cancelSubmit?(c.cancelSubmit=!1,d()):c.form()?c.pendingRequest?(c.formSubmitted=!0,!1):d():(c.focusInvalid(),!1)})),c)},valid:function(){var b,c,d;return a(this[0]).is("form")?b=this.validate().form():(d=[],b=!0,c=a(this[0].form).validate(),this.each(function(){b=c.element(this)&&b,d=d.concat(c.errorList)}),c.errorList=d),b},rules:function(b,c){var d,e,f,g,h,i,j=this[0];if(b)switch(d=a.data(j.form,"validator").settings,e=d.rules,f=a.validator.staticRules(j),b){case"add":a.extend(f,a.validator.normalizeRule(c)),delete f.messages,e[j.name]=f,c.messages&&(d.messages[j.name]=a.extend(d.messages[j.name],c.messages));break;case"remove":return c?(i={},a.each(c.split(/\s/),function(b,c){i[c]=f[c],delete f[c],"required"===c&&a(j).removeAttr("aria-required")}),i):(delete e[j.name],f)}return g=a.validator.normalizeRules(a.extend({},a.validator.classRules(j),a.validator.attributeRules(j),a.validator.dataRules(j),a.validator.staticRules(j)),j),g.required&&(h=g.required,delete g.required,g=a.extend({required:h},g),a(j).attr("aria-required","true")),g.remote&&(h=g.remote,delete g.remote,g=a.extend(g,{remote:h})),g}}),a.extend(a.expr[":"],{blank:function(b){return!a.trim(""+a(b).val())},filled:function(b){return!!a.trim(""+a(b).val())},unchecked:function(b){return!a(b).prop("checked")}}),a.validator=function(b,c){this.settings=a.extend(!0,{},a.validator.defaults,b),this.currentForm=c,this.init()},a.validator.format=function(b,c){return 1===arguments.length?function(){var c=a.makeArray(arguments);return c.unshift(b),a.validator.format.apply(this,c)}:(arguments.length>2&&c.constructor!==Array&&(c=a.makeArray(arguments).slice(1)),c.constructor!==Array&&(c=[c]),a.each(c,function(a,c){b=b.replace(new RegExp("\\{"+a+"\\}","g"),function(){return c})}),b)},a.extend(a.validator,{defaults:{messages:{},groups:{},rules:{},errorClass:"error",validClass:"valid",errorElement:"em",focusCleanup:!1,focusInvalid:!0,errorContainer:a([]),errorLabelContainer:a([]),onsubmit:!0,ignore:":hidden",ignoreTitle:!1,onfocusin:function(a){this.lastActive=a,this.settings.focusCleanup&&(this.settings.unhighlight&&this.settings.unhighlight.call(this,a,this.settings.errorClass,this.settings.validClass),this.hideThese(this.errorsFor(a)))},onfocusout:function(a){this.checkable(a)||!(a.name in this.submitted)&&this.optional(a)||this.element(a)},onkeyup:function(b,c){var d=[16,17,18,20,35,36,37,38,39,40,45,144,225];9===c.which&&""===this.elementValue(b)||-1!==a.inArray(c.keyCode,d)||(b.name in this.submitted||b===this.lastElement)&&this.element(b)},onclick:function(a){a.name in this.submitted?this.element(a):a.parentNode.name in this.submitted&&this.element(a.parentNode)},highlight:function(b,c,d){"radio"===b.type?this.findByName(b.name).addClass(c).removeClass(d):a(b).addClass(c).removeClass(d)},unhighlight:function(b,c,d){"radio"===b.type?this.findByName(b.name).removeClass(c).addClass(d):a(b).removeClass(c).addClass(d)}},setDefaults:function(b){a.extend(a.validator.defaults,b)},messages:{required:"This field is required.",remote:"Please fix this field.",email:"Please enter a valid email address.",url:"Please enter a valid URL.",date:"Please enter a valid date.",dateISO:"Please enter a valid date ( ISO ).",number:"Please enter a valid number.",digits:"Please enter only digits.",creditcard:"Please enter a valid credit card number.",equalTo:"Please enter the same value again.",maxlength:a.validator.format("Please enter no more than {0} characters."),minlength:a.validator.format("Please enter at least {0} characters."),rangelength:a.validator.format("Please enter a value between {0} and {1} characters long."),range:a.validator.format("Please enter a value between {0} and {1}."),max:a.validator.format("Please enter a value less than or equal to {0}."),min:a.validator.format("Please enter a value greater than or equal to {0}.")},autoCreateRanges:!1,prototype:{init:function(){function b(b){var c=a.data(this.form,"validator"),d="on"+b.type.replace(/^validate/,""),e=c.settings;e[d]&&!a(this).is(e.ignore)&&e[d].call(c,this,b)}this.labelContainer=a(this.settings.errorLabelContainer),this.errorContext=this.labelContainer.length&&this.labelContainer||a(this.currentForm),this.containers=a(this.settings.errorContainer).add(this.settings.errorLabelContainer),this.submitted={},this.valueCache={},this.pendingRequest=0,this.pending={},this.invalid={},this.reset();var c,d=this.groups={};a.each(this.settings.groups,function(b,c){"string"==typeof c&&(c=c.split(/\s/)),a.each(c,function(a,c){d[c]=b})}),c=this.settings.rules,a.each(c,function(b,d){c[b]=a.validator.normalizeRule(d)}),a(this.currentForm).on("focusin.validate focusout.validate keyup.validate",":text, [type='password'], [type='file'], select, textarea, [type='number'], [type='search'], [type='tel'], [type='url'], [type='email'], [type='datetime'], [type='date'], [type='month'], [type='week'], [type='time'], [type='datetime-local'], [type='range'], [type='color'], [type='radio'], [type='checkbox']",b).on("click.validate","select, option, [type='radio'], [type='checkbox']",b),this.settings.invalidHandler&&a(this.currentForm).on("invalid-form.validate",this.settings.invalidHandler),a(this.currentForm).find("[required], [data-rule-required], .required").attr("aria-required","true")},form:function(){return this.checkForm(),a.extend(this.submitted,this.errorMap),this.invalid=a.extend({},this.errorMap),this.valid()||a(this.currentForm).triggerHandler("invalid-form",[this]),this.showErrors(),this.valid()},checkForm:function(){this.prepareForm();for(var a=0,b=this.currentElements=this.elements();b[a];a++)this.check(b[a]);return this.valid()},element:function(b){var c=this.clean(b),d=this.validationTargetFor(c),e=!0;return this.lastElement=d,void 0===d?delete this.invalid[c.name]:(this.prepareElement(d),this.currentElements=a(d),e=this.check(d)!==!1,e?delete this.invalid[d.name]:this.invalid[d.name]=!0),a(b).attr("aria-invalid",!e),this.numberOfInvalids()||(this.toHide=this.toHide.add(this.containers)),this.showErrors(),e},showErrors:function(b){if(b){a.extend(this.errorMap,b),this.errorList=[];for(var c in b)this.errorList.push({message:b[c],element:this.findByName(c)[0]});this.successList=a.grep(this.successList,function(a){return!(a.name in b)})}this.settings.showErrors?this.settings.showErrors.call(this,this.errorMap,this.errorList):this.defaultShowErrors()},resetForm:function(){a.fn.resetForm&&a(this.currentForm).resetForm(),this.submitted={},this.lastElement=null,this.prepareForm(),this.hideErrors();var b,c=this.elements().removeData("previousValue").removeAttr("aria-invalid");if(this.settings.unhighlight)for(b=0;c[b];b++)this.settings.unhighlight.call(this,c[b],this.settings.errorClass,"");else c.removeClass(this.settings.errorClass)},numberOfInvalids:function(){return this.objectLength(this.invalid)},objectLength:function(a){var b,c=0;for(b in a)c++;return c},hideErrors:function(){this.hideThese(this.toHide)},hideThese:function(a){a.not(this.containers).text(""),this.addWrapper(a).hide()},valid:function(){return 0===this.size()},size:function(){return this.errorList.length},focusInvalid:function(){if(this.settings.focusInvalid)try{a(this.findLastActive()||this.errorList.length&&this.errorList[0].element||[]).filter(":visible").focus().trigger("focusin")}catch(b){}},findLastActive:function(){var b=this.lastActive;return b&&1===a.grep(this.errorList,function(a){return a.element.name===b.name}).length&&b},elements:function(){var b=this,c={};return a(this.currentForm).find("input, select, textarea").not(":submit, :reset, :image, :disabled").not(this.settings.ignore).filter(function(){return!this.name&&b.settings.debug&&window.console&&console.error("%o has no name assigned",this),this.name in c||!b.objectLength(a(this).rules())?!1:(c[this.name]=!0,!0)})},clean:function(b){return a(b)[0]},errors:function(){var b=this.settings.errorClass.split(" ").join(".");return a(this.settings.errorElement+"."+b,this.errorContext)},reset:function(){this.successList=[],this.errorList=[],this.errorMap={},this.toShow=a([]),this.toHide=a([]),this.currentElements=a([])},prepareForm:function(){this.reset(),this.toHide=this.errors().add(this.containers)},prepareElement:function(a){this.reset(),this.toHide=this.errorsFor(a)},elementValue:function(b){var c,d=a(b),e=b.type;return"radio"===e||"checkbox"===e?this.findByName(b.name).filter(":checked").val():"number"===e&&"undefined"!=typeof b.validity?b.validity.badInput?!1:d.val():(c=d.val(),"string"==typeof c?c.replace(/\r/g,""):c)},check:function(b){b=this.validationTargetFor(this.clean(b));var c,d,e,f=a(b).rules(),g=a.map(f,function(a,b){return b}).length,h=!1,i=this.elementValue(b);for(d in f){e={method:d,parameters:f[d]};try{if(c=a.validator.methods[d].call(this,i,b,e.parameters),"dependency-mismatch"===c&&1===g){h=!0;continue}if(h=!1,"pending"===c)return void(this.toHide=this.toHide.not(this.errorsFor(b)));if(!c)return this.formatAndAdd(b,e),!1}catch(j){throw this.settings.debug&&window.console&&console.log("Exception occurred when checking element "+b.id+", check the '"+e.method+"' method.",j),j instanceof TypeError&&(j.message+=".  Exception occurred when checking element "+b.id+", check the '"+e.method+"' method."),j}}if(!h)return this.objectLength(f)&&this.successList.push(b),!0},customDataMessage:function(b,c){return a(b).data("msg"+c.charAt(0).toUpperCase()+c.substring(1).toLowerCase())||a(b).data("msg")},customMessage:function(a,b){var c=this.settings.messages[a];return c&&(c.constructor===String?c:c[b])},findDefined:function(){for(var a=0;a<arguments.length;a++)if(void 0!==arguments[a])return arguments[a];return void 0},defaultMessage:function(b,c){return this.findDefined(this.customMessage(b.name,c),this.customDataMessage(b,c),!this.settings.ignoreTitle&&b.title||void 0,a.validator.messages[c],"<strong>Warning: No message defined for "+b.name+"</strong>")},formatAndAdd:function(b,c){var d=this.defaultMessage(b,c.method),e=/\$?\{(\d+)\}/g;"function"==typeof d?d=d.call(this,c.parameters,b):e.test(d)&&(d=a.validator.format(d.replace(e,"{$1}"),c.parameters)),this.errorList.push({message:d,element:b,method:c.method}),this.errorMap[b.name]=d,this.submitted[b.name]=d},addWrapper:function(a){return this.settings.wrapper&&(a=a.add(a.parent(this.settings.wrapper))),a},defaultShowErrors:function(){var a,b,c;for(a=0;this.errorList[a];a++)c=this.errorList[a],this.settings.highlight&&this.settings.highlight.call(this,c.element,this.settings.errorClass,this.settings.validClass),this.showLabel(c.element,c.message);if(this.errorList.length&&(this.toShow=this.toShow.add(this.containers)),this.settings.success)for(a=0;this.successList[a];a++)this.showLabel(this.successList[a]);if(this.settings.unhighlight)for(a=0,b=this.validElements();b[a];a++)this.settings.unhighlight.call(this,b[a],this.settings.errorClass,this.settings.validClass);this.toHide=this.toHide.not(this.toShow),this.hideErrors(),this.addWrapper(this.toShow).show()},validElements:function(){return this.currentElements.not(this.invalidElements())},invalidElements:function(){return a(this.errorList).map(function(){return this.element})},showLabel:function(b,c){var d,e,f,g=this.errorsFor(b),h=this.idOrName(b),i=a(b).attr("aria-describedby");g.length?(g.removeClass(this.settings.validClass).addClass(this.settings.errorClass),g.html(c)):(g=a("<"+this.settings.errorElement+">").attr("id",h+"-error").addClass(this.settings.errorClass).html(c||""),d=g,this.settings.wrapper&&(d=g.hide().show().wrap("<"+this.settings.wrapper+"/>").parent()),this.labelContainer.length?this.labelContainer.append(d):this.settings.errorPlacement?this.settings.errorPlacement(d,a(b)):d.insertAfter(b),g.is("label")?g.attr("for",h):0===g.parents("label[for='"+h+"']").length&&(f=g.attr("id").replace(/(:|\.|\[|\]|\$)/g,"\\$1"),i?i.match(new RegExp("\\b"+f+"\\b"))||(i+=" "+f):i=f,a(b).attr("aria-describedby",i),e=this.groups[b.name],e&&a.each(this.groups,function(b,c){c===e&&a("[name='"+b+"']",this.currentForm).attr("aria-describedby",g.attr("id"))}))),!c&&this.settings.success&&(g.text(""),"string"==typeof this.settings.success?g.addClass(this.settings.success):this.settings.success(g,b)),this.toShow=this.toShow.add(g)},errorsFor:function(b){var c=this.idOrName(b),d=a(b).attr("aria-describedby"),e="label[for='"+c+"'], label[for='"+c+"'] *";return d&&(e=e+", #"+d.replace(/\s+/g,", #")),this.errors().filter(e)},idOrName:function(a){return this.groups[a.name]||(this.checkable(a)?a.name:a.id||a.name)},validationTargetFor:function(b){return this.checkable(b)&&(b=this.findByName(b.name)),a(b).not(this.settings.ignore)[0]},checkable:function(a){return/radio|checkbox/i.test(a.type)},findByName:function(b){return a(this.currentForm).find("[name='"+b+"']")},getLength:function(b,c){switch(c.nodeName.toLowerCase()){case"select":return a("option:selected",c).length;case"input":if(this.checkable(c))return this.findByName(c.name).filter(":checked").length}return b.length},depend:function(a,b){return this.dependTypes[typeof a]?this.dependTypes[typeof a](a,b):!0},dependTypes:{"boolean":function(a){return a},string:function(b,c){return!!a(b,c.form).length},"function":function(a,b){return a(b)}},optional:function(b){var c=this.elementValue(b);return!a.validator.methods.required.call(this,c,b)&&"dependency-mismatch"},startRequest:function(a){this.pending[a.name]||(this.pendingRequest++,this.pending[a.name]=!0)},stopRequest:function(b,c){this.pendingRequest--,this.pendingRequest<0&&(this.pendingRequest=0),delete this.pending[b.name],c&&0===this.pendingRequest&&this.formSubmitted&&this.form()?(a(this.currentForm).submit(),this.formSubmitted=!1):!c&&0===this.pendingRequest&&this.formSubmitted&&(a(this.currentForm).triggerHandler("invalid-form",[this]),this.formSubmitted=!1)},previousValue:function(b){return a.data(b,"previousValue")||a.data(b,"previousValue",{old:null,valid:!0,message:this.defaultMessage(b,"remote")})},destroy:function(){this.resetForm(),a(this.currentForm).off(".validate").removeData("validator")}},classRuleSettings:{required:{required:!0},email:{email:!0},url:{url:!0},date:{date:!0},dateISO:{dateISO:!0},number:{number:!0},digits:{digits:!0},creditcard:{creditcard:!0}},addClassRules:function(b,c){b.constructor===String?this.classRuleSettings[b]=c:a.extend(this.classRuleSettings,b)},classRules:function(b){var c={},d=a(b).attr("class");return d&&a.each(d.split(" "),function(){this in a.validator.classRuleSettings&&a.extend(c,a.validator.classRuleSettings[this])}),c},normalizeAttributeRule:function(a,b,c,d){/min|max/.test(c)&&(null===b||/number|range|text/.test(b))&&(d=Number(d),isNaN(d)&&(d=void 0)),d||0===d?a[c]=d:b===c&&"range"!==b&&(a[c]=!0)},attributeRules:function(b){var c,d,e={},f=a(b),g=b.getAttribute("type");for(c in a.validator.methods)"required"===c?(d=b.getAttribute(c),""===d&&(d=!0),d=!!d):d=f.attr(c),this.normalizeAttributeRule(e,g,c,d);return e.maxlength&&/-1|2147483647|524288/.test(e.maxlength)&&delete e.maxlength,e},dataRules:function(b){var c,d,e={},f=a(b),g=b.getAttribute("type");for(c in a.validator.methods)d=f.data("rule"+c.charAt(0).toUpperCase()+c.substring(1).toLowerCase()),this.normalizeAttributeRule(e,g,c,d);return e},staticRules:function(b){var c={},d=a.data(b.form,"validator");return d.settings.rules&&(c=a.validator.normalizeRule(d.settings.rules[b.name])||{}),c},normalizeRules:function(b,c){return a.each(b,function(d,e){if(e===!1)return void delete b[d];if(e.param||e.depends){var f=!0;switch(typeof e.depends){case"string":f=!!a(e.depends,c.form).length;break;case"function":f=e.depends.call(c,c)}f?b[d]=void 0!==e.param?e.param:!0:delete b[d]}}),a.each(b,function(d,e){b[d]=a.isFunction(e)?e(c):e}),a.each(["minlength","maxlength"],function(){b[this]&&(b[this]=Number(b[this]))}),a.each(["rangelength","range"],function(){var c;b[this]&&(a.isArray(b[this])?b[this]=[Number(b[this][0]),Number(b[this][1])]:"string"==typeof b[this]&&(c=b[this].replace(/[\[\]]/g,"").split(/[\s,]+/),b[this]=[Number(c[0]),Number(c[1])]))}),a.validator.autoCreateRanges&&(null!=b.min&&null!=b.max&&(b.range=[b.min,b.max],delete b.min,delete b.max),null!=b.minlength&&null!=b.maxlength&&(b.rangelength=[b.minlength,b.maxlength],delete b.minlength,delete b.maxlength)),b},normalizeRule:function(b){if("string"==typeof b){var c={};a.each(b.split(/\s/),function(){c[this]=!0}),b=c}return b},addMethod:function(b,c,d){a.validator.methods[b]=c,a.validator.messages[b]=void 0!==d?d:a.validator.messages[b],c.length<3&&a.validator.addClassRules(b,a.validator.normalizeRule(b))},methods:{required:function(b,c,d){if(!this.depend(d,c))return"dependency-mismatch";if("select"===c.nodeName.toLowerCase()){var e=a(c).val();return e&&e.length>0}return this.checkable(c)?this.getLength(b,c)>0:b.length>0},email:function(a,b){return this.optional(b)||/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/.test(a)},url:function(a,b){return this.optional(b)||/^(?:(?:(?:https?|ftp):)?\/\/)(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)(?:\.(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)*(?:\.(?:[a-z\u00a1-\uffff]{2,})).?)(?::\d{2,5})?(?:[/?#]\S*)?$/i.test(a)},date:function(a,b){return this.optional(b)||!/Invalid|NaN/.test(new Date(a).toString())},dateISO:function(a,b){return this.optional(b)||/^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$/.test(a)},number:function(a,b){return this.optional(b)||/^(?:-?\d+|-?\d{1,3}(?:,\d{3})+)?(?:\.\d+)?$/.test(a)},digits:function(a,b){return this.optional(b)||/^\d+$/.test(a)},creditcard:function(a,b){if(this.optional(b))return"dependency-mismatch";if(/[^0-9 \-]+/.test(a))return!1;var c,d,e=0,f=0,g=!1;if(a=a.replace(/\D/g,""),a.length<13||a.length>19)return!1;for(c=a.length-1;c>=0;c--)d=a.charAt(c),f=parseInt(d,10),g&&(f*=2)>9&&(f-=9),e+=f,g=!g;return e%10===0},minlength:function(b,c,d){var e=a.isArray(b)?b.length:this.getLength(b,c);return this.optional(c)||e>=d},maxlength:function(b,c,d){var e=a.isArray(b)?b.length:this.getLength(b,c);return this.optional(c)||d>=e},rangelength:function(b,c,d){var e=a.isArray(b)?b.length:this.getLength(b,c);return this.optional(c)||e>=d[0]&&e<=d[1]},min:function(a,b,c){return this.optional(b)||a>=c},max:function(a,b,c){return this.optional(b)||c>=a},range:function(a,b,c){return this.optional(b)||a>=c[0]&&a<=c[1]},equalTo:function(b,c,d){var e=a(d);return this.settings.onfocusout&&e.off(".validate-equalTo").on("blur.validate-equalTo",function(){a(c).valid()}),b===e.val()},remote:function(b,c,d){if(this.optional(c))return"dependency-mismatch";var e,f,g=this.previousValue(c);return this.settings.messages[c.name]||(this.settings.messages[c.name]={}),g.originalMessage=this.settings.messages[c.name].remote,this.settings.messages[c.name].remote=g.message,d="string"==typeof d&&{url:d}||d,g.old===b?g.valid:(g.old=b,e=this,this.startRequest(c),f={},f[c.name]=b,a.ajax(a.extend(!0,{mode:"abort",port:"validate"+c.name,dataType:"json",data:f,context:e.currentForm,success:function(d){var f,h,i,j=d===!0||"true"===d;e.settings.messages[c.name].remote=g.originalMessage,j?(i=e.formSubmitted,e.prepareElement(c),e.formSubmitted=i,e.successList.push(c),delete e.invalid[c.name],e.showErrors()):(f={},h=d||e.defaultMessage(c,"remote"),f[c.name]=g.message=a.isFunction(h)?h(b):h,e.invalid[c.name]=!0,e.showErrors(f)),g.valid=j,e.stopRequest(c,j)}},d)),"pending")}}});var b,c={};a.ajaxPrefilter?a.ajaxPrefilter(function(a,b,d){var e=a.port;"abort"===a.mode&&(c[e]&&c[e].abort(),c[e]=d)}):(b=a.ajax,a.ajax=function(d){var e=("mode"in d?d:a.ajaxSettings).mode,f=("port"in d?d:a.ajaxSettings).port;return"abort"===e?(c[f]&&c[f].abort(),c[f]=b.apply(this,arguments),c[f]):b.apply(this,arguments)})});

!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):t.Sweetalert2=e()}(this,function(){"use strict";function V(t){return(V="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function a(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function r(t,e){for(var n=0;n<e.length;n++){var o=e[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}function s(){return(s=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(t[o]=n[o])}return t}).apply(this,arguments)}function c(t){return(c=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}function u(t,e){return(u=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function o(t,e,n){return(o=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch(t){return!1}}()?Reflect.construct:function(t,e,n){var o=[null];o.push.apply(o,e);var i=new(Function.bind.apply(t,o));return n&&u(i,n.prototype),i}).apply(null,arguments)}function l(t,e){return!e||"object"!=typeof e&&"function"!=typeof e?function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t):e}function d(t,e,n){return(d="undefined"!=typeof Reflect&&Reflect.get?Reflect.get:function(t,e,n){var o=function(t,e){for(;!Object.prototype.hasOwnProperty.call(t,e)&&null!==(t=c(t)););return t}(t,e);if(o){var i=Object.getOwnPropertyDescriptor(o,e);return i.get?i.get.call(n):i.value}})(t,e,n||t)}var e="SweetAlert2:",p=function(t){return Array.prototype.slice.call(t)},q=function(t){console.warn("".concat(e," ").concat(t))},H=function(t){console.error("".concat(e," ").concat(t))},i=[],j=function(t){return"function"==typeof t?t():t},R=function(t){return t&&Promise.resolve(t)===t},t=Object.freeze({cancel:"cancel",backdrop:"backdrop",close:"close",esc:"esc",timer:"timer"}),n=function(t){var e={};for(var n in t)e[t[n]]="swal2-"+t[n];return e},I=n(["container","shown","height-auto","iosfix","popup","modal","no-backdrop","toast","toast-shown","toast-column","fade","show","hide","noanimation","close","title","header","content","actions","confirm","cancel","footer","icon","image","input","file","range","select","radio","checkbox","label","textarea","inputerror","validation-message","progress-steps","active-progress-step","progress-step","progress-step-line","loading","styled","top","top-start","top-end","top-left","top-right","center","center-start","center-end","center-left","center-right","bottom","bottom-start","bottom-end","bottom-left","bottom-right","grow-row","grow-column","grow-fullscreen","rtl"]),f=n(["success","warning","info","question","error"]),m={previousBodyPadding:null},g=function(t,e){return t.classList.contains(e)},N=function(t){if(t.focus(),"file"!==t.type){var e=t.value;t.value="",t.value=e}},h=function(t,e,n){t&&e&&("string"==typeof e&&(e=e.split(/\s+/).filter(Boolean)),e.forEach(function(e){t.forEach?t.forEach(function(t){n?t.classList.add(e):t.classList.remove(e)}):n?t.classList.add(e):t.classList.remove(e)}))},D=function(t,e){h(t,e,!0)},U=function(t,e){h(t,e,!1)},_=function(t,e){for(var n=0;n<t.childNodes.length;n++)if(g(t.childNodes[n],e))return t.childNodes[n]},z=function(t){t.style.opacity="",t.style.display=t.id===I.content?"block":"flex"},W=function(t){t.style.opacity="",t.style.display="none"},K=function(t){return!(!t||!(t.offsetWidth||t.offsetHeight||t.getClientRects().length))},v=function(){return document.body.querySelector("."+I.container)},b=function(t){var e=v();return e?e.querySelector(t):null},y=function(t){return b("."+t)},w=function(){return y(I.popup)},C=function(){var t=w();return p(t.querySelectorAll("."+I.icon))},k=function(){return y(I.title)},B=function(){return y(I.content)},x=function(){return y(I.image)},A=function(){return y(I["progress-steps"])},P=function(){return y(I["validation-message"])},S=function(){return b("."+I.actions+" ."+I.confirm)},L=function(){return b("."+I.actions+" ."+I.cancel)},F=function(){return y(I.actions)},Z=function(){return y(I.header)},Q=function(){return y(I.footer)},Y=function(){return y(I.close)},$=function(){var t=p(w().querySelectorAll('[tabindex]:not([tabindex="-1"]):not([tabindex="0"])')).sort(function(t,e){return t=parseInt(t.getAttribute("tabindex")),(e=parseInt(e.getAttribute("tabindex")))<t?1:t<e?-1:0}),e=p(w().querySelectorAll('a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), iframe, object, embed, [tabindex="0"], [contenteditable], audio[controls], video[controls]')).filter(function(t){return"-1"!==t.getAttribute("tabindex")});return function(t){for(var e=[],n=0;n<t.length;n++)-1===e.indexOf(t[n])&&e.push(t[n]);return e}(t.concat(e)).filter(function(t){return K(t)})},E=function(){return!T()&&!document.body.classList.contains(I["no-backdrop"])},T=function(){return document.body.classList.contains(I["toast-shown"])},O=function(){return"undefined"==typeof window||"undefined"==typeof document},M='\n <div aria-labelledby="'.concat(I.title,'" aria-describedby="').concat(I.content,'" class="').concat(I.popup,'" tabindex="-1">\n   <div class="').concat(I.header,'">\n     <ul class="').concat(I["progress-steps"],'"></ul>\n     <div class="').concat(I.icon," ").concat(f.error,'">\n       <span class="swal2-x-mark"><span class="swal2-x-mark-line-left"></span><span class="swal2-x-mark-line-right"></span></span>\n     </div>\n     <div class="').concat(I.icon," ").concat(f.question,'"></div>\n     <div class="').concat(I.icon," ").concat(f.warning,'"></div>\n     <div class="').concat(I.icon," ").concat(f.info,'"></div>\n     <div class="').concat(I.icon," ").concat(f.success,'">\n       <div class="swal2-success-circular-line-left"></div>\n       <span class="swal2-success-line-tip"></span> <span class="swal2-success-line-long"></span>\n       <div class="swal2-success-ring"></div> <div class="swal2-success-fix"></div>\n       <div class="swal2-success-circular-line-right"></div>\n     </div>\n     <img class="').concat(I.image,'" />\n     <h2 class="').concat(I.title,'" id="').concat(I.title,'"></h2>\n     <button type="button" class="').concat(I.close,'">&times;</button>\n   </div>\n   <div class="').concat(I.content,'">\n     <div id="').concat(I.content,'"></div>\n     <input class="').concat(I.input,'" />\n     <input type="file" class="').concat(I.file,'" />\n     <div class="').concat(I.range,'">\n       <input type="range" />\n       <output></output>\n     </div>\n     <select class="').concat(I.select,'"></select>\n     <div class="').concat(I.radio,'"></div>\n     <label for="').concat(I.checkbox,'" class="').concat(I.checkbox,'">\n       <input type="checkbox" />\n       <span class="').concat(I.label,'"></span>\n     </label>\n     <textarea class="').concat(I.textarea,'"></textarea>\n     <div class="').concat(I["validation-message"],'" id="').concat(I["validation-message"],'"></div>\n   </div>\n   <div class="').concat(I.actions,'">\n     <button type="button" class="').concat(I.confirm,'">OK</button>\n     <button type="button" class="').concat(I.cancel,'">Cancel</button>\n   </div>\n   <div class="').concat(I.footer,'">\n   </div>\n </div>\n').replace(/(^|\n)\s*/g,""),J=function(t){var e=v();if(e&&(e.parentNode.removeChild(e),U([document.documentElement,document.body],[I["no-backdrop"],I["toast-shown"],I["has-column"]])),!O()){var n=document.createElement("div");n.className=I.container,n.innerHTML=M;var o="string"==typeof t.target?document.querySelector(t.target):t.target;o.appendChild(n);var i,r=w(),a=B(),s=_(a,I.input),c=_(a,I.file),u=a.querySelector(".".concat(I.range," input")),l=a.querySelector(".".concat(I.range," output")),d=_(a,I.select),p=a.querySelector(".".concat(I.checkbox," input")),f=_(a,I.textarea);r.setAttribute("role",t.toast?"alert":"dialog"),r.setAttribute("aria-live",t.toast?"polite":"assertive"),t.toast||r.setAttribute("aria-modal","true"),"rtl"===window.getComputedStyle(o).direction&&D(v(),I.rtl);var m=function(t){Et.isVisible()&&i!==t.target.value&&Et.resetValidationMessage(),i=t.target.value};return s.oninput=m,c.onchange=m,d.onchange=m,p.onchange=m,f.oninput=m,u.oninput=function(t){m(t),l.value=u.value},u.onchange=function(t){m(t),u.nextSibling.value=u.value},r}H("SweetAlert2 requires document to initialize")},X=function(t,e){if(!t)return W(e);if(t instanceof HTMLElement)e.appendChild(t);else if("object"===V(t))if(e.innerHTML="",0 in t)for(var n=0;n in t;n++)e.appendChild(t[n].cloneNode(!0));else e.appendChild(t.cloneNode(!0));else t&&(e.innerHTML=t);z(e)},G=function(){if(O())return!1;var t=document.createElement("div"),e={WebkitAnimation:"webkitAnimationEnd",OAnimation:"oAnimationEnd oanimationend",animation:"animationend"};for(var n in e)if(e.hasOwnProperty(n)&&void 0!==t.style[n])return e[n];return!1}(),tt=function(t){var e=F(),n=S(),o=L();if(t.showConfirmButton||t.showCancelButton?z(e):W(e),t.showCancelButton?o.style.display="inline-block":W(o),t.showConfirmButton?n.style.removeProperty("display"):W(n),n.innerHTML=t.confirmButtonText,o.innerHTML=t.cancelButtonText,n.setAttribute("aria-label",t.confirmButtonAriaLabel),o.setAttribute("aria-label",t.cancelButtonAriaLabel),n.className=I.confirm,D(n,t.confirmButtonClass),t.customClass&&D(n,t.customClass.confirmButton),o.className=I.cancel,D(o,t.cancelButtonClass),t.customClass&&D(o,t.customClass.cancelButton),t.buttonsStyling){D([n,o],I.styled),t.confirmButtonColor&&(n.style.backgroundColor=t.confirmButtonColor),t.cancelButtonColor&&(o.style.backgroundColor=t.cancelButtonColor);var i=window.getComputedStyle(n).getPropertyValue("background-color");n.style.borderLeftColor=i,n.style.borderRightColor=i}else U([n,o],I.styled),n.style.backgroundColor=n.style.borderLeftColor=n.style.borderRightColor="",o.style.backgroundColor=o.style.borderLeftColor=o.style.borderRightColor=""},et=function(t){var e=B().querySelector("#"+I.content);t.html?X(t.html,e):t.text?(e.textContent=t.text,z(e)):W(e)},nt=function(t){for(var e=C(),n=0;n<e.length;n++)W(e[n]);if(t.type)if(-1!==Object.keys(f).indexOf(t.type)){var o=Et.getPopup().querySelector(".".concat(I.icon,".").concat(f[t.type]));z(o),t.customClass&&D(o,t.customClass.icon),t.animation&&D(o,"swal2-animate-".concat(t.type,"-icon"))}else H('Unknown type! Expected "success", "error", "warning", "info" or "question", got "'.concat(t.type,'"'))},ot=function(t){var e=x();t.imageUrl?(e.setAttribute("src",t.imageUrl),e.setAttribute("alt",t.imageAlt),z(e),t.imageWidth?e.setAttribute("width",t.imageWidth):e.removeAttribute("width"),t.imageHeight?e.setAttribute("height",t.imageHeight):e.removeAttribute("height"),e.className=I.image,t.imageClass&&D(e,t.imageClass),t.customClass&&D(e,t.customClass.image)):W(e)},it=function(i){var r=A(),a=parseInt(null===i.currentProgressStep?Et.getQueueStep():i.currentProgressStep,10);i.progressSteps&&i.progressSteps.length?(z(r),r.innerHTML="",a>=i.progressSteps.length&&q("Invalid currentProgressStep parameter, it should be less than progressSteps.length (currentProgressStep like JS arrays starts from 0)"),i.progressSteps.forEach(function(t,e){var n=document.createElement("li");if(D(n,I["progress-step"]),n.innerHTML=t,e===a&&D(n,I["active-progress-step"]),r.appendChild(n),e!==i.progressSteps.length-1){var o=document.createElement("li");D(o,I["progress-step-line"]),i.progressStepsDistance&&(o.style.width=i.progressStepsDistance),r.appendChild(o)}})):W(r)},rt=function(t){var e=k();t.titleText?e.innerText=t.titleText:t.title&&("string"==typeof t.title&&(t.title=t.title.split("\n").join("<br />")),X(t.title,e))};var at=[],st=function(){var t=w();t||Et.fire(""),t=w();var e=F(),n=S(),o=L();z(e),z(n),D([t,e],I.loading),n.disabled=!0,o.disabled=!0,t.setAttribute("data-loading",!0),t.setAttribute("aria-busy",!0),t.focus()},ct={},ut={title:"",titleText:"",text:"",html:"",footer:"",type:null,toast:!1,customClass:"",customContainerClass:"",target:"body",backdrop:!0,animation:!0,heightAuto:!0,allowOutsideClick:!0,allowEscapeKey:!0,allowEnterKey:!0,stopKeydownPropagation:!0,keydownListenerCapture:!1,showConfirmButton:!0,showCancelButton:!1,preConfirm:null,confirmButtonText:"OK",confirmButtonAriaLabel:"",confirmButtonColor:null,confirmButtonClass:"",cancelButtonText:"Cancel",cancelButtonAriaLabel:"",cancelButtonColor:null,cancelButtonClass:"",buttonsStyling:!0,reverseButtons:!1,focusConfirm:!0,focusCancel:!1,showCloseButton:!1,closeButtonAriaLabel:"Close this dialog",showLoaderOnConfirm:!1,imageUrl:null,imageWidth:null,imageHeight:null,imageAlt:"",imageClass:"",timer:null,width:null,padding:null,background:null,input:null,inputPlaceholder:"",inputValue:"",inputOptions:{},inputAutoTrim:!0,inputClass:"",inputAttributes:{},inputValidator:null,validationMessage:null,grow:!1,position:"center",progressSteps:[],currentProgressStep:null,progressStepsDistance:null,onBeforeOpen:null,onAfterClose:null,onOpen:null,onClose:null,scrollbarPadding:!0},lt={customContainerClass:"customClass",confirmButtonClass:"customClass",cancelButtonClass:"customClass",imageClass:"customClass",inputClass:"customClass"},dt=["allowOutsideClick","allowEnterKey","backdrop","focusConfirm","focusCancel","heightAuto","keydownListenerCapture"],pt=function(t){return ut.hasOwnProperty(t)},ft=function(t){return lt[t]},mt=Object.freeze({isValidParameter:pt,isUpdatableParameter:function(t){return-1!==["title","titleText","text","html","type","showConfirmButton","showCancelButton","confirmButtonText","confirmButtonAriaLabel","confirmButtonColor","confirmButtonClass","cancelButtonText","cancelButtonAriaLabel","cancelButtonColor","cancelButtonClass","buttonsStyling","reverseButtons","imageUrl","imageWidth","imageHeigth","imageAlt","imageClass","progressSteps","currentProgressStep"].indexOf(t)},isDeprecatedParameter:ft,argsToParams:function(n){var o={};switch(V(n[0])){case"object":s(o,n[0]);break;default:["title","html","type"].forEach(function(t,e){switch(V(n[e])){case"string":o[t]=n[e];break;case"undefined":break;default:H("Unexpected type of ".concat(t,'! Expected "string", got ').concat(V(n[e])))}})}return o},isVisible:function(){return K(w())},clickConfirm:function(){return S()&&S().click()},clickCancel:function(){return L()&&L().click()},getContainer:v,getPopup:w,getTitle:k,getContent:B,getImage:x,getIcon:function(){var t=C().filter(function(t){return K(t)});return t.length?t[0]:null},getIcons:C,getCloseButton:Y,getActions:F,getConfirmButton:S,getCancelButton:L,getHeader:Z,getFooter:Q,getFocusableElements:$,getValidationMessage:P,isLoading:function(){return w().hasAttribute("data-loading")},fire:function(){for(var t=arguments.length,e=new Array(t),n=0;n<t;n++)e[n]=arguments[n];return o(this,e)},mixin:function(i){return function(t){function e(){return a(this,e),l(this,c(e).apply(this,arguments))}var n,o;return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&u(t,e)}(e,t),r((n=e).prototype,[{key:"_main",value:function(t){return d(c(e.prototype),"_main",this).call(this,s({},i,t))}}]),o&&r(n,o),e}(this)},queue:function(t){var r=this;at=t;var a=function(){at=[],document.body.removeAttribute("data-swal2-queue-step")},s=[];return new Promise(function(i){!function e(n,o){n<at.length?(document.body.setAttribute("data-swal2-queue-step",n),r.fire(at[n]).then(function(t){void 0!==t.value?(s.push(t.value),e(n+1,o)):(a(),i({dismiss:t.dismiss}))})):(a(),i({value:s}))}(0)})},getQueueStep:function(){return document.body.getAttribute("data-swal2-queue-step")},insertQueueStep:function(t,e){return e&&e<at.length?at.splice(e,0,t):at.push(t)},deleteQueueStep:function(t){void 0!==at[t]&&at.splice(t,1)},showLoading:st,enableLoading:st,getTimerLeft:function(){return ct.timeout&&ct.timeout.getTimerLeft()},stopTimer:function(){return ct.timeout&&ct.timeout.stop()},resumeTimer:function(){return ct.timeout&&ct.timeout.start()},toggleTimer:function(){var t=ct.timeout;return t&&(t.running?t.stop():t.start())},increaseTimer:function(t){return ct.timeout&&ct.timeout.increase(t)},isTimerRunning:function(){return ct.timeout&&ct.timeout.isRunning()}}),gt={promise:new WeakMap,innerParams:new WeakMap,domCache:new WeakMap};function ht(){var t=gt.innerParams.get(this),e=gt.domCache.get(this);t.showConfirmButton||(W(e.confirmButton),t.showCancelButton||W(e.actions)),U([e.popup,e.actions],I.loading),e.popup.removeAttribute("aria-busy"),e.popup.removeAttribute("data-loading"),e.confirmButton.disabled=!1,e.cancelButton.disabled=!1}var vt=function(){null===m.previousBodyPadding&&document.body.scrollHeight>window.innerHeight&&(m.previousBodyPadding=parseInt(window.getComputedStyle(document.body).getPropertyValue("padding-right")),document.body.style.paddingRight=m.previousBodyPadding+function(){if("ontouchstart"in window||navigator.msMaxTouchPoints)return 0;var t=document.createElement("div");t.style.width="50px",t.style.height="50px",t.style.overflow="scroll",document.body.appendChild(t);var e=t.offsetWidth-t.clientWidth;return document.body.removeChild(t),e}()+"px")},bt=function(){return!!window.MSInputMethodContext&&!!document.documentMode},yt=function(){var t=v(),e=w();t.style.removeProperty("align-items"),e.offsetTop<0&&(t.style.alignItems="flex-start")},wt={swalPromiseResolve:new WeakMap};function Ct(t){var e=v(),n=w(),o=gt.innerParams.get(this),i=wt.swalPromiseResolve.get(this),r=o.onClose,a=o.onAfterClose;if(n){null!==r&&"function"==typeof r&&r(n),U(n,I.show),D(n,I.hide);var s=function(){T()?kt(a):(new Promise(function(t){var e=window.scrollX,n=window.scrollY;ct.restoreFocusTimeout=setTimeout(function(){ct.previousActiveElement&&ct.previousActiveElement.focus?(ct.previousActiveElement.focus(),ct.previousActiveElement=null):document.body&&document.body.focus(),t()},100),void 0!==e&&void 0!==n&&window.scrollTo(e,n)}).then(function(){return kt(a)}),ct.keydownTarget.removeEventListener("keydown",ct.keydownHandler,{capture:ct.keydownListenerCapture}),ct.keydownHandlerAdded=!1),e.parentNode&&e.parentNode.removeChild(e),U([document.documentElement,document.body],[I.shown,I["height-auto"],I["no-backdrop"],I["toast-shown"],I["toast-column"]]),E()&&(null!==m.previousBodyPadding&&(document.body.style.paddingRight=m.previousBodyPadding+"px",m.previousBodyPadding=null),function(){if(g(document.body,I.iosfix)){var t=parseInt(document.body.style.top,10);U(document.body,I.iosfix),document.body.style.top="",document.body.scrollTop=-1*t}}(),"undefined"!=typeof window&&bt()&&window.removeEventListener("resize",yt),p(document.body.children).forEach(function(t){t.hasAttribute("data-previous-aria-hidden")?(t.setAttribute("aria-hidden",t.getAttribute("data-previous-aria-hidden")),t.removeAttribute("data-previous-aria-hidden")):t.removeAttribute("aria-hidden")}))};G&&!g(n,I.noanimation)?n.addEventListener(G,function t(){n.removeEventListener(G,t),g(n,I.hide)&&s()}):s(),i(t||{})}}var kt=function(t){null!==t&&"function"==typeof t&&setTimeout(function(){t()})};var Bt=function t(e,n){a(this,t);var o,i,r=n;this.running=!1,this.start=function(){return this.running||(this.running=!0,i=new Date,o=setTimeout(e,r)),r},this.stop=function(){return this.running&&(this.running=!1,clearTimeout(o),r-=new Date-i),r},this.increase=function(t){var e=this.running;return e&&this.stop(),r+=t,e&&this.start(),r},this.getTimerLeft=function(){return this.running&&(this.stop(),this.start()),r},this.isRunning=function(){return this.running},this.start()},xt={email:function(t,e){return/^[a-zA-Z0-9.+_-]+@[a-zA-Z0-9.-]+\.[a-zA-Z0-9-]{2,24}$/.test(t)?Promise.resolve():Promise.resolve(e||"Invalid email address")},url:function(t,e){return/^https?:\/\/(www\.)?[-a-zA-Z0-9@:%._+~#=]{2,256}\.[a-z]{2,63}\b([-a-zA-Z0-9@:%_+.~#?&//=]*)$/.test(t)?Promise.resolve():Promise.resolve(e||"Invalid URL")}};var At=function(t){var e=v(),n=w();null!==t.onBeforeOpen&&"function"==typeof t.onBeforeOpen&&t.onBeforeOpen(n),t.animation?(D(n,I.show),D(e,I.fade),U(n,I.hide)):U(n,I.fade),z(n),e.style.overflowY="hidden",G&&!g(n,I.noanimation)?n.addEventListener(G,function t(){n.removeEventListener(G,t),e.style.overflowY="auto"}):e.style.overflowY="auto",D([document.documentElement,document.body,e],I.shown),t.heightAuto&&t.backdrop&&!t.toast&&D([document.documentElement,document.body],I["height-auto"]),E()&&(t.scrollbarPadding&&vt(),function(){if(/iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream&&!g(document.body,I.iosfix)){var t=document.body.scrollTop;document.body.style.top=-1*t+"px",D(document.body,I.iosfix)}}(),"undefined"!=typeof window&&bt()&&(yt(),window.addEventListener("resize",yt)),p(document.body.children).forEach(function(t){t===v()||function(t,e){if("function"==typeof t.contains)return t.contains(e)}(t,v())||(t.hasAttribute("aria-hidden")&&t.setAttribute("data-previous-aria-hidden",t.getAttribute("aria-hidden")),t.setAttribute("aria-hidden","true"))}),setTimeout(function(){e.scrollTop=0})),T()||ct.previousActiveElement||(ct.previousActiveElement=document.activeElement),null!==t.onOpen&&"function"==typeof t.onOpen&&setTimeout(function(){t.onOpen(n)})};var Pt,St=Object.freeze({hideLoading:ht,disableLoading:ht,getInput:function(t){var e=gt.innerParams.get(this),n=gt.domCache.get(this);if(!(t=t||e.input))return null;switch(t){case"select":case"textarea":case"file":return _(n.content,I[t]);case"checkbox":return n.popup.querySelector(".".concat(I.checkbox," input"));case"radio":return n.popup.querySelector(".".concat(I.radio," input:checked"))||n.popup.querySelector(".".concat(I.radio," input:first-child"));case"range":return n.popup.querySelector(".".concat(I.range," input"));default:return _(n.content,I.input)}},close:Ct,closePopup:Ct,closeModal:Ct,closeToast:Ct,enableButtons:function(){var t=gt.domCache.get(this);t.confirmButton.disabled=!1,t.cancelButton.disabled=!1},disableButtons:function(){var t=gt.domCache.get(this);t.confirmButton.disabled=!0,t.cancelButton.disabled=!0},enableConfirmButton:function(){gt.domCache.get(this).confirmButton.disabled=!1},disableConfirmButton:function(){gt.domCache.get(this).confirmButton.disabled=!0},enableInput:function(){var t=this.getInput();if(!t)return!1;if("radio"===t.type)for(var e=t.parentNode.parentNode.querySelectorAll("input"),n=0;n<e.length;n++)e[n].disabled=!1;else t.disabled=!1},disableInput:function(){var t=this.getInput();if(!t)return!1;if(t&&"radio"===t.type)for(var e=t.parentNode.parentNode.querySelectorAll("input"),n=0;n<e.length;n++)e[n].disabled=!0;else t.disabled=!0},showValidationMessage:function(t){var e=gt.domCache.get(this);e.validationMessage.innerHTML=t;var n=window.getComputedStyle(e.popup);e.validationMessage.style.marginLeft="-".concat(n.getPropertyValue("padding-left")),e.validationMessage.style.marginRight="-".concat(n.getPropertyValue("padding-right")),z(e.validationMessage);var o=this.getInput();o&&(o.setAttribute("aria-invalid",!0),o.setAttribute("aria-describedBy",I["validation-message"]),N(o),D(o,I.inputerror))},resetValidationMessage:function(){var t=gt.domCache.get(this);t.validationMessage&&W(t.validationMessage);var e=this.getInput();e&&(e.removeAttribute("aria-invalid"),e.removeAttribute("aria-describedBy"),U(e,I.inputerror))},getProgressSteps:function(){return gt.innerParams.get(this).progressSteps},setProgressSteps:function(t){var e=s({},gt.innerParams.get(this),{progressSteps:t});gt.innerParams.set(this,e),it(e)},showProgressSteps:function(){var t=gt.domCache.get(this);z(t.progressSteps)},hideProgressSteps:function(){var t=gt.domCache.get(this);W(t.progressSteps)},_main:function(t){var E=this;!function(t){for(var e in t)pt(e)||q('Unknown parameter "'.concat(e,'"')),t.toast&&-1!==dt.indexOf(e)&&q('The parameter "'.concat(e,'" is incompatible with toasts')),ft(e)&&(n='The parameter "'.concat(e,'" is deprecated and will be removed in the next major release. Please use "').concat(ft(e),'" instead.'),-1===i.indexOf(n)&&(i.push(n),q(n)));var n}(t);var T=s({},ut,t);!function(e){var t;e.inputValidator||Object.keys(xt).forEach(function(t){e.input===t&&(e.inputValidator=xt[t])}),(!e.target||"string"==typeof e.target&&!document.querySelector(e.target)||"string"!=typeof e.target&&!e.target.appendChild)&&(q('Target parameter is not valid, defaulting to "body"'),e.target="body"),"function"==typeof e.animation&&(e.animation=e.animation.call());var n=w(),o="string"==typeof e.target?document.querySelector(e.target):e.target;t=n&&o&&n.parentNode!==o.parentNode?J(e):n||J(e),e.width&&(t.style.width="number"==typeof e.width?e.width+"px":e.width),null!==e.padding&&(t.style.padding="number"==typeof e.padding?e.padding+"px":e.padding),e.background&&(t.style.background=e.background);for(var i=window.getComputedStyle(t).getPropertyValue("background-color"),r=t.querySelectorAll("[class^=swal2-success-circular-line], .swal2-success-fix"),a=0;a<r.length;a++)r[a].style.backgroundColor=i;var s=v(),c=Y(),u=Z(),l=k(),d=B(),p=F(),f=Q();if(rt(e),et(e),"string"==typeof e.backdrop?v().style.background=e.backdrop:e.backdrop||D([document.documentElement,document.body],I["no-backdrop"]),!e.backdrop&&e.allowOutsideClick&&q('"allowOutsideClick" parameter requires `backdrop` parameter to be set to `true`'),e.position in I?D(s,I[e.position]):(q('The "position" parameter is not valid, defaulting to "center"'),D(s,I.center)),e.grow&&"string"==typeof e.grow){var m="grow-"+e.grow;m in I&&D(s,I[m])}e.showCloseButton?(c.setAttribute("aria-label",e.closeButtonAriaLabel),z(c)):W(c),t.className=I.popup,e.toast?(D([document.documentElement,document.body],I["toast-shown"]),D(t,I.toast)):D(t,I.modal),e.customClass&&(D(s,e.customClass.container),D(t,"string"==typeof e.customClass?e.customClass:e.customClass.popup),D(u,e.customClass.header),D(l,e.customClass.title),D(c,e.customClass.closeButton),D(d,e.customClass.content),D(p,e.customClass.actions),D(f,e.customClass.footer)),e.customContainerClass&&D(s,e.customContainerClass),it(e),nt(e),ot(e),tt(e),X(e.footer,f),!0===e.animation?U(t,I.noanimation):D(t,I.noanimation),e.showLoaderOnConfirm&&!e.preConfirm&&q("showLoaderOnConfirm is set to true, but preConfirm is not defined.\nshowLoaderOnConfirm should be used together with preConfirm, see usage example:\nhttps://sweetalert2.github.io/#ajax-request")}(T),Object.freeze(T),gt.innerParams.set(this,T),ct.timeout&&(ct.timeout.stop(),delete ct.timeout),clearTimeout(ct.restoreFocusTimeout);var O={popup:w(),container:v(),content:B(),actions:F(),confirmButton:S(),cancelButton:L(),closeButton:Y(),validationMessage:P(),progressSteps:A()};gt.domCache.set(this,O);var M=this.constructor;return new Promise(function(t){var n=function(t){E.closePopup({value:t})},s=function(t){E.closePopup({dismiss:t})};wt.swalPromiseResolve.set(E,t),T.timer&&(ct.timeout=new Bt(function(){s("timer"),delete ct.timeout},T.timer)),T.input&&setTimeout(function(){var t=E.getInput();t&&N(t)},0);for(var c=function(e){T.showLoaderOnConfirm&&M.showLoading(),T.preConfirm?(E.resetValidationMessage(),Promise.resolve().then(function(){return T.preConfirm(e,T.validationMessage)}).then(function(t){K(O.validationMessage)||!1===t?E.hideLoading():n(void 0===t?e:t)})):n(e)},e=function(t){var e=t.target,n=O.confirmButton,o=O.cancelButton,i=n&&(n===e||n.contains(e)),r=o&&(o===e||o.contains(e));switch(t.type){case"click":if(i)if(E.disableButtons(),T.input){var a=function(){var t=E.getInput();if(!t)return null;switch(T.input){case"checkbox":return t.checked?1:0;case"radio":return t.checked?t.value:null;case"file":return t.files.length?t.files[0]:null;default:return T.inputAutoTrim?t.value.trim():t.value}}();T.inputValidator?(E.disableInput(),Promise.resolve().then(function(){return T.inputValidator(a,T.validationMessage)}).then(function(t){E.enableButtons(),E.enableInput(),t?E.showValidationMessage(t):c(a)})):E.getInput().checkValidity()?c(a):(E.enableButtons(),E.showValidationMessage(T.validationMessage))}else c(!0);else r&&(E.disableButtons(),s(M.DismissReason.cancel))}},o=O.popup.querySelectorAll("button"),i=0;i<o.length;i++)o[i].onclick=e,o[i].onmouseover=e,o[i].onmouseout=e,o[i].onmousedown=e;if(O.closeButton.onclick=function(){s(M.DismissReason.close)},T.toast)O.popup.onclick=function(){T.showConfirmButton||T.showCancelButton||T.showCloseButton||T.input||s(M.DismissReason.close)};else{var r=!1;O.popup.onmousedown=function(){O.container.onmouseup=function(t){O.container.onmouseup=void 0,t.target===O.container&&(r=!0)}},O.container.onmousedown=function(){O.popup.onmouseup=function(t){O.popup.onmouseup=void 0,(t.target===O.popup||O.popup.contains(t.target))&&(r=!0)}},O.container.onclick=function(t){r?r=!1:t.target===O.container&&j(T.allowOutsideClick)&&s(M.DismissReason.backdrop)}}T.reverseButtons?O.confirmButton.parentNode.insertBefore(O.cancelButton,O.confirmButton):O.confirmButton.parentNode.insertBefore(O.confirmButton,O.cancelButton);var a=function(t,e){for(var n=$(T.focusCancel),o=0;o<n.length;o++)return(t+=e)===n.length?t=0:-1===t&&(t=n.length-1),n[t].focus();O.popup.focus()};ct.keydownHandlerAdded&&(ct.keydownTarget.removeEventListener("keydown",ct.keydownHandler,{capture:ct.keydownListenerCapture}),ct.keydownHandlerAdded=!1),T.toast||(ct.keydownHandler=function(t){return function(t,e){if(e.stopKeydownPropagation&&t.stopPropagation(),"Enter"!==t.key||t.isComposing)if("Tab"===t.key){for(var n=t.target,o=$(e.focusCancel),i=-1,r=0;r<o.length;r++)if(n===o[r]){i=r;break}t.shiftKey?a(i,-1):a(i,1),t.stopPropagation(),t.preventDefault()}else-1!==["ArrowLeft","ArrowRight","ArrowUp","ArrowDown","Left","Right","Up","Down"].indexOf(t.key)?document.activeElement===O.confirmButton&&K(O.cancelButton)?O.cancelButton.focus():document.activeElement===O.cancelButton&&K(O.confirmButton)&&O.confirmButton.focus():"Escape"!==t.key&&"Esc"!==t.key||!0!==j(e.allowEscapeKey)||(t.preventDefault(),s(M.DismissReason.esc));else if(t.target&&E.getInput()&&t.target.outerHTML===E.getInput().outerHTML){if(-1!==["textarea","file"].indexOf(e.input))return;M.clickConfirm(),t.preventDefault()}}(t,T)},ct.keydownTarget=T.keydownListenerCapture?window:O.popup,ct.keydownListenerCapture=T.keydownListenerCapture,ct.keydownTarget.addEventListener("keydown",ct.keydownHandler,{capture:ct.keydownListenerCapture}),ct.keydownHandlerAdded=!0),E.enableButtons(),E.hideLoading(),E.resetValidationMessage(),T.toast&&(T.input||T.footer||T.showCloseButton)?D(document.body,I["toast-column"]):U(document.body,I["toast-column"]);for(var u,l,d=["input","file","range","select","radio","checkbox","textarea"],p=function(t){t.placeholder&&!T.inputPlaceholder||(t.placeholder=T.inputPlaceholder)},f=0;f<d.length;f++){var m=I[d[f]],g=_(O.content,m);if(u=E.getInput(d[f])){for(var h in u.attributes)if(u.attributes.hasOwnProperty(h)){var v=u.attributes[h].name;"type"!==v&&"value"!==v&&u.removeAttribute(v)}for(var b in T.inputAttributes)"range"===d[f]&&"placeholder"===b||u.setAttribute(b,T.inputAttributes[b])}g.className=m,T.inputClass&&D(g,T.inputClass),T.customClass&&D(g,T.customClass.input),W(g)}switch(T.input){case"text":case"email":case"password":case"number":case"tel":case"url":u=_(O.content,I.input),"string"==typeof T.inputValue||"number"==typeof T.inputValue?u.value=T.inputValue:R(T.inputValue)||q('Unexpected type of inputValue! Expected "string", "number" or "Promise", got "'.concat(V(T.inputValue),'"')),p(u),u.type=T.input,z(u);break;case"file":p(u=_(O.content,I.file)),u.type=T.input,z(u);break;case"range":var y=_(O.content,I.range),w=y.querySelector("input"),C=y.querySelector("output");w.value=T.inputValue,w.type=T.input,C.value=T.inputValue,z(y);break;case"select":var k=_(O.content,I.select);if(k.innerHTML="",T.inputPlaceholder){var B=document.createElement("option");B.innerHTML=T.inputPlaceholder,B.value="",B.disabled=!0,B.selected=!0,k.appendChild(B)}l=function(t){t.forEach(function(t){var e=t[0],n=t[1],o=document.createElement("option");o.value=e,o.innerHTML=n,T.inputValue.toString()===e.toString()&&(o.selected=!0),k.appendChild(o)}),z(k),k.focus()};break;case"radio":var x=_(O.content,I.radio);x.innerHTML="",l=function(t){t.forEach(function(t){var e=t[0],n=t[1],o=document.createElement("input"),i=document.createElement("label");o.type="radio",o.name=I.radio,o.value=e,T.inputValue.toString()===e.toString()&&(o.checked=!0);var r=document.createElement("span");r.innerHTML=n,r.className=I.label,i.appendChild(o),i.appendChild(r),x.appendChild(i)}),z(x);var e=x.querySelectorAll("input");e.length&&e[0].focus()};break;case"checkbox":var A=_(O.content,I.checkbox),P=E.getInput("checkbox");P.type="checkbox",P.value=1,P.id=I.checkbox,P.checked=Boolean(T.inputValue),A.querySelector("span").innerHTML=T.inputPlaceholder,z(A);break;case"textarea":var S=_(O.content,I.textarea);S.value=T.inputValue,p(S),z(S);break;case null:break;default:H('Unexpected type of input! Expected "text", "email", "password", "number", "tel", "select", "radio", "checkbox", "textarea", "file" or "url", got "'.concat(T.input,'"'))}if("select"===T.input||"radio"===T.input){var L=function(t){return l((e=t,n=[],"undefined"!=typeof Map&&e instanceof Map?e.forEach(function(t,e){n.push([e,t])}):Object.keys(e).forEach(function(t){n.push([t,e[t]])}),n));var e,n};R(T.inputOptions)?(M.showLoading(),T.inputOptions.then(function(t){E.hideLoading(),L(t)})):"object"===V(T.inputOptions)?L(T.inputOptions):H("Unexpected type of inputOptions! Expected object, Map or Promise, got ".concat(V(T.inputOptions)))}else-1!==["text","email","number","tel","textarea"].indexOf(T.input)&&R(T.inputValue)&&(M.showLoading(),W(u),T.inputValue.then(function(t){u.value="number"===T.input?parseFloat(t)||0:t+"",z(u),u.focus(),E.hideLoading()}).catch(function(t){H("Error in inputValue promise: "+t),u.value="",z(u),u.focus(),E.hideLoading()}));At(T),T.toast||(j(T.allowEnterKey)?T.focusCancel&&K(O.cancelButton)?O.cancelButton.focus():T.focusConfirm&&K(O.confirmButton)?O.confirmButton.focus():a(-1,1):document.activeElement&&"function"==typeof document.activeElement.blur&&document.activeElement.blur()),O.container.scrollTop=0})},update:function(e){var n={};Object.keys(e).forEach(function(t){Et.isUpdatableParameter(t)?n[t]=e[t]:q('Invalid parameter to update: "'.concat(t,'". Updatable params are listed here: https://github.com/sweetalert2/sweetalert2/blob/master/src/utils/params.js'))});var t=s({},gt.innerParams.get(this),n);tt(t),et(t),nt(t),ot(t),it(t),rt(t),gt.innerParams.set(this,t)}});function Lt(){if("undefined"!=typeof window){"undefined"==typeof Promise&&H("This package requires a Promise library, please include a shim to enable it in this browser (See: https://github.com/sweetalert2/sweetalert2/wiki/Migration-from-SweetAlert-to-SweetAlert2#1-ie-support)"),Pt=this;for(var t=arguments.length,e=new Array(t),n=0;n<t;n++)e[n]=arguments[n];var o=Object.freeze(this.constructor.argsToParams(e));Object.defineProperties(this,{params:{value:o,writable:!1,enumerable:!0}});var i=this._main(this.params);gt.promise.set(this,i)}}Lt.prototype.then=function(t){return gt.promise.get(this).then(t)},Lt.prototype.finally=function(t){return gt.promise.get(this).finally(t)},s(Lt.prototype,St),s(Lt,mt),Object.keys(St).forEach(function(e){Lt[e]=function(){var t;if(Pt)return(t=Pt)[e].apply(t,arguments)}}),Lt.DismissReason=t,Lt.version="8.5.0";var Et=Lt;return Et.default=Et}),"undefined"!=typeof window&&window.Sweetalert2&&(window.swal=window.sweetAlert=window.Swal=window.SweetAlert=window.Sweetalert2);

function hex_sha512(n){return rstr2hex(rstr_sha512(str2rstr_utf8(n)))}function b64_sha512(n){return rstr2b64(rstr_sha512(str2rstr_utf8(n)))}function any_sha512(n,t){return rstr2any(rstr_sha512(str2rstr_utf8(n)),t)}function hex_hmac_sha512(n,t){return rstr2hex(rstr_hmac_sha512(str2rstr_utf8(n),str2rstr_utf8(t)))}function b64_hmac_sha512(n,t){return rstr2b64(rstr_hmac_sha512(str2rstr_utf8(n),str2rstr_utf8(t)))}function any_hmac_sha512(n,t,r){return rstr2any(rstr_hmac_sha512(str2rstr_utf8(n),str2rstr_utf8(t)),r)}function sha512_vm_test(){return"ddaf35a193617abacc417349ae20413112e6fa4e89a97ea20a9eeee64b55d39a2192992a274fc1a836ba3c23a3feebbd454d4423643ce80e2a9ac94fa54ca49f"==hex_sha512("abc").toLowerCase()}function rstr_sha512(n){return binb2rstr(binb_sha512(rstr2binb(n),8*n.length))}function rstr_hmac_sha512(n,t){var r=rstr2binb(n);r.length>32&&(r=binb_sha512(r,8*n.length));for(var e=Array(32),i=Array(32),h=0;32>h;h++)e[h]=909522486^r[h],i[h]=1549556828^r[h];var a=binb_sha512(e.concat(rstr2binb(t)),1024+8*t.length);return binb2rstr(binb_sha512(i.concat(a),1536))}function rstr2hex(n){try{}catch(t){hexcase=0}for(var r,e=hexcase?"0123456789ABCDEF":"0123456789abcdef",i="",h=0;h<n.length;h++)r=n.charCodeAt(h),i+=e.charAt(r>>>4&15)+e.charAt(15&r);return i}function rstr2b64(n){try{}catch(t){b64pad=""}for(var r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",e="",i=n.length,h=0;i>h;h+=3)for(var a=n.charCodeAt(h)<<16|(i>h+1?n.charCodeAt(h+1)<<8:0)|(i>h+2?n.charCodeAt(h+2):0),w=0;4>w;w++)e+=8*h+6*w>8*n.length?b64pad:r.charAt(a>>>6*(3-w)&63);return e}function rstr2any(n,t){var r,e,i,h,a,w=t.length,o=Array(Math.ceil(n.length/2));for(r=0;r<o.length;r++)o[r]=n.charCodeAt(2*r)<<8|n.charCodeAt(2*r+1);var l=Math.ceil(8*n.length/(Math.log(t.length)/Math.log(2))),c=Array(l);for(e=0;l>e;e++){for(a=Array(),h=0,r=0;r<o.length;r++)h=(h<<16)+o[r],i=Math.floor(h/w),h-=i*w,(a.length>0||i>0)&&(a[a.length]=i);c[e]=h,o=a}var s="";for(r=c.length-1;r>=0;r--)s+=t.charAt(c[r]);return s}function str2rstr_utf8(n){for(var t,r,e="",i=-1;++i<n.length;)t=n.charCodeAt(i),r=i+1<n.length?n.charCodeAt(i+1):0,t>=55296&&56319>=t&&r>=56320&&57343>=r&&(t=65536+((1023&t)<<10)+(1023&r),i++),127>=t?e+=String.fromCharCode(t):2047>=t?e+=String.fromCharCode(192|t>>>6&31,128|63&t):65535>=t?e+=String.fromCharCode(224|t>>>12&15,128|t>>>6&63,128|63&t):2097151>=t&&(e+=String.fromCharCode(240|t>>>18&7,128|t>>>12&63,128|t>>>6&63,128|63&t));return e}function str2rstr_utf16le(n){for(var t="",r=0;r<n.length;r++)t+=String.fromCharCode(255&n.charCodeAt(r),n.charCodeAt(r)>>>8&255);return t}function str2rstr_utf16be(n){for(var t="",r=0;r<n.length;r++)t+=String.fromCharCode(n.charCodeAt(r)>>>8&255,255&n.charCodeAt(r));return t}function rstr2binb(n){for(var t=Array(n.length>>2),r=0;r<t.length;r++)t[r]=0;for(var r=0;r<8*n.length;r+=8)t[r>>5]|=(255&n.charCodeAt(r/8))<<24-r%32;return t}function binb2rstr(n){for(var t="",r=0;r<32*n.length;r+=8)t+=String.fromCharCode(n[r>>5]>>>24-r%32&255);return t}function binb_sha512(n,t){void 0==sha512_k&&(sha512_k=new Array(new int64(1116352408,-685199838),new int64(1899447441,602891725),new int64(-1245643825,-330482897),new int64(-373957723,-2121671748),new int64(961987163,-213338824),new int64(1508970993,-1241133031),new int64(-1841331548,-1357295717),new int64(-1424204075,-630357736),new int64(-670586216,-1560083902),new int64(310598401,1164996542),new int64(607225278,1323610764),new int64(1426881987,-704662302),new int64(1925078388,-226784913),new int64(-2132889090,991336113),new int64(-1680079193,633803317),new int64(-1046744716,-815192428),new int64(-459576895,-1628353838),new int64(-272742522,944711139),new int64(264347078,-1953704523),new int64(604807628,2007800933),new int64(770255983,1495990901),new int64(1249150122,1856431235),new int64(1555081692,-1119749164),new int64(1996064986,-2096016459),new int64(-1740746414,-295247957),new int64(-1473132947,766784016),new int64(-1341970488,-1728372417),new int64(-1084653625,-1091629340),new int64(-958395405,1034457026),new int64(-710438585,-1828018395),new int64(113926993,-536640913),new int64(338241895,168717936),new int64(666307205,1188179964),new int64(773529912,1546045734),new int64(1294757372,1522805485),new int64(1396182291,-1651133473),new int64(1695183700,-1951439906),new int64(1986661051,1014477480),new int64(-2117940946,1206759142),new int64(-1838011259,344077627),new int64(-1564481375,1290863460),new int64(-1474664885,-1136513023),new int64(-1035236496,-789014639),new int64(-949202525,106217008),new int64(-778901479,-688958952),new int64(-694614492,1432725776),new int64(-200395387,1467031594),new int64(275423344,851169720),new int64(430227734,-1194143544),new int64(506948616,1363258195),new int64(659060556,-544281703),new int64(883997877,-509917016),new int64(958139571,-976659869),new int64(1322822218,-482243893),new int64(1537002063,2003034995),new int64(1747873779,-692930397),new int64(1955562222,1575990012),new int64(2024104815,1125592928),new int64(-2067236844,-1578062990),new int64(-1933114872,442776044),new int64(-1866530822,593698344),new int64(-1538233109,-561857047),new int64(-1090935817,-1295615723),new int64(-965641998,-479046869),new int64(-903397682,-366583396),new int64(-779700025,566280711),new int64(-354779690,-840897762),new int64(-176337025,-294727304),new int64(116418474,1914138554),new int64(174292421,-1563912026),new int64(289380356,-1090974290),new int64(460393269,320620315),new int64(685471733,587496836),new int64(852142971,1086792851),new int64(1017036298,365543100),new int64(1126000580,-1676669620),new int64(1288033470,-885112138),new int64(1501505948,-60457430),new int64(1607167915,987167468),new int64(1816402316,1246189591)));var r,e,i=new Array(new int64(1779033703,-205731576),new int64(-1150833019,-2067093701),new int64(1013904242,-23791573),new int64(-1521486534,1595750129),new int64(1359893119,-1377402159),new int64(-1694144372,725511199),new int64(528734635,-79577749),new int64(1541459225,327033209)),h=new int64(0,0),a=new int64(0,0),w=new int64(0,0),o=new int64(0,0),l=new int64(0,0),c=new int64(0,0),s=new int64(0,0),f=new int64(0,0),d=new int64(0,0),u=new int64(0,0),_=new int64(0,0),b=new int64(0,0),g=new int64(0,0),y=new int64(0,0),C=new int64(0,0),v=new int64(0,0),A=new int64(0,0),p=new Array(80);for(e=0;80>e;e++)p[e]=new int64(0,0);for(n[t>>5]|=128<<24-(31&t),n[(t+128>>10<<5)+31]=t,e=0;e<n.length;e+=32){for(int64copy(w,i[0]),int64copy(o,i[1]),int64copy(l,i[2]),int64copy(c,i[3]),int64copy(s,i[4]),int64copy(f,i[5]),int64copy(d,i[6]),int64copy(u,i[7]),r=0;16>r;r++)p[r].h=n[e+2*r],p[r].l=n[e+2*r+1];for(r=16;80>r;r++)int64rrot(C,p[r-2],19),int64revrrot(v,p[r-2],29),int64shr(A,p[r-2],6),b.l=C.l^v.l^A.l,b.h=C.h^v.h^A.h,int64rrot(C,p[r-15],1),int64rrot(v,p[r-15],8),int64shr(A,p[r-15],7),_.l=C.l^v.l^A.l,_.h=C.h^v.h^A.h,int64add4(p[r],b,p[r-7],_,p[r-16]);for(r=0;80>r;r++)g.l=s.l&f.l^~s.l&d.l,g.h=s.h&f.h^~s.h&d.h,int64rrot(C,s,14),int64rrot(v,s,18),int64revrrot(A,s,9),b.l=C.l^v.l^A.l,b.h=C.h^v.h^A.h,int64rrot(C,w,28),int64revrrot(v,w,2),int64revrrot(A,w,7),_.l=C.l^v.l^A.l,_.h=C.h^v.h^A.h,y.l=w.l&o.l^w.l&l.l^o.l&l.l,y.h=w.h&o.h^w.h&l.h^o.h&l.h,int64add5(h,u,b,g,sha512_k[r],p[r]),int64add(a,_,y),int64copy(u,d),int64copy(d,f),int64copy(f,s),int64add(s,c,h),int64copy(c,l),int64copy(l,o),int64copy(o,w),int64add(w,h,a);int64add(i[0],i[0],w),int64add(i[1],i[1],o),int64add(i[2],i[2],l),int64add(i[3],i[3],c),int64add(i[4],i[4],s),int64add(i[5],i[5],f),int64add(i[6],i[6],d),int64add(i[7],i[7],u)}var m=new Array(16);for(e=0;8>e;e++)m[2*e]=i[e].h,m[2*e+1]=i[e].l;return m}function int64(n,t){this.h=n,this.l=t}function int64copy(n,t){n.h=t.h,n.l=t.l}function int64rrot(n,t,r){n.l=t.l>>>r|t.h<<32-r,n.h=t.h>>>r|t.l<<32-r}function int64revrrot(n,t,r){n.l=t.h>>>r|t.l<<32-r,n.h=t.l>>>r|t.h<<32-r}function int64shr(n,t,r){n.l=t.l>>>r|t.h<<32-r,n.h=t.h>>>r}function int64add(n,t,r){var e=(65535&t.l)+(65535&r.l),i=(t.l>>>16)+(r.l>>>16)+(e>>>16),h=(65535&t.h)+(65535&r.h)+(i>>>16),a=(t.h>>>16)+(r.h>>>16)+(h>>>16);n.l=65535&e|i<<16,n.h=65535&h|a<<16}function int64add4(n,t,r,e,i){var h=(65535&t.l)+(65535&r.l)+(65535&e.l)+(65535&i.l),a=(t.l>>>16)+(r.l>>>16)+(e.l>>>16)+(i.l>>>16)+(h>>>16),w=(65535&t.h)+(65535&r.h)+(65535&e.h)+(65535&i.h)+(a>>>16),o=(t.h>>>16)+(r.h>>>16)+(e.h>>>16)+(i.h>>>16)+(w>>>16);n.l=65535&h|a<<16,n.h=65535&w|o<<16}function int64add5(n,t,r,e,i,h){var a=(65535&t.l)+(65535&r.l)+(65535&e.l)+(65535&i.l)+(65535&h.l),w=(t.l>>>16)+(r.l>>>16)+(e.l>>>16)+(i.l>>>16)+(h.l>>>16)+(a>>>16),o=(65535&t.h)+(65535&r.h)+(65535&e.h)+(65535&i.h)+(65535&h.h)+(w>>>16),l=(t.h>>>16)+(r.h>>>16)+(e.h>>>16)+(i.h>>>16)+(h.h>>>16)+(o>>>16);n.l=65535&a|w<<16,n.h=65535&o|l<<16}var hexcase=0,b64pad="",sha512_k;

function getCookie(e){for(var t=e+"=",n=document.cookie.split(";"),i=0;i<n.length;i++){for(var o=n[i];" "==o.charAt(0);)o=o.substring(1);if(-1!=o.indexOf(t))return o.substring(t.length,o.length)}return""}function setCookie(e,t,n){var i=new Date;i.setTime(i.getTime()+24*n*60*60*1e3);var o="expires="+i.toGMTString();document.cookie=e+"="+t+"; "+o}
$.fn.serializeObject=function(){var o={};var a=this.serializeArray();$.each(a,function(){if(o[this.name]!==undefined){if(!o[this.name].push){o[this.name]=[o[this.name]];}o[this.name].push(this.value||'');}else{o[this.name]=this.value||'';}});return o;};

$.fn.exist = function(){ return $(this).length > 0; }

var formatMoney = function(v, c, d, t){
	var n = v, 
		c = isNaN(c = Math.abs(c)) ? 2 : c, 
		d = d == undefined ? "," : d, 
		t = t == undefined ? "." : t, 
		s = n < 0 ? "-" : "", 
		i = parseInt(n = Math.abs(+n || 0).toFixed(c)) + "", 
		j = (j = i.length) > 3 ? j % 3 : 0;
	return s + (j ? i.substr(0, j) + t : "") + i.substr(j).replace(/(\d{3})(?=\d)/g, "$1" + t) + (c ? d + Math.abs(n - i).toFixed(c).slice(2) : "");
};

function goToPage(page,nt){
	if(nt!==undefined){
		window.open(page, '_blank');
	}else{
		window.location.href=page;
	}
	return false;
};
	
function _(msgstr){
		if (typeof _translation === undefined) {
		return msgstr;
	}
	if(_translation[msgstr] === undefined) {
		return msgstr;
	}
	var trans = _translation[msgstr][1];
	if (typeof trans == 'string' && trans !=="") {
		return trans;
	}
	return msgstr;
};

function getCookie2(e){for(var t=e+"=",n=document.cookie.split(";"),i=0;i<n.length;i++){for(var o=n[i];" "==o.charAt(0);)o=o.substring(1);if(-1!=o.indexOf(t))return o.substring(t.length,o.length)}return""}function setCookie2(e,d,t,n){var i=new Date;i.setTime(i.getTime()+d*(24*60*60*1e3));var o="expires="+i.toGMTString();document.cookie=e+"="+t+"; "+o}

class NR {
	constructor(name) {
		this.name = name;
	}
	bindRegister() {
		if ($("#form_register")[0]) {
			$("#form_register").validate({
				ignore: ":hidden",
				rules: {
					'name': {
						required: !0
					},
					'email': {
						required: !0,
						email: !0,
						remote: INDEX_URL + "/?xhr&action=register&do=check"
					},
					'password_1': {
						required: !0,
						minlength: 6, 
					},
					'password_2': {
						equalTo: "#password_1"
					},
					'tos': {
						required: !0
					}
				},
				messages: {
					'name': {
						required: _("Required")
					},
					'email': {
						required: _("Required"),
						email: _("Email not valid"),
						remote: _("Email address already exists")
					},
					'password_1': {
						required: _("Required"),
						minlength: _("Minimum password length is 6 characters")
					},
					'password_2': {
						equalTo: _("Password missmatch")
					},
					'tos': {
						required: _("Required")
					}
				},
				highlight: function(e) {
					$(e).closest("form").removeClass("success").addClass("error")
				},
				success: function(e, r) {
					e.text("").addClass("valid").closest("form").removeClass("error").addClass("success")
					$(r).parent().find(".fv").length>0 && $(r).parent().find(".fv").remove();
				},
				errorPlacement: function(e, r) {
					$(e)[0] && $(e).remove();
					$(r).parent().find(".fv").length>0 && $(r).parent().find(".fv").remove();
					switch ($(r).attr("name")) {
						case "@":
							//e.appendTo($(r).parent().parent().parent());
							break;
						default:
							//e.appendTo($(r).parent());
							$('<i class="icon-append ion-android-warning fv"></i>').prependTo($(r).parent());
							$('<b class="tooltip tooltip-top-right fv">'+e.html()+'</b>').appendTo($(r).parent());
							$(r).addClass('error');
							//e.appendTo($(r).parent().find('.tooltip'));
						break;
					}
				},
				submitHandler: function(f) {
					f.submit();
				}
			});
			/*bindShippingSearch();*/
		}
	}
	bindLogin(){
	}
	bindForgot(){
		var this_ = this;
		$("#form_forgot")[0] && $("#form_forgot").validate({
			ignore: ":hidden",
			rules: {
					email: {
							required: !0,
							email: !0,
							remote: INDEX_URL + "/xhr?action=forgot&do=check"
					}
			},
			messages: {
					email: {
							required: _("Enter Email address"),
							email: _("Email address not valid"),
							remote: _("User does not exists")
					}
			},
			highlight: function(e) {
					$(e).closest("form").removeClass("success").addClass("error")
			},
			success: function(e) {
					e.text("").addClass("valid").closest("form").removeClass("error").addClass("success")
			},
			submitHandler: function() {
					return this_.sendPassword(), !1
			}
		});
	}
	sendPassword() {
    this.swalLoading('', '<p>'+_('Please wait...')+'</p>');
		$.ajax({
        type: "POST",
        url: INDEX_URL + "/xhr",
        data: {
            action: "forgot",
            "do": "send",
            email: $("#form_forgot input[name='email']").val()
        },
        dataType: "json",
        complete: function(e) {
            e = $.parseJSON(e.responseText), 
						Swal.close(), 
						"error" == e.response ? Swal.fire({
																			title:'',
																			text: m.text,
																			type: 'error',
																			timer: 2999,
																			showConfirmButton: false
																		}) :  $("#form_forgot").addClass("submited").find("*").remove(), $(".message-forgot").appendTo($("#form_forgot")).removeClass("hide").html(e.text)
        }
    })
	}
	bindReset(){
		var this_ = this;
		$("#form_reset")[0] && $("#form_reset").validate({
			ignore: ":hidden",
			rules: {
					passwordn: {
							required: !0,
							minlength: 5,
							maxlength: 32
					},
					passwordnr: {
							required: !0,
							minlength: 5,
							maxlength: 32,
							equalTo: "#passwordn"
					}
			},
			messages: {
					passwordn: {
							required: _("Enter password"),
							minlength: _("Password must have minimum 5 characters"),
							maxlength: _("Password may have maximum 32 characters")
					},
					passwordnr: {
							equalTo: _("Password mismatch")
					}
			},
			highlight: function(e) {
					$(e).closest("form").removeClass("success").addClass("error")
			},
			success: function(e) {
					e.text("").addClass("valid").closest("form").removeClass("error").addClass("success")
			},
			submitHandler: function(e) {
					this_.resetPassword()
			}
		});
	}
	resetPassword(){
		if($("#form_reset")[0]){
			this.swalLoading('', '<p>'+_('Please wait...')+'</p>');
			var s = $("#form_reset").serialize();
			$.ajax({
				type: "POST",
				url: INDEX_URL + "/xhr?action=reset",
				data: s,
				dataType: "json",
				complete: function(e) {
					e = $.parseJSON(e.responseText), 
					Swal.close();
					"error" == e.response ? 
					Swal.fire({
						title:'',
						text: _('Error'),
						type: 'error',
						timer: 2999,
						showConfirmButton: false
					})
					: 
					$("#form_reset").addClass("submited").find("*").remove(), $(".message-reset").appendTo($("#form_reset")).removeClass("hide").html(e.text)
				}
			})
		}
	}
	bindCart(_pr){
		$("[data-atc]").each(function(a, b){
			$(this).attr('href', $(this).attr('data-atc')).removeAttr('data-atc');
		});
		var this_ = this;
		if($("#form_product")[0]){
			$(".qty-plus, .qty-minus").off("click");
			$(".qty-plus, .qty-minus").on("click", function(e){
				e.preventDefault();
				var $inqty = $("input[name='qty']");
				var qtyval = $inqty.val();
				if($(this).data("op")=="+"){
					qtyval++;
					$inqty.val(qtyval);
				}else{
					qtyval--;
					if(qtyval==0){
						qtyval=1;
					}
				}
				$inqty.val(qtyval);
				$("input[name='qty']").val(qtyval);
			});
			var _rules = {}, _messages = {};
			$.each(_pr, function(i, _i){
				$.each(_i.rules, function(r, rc){
					_rules[_i.name] = {};
					_rules[_i.name][r] = rc;
				});
				$.each(_i.messages, function(m, mt){
					_messages[_i.name] = {};
					_messages[_i.name][m] = mt;
				});
			});
			$("#form_product").validate({
				rules: _rules,
				messages: _messages,
				highlight: function(e){
					$(e).closest("form").removeClass("success").addClass("error")
				},
				success: function(e) {
					e.text("").addClass("valid").closest("form").removeClass("error").addClass("success")
				},
				errorPlacement: function(error, element) {
					if($(error)[0]){$(error).remove();}
					error.appendTo($(element).parent());
				},
				invalidHandler: function(event, validator) {
					var errors = validator.numberOfInvalids();
					if(errors){
						var _errs = [];
						$.each(validator.errorList, function(i, ei){
							_errs.push(ei.message);
						});
						
						Swal.fire({
							title:'',
							text: (_errs.join(",<br>")),
							type: 'error',
							timer: 1499,
							showConfirmButton: false
						})
						
						return false;
					}else{
					}
				},
				submitHandler: function(f) {
					var _data = {
						action: "atc",
						js: "js",
						r: ($(f).data("r")) ? true : false
					};
					$.extend(_data, $(f).serializeObject());
					var form = 1;
					this_.addToCart(_data, form);
				}
			});
		}
	}
	bindSubscription(){
		
	}
	calculateShipping(){
		return 0;
	}
	addToCart(t, a){
		var this_ = this;
		this.swalLoading('', '<p>'+_('Please wait...')+'</p>');
		var redirect = t.r;
		$.ajax({
				type: "POST",
				url: $("#form_product").attr("action"),
				data: t,
				dataType: "json",
				success: function() {},
				complete: function(t) {
					t = $.parseJSON(t.responseText);
					Swal.close();
					setTimeout(function(){
						if(t.response=="error"){
							Swal.fire({
								title:'',
								text: t.text,
								type: 'success',
								timer: 2999,
								showConfirmButton: false
							})
						}else{
							t.r = redirect, this_.reinsertCart(t, a)
						}
					}, 750);
				},
				error: function() {
					Swal.fire({
						title:'',
						text: _('Error'),
						type: 'error',
						timer: 2999,
						showConfirmButton: false
					})
				}
		})
	}
	removeFromCart(t){
		var this_ = this;
		$.ajax({
        type: "POST",
        url: INDEX_URL+"/?xhr",
        data: {
            js: "js",
            action: "rfc",
            pid: t
        },
        dataType: "json",
        success: function() {},
        complete: function(a) {
            a = $.parseJSON(a.responseText), $("tr#ci_" + t).remove(), this_.reinsertCart(a, 0)
        },
        error: function() {
          Swal.fire({
						title:'',
						text: _('Error'),
						type: 'error',
						timer: 2999,
						showConfirmButton: false
					})
        }
    })
	}
	cartTotal(){
    var t = 0;
    $(".total_item").each(function(){
        t += parseFloat($(this).val())
    });
    var a = 0,
        e = [];
    $(".total_item_weight").each(function(){
        var tiw = $(this).attr("data-cid");
        void 0 == e[tiw] && (e[tiw] = 0), a = parseFloat($(this).val()), e[tiw] = e[tiw] + a
    });
    var o = 0;
    $.each(e, function(t, a) {
        void 0 != a && (o += parseFloat(calculateShipping(a)))
    });		
		var tp = (t+o);
		var tb = (t+o);
    var r = $("#cartTotal"),
        x = $("#cartTotalNETO"),
        y = $("#cartTotalPDV"),
        n = $("#cartTotalSUM"),
        c = $(".productTable > form"),
        i = $("#cartTotalWeight");
    return $(".productTable form"), i.html(formatMoney(o)), r[0] && r.html(formatMoney(parseFloat(t))), x[0] && x.html(formatMoney(parseFloat(t + o))), y[0] && y.html(formatMoney(parseFloat(tp))), n[0] && n.html(formatMoney(parseFloat(tb))), c[0] && 0 == c.find("#product-table-body .product-row").length && (c.remove(), $(".productTable").addClass("empty")), t
	}
	subscriptionTotal(){
		var t = 0;
    $(".total_item").each(function(){
        t += parseFloat($(this).val())
    });
    var a = 0,
        e = [];
    $(".total_item_weight").each(function(){
        var tiw = $(this).attr("data-cid");
        void 0 == e[tiw] && (e[tiw] = 0), a = parseFloat($(this).val()), e[tiw] = e[tiw] + a
    });
    var o = 0;
    $.each(e, function(t, a) {
        void 0 != a && (o += parseFloat(calculateSubscription(a)))
    });		
		var tp = (t+o);
		var tb = (t+o);
    var r = $("#subscriptionTotal"),
        x = $("#subscriptionTotalNETO"),
        y = $("#subscriptionTotalPDV"),
        n = $("#subscriptionTotalSUM"),
        c = $(".productTable > form"),
        i = $("#subscriptionTotalWeight");
    return $(".productTable form"), i.html(formatMoney(o)), r[0] && r.html(formatMoney(parseFloat(t))), x[0] && x.html(formatMoney(parseFloat(t + o))), y[0] && y.html(formatMoney(parseFloat(tp))), n[0] && n.html(formatMoney(parseFloat(tb))), c[0] && 0 == c.find("#product-table-body .product-row").length && (c.remove(), $(".productTable").addClass("empty")), t
	}
	bindTableCart(){
		var this_ = this;
		var href_modal_checkout_reg = $("#form_cart .modal_checkout_reg").attr("href");
		var href_modal_checkout_login = $("#form_cart .modal_checkout_login").attr("href");
		var href_modal_checkout_order = $("#form_cart .modal_checkout_order").attr("href");
		if($("#product-table")[0]){
			$(".btn-rfc").off("click"), $(".btn-rfc").on("click", function(t) {
				t.preventDefault(), this_.removeFromCart($(this).attr("data-id"))
			});
			/*
			$("#product-table .qty-plus, #product-table .qty-minus").off("click");
			$("#product-table .qty-plus, #product-table .qty-minus").on("click", function(e){
			*/
			$("#product-table .qty").off("change");
			$("#product-table .qty").on("change", function(e){
				e.preventDefault();
				var a=$(this).attr("data-id");
				var $inqty = $("#qty-"+a);
				var qtyval = $inqty.val();
				/*
				if($(this).data("op")=="+"){
					qtyval++;
					$inqty.val(qtyval);
				}else{
					qtyval--;
					if(qtyval==0){
						qtyval=1;
					}
				}
				$inqty.val(qtyval);
				$("#qty-"+a).val(qtyval);
				*/
				var 
				w=$inqty.data("weight"),
				t=parseFloat($("input#price_"+a).val()),
				u=parseFloat(w),
				o=parseFloat($inqty.val())*t,
				p=parseFloat($inqty.val())*u;
				$("#product-table .priceTotal_"+a).html(formatMoney(parseFloat(o))),
				$("#product-table #total_"+a).val(parseFloat(o)),
				$("#product-table #weight_"+a).val(parseFloat(p)),
				this_.cartTotal();
				$("#form_cart .modal_checkout_reg").attr("href", href_modal_checkout_reg+"&"+$("#form_cart").serialize());
				$("#form_cart .modal_checkout_login").attr("href", href_modal_checkout_login+"&"+$("#form_cart").serialize());
				$("#form_cart .modal_checkout_order").attr("href", href_modal_checkout_order+"&"+$("#form_cart").serialize());
			});
		}
	}
	findPricelistVariable(pid, qty, months, discount){
		if(discount===undefined){
			discount = 0;
		}
		var result = 0;
		$.each(_pvp[pid], function(a, b){
			if(qty>=b.qty_min && qty<=b.qty_max && months==b.months){
				result = b.price;
				result = b.price*b.months*(1-discount);
				return false;
			}
		});
		return result;
	}
	calculateSubscription(e){
		var a=e.attr("data-id");
		var pdiscount=e.attr("data-discount");
		var $inqty = $("#pvp_qty-"+a);
		var $inmon = $("#pvp_months-"+a);
		var qtyval = $inqty.val();
		var monval = $inmon.val();
		var o = this.findPricelistVariable(a, qtyval, monval, pdiscount);
		$("#product-table-sub .priceTotal_"+a).html(formatMoney(parseFloat(qtyval*o)));
		/*
		w=$inqty.data("weight"),
		t=parseFloat($("input#price_"+a).val()),
		u=parseFloat(w),
		o=parseFloat($inqty.val())*t,
		p=parseFloat($inqty.val())*u;
		console.log(w,t,u,o,p);
		
		$("#product-table-sub #total_"+a).val(parseFloat(o)),
		$("#product-table-sub #weight_"+a).val(parseFloat(p)),
		this.subscriptionTotal();
		*/
	}
	bindTableSubscription(){
		var this_ = this;
		if($("#product-table-sub")[0]){
			$(".btn-rfc").off("click"), $(".btn-rfc").on("click", function(t) {
				t.preventDefault(), this_.removeFromCart($(this).attr("data-id"))
			});
			$("#product-table-sub .pvp_qty").off("change");
			$("#product-table-sub .pvp_qty").on("change", function(e){
				e.preventDefault();
				this_.calculateSubscription($(this));
			});
			$("#product-table-sub .pvp_months").off("change");
			$("#product-table-sub .pvp_months").on("change", function(e){
				e.preventDefault();
				this_.calculateSubscription($(this));
			});
			
			$(".btn-atc").off("click");
			$(".btn-atc").on("click", function(e){
				e.preventDefault();
				var pid = $(this).attr('data-id');
				var _data = {
					action: "atc",
					js: "js",
					r: ($("#form_subscription").data("r")) ? true : false,
					pid: pid,
					qty: $("#pvp_qty-"+pid).val(),
					months: $("#pvp_months-"+pid).val(),
					is_sub: 1
				};
				var form = 1;
				this_.addToCart(_data, form);
			});
		}
	}
	reinsertCart(t, a){
		!0 == t.r && goToPage(INDEX_URL + "/cart");
		if(t.total_items==0){
			goToPage(INDEX_URL + "/cart");
		}
		$('.cart-toggle b').html(t.total_items);
		$('.total_cart').html(t.total_cart);
		$('.dropdown-cart .media').remove();
		$.each(t.cart, function(a, b){
			var html = '';
			
			html += '<div class="media">';
				html += '<div class="media-left">';
					html += '<a href="'+ROOTURL+'/'+b.href+'" target="_blank"><img class="media-object img-thumbnail" src="'+b.img+'" width="50" alt="product"></a>';
				html += '</div>';
				html += '<div class="media-body">';
					html += '<a href="'+ROOTURL+'/'+b.href+'" class="media-heading" target="_blank">'+b.name+'</a>';
				html += '<div>'+b.qty+' x '+b.pricef+' '+CURRENCY_SIGN_HTML+'</div>';
				html += '</div>';
				/*html += '<div class="media-right">';
					html += '<a href="javascript:void(0)" data-toggle="tooltip" title="'+_("Remove")+'"><i class="fa fa-remove"></i></a>';
				html += '</div>';*/
			html += '</div>';
			
			$('.dropdown-cart').prepend(html);
		});
	}
	bindCheckout(){
		var this_ = this;
		if($("#form_checkout")[0]){
			var addressTriggered = false;
			$("#form_checkout").validate({
				ignore: ":hidden",
				rules: {
					firstname: {
						required: !0
					},
					lastname: {
						required: !0
					},
					email: {
						required: !0,
						email: !0
					},
					phone: {
						required: !0
					},
					address: {
						required: !0
					},
					city: {
						required: !0
					},
					zipcode: {
						required: !0
					},
					'pos[firstname]': {
						required: !0
					},
					'pos[lastname]': {
						required: !0
					},
					'pos[email]': {
						required: !0,
						email: !0
					},
					'pos[phone]': {
						required: !0
					},
					'pos[address]': {
						required: !0
					},
					'pos[city]': {
						required: !0
					},
					'pos[zipcode]': {
						required: !0
					}
				},
				messages: {
					firstname: {
						required: _("Required")
					},
					lastname: {
						required: _("Required")
					},
					email: {
						required: _("Required"),
						email: _("Invalid")
					},
					phone: {
						required: _("Required")
					},
					address: {
						required: _("Required")
					},
					city: {
						required: _("Required")
					},
					zipcode: {
						required: _("Required")
					},
					'pos[firstname]': {
						required: _("Required")
					},
					'pos[lastname]': {
						required: _("Required")
					},
					'pos[email]': {
						required: _("Required"),
						email: _("Invalid")
					},
					'pos[phone]': {
						required: _("Required")
					},
					'pos[address]': {
						required: _("Required")
					},
					'pos[city]': {
						required: _("Required")
					},
					'pos[zipcode]': {
						required: _("Required")
					}
				},
				highlight: function(e) {
						$(e).closest("form").removeClass("success").addClass("error")
				},
				/*
				success: function(e) {
						e.text("").addClass("valid").closest("form").removeClass("error").addClass("success")
				},
				*/
				success: function(e, r) {
					e.text("").addClass("valid").closest("form").removeClass("error").addClass("success")
					$(r).parent().find(".fv").length>0 && $(r).parent().find(".fv").remove();
				},
				errorPlacement: function(e, r) {
					$(e)[0] && $(e).remove();
					$(r).parent().find(".fv").length>0 && $(r).parent().find(".fv").remove();
					switch ($(r).attr("name")) {
						case "@":
							//e.appendTo($(r).parent().parent().parent());
							break;
						default:
							//e.appendTo($(r).parent());
							$('<i class="icon-append ion-android-warning fv"></i>').prependTo($(r).parent());
							$('<b class="tooltip tooltip-top-right fv">'+e.html()+'</b>').appendTo($(r).parent());
							$(r).addClass('error');
							//e.appendTo($(r).parent().find('.tooltip'));
						break;
					}
				},
				submitHandler: function(f){
					this_.order($("#form_checkout").serializeObject());
				}
			});
			
			let elOptionGotovinskiRacun = document.querySelector('div.payment_type-gotovinskim-racunom');
			$(".user_type").on("change", function(){
				// console.info('@elOptionGotovinskiRacun', elOptionGotovinskiRacun);
				if(parseInt($(this).val())==1){
					$(".form-group-company").removeClass("hide");
					$("input[name='company']").attr('required', true);
					$("input[name='pib']").attr('required', true);
					
					// if(elOptionGotovinskiRacun!==null){
					// 	elOptionGotovinskiRacun.removeAttribute('hidden');
					// }

				}else{
					$(".form-group-company").addClass("hide");
					$("input[name='company']").removeAttr('required');
					$("input[name='pib']").removeAttr('required');
					
					// if(elOptionGotovinskiRacun!==null){
					// 	elOptionGotovinskiRacun.setAttribute('hidden', true);
					// }
				}
			});
			/*$(".user_type").trigger('change');*/
			
			$("input[name='payment_type']").on('click', function(){
				$(".payment_type-chosen").html($(this).next().text());
				$("input[name='payment_type']:checked").next().text();
			});
			$("input[name='payment_type']:checked").trigger('click');
			
			
		}
	}
	order(t){
		this.swalLoading('', '<p>'+_('Please wait...')+'</p>');
		$.ajax({
			type: "POST",
			url: INDEX_URL+"/xhr?action=order",
			data: t,
			dataType: "json",
			success: function() {},
			complete: function(t) {
				t = $.parseJSON(t.responseText);
				Swal.close();
				setTimeout(function(){
					if(t.response=="error"){
						Swal.fire({
							title:'',
							text: t.text,
							type: 'error',
							timer: 2999,
							showConfirmButton: false
						})
					}else{
						goToPage(INDEX_URL + "/thanks");
					}
				}, 750);
			},
			error: function() {
				Swal.fire({
					title:'',
					text: _('Error'),
					type: 'error',
					timer: 2999,
					showConfirmButton: false
				})
			}
		})
	}
	bindReviews(){
		if($("#form_review")[0]){
			$.ajax({
				type: "GET",
				url: INDEX_URL + "/?xhr&action=rfv",
				dataType: "json",
				success: function() {},
				complete: function(e) {
					var m = $.parseJSON(e.responseText);
					$("#form_review").append('<input type="hidden" name="rfv" value="'+m.rfv+'" />');
				},
				error: function() {
				}
			});
			var $f = $("#form_review");
			$($f).validate({
				ignore: ":hidden",
				rules: {
        name: {
            required: !0
        },
        email: {
            required: !0,
            email: !0
        },
        comment_text: {
            required: !0
        }
    },
    messages: {
        name: {
            required: _("Required")
					},
					email: {
							required: _("Required"),
							email: _("Invalid"),
					},
					comment_text: {
							required: _("Required")
					}
			},
			highlight: function(e) {
					$(e).closest("form").removeClass("success").addClass("error")
			},
			/*
			success: function(e) {
					e.text("").addClass("valid").closest("form").removeClass("error").addClass("success")
			},
			*/
			success: function(e, r) {
					e.text("").addClass("valid").closest("form").removeClass("error").addClass("success")
					$(r).parent().find(".fv").length>0 && $(r).parent().find(".fv").remove();
				},
				errorPlacement: function(e, r) {
					$(e)[0] && $(e).remove();
					$(r).parent().find(".fv").length>0 && $(r).parent().find(".fv").remove();
					switch ($(r).attr("name")) {
						case "@":
							//e.appendTo($(r).parent().parent().parent());
							break;
						default:
							//e.appendTo($(r).parent());
							$('<i class="icon-append ion-android-warning fv"></i>').prependTo($(r).parent());
							$('<b class="tooltip tooltip-top-right fv">'+e.html()+'</b>').appendTo($(r).parent());
							$(r).addClass('error');
							//e.appendTo($(r).parent().find('.tooltip'));
						break;
					}
				},
			submitHandler: function(f){
				f.submit();
			}
		});
		}
	}
	bindNewsletter(){
		var this_ = this;
		if ($("#form_subscribe")[0]) {
        $("#form_subscribe")
            .validate({
                ignore: ":hidden"
                , rules: {
                    email: {
                        required: !0
                        , email: !0
                        , remote: INDEX_URL + "/xhr?action=subscribe&do=check"
                    }
                }
                , messages: {
                    email: {
                        required: _("Required")
                        , email: _("Email not valid")
                        , remote: _("Email exists")
                    }
                }
                , highlight: function (e) {
                    $(e)
                        .closest("form")
                        .removeClass("success")
                        .addClass("error")
                }
                , success: function (e) {
                    e.text("")
                        .removeClass("error")
                        .addClass("valid")
                        .closest("form")
                        .removeClass("error")
                        .addClass("success")
                }
                , errorPlacement: function (error, element) {
                    if ($(error)[0]) {
                        $(error)
                            .remove();
                    }
                    error.appendTo($(element)
                        .parents("form"));
                }
                , submitHandler: function (e) {
                    var r = $(e)
                        .attr("id")
                        , m = $(e)
                        .serialize();
                    
										this_.swalLoading('', '<p>'+_('Please wait...')+'</p>');
										
										$.ajax({
                        type: "POST"
                        , url: INDEX_URL + "/xhr?action=subscribe"
                        , data: m
                        , dataType: "json"
                        , success: function () {}
                        , complete: function (m) {
                            m = $.parseJSON(m.responseText);
														Swal.close(),
                            setTimeout(function () {
                                "success" == m.response ? ($("#form_subscribe input[name='email']")
                                    .val('').trigger('change'), 
																		Swal.fire({
																			title:'',
																			text: m.text,
																			type: 'success',
																			timer: 2999,
																			showConfirmButton: false
																		})
																		) : 
																		Swal.fire({
																			title:'',
																			text: m.text,
																			type: 'error',
																			timer: 2999,
																			showConfirmButton: false
																		})
                            }, 750);
                        }
                        , error: function () {
                          Swal.fire({
														title:'',
														text: _('Error'),
														type: 'error',
														timer: 2999,
														showConfirmButton: false
													})
                        }
                    })
                }
            });
    }
	}
	bindMap(lat, lng){
		if (typeof google === 'object' && typeof google.maps === 'object') {
			if ($('#map_contact')[0]) {
				var map;
				var marker;
				var image = INDEX_URL+'/assets/img/icon-google-map-xs.png'; /*marker icon*/
				/*google.maps.event.addDomListener(window, 'load', function () {*/
					var mapOptions = {
						scrollwheel: false,
						zoom: 15,
						center: new google.maps.LatLng(lat-0.001, lng), /* map coordinates*/
						streetViewControl: false,
						mapTypeControlOptions: {
							mapTypeIds: [
								'map_style_custom'
							],
							style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR,
							position: google.maps.ControlPosition.BOTTOM_CENTER
						},
						styles: map_style_custom
					};
					map = new google.maps.Map(document.getElementById('map_contact'), mapOptions);
					marker = new google.maps.Marker({
						position: new google.maps.LatLng(lat, lng), /* marker coordinates*/
						map: map,
						icon: image,
						title: ''
					});
				/*});*/
			}
		}
	}
	bindContact(){
		var this_ = this;
		if($("#contact-us")[0]){
			var $f = $("#contact-us");
			$($f).validate({
				ignore: ":hidden",
				rules: {
					name: {
						required: !0
					},
					email: {
						required: !0,
						email: !0
					},
					subject: {
						required: !0
					},
					message: {
						required: !0
					}
				},
				messages: {
					name: {
						required: _("Required")
					},
					email: {
						required: _("Required"),
						email: _("Invalid")
					},
					subject: {
						required: _("Required")
					},
					message: {
						required: _("Required")
					}
			},
			highlight: function(e) {
					$(e).closest("form").removeClass("success").addClass("error")
			},
			success: function(e) {
					e.text("").addClass("valid").closest("form").removeClass("error").addClass("success")
			},
			submitHandler: function() {
				this_.swalLoading('', '<p>'+_('Please wait...')+'</p>');
				$.ajax({
					type: "POST",
					url: INDEX_URL + "/?action=contact",
					data: $f.serialize(),
					dataType: "json",
					success: function() {},
					complete: function(e) {
						var m = $.parseJSON(e.responseText);
						Swal.close();
						setTimeout(function() {
							"success" == m.response ? ($f.find("input[type='text']").val(''), $f.find("input[type='email']").val(''), $f.find("textarea").val(''), Swal.fire({
								title:'',
								text: m.text,
								type: 'success',
								timer: 2999,
								showConfirmButton: false
							})
							) : Swal.fire({
								title:'',
								text: m.text,
								type: 'error',
								timer: 2999,
								showConfirmButton: false
							})
						}, 750);
					},
					error: function() {
						Swal.fire({
							title:'',
							text: _('Error'),
							type: 'error',
							timer: 2999,
							showConfirmButton: false
						})
					}
				})
			}
		});
		}
		this.bindMap(44.7596203, 20.4942792);
	}
	bindSurvey(){
		var this_ = this;
		if($("#survey")[0]){
			var $f = $("#survey");
			$($f).validate({
				ignore: ":hidden",
				rules: {
					q1: {
						required: !0
					},
					q2: {
						required: !0,
						email: !0
					},
					q3: {
						required: !0
					},
					q4: {
						required: !0
					}
				},
				messages: {
					q1: {
						required: _("Required")
					},
					q2: {
						required: _("Required")
					},
					q3: {
						required: _("Required")
					},
					q4: {
						required: _("Required")
					}
			},
			highlight: function(e) {
					$(e).closest("form").removeClass("success").addClass("error")
			},
			success: function(e) {
					e.text("").addClass("valid").closest("form").removeClass("error").addClass("success")
			},
			submitHandler: function() {
				this_.swalLoading('', '<p>'+_('Please wait...')+'</p>');
				$.ajax({
					type: "POST",
					url: INDEX_URL + "/?action=survey",
					data: $f.serialize(),
					dataType: "json",
					success: function() {},
					complete: function(e) {
						var m = $.parseJSON(e.responseText);
						Swal.close();
						setTimeout(function() {
							"success" == m.response ? ($f.find("input[type='text']").val(''), $f.find("input[type='email']").val(''), $f.find("textarea").val(''), Swal.fire({
								title:'',
								text: m.text,
								type: 'success',
								timer: 2999,
								showConfirmButton: false
							})
							) : 
								Swal.fire({
									title:'',
									text: m.text,
									type: 'error',
									timer: 2999,
									showConfirmButton: false
								})
						}, 750);
					},
					error: function() {
						SmartBoxError(0);
					}
				})
			}
		});
		}
		this.bindMap(44.7596203, 20.4942792);
	}
	bindTooltip(){
		$('[data-toggle="tooltip"]').each(function(){
			$(this).tooltip({
				placement: $(this).attr('data-placement'),
				container: ($(this).attr('data-container')!==undefined) ? $(this).attr('data-container') : 'body'
			});
		});
	}
	bindMix(){
		if($("#form_filter")[0]){
			$("#form_filter select").on('change', function(){
				$("#form_filter").trigger('submit');
			});
		}
		$("[data-email]").each(function(){
			$(this).attr("href", "mailto:"+$(this).attr("data-email"));
			if(!$(this).hasClass("envelope")){
				$(this).html($(this).attr("data-email"))
			}
		});
		// owlCarousel for Brand Slider ============================================================
    if ($('.brand-slider').exist()) {
      var brand_slider = $('.brand-slider');
      brand_slider.owlCarousel({
        loop : true,
        dots : false,
        nav : false,
        navText : ['<i class="fa fa-angle-left"></i>','<i class="fa fa-angle-right"></i>'],
				autoplay : true,
        autoplayHoverPause:true,
				autoplayTimeout: 5000,
        responsive:{
          0:{
            items:1,
            margin:10
          },
          480:{
            items:1,
            margin:15
          },
          768:{
            items:3,
            margin:15,
						autoWidth: true
          },
          992:{
            items:4,
            margin: 30,
						autoWidth: true
          },
          1200:{
            items:6,
            margin: 30,
						autoWidth: true
          }
        }
      });
    }
		if($('.add_review').length>0){
			$(".add_review").off('click');
			$('.add_review').on('click', function(e){
				e.preventDefault();
				setTimeout(function(){
					$('html,body').animate({
						scrollTop: $("#reviews").offset().top
					}, 999);
					return false;
				}, 333);
			});
		}
	}
	swalLoading(title, text){
		var timerInterval;
		Swal.fire({
			title: title,
			html: text,
			timer: 9999,
			onBeforeOpen: () => {
				Swal.showLoading()
				timerInterval = setInterval(() => {
					
				}, 100)
				/*
				timerInterval = setInterval(() => {
					Swal.getContent().querySelector('p')
					.textContent = Swal.getTimerLeft()
				}, 100)
				*/
			},
			onClose: () => {
				clearInterval(timerInterval)
			}
		})
	}
	bindInstagramFeed(){
		//
	}
	init(){
		this.bindRegister();
		this.bindLogin();
		this.bindForgot();
		this.bindReset($("#form_reset"));
		this.bindTooltip();
		this.ls('form_login');
		this.bindCart(_product_required);
		this.bindSubscription();
		this.bindTableCart();
		this.bindTableSubscription();
		this.bindCheckout();
		this.bindMix();
		this.bindReviews();
		this.bindNewsletter();
		this.bindContact();
		this.bindSurvey();
		this.bindInstagramFeed();
	}
	ls(f,n){
		if(n===undefined){
			n='';
		}
		if($("#"+f+" input")[0]){$("#"+f+" input").val('');$("#p"+n).val(hex_sha512($("#password"+n).val())),$("#"+f+" #password"+n).on("keyup blur",function(){$("#p"+n).val(hex_sha512($(this).val()))}),$("#"+f+" button").on("mousedown mousemove",function(){$("#p"+n).val(hex_sha512($("#password"+n).val()))}),$("#"+f+"").on("submit", function(){$("#p"+n).val(hex_sha512($("#password"+n).val()))})};
	}
}