!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery"],e):"undefined"!=typeof module&&module.exports?module.exports=e(require("jquery")):e(jQuery)}(function(r){"use strict";function i(e){return!e.nodeName||-1!==r.inArray(e.nodeName.toLowerCase(),["iframe","#document","html","body"])}function t(e){return r.isFunction(e)||r.isPlainObject(e)?e:{top:e,left:e}}var v=r.scrollTo=function(e,t,o){return r(window).scrollTo(e,t,o)};return v.defaults={axis:"xy",duration:0,limit:!0},r.fn.scrollTo=function(e,o,h){"object"==typeof o&&(h=o,o=0),"function"==typeof h&&(h={onAfter:h}),"max"===e&&(e=9e9),h=r.extend({},v.defaults,h),o=o||h.duration;var x=h.queue&&1<h.axis.length;return x&&(o/=2),h.offset=t(h.offset),h.over=t(h.over),this.each(function(){function a(e){var t=r.extend({},h,{queue:!0,duration:o,complete:e&&function(){e.call(c,d,h)}});l.animate(m,t)}if(null!==e){var u,f=i(this),c=f?this.contentWindow||window:this,l=r(c),d=e,m={};switch(typeof d){case"number":case"string":if(/^([+-]=?)?\d+(\.\d+)?(px|%)?$/.test(d)){d=t(d);break}if(!(d=f?r(d):r(d,c)).length)return;case"object":(d.is||d.style)&&(u=(d=r(d)).offset())}var p=r.isFunction(h.offset)&&h.offset(c,d)||h.offset;r.each(h.axis.split(""),function(e,t){var o="x"===t?"Left":"Top",n=o.toLowerCase(),r="scroll"+o,i=l[r](),s=v.max(c,t);u?(m[r]=u[n]+(f?0:i-l.offset()[n]),h.margin&&(m[r]-=parseInt(d.css("margin"+o),10)||0,m[r]-=parseInt(d.css("border"+o+"Width"),10)||0),m[r]+=p[n]||0,h.over[n]&&(m[r]+=d["x"===t?"width":"height"]()*h.over[n])):(o=d[n],m[r]=o.slice&&"%"===o.slice(-1)?parseFloat(o)/100*s:o),h.limit&&/^\d+$/.test(m[r])&&(m[r]=m[r]<=0?0:Math.min(m[r],s)),!e&&1<h.axis.length&&(i===m[r]?m={}:x&&(a(h.onAfterFirst),m={}))}),a(h.onAfter)}})},v.max=function(e,t){var o="scroll"+(n="x"===t?"Width":"Height");if(!i(e))return e[o]-r(e)[n.toLowerCase()]();var n="client"+n,e=(t=e.ownerDocument||e.document).documentElement,t=t.body;return Math.max(e[o],t[o])-Math.min(e[n],t[n])},r.Tween.propHooks.scrollLeft=r.Tween.propHooks.scrollTop={get:function(e){return r(e.elem)[e.prop]()},set:function(e){var t=this.get(e);if(e.options.interrupt&&e._last&&e._last!==t)return r(e.elem).stop();var o=Math.round(e.now);t!==o&&(r(e.elem)[e.prop](o),e._last=this.get(e))}},v});
(function(o){o.extend(o.fn,{validate:function(t){if(this.length){var i=o.data(this[0],"validator");return i||(this.attr("novalidate","novalidate"),i=new o.validator(t,this[0]),o.data(this[0],"validator",i),i.settings.onsubmit&&(this.validateDelegate(":submit","click",function(t){i.settings.submitHandler&&(i.submitButton=t.target),o(t.target).hasClass("cancel")&&(i.cancelSubmit=!0),void 0!==o(t.target).attr("formnovalidate")&&(i.cancelSubmit=!0)}),this.submit(function(e){function t(){var t;return!i.settings.submitHandler||(i.submitButton&&(t=o("<input type='hidden'/>").attr("name",i.submitButton.name).val(o(i.submitButton).val()).appendTo(i.currentForm)),i.settings.submitHandler.call(i,i.currentForm,e),i.submitButton&&t.remove(),!1)}return i.settings.debug&&e.preventDefault(),i.cancelSubmit?(i.cancelSubmit=!1,t()):i.form()?i.pendingRequest?!(i.formSubmitted=!0):t():(i.focusInvalid(),!1)})),i)}t&&t.debug&&window.console&&console.warn("Nothing selected, can't validate, returning nothing.")},valid:function(){if(o(this[0]).is("form"))return this.validate().form();var t=!0,e=o(this[0].form).validate();return this.each(function(){t=t&&e.element(this)}),t},removeAttrs:function(t){var i={},s=this;return o.each(t.split(/\s/),function(t,e){i[e]=s.attr(e),s.removeAttr(e)}),i},rules:function(t,e){var i=this[0];if(t){var s=o.data(i.form,"validator").settings,n=s.rules,r=o.validator.staticRules(i);switch(t){case"add":o.extend(r,o.validator.normalizeRule(e)),delete r.messages,n[i.name]=r,e.messages&&(s.messages[i.name]=o.extend(s.messages[i.name],e.messages));break;case"remove":if(!e)return delete n[i.name],r;var a={};return o.each(e.split(/\s/),function(t,e){a[e]=r[e],delete r[e]}),a}}var u=o.validator.normalizeRules(o.extend({},o.validator.classRules(i),o.validator.attributeRules(i),o.validator.dataRules(i),o.validator.staticRules(i)),i);return u.required&&(t=u.required,delete u.required,u=o.extend({required:t},u)),u}}),o.extend(o.expr[":"],{blank:function(t){return!o.trim(""+o(t).val())},filled:function(t){return!!o.trim(""+o(t).val())},unchecked:function(t){return!o(t).prop("checked")}}),o.validator=function(t,e){this.settings=o.extend(!0,{},o.validator.defaults,t),this.currentForm=e,this.init()},o.validator.format=function(i,t){return 1===arguments.length?function(){var t=o.makeArray(arguments);return t.unshift(i),o.validator.format.apply(this,t)}:((t=2<arguments.length&&t.constructor!==Array?o.makeArray(arguments).slice(1):t).constructor!==Array&&(t=[t]),o.each(t,function(t,e){i=i.replace(RegExp("\\{"+t+"\\}","g"),function(){return e})}),i)},o.extend(o.validator,{defaults:{messages:{},groups:{},rules:{},errorClass:"error",validClass:"valid",errorElement:"label",focusInvalid:!0,errorContainer:o([]),errorLabelContainer:o([]),onsubmit:!0,ignore:":hidden",ignoreTitle:!1,onfocusin:function(t){this.lastActive=t,this.settings.focusCleanup&&!this.blockFocusCleanup&&(this.settings.unhighlight&&this.settings.unhighlight.call(this,t,this.settings.errorClass,this.settings.validClass),this.addWrapper(this.errorsFor(t)).hide())},onfocusout:function(t){this.checkable(t)||!(t.name in this.submitted)&&this.optional(t)||this.element(t)},onkeyup:function(t,e){9===e.which&&""===this.elementValue(t)||!(t.name in this.submitted||t===this.lastElement)||this.element(t)},onclick:function(t){t.name in this.submitted?this.element(t):t.parentNode.name in this.submitted&&this.element(t.parentNode)},highlight:function(t,e,i){("radio"===t.type?this.findByName(t.name):o(t)).addClass(e).removeClass(i)},unhighlight:function(t,e,i){("radio"===t.type?this.findByName(t.name):o(t)).removeClass(e).addClass(i)}},setDefaults:function(t){o.extend(o.validator.defaults,t)},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:o.validator.format("Please enter no more than {0} characters."),minlength:o.validator.format("Please enter at least {0} characters."),rangelength:o.validator.format("Please enter a value between {0} and {1} characters long."),range:o.validator.format("Please enter a value between {0} and {1}."),max:o.validator.format("Please enter a value less than or equal to {0}."),min:o.validator.format("Please enter a value greater than or equal to {0}.")},autoCreateRanges:!1,prototype:{init:function(){function t(t){var e=o.data(this[0].form,"validator"),i="on"+t.type.replace(/^validate/,"");e.settings[i]&&e.settings[i].call(e,this[0],t)}this.labelContainer=o(this.settings.errorLabelContainer),this.errorContext=this.labelContainer.length&&this.labelContainer||o(this.currentForm),this.containers=o(this.settings.errorContainer).add(this.settings.errorLabelContainer),this.submitted={},this.valueCache={},this.pendingRequest=0,this.pending={},this.invalid={},this.reset();var s=this.groups={};o.each(this.settings.groups,function(i,t){"string"==typeof t&&(t=t.split(/\s/)),o.each(t,function(t,e){s[e]=i})});var i=this.settings.rules;o.each(i,function(t,e){i[t]=o.validator.normalizeRule(e)}),o(this.currentForm).validateDelegate(":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'] ","focusin focusout keyup",t).validateDelegate("[type='radio'], [type='checkbox'], select, option","click",t),this.settings.invalidHandler&&o(this.currentForm).bind("invalid-form.validate",this.settings.invalidHandler)},form:function(){return this.checkForm(),o.extend(this.submitted,this.errorMap),this.invalid=o.extend({},this.errorMap),this.valid()||o(this.currentForm).triggerHandler("invalid-form",[this]),this.showErrors(),this.valid()},checkForm:function(){this.prepareForm();for(var t=0,e=this.currentElements=this.elements();e[t];t++)this.check(e[t]);return this.valid()},element:function(t){t=this.validationTargetFor(this.clean(t)),this.lastElement=t,this.prepareElement(t),this.currentElements=o(t);var e=!1!==this.check(t);return e?delete this.invalid[t.name]:this.invalid[t.name]=!0,this.numberOfInvalids()||(this.toHide=this.toHide.add(this.containers)),this.showErrors(),e},showErrors:function(e){if(e){for(var t in o.extend(this.errorMap,e),this.errorList=[],e)this.errorList.push({message:e[t],element:this.findByName(t)[0]});this.successList=o.grep(this.successList,function(t){return!(t.name in e)})}this.settings.showErrors?this.settings.showErrors.call(this,this.errorMap,this.errorList):this.defaultShowErrors()},resetForm:function(){o.fn.resetForm&&o(this.currentForm).resetForm(),this.submitted={},this.lastElement=null,this.prepareForm(),this.hideErrors(),this.elements().removeClass(this.settings.errorClass).removeData("previousValue")},numberOfInvalids:function(){return this.objectLength(this.invalid)},objectLength:function(t){var e,i=0;for(e in t)i++;return i},hideErrors:function(){this.addWrapper(this.toHide).hide()},valid:function(){return 0===this.size()},size:function(){return this.errorList.length},focusInvalid:function(){if(this.settings.focusInvalid)try{o(this.findLastActive()||this.errorList.length&&this.errorList[0].element||[]).filter(":visible").focus().trigger("focusin")}catch(t){}},findLastActive:function(){var e=this.lastActive;return e&&1===o.grep(this.errorList,function(t){return t.element.name===e.name}).length&&e},elements:function(){var t=this,e={};return o(this.currentForm).find("input, select, textarea").not(":submit, :reset, :image, [disabled]").not(this.settings.ignore).filter(function(){return!this.name&&t.settings.debug&&window.console&&console.error("%o has no name assigned",this),!(this.name in e||!t.objectLength(o(this).rules()))&&(e[this.name]=!0)})},clean:function(t){return o(t)[0]},errors:function(){var t=this.settings.errorClass.replace(" ",".");return o(this.settings.errorElement+"."+t,this.errorContext)},reset:function(){this.successList=[],this.errorList=[],this.errorMap={},this.toShow=o([]),this.toHide=o([]),this.currentElements=o([])},prepareForm:function(){this.reset(),this.toHide=this.errors().add(this.containers)},prepareElement:function(t){this.reset(),this.toHide=this.errorsFor(t)},elementValue:function(t){var e=o(t).attr("type"),i=o(t).val();return"radio"===e||"checkbox"===e?o("input[name='"+o(t).attr("name")+"']:checked").val():"string"==typeof i?i.replace(/\r/g,""):i},check:function(e){e=this.validationTargetFor(this.clean(e));var t,i,s=o(e).rules(),n=!1,r=this.elementValue(e);for(i in s){var a={method:i,parameters:s[i]};try{if("dependency-mismatch"===(t=o.validator.methods[i].call(this,r,e,a.parameters))){n=!0;continue}if(n=!1,"pending"===t)return void(this.toHide=this.toHide.not(this.errorsFor(e)));if(!t)return this.formatAndAdd(e,a),!1}catch(t){throw this.settings.debug&&window.console&&console.log("Exception occurred when checking element "+e.id+", check the '"+a.method+"' method.",t),t}}return n?void 0:(this.objectLength(s)&&this.successList.push(e),!0)},customDataMessage:function(t,e){return o(t).data("msg-"+e.toLowerCase())||t.attributes&&o(t).attr("data-msg-"+e.toLowerCase())},customMessage:function(t,e){t=this.settings.messages[t];return t&&(t.constructor===String?t:t[e])},findDefined:function(){for(var t=0;t<arguments.length;t++)if(void 0!==arguments[t])return arguments[t]},defaultMessage:function(t,e){return this.findDefined(this.customMessage(t.name,e),this.customDataMessage(t,e),!this.settings.ignoreTitle&&t.title||void 0,o.validator.messages[e],"<strong>Warning: No message defined for "+t.name+"</strong>")},formatAndAdd:function(t,e){var i=this.defaultMessage(t,e.method),s=/\$?\{(\d+)\}/g;"function"==typeof i?i=i.call(this,e.parameters,t):s.test(i)&&(i=o.validator.format(i.replace(s,"{$1}"),e.parameters)),this.errorList.push({message:i,element:t}),this.errorMap[t.name]=i,this.submitted[t.name]=i},addWrapper:function(t){return t=this.settings.wrapper?t.add(t.parent(this.settings.wrapper)):t},defaultShowErrors:function(){for(var t,e=0;this.errorList[e];e++){var i=this.errorList[e];this.settings.highlight&&this.settings.highlight.call(this,i.element,this.settings.errorClass,this.settings.validClass),this.showLabel(i.element,i.message)}if(this.errorList.length&&(this.toShow=this.toShow.add(this.containers)),this.settings.success)for(e=0;this.successList[e];e++)this.showLabel(this.successList[e]);if(this.settings.unhighlight)for(e=0,t=this.validElements();t[e];e++)this.settings.unhighlight.call(this,t[e],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 o(this.errorList).map(function(){return this.element})},showLabel:function(t,e){var i=this.errorsFor(t);i.length?(i.removeClass(this.settings.validClass).addClass(this.settings.errorClass),i.html(e)):(i=o("<"+this.settings.errorElement+">").attr("for",this.idOrName(t)).addClass(this.settings.errorClass).html(e||""),this.settings.wrapper&&(i=i.hide().show().wrap("<"+this.settings.wrapper+"/>").parent()),this.labelContainer.append(i).length||(this.settings.errorPlacement?this.settings.errorPlacement(i,o(t)):i.insertAfter(t))),!e&&this.settings.success&&(i.text(""),"string"==typeof this.settings.success?i.addClass(this.settings.success):this.settings.success(i,t)),this.toShow=this.toShow.add(i)},errorsFor:function(t){var e=this.idOrName(t);return this.errors().filter(function(){return o(this).attr("for")===e})},idOrName:function(t){return this.groups[t.name]||!this.checkable(t)&&t.id||t.name},validationTargetFor:function(t){return t=this.checkable(t)?this.findByName(t.name).not(this.settings.ignore)[0]:t},checkable:function(t){return/radio|checkbox/i.test(t.type)},findByName:function(t){return o(this.currentForm).find("[name='"+t+"']")},getLength:function(t,e){switch(e.nodeName.toLowerCase()){case"select":return o("option:selected",e).length;case"input":if(this.checkable(e))return this.findByName(e.name).filter(":checked").length}return t.length},depend:function(t,e){return!this.dependTypes[typeof t]||this.dependTypes[typeof t](t,e)},dependTypes:{boolean:function(t){return t},string:function(t,e){return!!o(t,e.form).length},function:function(t,e){return t(e)}},optional:function(t){var e=this.elementValue(t);return!o.validator.methods.required.call(this,e,t)&&"dependency-mismatch"},startRequest:function(t){this.pending[t.name]||(this.pendingRequest++,this.pending[t.name]=!0)},stopRequest:function(t,e){this.pendingRequest--,this.pendingRequest<0&&(this.pendingRequest=0),delete this.pending[t.name],e&&0===this.pendingRequest&&this.formSubmitted&&this.form()?(o(this.currentForm).submit(),this.formSubmitted=!1):!e&&0===this.pendingRequest&&this.formSubmitted&&(o(this.currentForm).triggerHandler("invalid-form",[this]),this.formSubmitted=!1)},previousValue:function(t){return o.data(t,"previousValue")||o.data(t,"previousValue",{old:null,valid:!0,message:this.defaultMessage(t,"remote")})}},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(t,e){t.constructor===String?this.classRuleSettings[t]=e:o.extend(this.classRuleSettings,t)},classRules:function(t){var e={},t=o(t).attr("class");return t&&o.each(t.split(" "),function(){this in o.validator.classRuleSettings&&o.extend(e,o.validator.classRuleSettings[this])}),e},attributeRules:function(t){var e,i={},s=o(t),n=s[0].getAttribute("type");for(e in o.validator.methods){var r="required"===e?!!(r=""===(r=s.get(0).getAttribute(e))?!0:r):s.attr(e);(r=/min|max/.test(e)&&(null===n||/number|range|text/.test(n))?Number(r):r)?i[e]=r:n===e&&"range"!==n&&(i[e]=!0)}return i.maxlength&&/-1|2147483647|524288/.test(i.maxlength)&&delete i.maxlength,i},dataRules:function(t){var e,i,s={},n=o(t);for(e in o.validator.methods)i=n.data("rule-"+e.toLowerCase()),void 0!==i&&(s[e]=i);return s},staticRules:function(t){var e={},i=o.data(t.form,"validator");return e=i.settings.rules?o.validator.normalizeRule(i.settings.rules[t.name])||{}:e},normalizeRules:function(s,n){return o.each(s,function(t,e){if(!1!==e){if(e.param||e.depends){var i=!0;switch(typeof e.depends){case"string":i=!!o(e.depends,n.form).length;break;case"function":i=e.depends.call(n,n)}i?s[t]=void 0===e.param||e.param:delete s[t]}}else delete s[t]}),o.each(s,function(t,e){s[t]=o.isFunction(e)?e(n):e}),o.each(["minlength","maxlength"],function(){s[this]&&(s[this]=Number(s[this]))}),o.each(["rangelength","range"],function(){var t;s[this]&&(o.isArray(s[this])?s[this]=[Number(s[this][0]),Number(s[this][1])]:"string"==typeof s[this]&&(t=s[this].split(/[\s,]+/),s[this]=[Number(t[0]),Number(t[1])]))}),o.validator.autoCreateRanges&&(s.min&&s.max&&(s.range=[s.min,s.max],delete s.min,delete s.max),s.minlength&&s.maxlength&&(s.rangelength=[s.minlength,s.maxlength],delete s.minlength,delete s.maxlength)),s},normalizeRule:function(t){var e;return"string"==typeof t&&(e={},o.each(t.split(/\s/),function(){e[this]=!0}),t=e),t},addMethod:function(t,e,i){o.validator.methods[t]=e,o.validator.messages[t]=void 0!==i?i:o.validator.messages[t],e.length<3&&o.validator.addClassRules(t,o.validator.normalizeRule(t))},methods:{required:function(t,e,i){if(!this.depend(i,e))return"dependency-mismatch";if("select"!==e.nodeName.toLowerCase())return this.checkable(e)?0<this.getLength(t,e):0<o.trim(t).length;e=o(e).val();return e&&0<e.length},email:function(t,e){return this.optional(e)||/^((([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])))$/i.test(t)},url:function(t,e){return this.optional(e)||/^(https?|s?ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([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])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i.test(t)},date:function(t,e){return this.optional(e)||!/Invalid|NaN/.test(""+new Date(t))},dateISO:function(t,e){return this.optional(e)||/^\d{4}[\/\-]\d{1,2}[\/\-]\d{1,2}$/.test(t)},number:function(t,e){return this.optional(e)||/^-?(?:\d+|\d{1,3}(?:,\d{3})+)?(?:\.\d+)?$/.test(t)},digits:function(t,e){return this.optional(e)||/^\d+$/.test(t)},creditcard:function(t,e){if(this.optional(e))return"dependency-mismatch";if(/[^0-9 \-]+/.test(t))return!1;for(var i=0,s=0,n=!1,r=(t=t.replace(/\D/g,"")).length-1;0<=r;r--){var a=t.charAt(r),s=parseInt(a,10);n&&9<(s*=2)&&(s-=9),i+=s,n=!n}return 0==i%10},minlength:function(t,e,i){t=o.isArray(t)?t.length:this.getLength(o.trim(t),e);return this.optional(e)||i<=t},maxlength:function(t,e,i){t=o.isArray(t)?t.length:this.getLength(o.trim(t),e);return this.optional(e)||t<=i},rangelength:function(t,e,i){t=o.isArray(t)?t.length:this.getLength(o.trim(t),e);return this.optional(e)||t>=i[0]&&i[1]>=t},min:function(t,e,i){return this.optional(e)||i<=t},max:function(t,e,i){return this.optional(e)||t<=i},range:function(t,e,i){return this.optional(e)||t>=i[0]&&i[1]>=t},equalTo:function(t,e,i){i=o(i);return this.settings.onfocusout&&i.unbind(".validate-equalTo").bind("blur.validate-equalTo",function(){o(e).valid()}),t===i.val()},remote:function(s,n,t){if(this.optional(n))return"dependency-mismatch";var r=this.previousValue(n);if(this.settings.messages[n.name]||(this.settings.messages[n.name]={}),r.originalMessage=this.settings.messages[n.name].remote,this.settings.messages[n.name].remote=r.message,t="string"==typeof t?{url:t}:t,r.old===s)return r.valid;r.old=s;var a=this;this.startRequest(n);var e={};return e[n.name]=s,o.ajax(o.extend(!0,{url:t,mode:"abort",port:"validate"+n.name,dataType:"json",data:e,success:function(t){a.settings.messages[n.name].remote=r.originalMessage;var e,i=!0===t||"true"===t;i?(e=a.formSubmitted,a.prepareElement(n),a.formSubmitted=e,a.successList.push(n),delete a.invalid[n.name],a.showErrors()):(e={},t=t||a.defaultMessage(n,"remote"),e[n.name]=r.message=o.isFunction(t)?t(s):t,a.invalid[n.name]=!0,a.showErrors(e)),r.valid=i,a.stopRequest(n,i)}},t)),"pending"}}}),o.format=o.validator.format})(jQuery),function(s){var n,r={};s.ajaxPrefilter?s.ajaxPrefilter(function(t,e,i){var s=t.port;"abort"===t.mode&&(r[s]&&r[s].abort(),r[s]=i)}):(n=s.ajax,s.ajax=function(t){var e=("mode"in t?t:s.ajaxSettings).mode,i=("port"in t?t:s.ajaxSettings).port;return"abort"===e?(r[i]&&r[i].abort(),r[i]=n.apply(this,arguments),r[i]):n.apply(this,arguments)})}(jQuery),function(n){n.extend(n.fn,{validateDelegate:function(i,t,s){return this.bind(t,function(t){var e=n(t.target);return e.is(i)?s.apply(e,arguments):void 0})}})}(jQuery);
function ClientsCounterActive(e,t,n){e.classList.add("active"),ClientsCounter(e,t,n)}function ClientsCounter(e,t,n,s){var a,c,i,o=getLang(),l=",";switch(o){case"fr":case"es":case"pl":l=" ";break;case"de":case"br":case"it":case"nl":case"cn":l=".";break;default:l=","}e.classList.contains("active")&&!e.classList.contains(s)&&(e.classList.add(s),a=0,c=Math.abs(Math.floor(t/n)),i=setInterval(function(){a+=c,e.innerHTML=Math.ceil(a).toString().replace(/\B(?=(?:\d{3})+(?!\d))/g,l),a==t&&(e.classList.remove("active"),clearInterval(i))}))}document.addEventListener("DOMContentLoaded",function(){var e,t=document.querySelector(".js-number-of-clients");t&&(e=parseInt(t.textContent.replace(/\D/g,"")),window.onload=ClientsCounterActive(t,e,1e3),window.onscroll=function(){ClientsCounter(t,e,1e3,"scrolled")})});
function InitSmoothScroll(){$(".smooth_scroll").click(function(o){o.preventDefault(),$.scrollTo($(this).attr("href"),400)})}$(window).load(function(){InitSmoothScroll()});
const NavigationFloatMenu=Base.extend({SHIFT_TIMEOUT:5e3,QUICK_SHIFT:200,SLOW_SHIFT:300,_menu:null,_shiftingBtn:null,_once:!0,_productIcon:null,constructor:function(){this._menu=$("#topMenuContent"),this._productIcon=$("#productIcon"),this._menuWrapper=$("#topMenuWrapper"),this._shiftingBtn=$("#nav_get_started .top_block_tab_link"),null!=this._menuWrapper&&(this._scrollingContent($(window).scrollTop(),this),this._scrolling())},_scrolling:function(){const t=this;$(window).scroll(function(){var n=$(this).scrollTop();t._scrollingContent(n,t)})},_scrollingContent:function(n,t){t._menuWrapper.offset().top-n<0?(t._menu.addClass("start_scroll"),null!=t._productIcon&&(t._productIcon.addClass("show_icon"),t._productIcon.attr("src",t._productIcon.attr("data-original"))),t._once&&0<t._shiftingBtn.length&&(t._shifting(t.SHIFT_TIMEOUT),t._shifting(3*t.SHIFT_TIMEOUT),t._once=!1)):(t._menu.removeClass("start_scroll"),null!=t._productIcon&&t._productIcon.removeClass("show_icon"))},_shifting:function(n){const t=this;setTimeout(()=>{t._shiftingBtn.animate({left:"+=20"},t.SLOW_SHIFT),t._shiftingBtn.animate({left:"-=20"},t.SLOW_SHIFT)},n)}});$(document).ready(()=>{new NavigationFloatMenu});
const ArrowNavigationMenu=Base.extend({ARROW_DOWN_CLASS:"down",ARROW_UP_CLASS:"up",MENU_ITEM_HEIGHT:52,_arrowButton:null,_grayLayer:null,_menu:null,_menuWrapper:null,_mainMenuWrapper:null,_mainMenuButton:null,_serviceMenuButton:null,_menuList:null,_startMove:0,constructor:function(){this._arrowButton=$(".menu_arrow_button"),this._grayLayer=$("#grayLayerSub"),this._menu=$("#responsiveTopMenuContent"),this._menuWrapper=$("#responsiveTopMenuWrapper"),this._mainMenuButton=$(".main_menu_button"),this._mainMenuWrapper=$(".index_top_menu_wrapper"),this._serviceMenuButton=$(".service_menu_button"),this._menuList=$(".product_menu"),this._arrowButton.addClass(this.ARROW_DOWN_CLASS),this._arrowButton.on("click",handler(this,"_changeMenuState")),this._grayLayer.hide(),this._grayLayer.on("click",handler(this,"_hideMenu")),this._grayLayer.on("scroll",handler(this,"_hideMenu")),this._grayLayer.on("touchstart",handler(this,"_hideMenu")),this._grayLayer.on("touchmove",handler(this,"_hideMenu")),this._grayLayer.on("scrollstart",handler(this,"_hideMenu")),this._grayLayer.on("wheel",handler(this,"_hideMenu")),this._mainMenuButton.on("click",handler(this,"_hideMenu")),this._serviceMenuButton.on("click",handler(this,"_hideMenu")),this._menuList.on("shown.bs.collapse",handler(this,"_scrollToTopMenu")),this._menuList.on("hide.bs.collapse",handler(this,"_scrollToTopMenu")),this._menuList.on("touchmove",handler(this,"_movingMenu")),this._menuList.on("touchstart",handler(this,"_setIsMovingMenu"));const n=this;this._menuList.on("scroll",t=>{n._setIsScrollingMenu(t)}),this._menuList.on("wheel",t=>{n._setIsScrollingMenu(t)}),$(window).on("scroll",handler(this,"_setIsScrollingWindow")),$(window).on("wheel",handler(this,"_setIsScrollingWindow")),$(window).on("scrollstart",handler(this,"_setIsScrollingWindow")),$(window).on("touchstart",handler(this,"_setIsScrollingWindow")),$(window).on("touchmove",handler(this,"_setIsScrollingWindow")),this._scrollingContent($(window).scrollTop()),$(window).on("resize",handler(this,"_changeVisibleMenu")),this._arrowButton.dblclick(handler(this,"_changeMenuState"))},_scrollingContent:function(t){this._menuWrapper.offset().top-t<0?this._menu.addClass("start_scroll"):this._menu.removeClass("start_scroll"),this._changeVisibleMenu()},_setIsScrollingMenu:function(t){if(!this._menu.find($(t.target)))return!1;var n=document.getElementsByClassName("product_menu")[0],e=t.originalEvent.deltaY||t.originalEvent.detail||t.originalEvent.wheelDelta;(e<0&&0==n.scrollTop||0<e&&n.scrollHeight-n.clientHeight-n.scrollTop<=1)&&t.preventDefault()},_setIsMovingMenu:function(){this._startMove=window.event.touches[0].pageY},_movingMenu:function(){if(!(0<this._menu.find($(window.event.target)).length||0<this._mainMenuWrapper.find($(window.event.target)).length))return!1;var t=document.getElementsByClassName("product_menu")[0],n=this._startMove-window.event.touches[0].pageY;(n<0&&0==t.scrollTop||0<n&&t.scrollHeight-t.clientHeight-t.scrollTop<=1)&&window.event.preventDefault()},_setIsScrollingWindow:function(){var t=$(window).scrollTop();this._scrollingContent(t)},_hideMenu:function(){this._arrowButton.hasClass(this.ARROW_UP_CLASS)&&this._arrowButton.click()},_scrollToTopMenu:function(){this._menuList.scrollTop(0)},_changeMenuState:function(){this._arrowButton.hasClass(this.ARROW_DOWN_CLASS)?(this._arrowButton.removeClass(this.ARROW_DOWN_CLASS),this._arrowButton.addClass(this.ARROW_UP_CLASS),this._grayLayer.show()):(this._arrowButton.removeClass(this.ARROW_UP_CLASS),this._arrowButton.addClass(this.ARROW_DOWN_CLASS),this._grayLayer.hide())},_changeVisibleMenu:function(){let t=Math.floor(($(window).height()-this._menu.height())/this.MENU_ITEM_HEIGHT);t=this._menu.hasClass("start_scroll")?t:t-2,this._menuList.css("max-height",this.MENU_ITEM_HEIGHT*t+"px")}});$(document).ready(()=>{new ArrowNavigationMenu});
const Messages={AskQuestion:{FailSubmit:"系统错误，请联系技术支持。"},CreateAccount:{ErrorDuplicate:"具有此电子邮件地址的用户已存在",AnotherError:"很抱歉，由于服务器错误，无法创建您的帐户。",ErrorSiteAddress:"请输入网站地址",ErrorFirstName:"请输入网站地址",ErrorEmail:"请输入有效电子邮件地址",ErrorPhoneMaxLength:"电话号码的最大长度为20位",ErrorSiteAddressMaxLength:"网站地址的最大长度为50位",ErrorDuplicateSiteAddress:"网站地址无效或已被使用"},GetTrialLicense:{ErrorName:"请输入姓名",ErrorNameMaxLength:"姓名的最大长度为50位",InvalidEmail:"请使用有效的电子邮件地址",EmptyEmail:"请输入电子邮件地址",ErrorEmailMaxLength:"电子邮件地址的最大长度为100位"},ContactSales:{ErrorPhone:"请输入国际电话号码"},NotValidPhone:{NotInternationalPhoneNumber:"请输入国际电话号码"},SpecialChars:{WrongSymbols:"不支持的字符",ErrorSpecialChars:"信息不能包含下列任何字符： & <> / % * ^ \\ | @ #\n"}};
$(document).ready(()=>{let a="A message can't contain the following characters: & <> / % * ^ \\ | @ #\n";"undefined"!=typeof Messages&&(a=Messages.SpecialChars.ErrorSpecialChars),jQuery.validator.addMethod("specialChars",(a,e)=>!/[&<>/%*^\|@#]/.test(a),jQuery.validator.format(a)),jQuery.validator.addMethod("specialCharsName",(a,e)=>!/[&<>\/%*^\|@#+={}$\[\]"]/.test(a),jQuery.validator.format(a)),jQuery.validator.addMethod("specialCharsForCompanyName",(a,e)=>!/[<>/%*^\|@#]/.test(a),jQuery.validator.format(a)),jQuery.validator.addMethod("specialCharsCompanyName",(a,e)=>!/[<>/%*^\|{}$\[\]]/.test(a),jQuery.validator.format(a)),jQuery.validator.addMethod("specialCharsForDescription",(a,e)=>!/[<>*^\|@#]/.test(a),jQuery.validator.format(a)),jQuery.validator.addMethod("specialCharsForAddress",(a,e)=>!/[&<>%*^\|@#]/.test(a),jQuery.validator.format(a)),jQuery.validator.addMethod("specialCharsForName",(a,e)=>!/[&<>/%*^\|@#:;(),\[\]{}=+~№$]/.test(a),jQuery.validator.format(a))});
function inputPlaceholder(e,t){if(!e)return null;if(e.placeholder&&"placeholder"in document.createElement(e.tagName))return e;t=t||"#AAA";const l=e.style.color,r=e.getAttribute("placeholder");""!==e.value&&e.value!=r||(e.value=r,e.style.color=t,e.setAttribute("data-placeholder-visible","true"));var a="addEventListener";return e[a]("focus",()=>{e.style.color=l,e.getAttribute("data-placeholder-visible")&&(e.setAttribute("data-placeholder-visible",""),e.value="")},!1),e[a]("blur",()=>{""===e.value?(e.setAttribute("data-placeholder-visible","true"),e.value=r,e.style.color=t):(e.style.color=l,e.setAttribute("data-placeholder-visible",""))},!1),e.form&&e.form[a]("submit",()=>{e.getAttribute("data-placeholder-visible")&&(e.value="")},!1),e}
const EventDispatcher=Base.extend({_listeners:null,constructor:function(){this._listeners=new Object},addListener:function(e,s,t){this._listeners||(this._listeners=new Object),this._listeners[e]||(this._listeners[e]=new Array),this._listeners[e].push({listener:s,method:t})},removeListener:function(s,t){if(this._listeners[s]){var i=this._listeners[s].length;for(let e=0;e<i;++e)if(this._listeners[s][e].listener==t){this._listeners[s].splice(e,1);break}}},hasListener:function(s,t){if(!this._listeners[s])return!1;var i=this._listeners[s].length;for(let e=0;e<i;++e)if(this._listeners[s][e].listener==t)return!0;return!1},dispatchEvent:function(s){if(this._listeners&&this._listeners[s]){const n=Array.prototype.slice.call(arguments);n.splice(0,1);var t=this._listeners[s].length;for(let e=0;e<t;++e){var i=this._listeners[s][e].listener;const r=this._listeners[s][e].method;0==n.length?r.apply(i):r.apply(i,n)}}}});
var AnimatedFormValidation=EventDispatcher.extend({_formElement:null,_validatorObject:null,constructor:function(i,t){this._formElement=i,this._validatorObject=this._formElement.validate(this.extendDefaultSettings(t=null==t?{}:t)),this.bindErrorMessageHiding(),AnimatedFormValidation.registerValidator(this)},isAnimationFinished:function(){return 0===this._formElement.find(".error").length},showCustomErrors:function(i){this._validatorObject.showErrors(i)},getDefaultFormValidationSettings:function(){const r=this;return{errorClass:"error",wrapper:"",errorElement:"span",focusInvalid:!1,onfocusout:!1,onkeyup:!1,showErrors:function(i,t){this.defaultShowErrors()},errorPlacement:function(i,t){r.slideErrorDown(i,t)},highlight:function(i,t,r){const n=$(i).parent(".input_border").is("div")?$(i).parent(".input_border"):$(i);"hidden"!=$(i).attr("type")&&n.addClass(AnimatedFormValidation.INVALID_FIELD_CLASS)},unhighlight:function(i,t,r){const n=$(i).parent(".input_border").is("div")?$(i).parent(".input_border"):$(i);n.removeClass(AnimatedFormValidation.INVALID_FIELD_CLASS)}}},extendDefaultSettings:function(i){return $.extend(!0,{},this.getDefaultFormValidationSettings(),i)},slideErrorDown:function(i,t){if(i=$(i),!(t=$(t)).next(".error").length){const r=t.parent(".input_border").is("div")?t.parent(".input_border"):t;r.addClass(AnimatedFormValidation.INVALID_FIELD_CLASS),this.slideBlockDown(i,t)}},slideBlockDown:function(i,t){const r=t.parent(".input_border").is("div")?t.parent(".input_border"):t;r.after(i);t=i.css("height");i.css({height:0,display:"block"}),r.next().animate({height:t},AnimatedFormValidation.ANIMATION_SPEED)},bindErrorMessageHiding:function(){const t=this,i=this._formElement.find("input.edit_field");i.keydown(function(i){i.which!=AnimatedFormValidation.ENTER_KEY_CODE&&t.hideFieldError(this)}),i.focus(function(i){$(this).val($.trim($(this).val())),t.hideFieldError(this)})},hideFieldError:function(i){const t=(i=$(i)).parent(".input_border").is("div")?i.parent(".input_border"):i;t.removeClass(AnimatedFormValidation.INVALID_FIELD_CLASS),AnimatedFormValidation.hideAndRemoveError(t.next(".error"))},dispatchAnimationFinishedEvent:function(){this.dispatchEvent(AnimatedFormValidation.ANIMATION_FINISHED)}},{ENTER_KEY_CODE:13,ANIMATION_SPEED:350,INVALID_FIELD_CLASS:"invalid_field",ANIMATION_FINISHED:"animation has been finished",VALIDATOR_OBJECTS:[],registerValidator:function(i){AnimatedFormValidation.VALIDATOR_OBJECTS.push(i)},hideAndRemoveError:function(i){i&&null!=i&&i.animate(AnimatedFormValidation.ANIMATION_SPEED,()=>{i.prev().removeClass(AnimatedFormValidation.INVALID_FIELD_CLASS);for(let i=0;i<AnimatedFormValidation.VALIDATOR_OBJECTS.length;++i)AnimatedFormValidation.VALIDATOR_OBJECTS[i].dispatchAnimationFinishedEvent()})}});function overrideValidatorDefaultHideErrors(){jQuery.validator.prototype.hideErrors&&(jQuery.validator.prototype.hideErrors=function(){var i=this.addWrapper(this.toHide);AnimatedFormValidation.hideAndRemoveError(i)})}$(()=>{overrideValidatorDefaultHideErrors()});
const DateTimeUtils=Base.extend({},{INNER_DATE_STRING_FORMAT:"d/MM/yyyy",getCurrentTimeInSeconds:function(){return Math.round((new Date).getTime()/1e3)},getTimeZoneOffset:function(){return(new Date).getTimezoneOffset()/-60}});
const AgreementDetails=Base.extend({_form:null,_formName:null,_pageUrl:null,_subscribe:null,_subscribeActive:null,_submitButton:null,_isSubscribeCheckbox:null,_dataTransferAgreement:null,_dataTransferAgreementActive:null,constructor:function(e){const s=this;this._form=e,this._formName=this._form.attr("name")?this._form.attr("name"):this._form.find('input[name="form_name"]').val(),this._submitButton=this._form.find('[type="submit"]'),this._pageUrl=0<this._form.find('[name="page_url"]').length?this._form.find('[name="page_url"]').val():window.location.href,this.setSubscribeType(),this._form.hasClass(AgreementDetails.EU_FORM_CLASS)&&(this._subscribe=this._form.find("input[name=permission]"),s._subscribeActive=s.isSubscribeChecked(),this._subscribe.change(()=>{s._subscribeActive=s.isSubscribeChecked(),s._submitButton.removeAttr("disabled").removeClass("disabled").removeClass("disable")})),this._form.hasClass(AgreementDetails.DATA_TRANSFER_FORM_CLASS)&&(this._dataTransferAgreement=this._form.find("input[name=data_transfer_permission]"),s._dataTransferAgreementActive=s.isDataTransferAgreementChecked(),this._dataTransferAgreement.change(()=>{s._dataTransferAgreementActive=s.isDataTransferAgreementChecked()}))},setSubscribeType:function(){this._isSubscribeCheckbox=this._form.find("input[name=permission]").is(":checkbox")},isSubscribeChecked:function(){return this._isSubscribeCheckbox?this._form.find("input[name=permission]").is(":checked")?"true":"false":this._form.find("input[name=permission]")},isDataTransferAgreementChecked:function(){return this._dataTransferAgreement.is(":checked")?"true":"false"},getDetails:function(){var e=this._subscribeActive?this._isSubscribeCheckbox?this._subscribeActive:this._subscribeActive.val():"true";return{agreement_time:DateTimeUtils.getCurrentTimeInSeconds(),page_url:this._pageUrl,form_name:this._formName,subscribe:void 0===e?"true":e,data_transfer_agreement:this._dataTransferAgreementActive}}},{EU_FORM_CLASS:"eu_form_js",DATA_TRANSFER_FORM_CLASS:"data_transfer_form_js"});
class ClientAgreementDetails{constructor(e){this._form=e.context?e[0]:e,this._formIdInput=this._form.querySelector('input[name="form_id"]'),this._formNameInput=this._form.querySelector('input[name="form_name"]'),this._formName=this._form.getAttribute("name")||(this._formNameInput?this._formNameInput.value:""),this._formId=this._form.getAttribute("id")||(this._formIdInput?this._formIdInput.value:""),this._submitButton=this._form.querySelector('[type="submit"]'),this._subscribe=this._form.querySelector('input[name="permission"]'),this._subscribeSms=this._form.querySelector('input[name="sms_mailing_agreement"]'),this._subscribeData=this._form.querySelector('input[name="data_transfer_permission"]'),this._input=this._form.querySelectorAll("input"),this._statementButtonValue="",this._statementButton=this._form.querySelector("#privacy-policy"),this._statementButton&&(this._statementButtonValue=this._statementButton.value),this._typeButtonAgreement="personal_data_processing_agreement",this._statementCheckboxValue=this._form.querySelector("#permission-value"),this._statementCheckbox=this._statementCheckboxValue?this._statementCheckboxValue.value:"",this._checkboxType="email_mailing_agreement",this._statementSmsValue=this._form.querySelector("#permission-sms-value"),this._statementSms=this._statementSmsValue?this._statementSmsValue.value:"",this._checkboxSmsType="sms_mailing_agreement",this._statementDataTransferValue=this._form.querySelector("#permission-data-transfer"),this._statementDataTransfer=this._statementDataTransferValue?this._statementDataTransferValue.value:"",this._checkboxDataType="personal_data_processing_agreement",this._url=window.location.href}getDetailsButton(e){if(this._form)return{form_page_url:this._onLimitedUrl(this._url),form_id:this._formId,form_name:this._formName,agreement_time:DateTimeUtils.getCurrentTimeInSeconds(),cohort_course:" ",form_element:"button",statement:this._readTagContents(this._statementButtonValue),agreed:!0,agreement_types:e||this._typeButtonAgreement}}_readTagContents(e){const t={"<":"&lt;",">":"&gt;"};return e.replace(/[<>]/g,e=>t[e])}_checkSubscribe(){return this._subscribe&&"checkbox"===this._subscribe.getAttribute("type")?this._subscribe.checked:"true"}_checkSubscribeSms(){return this._subscribeSms&&"checkbox"===this._subscribeSms.getAttribute("type")?this._subscribeSms.checked:"true"}_checkSubscribeDataTransfer(){return this._subscribeData&&"checkbox"===this._subscribeData.getAttribute("type")?this._subscribeData.checked:"true"}getCheckboxMailing(e){if(this._subscribe)return{form_element_checkbox:"checkbox",statement_email:e||this._statementCheckbox,agreed_email:this._checkSubscribe(),agreement_types_email:this._checkboxType}}getCheckboxSms(e){if(this._subscribeSms)return{form_element_checkbox:"checkbox",statement_sms:e||this._statementSms,agreed_sms:this._checkSubscribeSms(),agreement_types_sms:this._checkboxSmsType}}getCheckboxDataTransfer(){if(this._statementDataTransferValue)return{statement_data:this._statementDataTransfer,agreed_data:this._checkSubscribeDataTransfer(),agreement_types_data:this._checkboxDataType}}_onFormChanged(){this._checkSubscribe()&&(this._submitButton.classList.remove("disabled"),this._submitButton.removeAttribute("disabled"))}_onFormSubmit(){this._subscribe.removeEventListener("change",()=>this._onFormChanged()),this._form.removeEventListener("submit",()=>this._onFormSubmit())}_onLimitedUrl(e){return e.split("?")[0]}}
var FormValidation=Base.extend({_formContainer:null,_form:null,_button:null,_errorClass:null,_animationType:null,_isEu:null,constructor:function(t,i,n,a){this._formContainer=t,this._form=i,this._button=n,this._errorClass=a||FormValidation.ERROR_CLASS,this._animationType=this._formContainer.attr("data-animation-class")?this._formContainer.attr("data-animation-class"):FormValidation.ANIMATION_TYPE,this._isEu=this._form.find("#isEu").val(),this._initFormValidation(),this._initInputLabel()},_initInputLabel:function(){const t=this,i=this._form.find("input[type=text], textarea");i.each(function(){$(this).blur(function(){t.changeInputLabelActive($(this))})})},_initFormValidation:function(){const o=this,e=this._form.find("input[type=text], textarea"),s=o._form.find(".input_text_field").last().find("input")[0];e.each(function(a){$(this).keydown(function(t){var i=$(this)[0]===s,n=$(this).parents("form").find('input[type="text"]').last()[0];t.keyCode!==FormValidation.ENTER_KEY_CODE||i||($(this).valid()&&e[a+1]&&("TEXTAREA"===e[a+1].tagName||"checkbox"===e[a+1].className)&&n!==s&&e[a+1].focus(),$(this).valid()||($(this).parents(".input_text_field").removeClass("valid_field"),$(this).parents(".input_text_field, .form_group").addClass(o._errorClass),o.changeInputLabelActive($(this)))),t.keyCode===FormValidation.ENTER_KEY_CODE&&i&&(i=$(this).parents("form"),o._isEu&&t.preventDefault(),o._initErrorForEmptyField(i))})}),o._button.on("mouseup",function(){$(this).hasClass("continue_button")||o._initErrorForEmptyField(o._form)})},_initErrorForEmptyField:function(t){const i=this;let n=!1;t.find("input[type=text], input[name=permission]").each(function(){$(this).val().length&&$(this).valid()||$(this).hasClass("without_validation")||($(this).parents(".input_text_field").removeClass("valid_field"),$(this).parents(".input_text_field, .form_group").addClass(i._errorClass),i.changeInputLabelActive($(this)),n=!0)}),i._formContainer.hasClass(FormValidation.ANIMATION_CLASS)&&n&&(i._formContainer.addClass(i._formContainer.attr("data-animation-class")),setTimeout(()=>{i._formContainer.removeClass(i._formContainer.attr("data-animation-class"))},500))},changeInputLabelActive:function(t){t.parents(".input_text_field, .form_group").find("span").is("."+FormValidation.INPUT_LABEL_CLASS)&&(t.val()?t.parents(".input_text_field, .form_group").find("."+FormValidation.INPUT_LABEL_CLASS).addClass("active"):t.parents(".input_text_field, .form_group").find("."+FormValidation.INPUT_LABEL_CLASS).removeClass("active"))}},{ENTER_KEY_CODE:13,ANIMATION_CLASS:"animated_form_container",ANIMATION_TYPE:"animation_shake",ERROR_CLASS:"error_field",INPUT_LABEL_CLASS:"edit_field_label"});
var ProductFreeDemoRequest=Base.extend({validator:null,_formContainer:null,_form:null,_submitBtn:null,_email:null,_name:null,_phone:null,_country:null,_countryCode:null,_noteName:null,_company:null,_companySize:null,_industry:null,_solution:null,_description:null,_productCode:null,_shortProductCode:null,_industryParam:null,_submitButtonContainer:null,_validator:null,_agreementDetails:null,_errorField:"b-free-demo__field_error",_lang:null,_utmSource:null,_preloader:null,_messageAgreementCheckbox:null,_showCalendlyTestEvent:null,_formWithInternationalCode:null,_emailCorporate:null,_isEs:null,_regExpForNotCorporateEmail:null,_formWrapper:null,constructor:function(e){this._formContainer=e,this._form=e,this._submitBtn=this._form.find(".js-send-msg"),this._email=this._form.find('[name="email"]'),this._name=this._form.find('[name="last_name"]'),this._noteName=this._form.find('[name="note_name"]'),this._phone=this._form.find('[name="phone"]'),this._country=this._form.find('[name="country"]'),this._countryCode=this._form.find('[name="country_code"]'),this._company=this._form.find('[name="company"]'),this._companySize=this._form.find('[name="company_size"]'),this._industry=this._form.find('[name="industry"]'),this._solution=this._form.find('[name="solution"]'),this._description=this._form.find('[name="description"]'),this._emailCorporate=this._form.find(".js-field-error-text-corporate-email"),this._productCode=this._form.find('[name="product"]').val(),this._shortProductCode=this._form.find('[name="short_product"]').val(),this._industryParam=this._form.find('[name="industry_param"]').val(),this._submitButtonContainer=this._form.find(".js-button-container"),this._agreementDetails=new AgreementDetails(this._form),this._clientAgreement=new ClientAgreementDetails(this._form),this._lang=this._form.find('[name="lang"]'),this._langsWithCalendly=["de","es"],this._isEs="es"===this._lang.val(),this._calendlyUrlElement=document.querySelector(".js-calendly-url"),this._calendlyUrl=this._calendlyUrlElement&&JSON.parse(this._calendlyUrlElement.value),this._utmSource=this._form.find('[name="utm_source"]'),this._preloader=$(".b-free-demo__redirect-preloader"),this._messageAgreementCheckbox=this._form.find('[name="sms_mailing_agreement"]');e=document.querySelector(".js-calendly-show-test-event");this._showCalendlyTestEvent=e&&e.value,this._formWithInternationalCode=this._form[0].classList.contains("form_with_international_code"),this._formWrapper=document.querySelector(".b-free-demo"),this._regExpForNotCorporateEmail=/(@(yahoo|gmail|hotmail|msn|163|dispatch|vip\.sina|yopmail|aol|yandex|qq|nate|foxmail|vip\.qq|yaho|no|live|34|139|googlemail|walla|doiea)\.com$)|(@(yandex|mail|inbox|list|bk|rambler|ya|pochta|icloud)\.ru$)|(@(outlook|web|gmx)\.de$)|(@(hotmail\.be|mail\.bg|live\.cl|my10minutemail|10minutemail|md13w3d3\.5jq|yahoo\.com\.my|yahoo\.co\.in|tut\.by|gmx\.li|yahoo\.com\.mx|yahoo\.co\.id|inbox\.lv|yahoo\.gr|tiscali\.cz|my\.fau\.edu|yahoo\.com\.au)$)|(@(yahoo|hotmail|free|live)\.fr$)|(@(i|e-mail|meta|yandex)\.ua$)|(@(interia|wp|o2|op)\.pl$)|(@(email|live)\.it$)/,0<this._form.length&&(this._initFormValidation(),this._initCheckForEmptyFields(),this._isEs&&this._initCheckCorporateEmail()),this._initAnimateField()},_initFormValidation:function(){const t=this;jQuery.validator.addMethod("phoneFormat",function(e,t){return this.optional(t)||/^(\(?\+?[0-9]*\)?)?[0-9_\- \(\)]*$/.test(e)},jQuery.format("Please, enter international phone number.")),jQuery.validator.addMethod("emailRule",e=>!t._regExpForNotCorporateEmail.test(e)),this._validator=this._form.validate(this._getValidatorSettings())},_initCheckCorporateEmail:function(){const e=this,t=document.querySelector(".js-field-error-text-corporate-email");this._email.blur(()=>{e._isNotCorporate(e._email.val())&&!$(t).parent().hasClass("error_field")&&"issuite"!==e._productCode?(e._emailCorporate.css("display","block"),t.innerText="Por favor ponga un correo electrónico válido, — example@yourdomain.com"):e._emailCorporate.css("display","none")})},_isNotCorporate:function(e){return e.match(this._regExpForNotCorporateEmail)},_checkFormErrors:function(e){if(""!=e){var t=$.parseJSON(e);const i={};for(const n in t)i[n]=t[n].message;this._validator.showErrors(i)}},_getValidatorSettings:function(){const e=this;var t={required:!0,phoneFormat:!0,maxlength:20,minlength:6},i=this._formWithInternationalCode?{phone_intlTelInput:t}:{phone:t},t={last_name:{required:!0,maxlength:49,specialCharsName:!0},email:{required:!0,emailRule:e._isEs&&"islearn"===e._productCode,email:!0,maxlength:100},company:{required:!0,maxlength:49,specialCharsCompanyName:!0},country:{required:!0},company_size:{required:!0},industry:{required:!0}};return{wrapper:"",errorElement:"div",errorClass:e._errorField,onkeyup:!1,onsubmit:!0,submitHandler:()=>e._submitHandler(),errorPlacement:function(e,t){},highlight:function(e,t){e.closest(".input_text_field").classList.remove(ProductFreeDemoRequest.VALID_FIELD),e.closest(".input_text_field").classList.add(t)},unhighlight:function(e,t){e.closest(".input_text_field").classList.add(ProductFreeDemoRequest.VALID_FIELD),e.closest(".input_text_field").classList.remove(t)},rules:$.extend(t,i)}},_initAnimateField:function(){const t=this;this._form.find('input[type="text"]').each(function(){const e=$(this).parent();$(this).on("input",()=>{e.removeClass(t._errorField)})})},_submitHandler:function(){var e=this._agreementDetails.getDetails(),t=0<this._form.find('[name="learn_services_redirect"]').length;const i={product:this._productCode,industry_param:this._industryParam,last_name:this._name.val(),note_name:void 0!==this._noteName?this._noteName.val():"",email:this._email.val(),phone:this._phone.val(),country:this._country.val(),company:this._company.val(),company_size:t?"":this._companySize.find("option:selected").text(),industry:t?"":this._industry.find("option:selected").text(),solution:t?"":this._solution.find("option:selected").text(),description:this._description?this._description.val():"",timezone_offset:DateTimeUtils.getTimeZoneOffset(),country_code:this._countryCode.val(),utm_source:this._utmSource?this._utmSource.val():"",learn_services_redirect:t,referer:document.referrer,lang:this._lang.val(),...this._clientAgreement.getDetailsButton(),...this._clientAgreement.getCheckboxMailing(),...this._clientAgreement.getCheckboxSms()};return this._messageAgreementCheckbox.length&&(i.sms_mailing_agreement=this._messageAgreementCheckbox.is(":checked")),$.extend(i,e),this._submitButtonContainer.addClass(ProductFreeDemoRequest.LOADING_CLASS),this._submitBtn.attr("disabled","disabled"),$.post(ProductFreeDemoRequest.FORM_ACTION,i,handler(this,"processAjaxResultHandler"),"json"),!1},processAjaxResultHandler:function(e){0<this._preloader.length&&this._preloader.addClass("b-free-demo__redirect-preloader_hidden");const i=this;this._form.find(this._submitButtonContainer).removeClass(ProductFreeDemoRequest.LOADING_CLASS),this._submitBtn.removeAttr("disabled"),this._formContainer.hide();const t=$(".js-free-demo-error");switch(e.status){case 0:e.errors&&this._checkFormErrors(e.errors),t.show(),this._paintingBackgroundFormWrapper();break;case 1:this._sendTrackPageview(),this._langsWithCalendly.includes(this._lang.val())&&this._calendlyUrl?($.getScript(ProductFreeDemoRequest.CALENDLY_SCRIPT,(e,t)=>{"success"===t&&(t=i._showCalendlyTestEvent?i._calendlyUrl:i._calendlyUrl[i._lang.val()],i.initCalendly(t))}),this._bindCalendlyEventSchedule(e.result),$(".js-calendly-widget").removeClass(ProductFreeDemoRequest.HIDDEN_CLASS),$(".js-page-with-calendly").hide()):$(".js-free-demo-success").show(),this._paintingBackgroundFormWrapper();break;default:t.show()}},_paintingBackgroundFormWrapper:function(){"fr"===this._lang.val()&&"islearn"===this._productCode&&this._formWrapper&&this._formWrapper.classList.add("active")},_initCheckForEmptyFields:function(){this._form.find("input[type=text], textarea").blur(function(){$(this).val().length||$(this).parent().removeClass(ProductFreeDemoRequest.VALID_FIELD)})},_sendTrackPageview:function(){""!==this._shortProductCode&&sendTrackPageview("/ispring-"+this._shortProductCode+"/demo-requested"),"zh"==this._lang.val()&&(sendTrackBaidu("Interactions","click","Demo Request Suite"),sendTrackPageview("/ispring-"+this._shortProductCode+"/demo-requested-zh"))},initCalendly:function(e){Calendly.initInlineWidget({url:e,parentElement:document.querySelector(".js-calendly-widget"),prefill:{name:this._name.val(),email:this._email.val()}})},_bindCalendlyEventSchedule:function(t){window.addEventListener("message",e=>{"calendly.event_scheduled"===e.data.event&&$.post(ProductFreeDemoRequest.CALENDLY_SCHEDULE_EVENT_HANDLER,{invitee_url:e.data.payload.invitee.uri,lead_id:t},"","json")})}},{FORM_ACTION:"/form_handler/product_free_demo_request_handler.php",CALENDLY_SCHEDULE_EVENT_HANDLER:"/form_handler/calendly_schedule_event_handler.php",CALENDLY_SCRIPT:"https://assets.calendly.com/assets/external/widget.js",LOADING_CLASS:"loading",HIDDEN_CLASS:"hidden",VALID_FIELD:"valid_field"});$(document).ready(()=>{const e=$('[name="product_free_demo_request"]');e.each(function(){const e=new ProductFreeDemoRequest($(this));this.querySelector('[name="learn_services_redirect"]')&&e._submitHandler()})});
function popoverShow(e,o){e.popover("show"),e.addClass(o)}function popoverHide(e,o){e.popover("hide"),e.removeClass(o)}$(document).ready(()=>{const o=$(".star_container"),a="popover_show";o.popover({trigger:"manual",html:"true",placement:"bottom",content:$(".popover_review_rating").html()}),o.on("shown.bs.popover",()=>{$(".progress_review_rating .progress-bar").each(function(){var e=$(this).attr("aria-valuenow"),o=$(this).attr("aria-valuemax"),o=Math.ceil(e/o*100)+"%";$(this).css("width",o)})}),$("body").on("touchstart",e=>{o.hasClass(a)&&-1==$.inArray(e.target.className,["all_reviews","all_reviews all_reviews_small link_arrow","all_reviews_span"])&&popoverHide(o,a)}),o.parent().on("click mouseenter",()=>{o.hasClass(a)||popoverShow(o,a)}),o.parent().on("mouseleave",()=>{o.hasClass(a)&&popoverHide(o,a)})});
