(function(n){"use strict";function t(){}n.guard=function(t){return n.guards.add(t)};n.guard.version="1.5.1";n.Guards=function(){var t=this;this._guards=[];this.named={};this.options={stackErrors:!1};this.constants={notChecked:""};this.defaults={grouped:!1,guard:"required",invalidClass:"invalid-field",liveCallback:function(i){var r=n(i.target);r.is(":guardable")&&(r.clearErrors(),t.applyGuards(function(n){return n.isGrouped()?n.appliesTo(r)?t.parentContext(r).find(":guardable"):!1:r}))},messageClass:"error-message",messages:{undefined:"Please fix this field."},style:{field:{"background-color":"#ffff66"},message:{color:"#ff0000","margin-left":"10px"}},submitCallback:function(){return t.guard(n(this))},tag:"span",target:function(t){var i=n(this).filter(":last"),r;for(i.is(":radio,:checkbox")&&i[0].nextSibling&&(i=n(i[0].nextSibling)),r=i.next();r.size()>0&&r[0].isGuardError;)i=r,r=i.next();return t.insertAfter(i),!1}};this.name("allow").using(this.aggregate(this.isAllValid,this.isAllowed)).message(this.wordsArrayMessage("Please enter one of: #{0}."));this.name("always").using(this.aggregate(this.isAllValid,this.always)).message("There was an error.");this.name("different").grouped().using(this.aggregate(this.passThrough,this.isDifferent)).message("These values must all be different.");this.name("disallow").using(this.aggregate(this.isAllValid,this.isDisallowed)).message(this.wordsArrayMessage("Please don't enter: #{0}."));this.name("dateUS").using(this.aggregate(this.isAllValid,this.isValidDateUS)).message("Please use: dd/mm/yyyy.");this.name("timeUS").using(this.aggregate(this.isAllValid,this.isValidTimeUS)).message("Please use: hh:mm am/pm.");this.name("email").using(this.aggregate(this.isAllValid,this.isValidEmail)).message("Please enter a valid email address.");this.name("float").using(this.aggregate(this.isAllValid,this.isValidFloat)).message(this.minMaxMessage({minAndMax:"Please enter a number from #{0} to #{1}.",min:"Please enter a number no less than #{0}.",max:"Please enter a number no greater than #{0}.",invalid:"Please enter a number."}));this.name("int").using(this.aggregate(this.isAllValid,this.isValidInt)).message(this.minMaxMessage({minAndMax:"Please enter a number from #{0} to #{1}.",min:"Please enter a number no less than #{0}.",max:"Please enter a number no greater than #{0}.",invalid:"Please enter a number."}));this.name("moneyUS").using(this.aggregate(this.isAllValid,this.isValidMoneyUS)).message(this.minMaxMessage({minAndMax:"Please enter a dollar amount from #{0} to #{1}.",min:"Please enter a dollar amount no less than #{0}.",max:"Please enter a dollar amount no greater than #{0}.",invalid:"Please enter a dollar amount."},function(n){return n.toFixed(2)}));this.name("never").using(this.aggregate(this.isAllValid,this.never)).message("There was an error.");this.name("oneRequired").grouped().using(this.aggregate(this.isAnyValid,this.isPresent)).message("Specify at least one.");this.name("phoneUS").using(this.aggregate(this.isAllValid,this.isValidPhoneUS)).message("Please enter a valid phone number.");this.name("regex").using(this.aggregate(this.isAllValid,this.matchesRegex)).message("Please enter valid input.");this.name("required").using(this.aggregate(this.isAllValid,this.isPresent)).message("This field is required.");this.name("same").grouped().using(this.aggregate(this.passThrough,this.isSame)).message("These values must all match.");this.name("string").using(this.aggregate(this.isAllValid,this.isValidString)).message(this.minMaxMessage({minAndMax:"Please enter a string with length #{0} to #{1}.",min:"Please enter a string with length at least #{0}.",max:"Please enter a string with length no greater than #{0}."}))};n.Guards.prototype.version="1.5.1";n.Guards.prototype.parentContext=function(t){var r=n(t),i=r.parents("form:first");return i.size()===0&&(i=r.parents("*:last")),i};n.Guards.prototype.name=function(t){var i=new n.Guard({guards:this,named:!0,name:t});return this.named[t]=i,i};n.Guards.prototype.aggregate=function(t,i){var r=this,u=function(){var u=n.makeArray(arguments);return function(f){return t.call(r,f,function(t){return i.apply(r,n.merge([t],u))})}};return u.acceptsArguments=!0,u};n.Guards.prototype.wordsArrayMessage=function(n){var t=this,i=this.arrayMessage(n);return function(n){return n=t.getWordsArray(n),i(n)}};n.Guards.prototype.arrayMessage=function(t){var i=this;return function(r){return i.format(t,n.map(r,function(t){return n.trim(""+t)}).join(", "))}};n.Guards.prototype.minMaxMessage=function(t,i){var r=this;return function(u){r.isNullOrUndefined(u)&&(u={});n.isFunction(i)||(i=function(n){return n});var f=!r.isNullOrUndefined(u.min),e=!r.isNullOrUndefined(u.max);return f&&e?r.format(t.minAndMax,i(u.min),i(u.max)):f?r.format(t.min,i(u.min)):e?r.format(t.max,i(u.max)):t.invalid?t.invalid:r.defaults.messages.undefined}};n.Guards.prototype.isValidDataName=function(n){return n&&/^[a-zA-Z0-9_-]+$/.test(n)};n.Guards.prototype.log=function(n){console&&console.log&&console.log(n)};n.Guards.prototype.on=function(t,i,r){if(n.fn.on)n(document).on(i,t,r);else n.fn.delegate?n(document).delegate(t,i,r):this.log("Could not bind event handlers, probably because jQuery is too old.")};n.Guards.prototype.off=function(t,i,r){n.fn.off?n(document).off(i,t,r):n.fn.undelegate?n(document).undelegate(t,i,r):this.log("Could not unbind event handlers, probably because jQuery is too old.")};n.Guards.prototype.enableGuards=function(n){this.on(n,"submit",this.defaults.submitCallback)};n.Guards.prototype.disableGuards=function(n){this.off(n,"submit",this.defaults.submitCallback)};n.Guards.prototype.liveGuard=function(n){this.enableGuards(n);this.on(n,"change blur",this.defaults.liveCallback)};n.Guards.prototype.disableLiveGuard=function(n){this.disableGuards(n);this.off(n,"change blur",this.defaults.liveCallback)};n.Guards.prototype.camelize=function(n){return n.replace(/-([\da-z])/gi,function(n,t){return t.toUpperCase()})};n.Guards.prototype.capitalize=function(n){return n.substring(0,1).toUpperCase()+n.substring(1,n.length)};n.Guards.prototype.format=function(){var t=arguments[0],n,i;if(arguments.length>1)for(n=1;n\n",s=function(t,i){r+=" "+t+" {";i&&n.each(i,function(n,t){r+=" "+n+": "+t+";"});r+=" }\n"},i&&(e=i+" "+e,o=i+" "+o),s(e,u),s(o,f),r+="<\/style>"};n.Guards.prototype.always=function(){return!1};n.Guards.prototype.getWordsArray=function(t){if(n.type(t)==="object"&&!this.isNullOrUndefined(t.words))return t.words.split(t.delimiter||" ");if(n.type(t)==="array")return t;throw new Error("Invalid type, expecting array or object with words property and optional delimiter property, got "+n.type(t));};n.Guards.prototype.isAllowed=function(t,i){return t=n.trim(t),i=this.getWordsArray(i),n.inArray(t,n.map(i,function(t){return n.trim(""+t)}))!==-1};n.Guards.prototype.isAllValid=function(t,i){if(n.isArray(t)){var r=!0;return n.each(t,function(n,t){if(!i(t))return r=!1,!1}),r}return i(t)};n.Guards.prototype.isAnyValid=function(t,i){if(n.isArray(t)){var r=!1;return n.each(t,function(n,t){if(i(t))return r=!0,!1}),r}return i(t)};n.Guards.prototype.isBlank=function(t){return this.isNullOrUndefined(t)||n.trim(t)===""};n.Guards.prototype.isDifferent=function(t){if(t.length<2)return!0;var i={},r=!0;return n.each(t,function(n,t){if(i[t]===!0)return r=!1,!1;i[t]=!0}),r};n.Guards.prototype.isDisallowed=function(n,t){return!this.isAllowed(n,t)};n.Guards.prototype.isNullOrUndefined=function(n){return n===null||n===undefined};n.Guards.prototype.isPresent=function(n){return!this.isBlank(n)};n.Guards.prototype.isSame=function(t){if(t.length<2)return!0;var r=t[0],i=!0;return n.each(t,function(n,t){if(t!==r)return i=!1,!1}),i};n.Guards.prototype.isInRange=function(n,t){this.isNullOrUndefined(t)&&(t={});var i=this.isNullOrUndefined(t.min)||n>=t.min,r=this.isNullOrUndefined(t.max)||n<=t.max;return i&&r};n.Guards.prototype.isValidInt=function(t,i){return(t=n.trim(t),t==="")?!0:/^(-|\+)?\d+$/.test(t)?(t=parseInt(t,10),this.isInRange(t,i)):!1};n.Guards.prototype.isValidFloat=function(t,i){return(t=n.trim(t),t==="")?!0:/^(-|\+)?(\d+)?\.?\d+$/.test(t)?(t=parseFloat(t),this.isInRange(t,i)):!1};n.Guards.prototype.isValidMoneyUS=function(t,i){if(t=n.trim(t),t==="")return!0;if(!/^\$?(-|\+)?\$?([\d,]+)?\.?\d+$/.test(t))return!1;var r=t.indexOf("$");return r>=0&&t.indexOf("$",r+1)>=0?!1:t.indexOf(",")>=0&&!/^\$?(-|\+)?\$?[1-9]\d{0,2}(,\d{3,3})+(\.\d+)?$/.test(t)?!1:t.indexOf(".")>=0&&/\.\d{3,}$/.test(t)?!1:(t=parseFloat(t.replace(/[\$,]/g,"")),this.isInRange(t,i))};n.Guards.prototype.isValidDateUS=function(t){return(t=n.trim(t),t==="")?!0:/^(0?[1-9]|1[0-2])\/(0?[1-9]|[1-2]\d|3[0-1])\/(\d{3}\d+)$/.test(t)};n.Guards.prototype.isValidTimeUS=function(t){return(t=n.trim(t),t==="")?!0:/^(0?[1-9]|1[0-2]):([0-5]\d)\s*(a|p)m$/i.test(t)};n.Guards.prototype.isValidEmail=function(n,t){if(t&&t.allowDisplay){var i=/.*<([^>]+)>\s*$/.exec(n);i&&(n=i[1])}return n===""||/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/i.test(n)};n.Guards.prototype.isValidPhoneUS=function(n){return n=n.replace(/\s+/g,""),n===""||n.length>9&&n.match(/^(1-?)?(\([2-9]\d{2}\)|[2-9]\d{2})-?[2-9]\d{2}-?\d{4}$/)};n.Guards.prototype.isValidString=function(t,i){return t=n.trim(t),this.isValidInt(""+t.length,i)};n.Guards.prototype.matchesRegex=function(t,i){if(n.type(i)==="object"&&i.pattern&&(i=new RegExp(i.pattern)),n.type(i)!=="regexp")throw new Error("The regex must be provided as an option!");return t===""||i.test(t)};n.Guards.prototype.never=function(){return!0};n.Guards.prototype.passThrough=function(t,i){return n.isArray(t)||(t=[t]),i(t)};n.Guards.prototype.add=function(t){var i=new n.Guard({selector:t,guards:this});return this._guards.push(i),i};n.Guards.prototype.guard=function(n){var t=n.guardableFields().clearErrors(),i=this.applyGuards(function(){return t});return t.filter(":visible:has-error").eq(0).focus(),i};n.Guards.prototype.applyGuards=function(t){var i=!0,r=this;return n.each(this._guards,function(n,u){var f=t(u);f===!1||r.test(u,f)||(i=!1)}),n.each(this.named,function(n,u){var f=t(u);f===!1||r.test(u,f)||(i=!1)}),i};n.Guards.prototype.groupByGroups=function(t,i){var r;if(this.isBlank(t.name))return[i];var e=this,f=[],u={},o="guard"+this.capitalize(this.camelize(t.name))+"Group",s="guard-"+t.name+"-group";return i.each(function(t,i){var r=n(i),h=r.data(o)||r.data(s);if(e.isBlank(h)){f.push(i);return}n.each(h.split(" "),function(n,t){e.isBlank(t)||(u[t]=u[t]||[],u[t].push(i))})}),r=[],f.length!==0&&r.push(n(f)),n.each(u,function(t,i){r.push(n(i))}),r};n.Guards.prototype.test=function(t,i){var r=!0;return t.isGrouped()?n.each(this.groupByGroups(t,i),function(n,i){t.test(i)||(r=!1)}):i.each(function(){t.test(this)||(r=!1)}),r};n.Guards.prototype.triggerImmediateDataErrors=function(){var t=this;n("[data-immediate-guard-error]").each(function(){var i=new n.Guard({selector:this,guards:t}),r=n(this);i.using("never").message(r.data("immediate-guard-error")||"");i.triggerError();r.removeAttr("data-immediate-guard-error")})};n.Guard=function(t){this.name=t.name;this._named=t.named;this._guards=t.guards||n.guards;this._selector=t.selector;this._guard=null;t.named&&!t.selector&&this._guards.isValidDataName(t.name)&&(this._selector="[data-guard~='"+t.name+"']");t.named||this.using(this._guards.defaults.guard)};n.Guard.prototype.cloneGuard=function(n,t){var u=this,r=this._guards.named[n],i;if(this._guards.isNullOrUndefined(r))throw new Error("There is no named guard '"+n+"'");return i=function(n){u[n]===undefined&&r[n]!==undefined&&(u[n]=r[n])},i("_grouped"),i("_tag"),i("_messageClass"),i("_invalidClass"),i("_target"),i("_precondition"),this._guard=r._guard,this._guardArguments=t,this._named||(this.name=n),this.message(r._message,!0)};n.Guard.prototype.using=function(t){if(typeof t=="string"){var i=[];return arguments.length>1&&(i=n.makeArray(arguments).slice(1)),this.cloneGuard(t,i)}return this._guard=t,this.message(this._guards.defaults.messages.undefined,!0)};n.Guard.prototype.getPrecondition=function(){return this._precondition===undefined?this._guards.defaults.precondition:this._precondition};n.Guard.prototype.precondition=function(n){return this._precondition=n,this};n.Guard.prototype.isGrouped=function(){return this._grouped===undefined?this._guards.defaults.grouped:this._grouped};n.Guard.prototype.grouped=function(){return arguments.length===0?this.grouped(!0):(this._grouped=arguments[0],this)};n.Guard.prototype.getTag=function(){return this._tag===undefined?this._guards.defaults.tag:this._tag};n.Guard.prototype.tag=function(n){return this._tag=n,this.resetMessageFn()};n.Guard.prototype.getMessageClass=function(){return this._messageClass===undefined?this._guards.defaults.messageClass:this._messageClass};n.Guard.prototype.messageClass=function(n){return this._messageClass=n,this.resetMessageFn()};n.Guard.prototype.message=function(n,t){return t&&this._explicitMessage===!0?this:(this._message=n,this._explicitMessage=!t,this.resetMessageFn())};n.Guard.prototype.getInvalidClass=function(){return this._invalidClass===undefined?this._guards.defaults.invalidClass:this._invalidClass};n.Guard.prototype.invalidClass=function(n){return this._invalidClass=n,this};n.Guard.prototype.resetMessageFn=function(){var t=this;return this.messageFn(function(i){var r=t._message,u=t.getGuardDataArguments(i,"message",!0);return u!==null?r=u:n.isFunction(r)&&(r=r.apply(t,t.getGuardArguments(i))),n("<"+t.getTag()+' class="'+t.getMessageClass()+'"/>').html(r)})};n.Guard.prototype.messageFn=function(n){return this._messageFn=n,this};n.Guard.prototype.errorElement=function(n){var t=this._messageFn(n);return t[0].isGuardError=!0,t};n.Guard.prototype.attachError=function(t,i){var r=this.getTarget(t),u;if(r&&n.isFunction(r))u=r.call(t,i),u!==!1&&i.appendTo(n(u).eq(0));else if(r)i.appendTo(n(r).eq(0));else throw new Error("The target must be a function or selector!");};n.Guard.prototype.getTarget=function(n){var t=this.getGuardDataArguments(n,"target",!0);return t!==null?t:this._target===undefined?this._guards.defaults.target:this._target};n.Guard.prototype.target=function(n){return this._target=n,this};n.Guard.prototype.bind=function(t,i){var r=this;return this._eventHandlers=this._eventHandlers||{},n.each(t.split(" "),function(n,t){r._guards.isBlank(t)||(r._eventHandlers[t]=r._eventHandlers[t]||[],r._eventHandlers[t].push(i))}),this};n.Guard.prototype.trigger=function(t,i){if(this._eventHandlers&&this._eventHandlers[t.type])return n.each(this._eventHandlers[t.type],function(n,r){if(t.isPropagationStopped()||t.isImmediatePropagationStopped())return!1;r.call(i,t)}),this};n.Guard.prototype.onGuardError=function(n){return this.bind("guardError",n)};n.Guard.prototype.onGuardFormError=function(n){return this.bind("guardFormError",n)};n.Guard.prototype.onAfterGuardError=function(n){return this.bind("afterGuardError",n)};n.Guard.prototype.onAfterGuardFormError=function(n){return this.bind("afterGuardFormError",n)};n.Guard.prototype.onClearGuardError=function(n){return this.bind("clearGuardError",n)};n.Guard.prototype.onClearGuardFormError=function(n){return this.bind("clearGuardFormError",n)};n.Guard.prototype.onAfterClearGuardError=function(n){return this.bind("afterClearGuardError",n)};n.Guard.prototype.onAfterClearGuardFormError=function(n){return this.bind("afterClearGuardFormError",n)};n.Guard.prototype.appliesTo=function(t){return n(t).filter(this._selector).size()>0};n.Guard.prototype.getGuardDataArguments=function(t,i,r){var e,u,s;if(this._guards.isNullOrUndefined(t)||(e=n(t),e.size()===0||this._guards.isNullOrUndefined(this.name)||!this._guards.isValidDataName(this.name)))return null;u="guard-"+this.name+"-";i&&(u=u+i);var f=null,h=this._guards.camelize(u.replace(/-+$/,"")),o=e.data()||{};return r&&(s=e.parents("form:first").data()||{},o=n.extend({},s,o)),n.each(o,function(n,t){var e=n.indexOf(u)===0,r;if(n.indexOf(h)===0||e){if(r=e?n.substring(u.length,n.length):n.substring(h.length,n.length),e||(r=r.replace(/^(.)/,function(n,t){return t.toLowerCase()})),i)return r===""?(f=t,!1):void 0;f===null&&(f={});f[r]=t}}),f};n.Guard.prototype.getGuardArguments=function(t){var i=this._guardArguments,r;return(this._guards.isNullOrUndefined(i)&&(i=[]),i.length>1||i.length===1&&n.type(i[0])!=="object")?i:(r=this.getGuardDataArguments(t),this._guards.isNullOrUndefined(r)||(i.length===1?i[0]=n.extend({},i[0],r):i.push(r)),i)};n.Guard.prototype.test=function(i){var h=this,f=n(i).filter(this._selector),r,u,e,o,s;if(f.size()===0)return!0;if(!this._guards.options.stackErrors&&f.hasErrors())return!1;if(this.isGrouped()?(e=[],u=[],f.each(function(){e.push(n(this).inputValue(h._guards));u.push(this)})):(e=f.inputValue(this._guards),u=i),this.testPrecondition(e,u))try{o=this._guard;o.acceptsArguments&&(o=this._guard.apply(this._guards,this.getGuardArguments(u)));r=o(e,u)}catch(c){this._guards.log("A guard threw an error: "+c);r=!1}else r=!0;return r||(s=new t,this.triggerError(f,s),r=!!s.defaultPrevented),r};n.Guard.prototype.testPrecondition=function(n,t){var i=this.getPrecondition();if(!i)return!0;try{return i(n,t)!==!1}catch(r){return this._guards.log("A precondition threw an error: "+r),!1}};n.Guard.prototype.triggerError=function(){var i,r=null;if(arguments.length===0)i=this._selector;else if(arguments.length===1&&arguments[0].constructor===t)i=this._selector,r=arguments[0];else if(arguments.length===1)i=arguments[0];else if(arguments.length===2&&arguments[1].constructor===t)i=arguments[0],r=arguments[1];else throw new Error("Expected 0 or 1 argument to triggerError, got "+arguments.length);return this.isGrouped()?n(i).addSingleError(this,r||new t):n(i).addError(this,r||new t),this};n.Guard.prototype.sendEvent=function(t,i,r,u){var f=n.Event(t),e;return f.guard=this,f.errorElements=i.toArray(),e=i,r&&(e=e.parents("form")),u&&(f.errorMessage=n(u)[0]),this.trigger(f,e),f.isPropagationStopped()||f.isImmediatePropagationStopped()||e.trigger(f),f};n.GuardError=function(n,t,i,r){this._guard=n;this._element=t;this._errorElement=i;this._linked=r;this._cleared=!1};n.GuardError.prototype.clear=function(t){var u,i,r,o,s,f,e;if(!this._cleared){if(u=[],!t){for(r=0;r=0&&this._element.errors.splice(f,1),e.hasErrorsWithInvalidClass(this._guard.getInvalidClass())||e.removeClass(this._guard.getInvalidClass()),this._cleared=!0;this._linked.length>0;)this._linked.shift().clear(!0);t||(this._guard.sendEvent("afterClearGuardError",i,!1),this._guard.sendEvent("afterClearGuardFormError",i,!0))}};n.fn.guardableFields=function(){var n=this.filter(":guardable");return n.add(this.find(":guardable"))};n.fn.guard=function(){return n.guards.guard(this)};n.fn.triggerError=function(n){n.triggerError(this)};n.fn.addSingleError=function(i){var f,e,r,u;return this.size()===0?(n.guards.log("Attempted to add error to nothing."),this):this.hasError(i)?this:(f=i.sendEvent("guardError",this).isDefaultPrevented(),e=i.sendEvent("guardFormError",this,!0).isDefaultPrevented(),f||e)?(arguments.length===2&&arguments[1].constructor===t&&(arguments[1].defaultPrevented=!0),this):(r=i.errorElement(this),i.attachError(this,r),this.addClass(i.getInvalidClass()),u=[],this.each(function(){this.errors||(this.errors=[]);var t=new n.GuardError(i,this,r,u);u.push(t);this.errors.push(t)}),i.sendEvent("afterGuardError",this,!1,r),i.sendEvent("afterGuardFormError",this,!0,r),this)};n.fn.addError=function(i){var r=arguments[1]||new t,u={};return this.each(function(){var t=n(this),f,e,o;if(t.is(":radio")){if(f=t.attr("name"),u[f])return;u[f]=!0;e=i._guards.parentContext(t);o=n("input[name='"+f+"']:radio",e);o.addSingleError(i,r)}else t.addSingleError(i,r)})};n.fn.errors=function(){var n=[];return this.each(function(){this.errors&&this.errors.length>0&&n.push.apply(n,this.errors)}),n};n.fn.clearErrors=function(){return n.each(this.errors(),function(n,t){t.clear()}),this};n.fn.hasError=function(t){var i=!1;return n.each(this.errors(),function(n,r){if(r._guard===t)return i=!0,!1}),i};n.fn.hasErrors=function(){return this.errors().length>0};n.fn.hasErrorsWithInvalidClass=function(t){var i=!1;return n.each(this.errors(),function(n,r){if(r._guard.getInvalidClass()===t)return i=!0,!1}),i};n.fn.inputValue=function(t){if(t=t||n.guards,this.is(":radio")){var i=n("input[name='"+this.attr("name")+"']:radio:checked",t.parentContext(this));return i.size()===0?t.constants.notChecked:i.val()}return this.is(":checkbox")?this.is(":checked")?this.val():t.constants.notChecked:this.val()};n.fn.enableGuards=function(){return this.bind("submit",n.guards.defaults.submitCallback)};n.fn.disableGuards=function(){return this.unbind("submit",n.guards.defaults.submitCallback)};n.enableGuards=function(t){n.guards.enableGuards(t)};n.disableGuards=function(t){n.guards.disableGuards(t)};n.liveGuard=function(t){n.guards.liveGuard(t)};n.disableLiveGuard=function(t){n.guards.disableLiveGuard(t)};n.extend(n.expr[":"],{"has-error":function(n){return!!(n.errors&&n.errors.length>0)},guardable:function(n){var t=n.tagName.toLowerCase();return t==="input"||t==="textarea"||t==="select"||t==="button"}});n.guards=new n.Guards;var i=function(){n(this).clearErrors()};n.guards.on(":has-error","change",i);n.guards.on(":has-error:radio,:has-error:checkbox","mouseup",i);n.guards.on("select:has-error","mousedown",i);n.guards.on(":has-error","keydown",function(){this.clearable=!0});n.guards.on(":has-error","keyup",function(){this.clearable&&(this.clearable=!1,n(this).clearErrors())});n.liveGuard("[data-live-guarded]");n.enableGuards("[data-guarded]");n(function(){n.guards.triggerImmediateDataErrors()})})(jQuery);$m.extend({isGuardsValid:function(n){return!($m(n).find("input.error, textarea.error, select.error").length>0)}});jQuery.fn.extend({isGuardsValid:function(n){return!($(n).find("input.error, textarea.error, select.error").length>0)}}),function(n){n(document).ready(function(){function t(t){var r=n("."+t),i=!1;return(n.each(r,function(n,t){if(!i)if(t.type=="text"&&t.value.length>0||t.type=="password"&&t.value.length>0)i=!0;else{var r=t.checked;r&&(i=!0)}}),i)?!0:!1}function u(t){return n("#"+t).css("display")=="none"}function f(n){if(!n)return!0;if(typeof n=="string"&&(n=Globalize.parseDate(n,Globalize.culture().calendar.patterns.d)),!n)return!1;var t=new Date(1900,0,1);return n>=t}function i(t){n("#"+t).clearErrors();var i=n("#"+t).val();return i?n.ajax({url:"/MK-eSuite/IsUrlValid?mk_moniker="+self.moniker+"&customer_id="+self.customerId,method:"POST",data:{url:i,addProtocol:!0},success:function(i){n("#"+t).data("validation_result",i.IsValid)},error:function(){console.log("sociallinkother validation failed")}}):(n("#"+t).data("validation_result",!0),n.Deferred().reject().promise())}function r(t){var u=n("#"+t),i,r;return n.each(u.errors(),function(n,t){t&&t._guard&&t._guard.name==="google_phonenumber"&&t.clear()}),i=!0,r=n("#"+t).val(),r?(n.ajax({url:"/MK-eSuite/IsPhoneNumberValid?mk_moniker="+self.moniker+"&customer_id="+self.customerId,method:"POST",async:!1,timeout:1e3,data:{phoneNumber:r},success:function(r){i=r;r.formattedPhoneNum!=null&&n("#"+t).val(r.formattedPhoneNum)},error:function(){console.log("google_phonenumber validation failed")}}),i.IsValid):i}guardsGroupsObjs=n("[data-guards-group]");n.each(guardsGroupsObjs,function(t,i){var r=n(i).data("guardsGroup");guardsGroupsNames.push(r)});guardsGroupsNames=n.unique(guardsGroupsNames);n.each(guardsGroupsNames,function(e,o){var c=n.find("[data-guards-group='"+o+"']"),v=n.grep(c,function(n){return n.type=="submit"||n.getAttribute("likeSubmit")=="true"}),l=n.grep(c,function(n){return n.type!=="submit"}),h;v.length>0&&l.length>0&&(console.log("Found atleast one submit and input objects"),n.each(l,function(e,s){var h=s.id,w,d,g,v;if(h==""&&(s.id=o+e,h=s.id),console.log("id: "+h),w=n(s).data("guardsTypes"),console.log("guardsTypes: "+w),!(typeof w=="undefined")&&w!=null)for(w=w.trim().indexOf(" ")>0?w.split(" "):[w],console.log(w),d=0;d=a)&&n.length<=l}).invalidClass(c).message(o).onGuardError(function(){n("#"+h).closest("div").addClass(c)}).onClearGuardError(function(){n("#"+h).closest("div").removeClass(c)});else n.guard("#"+h).using("string",{min:a,max:l}).invalidClass(c).message(o).onGuardError(function(){n("#"+h).closest("div").addClass(c)}).onClearGuardError(function(){n("#"+h).closest("div").removeClass(c)});else n.guard("#"+h).using("string").invalidClass(c).message(o).onGuardError(function(){n("#"+h).closest("div").addClass(c)}).onClearGuardError(function(){n("#"+h).closest("div").removeClass(c)});else if(e=="required")if(p==="true")n.guard("#"+h).using("required").invalidClass(c).message(o).precondition(function(){return t(b)?!0:!1}).onGuardError(function(){n("#"+h).closest("div").addClass(c)}).onClearGuardError(function(){n("#"+h).closest("div").removeClass(c)});else n.guard("#"+h).using("required").invalidClass(c).message(o).onGuardError(function(){n("#"+h).closest("div").addClass(c);console.log(h+" added...")}).onClearGuardError(function(){n("#"+h).closest("div").removeClass(c);console.log(h+" removed...")});else if(e=="requiredfornonhidden")n.guard("#"+h).using("required").invalidClass(c).message(o).precondition(function(){var n="";return(u(h)||(n=h),n!="")?!0:!1}).onGuardError(function(){n("#"+h).closest("div").addClass(c)}).onClearGuardError(function(){n("#"+h).closest("div").removeClass(c)});else if(e=="mk_validate_creditcard_expiry")n.guard("#"+h).using(function(){var i=n("#CardMonths").val(),r=n("#CardYears").val(),t=new Date,u=t.getMonth()+1,f=t.getFullYear(),e=parseFloat(r)+i/12,o=parseFloat(f)+u/12;return e>=o?!0:!1}).invalidClass(c).message(o).onGuardError(function(){n("#"+h).closest("div").addClass(c);n("#CardMonths").closest("div").addClass(c);n("#CardYears").closest("div").addClass(c);console.log(h+" added...")}).onClearGuardError(function(){n("#"+h).closest("div").removeClass(c);n("#CardMonths").closest("div").removeClass(c);n("#CardYears").closest("div").removeClass(c);console.log(h+" removed...")});else if(e=="mk_validate_creditcard_number"){n.guard("#"+h).using("required").invalidClass(c).message(o).onGuardError(function(){return n("#"+h).closest("div").addClass(c),console.log(h+" added..."),!1}).onClearGuardError(function(){n("#"+h).closest("div").removeClass(c);console.log(h+" removed...")});n.guard("#"+h).using(function(t){if(t.length<1)return!0;var u=n("#CardTypes").val(),i=t,r=0;return(/^4/gi.test(i)&&(i.length===13||i.length===16)?r=2:/^(34|37)/.test(i)&&i.length===15?r=1:/^(2[2-7]|5[1-5])/.test(i)&&i.length===16?r=3:/^6011/gi.test(i)&&i.length===16&&(r=4),u==r)?!0:!1}).invalidClass(c).message(o).onGuardError(function(){n("#"+h).closest("div").addClass(c);console.log(h+" added...")}).onClearGuardError(function(){n("#"+h).closest("div").removeClass(c);console.log(h+" removed...")})}else if(e=="mk_checkbox_required")if(p==="true")n.guard("#"+h).using("required").invalidClass(c).message(o).precondition(function(){return t(b)?!0:!1}).target(".error-message-checkbox-required").onGuardError(function(){c.length<1&&(c="error");n("#"+h).closest("div").addClass(c)}).onClearGuardError(function(){c.length<1&&(c="error");n("#"+h).closest("div").removeClass(c)});else n.guard("#"+h).using("required").invalidClass(c).message(o).target(c?"."+c:".error-message").onGuardError(function(){n("#"+h).closest("div").addClass(c);console.log(h+" added...")}).onClearGuardError(function(){n("#"+h).closest("div").removeClass(c);console.log(h+" removed...")});else if(e=="mk_radiobutton_required")n.guard("#"+h).using("required").invalidClass(c).message(o).target(".error-message-radiobutton-required").onGuardError(function(){n("#"+h).closest("div").addClass(c);console.log(h+" added...")}).onClearGuardError(function(){n("#"+h).closest("div").removeClass(c);console.log(h+" removed...")});else if(e=="mk_checkbox_unchecked_required")if(p==="true")n.guard("#"+h).using("required").invalidClass(c).message(o).precondition(function(){var t=n("."+b)[0],i=t.checked;return i?!1:!0}).onGuardError(function(){console.log(h+"pre-condition uncheckbox added...");n("#"+h).closest("div").addClass(c)}).onClearGuardError(function(){console.log(h+"pre-condition uncheckbox removed...");n("#"+h).closest("div").removeClass(c)});else n.guard("#"+h).using("required").invalidClass(c).message(o).onGuardError(function(){n("#"+h).closest("div").addClass(c);console.log(h+" added...")}).onClearGuardError(function(){n("#"+h).closest("div").removeClass(c);console.log(h+" removed...")});else if(e=="mk_checkbox_unchecked_regex")if(p==="true"){n.guard("#"+h).using("required").invalidClass(c).message(o).precondition(function(){var t=n("."+b)[0],i=t.checked;return i?!1:!0}).onGuardError(function(){console.log(h+"pre-condition uncheckbox added...");n("#"+h).closest("div").addClass(c)}).onClearGuardError(function(){console.log(h+"pre-condition uncheckbox removed...");n("#"+h).closest("div").removeClass(c)});n.guard("#"+h).using("regex",{pattern:k}).invalidClass(c).message(o).precondition(function(){var t=n("."+b)[0],i=t.checked;return i?!1:!0}).onGuardError(function(){console.log(h+"pre-condition uncheckbox added...");n("#"+h).closest("div").addClass(c)}).onClearGuardError(function(){console.log(h+"pre-condition uncheckbox removed...");n("#"+h).closest("div").removeClass(c)})}else n.guard("#"+h).using("regex",{pattern:k}).invalidClass(c).message(o).onGuardError(function(){n("#"+h).closest("div").addClass(c);console.log(h+" added...")}).onClearGuardError(function(){n("#"+h).closest("div").removeClass(c);console.log(h+" removed...")});else if(e=="mk_date_daylimit"){if(p==="true")n.guard("#"+h).using("always").invalidClass(c).message(o).precondition(function(){var t=n("#"+rt),i=31,r;if(t.val()=="2"&&(i=29),(t.val()=="4"||t.val()=="6"||t.val()=="9"||t.val()=="11")&&(i=30),t.val()!="")if(r=n("#"+h),r.val()!=""){if(r.val()>i)return}else return;return!1}).target(c?"."+c:".error-message").onGuardError(function(){n("#"+h).closest("div").addClass(c);console.log(h+" added...")}).onClearGuardError(function(){n("#"+h).closest("div").removeClass(c);console.log(h+" removed...")})}else if(e=="mk_datepicker"){if(p==="true")n.guard("#"+h).invalidClass(c).message(o).target(function(){n("#"+h).closest("div").addClass(c);n("#"+h).closest("div:not(.inner)").find(".validation-error").text(o)}).using(function(n){return f(n)}).onClearGuardError(function(){n("#"+h).closest("div").removeClass(c);n("#"+h).closest("div:not(.inner)").find(".validation-error").text("")})}else if(e=="mk_datepicker_other"){if(p==="true")n.guard("#"+h).using("required").invalidClass(c).message(o).precondition(function(){var t=n("#"+h).closest("div").parent().find(".datepicker").val(),i=n("#"+h).closest("div").parent().find(".other-optional").val();return t===""&&i!==""||t!==""&&i===""?!0:!1}).target(".upcoming-events .error-message").onGuardError(function(){setTimeout(function(){var t=!1;n("#upcoming-other").is(":focus")&&(t=!0);t||(n("#"+h).closest("div").addClass(c),n("#"+h).closest("div:not(.inner)").find(".validation-error-other").text(o))},100)}).onClearGuardError(function(){n("#"+h).closest("div").find(".other-optional").closest("div").removeClass(c);n("#"+h).closest("div").find(".datepicker").closest("div").removeClass(c);n("#"+h).closest("div:not(.inner)").find(".validation-error-other").text("")})}else if(e=="same_retype")n.guard("."+y).using("same").invalidClass(c).message(o).target("validation-error").onGuardError(function(t){setTimeout(function(){var i=!1;n(t.errorElements[t.errorElements.length-1]).is(":focus")&&(i=!0);i||(n("#"+h).closest("div").addClass(c),n("#"+h).closest("div:not(.inner)").find(".validation-error").text(o))},100)}).onClearGuardError(function(){n("#"+h).closest("div").removeClass(c);n("#"+h).closest("div:not(.inner)").find(".validation-error").text("")});else if(e=="functional")n.guard("#"+h).using(function(){return console.log("called functional."),!1}).invalidClass(c).message(o);else if(e=="chk_dropdown_index_gt_0")if(p==="true")n.guard("#"+h).using(function(){return n("#"+h)[0].selectedIndex>0}).invalidClass(c).message(o).precondition(function(){var t=n("."+b)[0],i=t.checked;return i?!1:!0}).onGuardError(function(){n("#"+h).closest("div").addClass(c)}).onClearGuardError(function(){n("#"+h).closest("div").removeClass(c)});else n.guard("#"+h).using(function(){return n("#"+h)[0].selectedIndex>0}).invalidClass(c).message(o).onGuardError(function(){n("#"+h).closest("div").addClass(c);console.log(h+" added...")}).onClearGuardError(function(){n("#"+h).closest("div").removeClass(c);console.log(h+" removed...")});else if(e=="cvv3digits"){if(a!=null)n.guard(".cvv3digits").using(function(n){return n.length>=a}).invalidClass(c).message(o).onGuardError(function(){n(".cvv3digits").closest("div").addClass(c);console.log("cvv3digits added...")}).onClearGuardError(function(){n(".cvv3digits").closest("div").removeClass(c);console.log("cvv3digits removed...")})}else if(e=="cvv4digits"){if(l!=null)n.guard(".cvv4digits").using(function(n){return n.length>=l}).invalidClass(c).message(o).onGuardError(function(){n(".cvv4digits").closest("div").addClass(c);console.log("cvv4digits added...")}).onClearGuardError(function(){n(".cvv4digits").closest("div").removeClass(c);console.log("cvv4digits removed...")})}else if(e=="separeted_emails")n.guard("#"+h).using(function(n){for(var i=n.split(";"),t=0;t()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test(i[t]))return!1;return!0}).invalidClass(c).message(o).onGuardError(function(){n("#"+h).closest("div").addClass(c)}).onClearGuardError(function(){n("#"+h).closest("div").removeClass(c)});else if(e=="sociallinkother"){i(h);n.guard("#"+h).using(function(n){return/^((http:\/\/www\.|https:\/\/www\.|http:\/\/|https:\/\/)?[A-Za-z0-9]+([\-\.]{1}[A-Za-z0-9]+)*\.[A-Za-z]{2,5}(:[0-9]{1,5})?(\/.*)?)*$/.test(n)}).message(o).onGuardError(function(){n("#"+h).closest("p").addClass(c)}).onClearGuardError(function(){n("#"+h).closest("p").removeClass(c)});n("#"+h).blur(function(){i(h).done(function(){n("#"+h).trigger("change")})})}else if(e=="google_phonenumber")r(h),n.guard("#"+h).using(function(){return r(h)}).message(o).onGuardError(function(){n("#"+h).closest("div").addClass(c)}).onClearGuardError(function(){n("#"+h).closest("div").removeClass(c)}).name="google_phonenumber";else if(e=="ezshipphonerequired"){var s=n("#"+h).closest("div");n("input[name=selectedDeliveryPreferences]").is(":checked")&&n("input[name=selectedDeliveryPreferences]:checked").attr("id")=="shipToAddrAboveRadioBtn"&&n(s).addClass("required");n("input[name=selectedDeliveryPreferences]").bind("click",function(t){t.target.id=="shipToAddrAboveRadioBtn"?n(s).addClass("required"):(n(s).removeClass(c+" required"),n(n(s).find(".error-message")).remove())});n.guard("#"+h).using(function(t){var i=n("#shipToAddrAboveRadioBtn").is(":checked");return i&&(!t||t=="")?!1:!0}).message(o).onGuardError(function(){n(s).addClass(c+" required")}).onClearGuardError(function(){n(s).removeClass(c+" required");n("input[name=selectedDeliveryPreferences]").is(":checked")&&n("input[name=selectedDeliveryPreferences]:checked").attr("id")=="shipToAddrAboveRadioBtn"&&n(s).addClass("required")})}else n.guard("#"+h).using(e).invalidClass(c).message(o).onGuardError(function(){n("#"+h).closest("div").addClass(c);console.log(h)}).onClearGuardError(function(){n("#"+h).closest("div").removeClass(c);console.log(h)})})}else console.log("Missing associatedGuards for "+g)}));var s="form",y=n.find("form[data-guards-group='"+o+"']"),a=n(y).attr("id");a&&(s="#"+a);h=n(s).attr("data-guards-live");h=="true"||typeof h=="undefined"?(console.log("EnableLiveGuardsFor:"+s),n.liveGuard(s)):(console.log("EnableNonLiveGuardsFor:"+s),n.enableGuards(s));n.guards.options.stackErrors=!1})})}(jQuery)