!function(t){t.extend(t.fn,{validate:function(e){if(this.length){var s=t.data(this[0],"validator");return s||(this.attr("novalidate","novalidate"),s=new t.validator(e,this[0]),t.data(this[0],"validator",s),s.settings.onsubmit&&(this.validateDelegate(":submit","click",(function(e){s.settings.submitHandler&&(s.submitButton=e.target),t(e.target).hasClass("cancel")&&(s.cancelSubmit=!0),void 0!==t(e.target).attr("formnovalidate")&&(s.cancelSubmit=!0)})),this.submit((function(e){function i(){var i;return!s.settings.submitHandler||(s.submitButton&&(i=t("").attr("name",s.submitButton.name).val(t(s.submitButton).val()).appendTo(s.currentForm)),s.settings.submitHandler.call(s,s.currentForm,e),s.submitButton&&i.remove(),!1)}return s.buttonClicked=!0,s.settings.debug&&e.preventDefault(),s.cancelSubmit?(s.cancelSubmit=!1,i()):s.form()?s.pendingRequest?(s.formSubmitted=!0,!1):i():(s.focusInvalid(),!1)}))),s)}e&&e.debug&&window.console&&console.warn("Nothing selected, can't validate, returning nothing.")},valid:function(){if(t(this[0]).is("form"))return this.validate().form();var e=!0,s=t(this[0].form).validate();return this.each((function(){e=e&&s.element(this)})),e},removeAttrs:function(e){var s={},i=this;return t.each(e.split(/\s/),(function(t,e){s[e]=i.attr(e),i.removeAttr(e)})),s},rules:function(e,s){var i=this[0];if(e){var n=t.data(i.form,"validator").settings,r=n.rules,a=t.validator.staticRules(i);switch(e){case"add":t.extend(a,t.validator.normalizeRule(s)),delete a.messages,r[i.name]=a,s.messages&&(n.messages[i.name]=t.extend(n.messages[i.name],s.messages));break;case"remove":if(!s)return delete r[i.name],a;var o={};return t.each(s.split(/\s/),(function(t,e){o[e]=a[e],delete a[e]})),o}}var u=t.validator.normalizeRules(t.extend({},t.validator.classRules(i),t.validator.attributeRules(i),t.validator.dataRules(i),t.validator.staticRules(i)),i);if(u.required){var l=u.required;delete u.required,u=t.extend({required:l},u)}return u}}),t.extend(t.expr[":"],{blank:function(e){return!t.trim(""+t(e).val())},filled:function(e){return!!t.trim(""+t(e).val())},unchecked:function(e){return!t(e).prop("checked")}}),t.validator=function(e,s){this.settings=t.extend(!0,{},t.validator.defaults,e),this.currentForm=s,this.init()},t.validator.format=function(e,s){return 1===arguments.length?function(){var s=t.makeArray(arguments);return s.unshift(e),t.validator.format.apply(this,s)}:(arguments.length>2&&s.constructor!==Array&&(s=t.makeArray(arguments).slice(1)),s.constructor!==Array&&(s=[s]),t.each(s,(function(t,s){e=e.replace(new RegExp("\\%"+t+"\\%","g"),(function(){return s}))})),e)},t.extend(t.validator,{defaults:{messages:{},groups:{},rules:{},errorClass:"error",validClass:"valid",errorElement:"label",focusInvalid:!0,errorContainer:t([]),errorLabelContainer:t([]),onsubmit:!0,ignore:":hidden",ignoreTitle:!1,onfocusin:function(t,e){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,e){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,e){t.name in this.submitted?this.element(t):t.parentNode.name in this.submitted&&this.element(t.parentNode)},highlight:function(e,s,i){"radio"===e.type?this.findByName(e.name).addClass(s).removeClass(i):t(e).addClass(s).removeClass(i)},unhighlight:function(e,s,i){"radio"===e.type?this.findByName(e.name).removeClass(s).addClass(i):t(e).removeClass(s).addClass(i)}},setDefaults:function(e){t.extend(t.validator.defaults,e)},messages:{required:sswLangs.t("required_field"),remote:"Please fix this field.",email:sswLangs.t("not_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:t.validator.format("Please enter no more than %0% characters."),minlength:t.validator.format("Please enter at least %0% characters."),rangelength:t.validator.format("Please enter a value between %0% and %1% characters long."),range:t.validator.format("Please enter a value between %0% and %1%."),max:t.validator.format("Please enter a value less than or equal to %0%."),min:t.validator.format("Please enter a value greater than or equal to %0%.")},autoCreateRanges:!1,prototype:{init:function(){this.labelContainer=t(this.settings.errorLabelContainer),this.errorContext=this.labelContainer.length&&this.labelContainer||t(this.currentForm),this.containers=t(this.settings.errorContainer).add(this.settings.errorLabelContainer),this.submitted={},this.valueCache={},this.pendingRequest=0,this.pending={},this.invalid={},this.reset(),this.buttonClicked=!1;var e=this.groups={};t.each(this.settings.groups,(function(s,i){"string"==typeof i&&(i=i.split(/\s/)),t.each(i,(function(t,i){e[i]=s}))}));var s=this.settings.rules;function i(e){var s=t.data(this[0].form,"validator"),i="on"+e.type.replace(/^validate/,"");s.settings[i]&&s.settings[i].call(s,this[0],e)}t.each(s,(function(e,i){s[e]=t.validator.normalizeRule(i)})),t(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",i).validateDelegate("[type='radio'], [type='checkbox'], select, option","click",i),this.settings.invalidHandler&&t(this.currentForm).bind("invalid-form.validate",this.settings.invalidHandler)},form:function(){return this.checkForm(),t.extend(this.submitted,this.errorMap),this.invalid=t.extend({},this.errorMap),this.valid()||t(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(e){e=this.validationTargetFor(this.clean(e)),this.lastElement=e,this.prepareElement(e),this.currentElements=t(e);var s=!1!==this.check(e);return s?delete this.invalid[e.name]:this.invalid[e.name]=!0,this.numberOfInvalids()||(this.toHide=this.toHide.add(this.containers)),this.showErrors(),s},showErrors:function(e){if(e){for(var s in t.extend(this.errorMap,e),this.errorList=[],e)this.errorList.push({message:e[s],element:this.findByName(s)[0]});this.successList=t.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(){t.fn.resetForm&&t(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=0;for(var s in t)e++;return e},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{t(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===t.grep(this.errorList,(function(t){return t.element.name===e.name})).length&&e},elements:function(){var e=this,s={};return t(this.currentForm).find("input, select, textarea").not(":submit, :reset, :image, [disabled]").not(this.settings.ignore).filter((function(){return!this.name&&e.settings.debug&&window.console&&console.error("%o has no name assigned",this),!(this.name in s||!e.objectLength(t(this).rules()))&&(s[this.name]=!0,!0)}))},clean:function(e){return t(e)[0]},errors:function(){var e=this.settings.errorClass.replace(" ",".");return t(this.settings.errorElement+"."+e,this.errorContext)},reset:function(){this.successList=[],this.errorList=[],this.errorMap={},this.toShow=t([]),this.toHide=t([]),this.currentElements=t([])},prepareForm:function(){this.reset(),this.toHide=this.errors().add(this.containers)},prepareElement:function(t){this.reset(),this.toHide=this.errorsFor(t)},elementValue:function(e){var s=t(e).attr("type"),i=t(e).val();return"radio"===s||"checkbox"===s?t("input[name='"+t(e).attr("name")+"']:checked").val():"string"==typeof i?i.replace(/\r/g,""):i},check:function(e){e=this.validationTargetFor(this.clean(e));var s,i=t(e).rules(),n=!1,r=this.elementValue(e);for(var a in i){var o={method:a,parameters:i[a]};try{if("dependency-mismatch"===(s=t.validator.methods[a].call(this,r,e,o.parameters))){n=!0;continue}if(n=!1,"pending"===s)return void(this.toHide=this.toHide.not(this.errorsFor(e)));if(!s)return this.formatAndAdd(e,o),!1}catch(t){throw this.settings.debug&&window.console&&console.log("Exception occurred when checking element "+e.id+", check the '"+o.method+"' method.",t),t}}if(!n)return this.objectLength(i)&&this.successList.push(e),!0},customDataMessage:function(e,s){return t(e).data("msg-"+s.toLowerCase())||e.attributes&&t(e).attr("data-msg-"+s.toLowerCase())},customMessage:function(t,e){var s=this.settings.messages[t];return s&&(s.constructor===String?s:s[e])},findDefined:function(){for(var t=0;tWarning: No message defined for "+e.name+"")},formatAndAdd:function(e,s){var i=this.defaultMessage(e,s.method),n=/\$?\{(\d+)\}/g;"function"==typeof i?i=i.call(this,s.parameters,e):n.test(i)&&(i=t.validator.format(i.replace(n,"{$1}"),s.parameters)),this.errorList.push({message:i,element:e}),this.errorMap[e.name]=i,this.submitted[e.name]=i},addWrapper:function(t){return this.settings.wrapper&&(t=t.add(t.parent(this.settings.wrapper))),t},defaultShowErrors:function(){var e,s;for(e=0;this.errorList[e];e++){var i=this.errorList[e];if(this.settings.highlight&&this.settings.highlight.call(this,i.element,this.settings.errorClass,this.settings.validClass),this.buttonClicked||t(i.element).next().is(".ssw-validator.ssw-in"))null==t(i.element).data("ssw.sswPopover")&&t(i.element).sswPopover({trigger:"manual",placement:"bottom",content:i.message,ssw_validator:!0,template:'