2 * jQuery Validation Plugin 1.9.0
4 * http://bassistance.de/jquery-plugins/jquery-plugin-validation/
5 * http://docs.jquery.com/Plugins/Validation
7 * Copyright (c) 2006 - 2011 Jörn Zaefferer
9 * Dual licensed under the MIT and GPL licenses:
10 * http://www.opensource.org/licenses/mit-license.php
11 * http://www.gnu.org/licenses/gpl.html
13 (function(c
){c
.extend(c
.fn
,{validate:function(a
){if(this.length
){var b
=c
.data(this[0],"validator");if(b
)return b
;this.attr("novalidate","novalidate");b
=new c
.validator(a
,this[0]);c
.data(this[0],"validator",b
);if(b
.settings
.onsubmit
){a
=this.find("input, button");a
.filter(".cancel").click(function(){b
.cancelSubmit
=true});b
.settings
.submitHandler
&&a
.filter(":submit").click(function(){b
.submitButton
=this});this.submit(function(d
){function e(){if(b
.settings
.submitHandler
){if(b
.submitButton
)var f
=c("<input type='hidden'/>").attr("name",
14 b
.submitButton
.name
).val(b
.submitButton
.value
).appendTo(b
.currentForm
);b
.settings
.submitHandler
.call(b
,b
.currentForm
);b
.submitButton
&&f
.remove();return false}return true}b
.settings
.debug
&&d
.preventDefault();if(b
.cancelSubmit
){b
.cancelSubmit
=false;return e()}if(b
.form()){if(b
.pendingRequest
){b
.formSubmitted
=true;return false}return e()}else{b
.focusInvalid();return false}})}return b
}else a
&&a
.debug
&&window
.console
&&console
.warn("nothing selected, can't validate, returning nothing")},valid:function(){if(c(this[0]).is("form"))return this.validate().form();
15 else{var a
=true,b
=c(this[0].form
).validate();this.each(function(){a
&=b
.element(this)});return a
}},removeAttrs:function(a
){var b
={},d
=this;c
.each(a
.split(/\s/),function(e
,f
){b
[f
]=d
.attr(f
);d
.removeAttr(f
)});return b
},rules:function(a
,b
){var d
=this[0];if(a
){var e
=c
.data(d
.form
,"validator").settings
,f
=e
.rules
,g
=c
.validator
.staticRules(d
);switch(a
){case "add":c
.extend(g
,c
.validator
.normalizeRule(b
));f
[d
.name
]=g
;if(b
.messages
)e
.messages
[d
.name
]=c
.extend(e
.messages
[d
.name
],b
.messages
);break;case "remove":if(!b
){delete f
[d
.name
];
16 return g
}var h
={};c
.each(b
.split(/\s/),function(j
,i
){h
[i
]=g
[i
];delete g
[i
]});return h
}}d
=c
.validator
.normalizeRules(c
.extend({},c
.validator
.metadataRules(d
),c
.validator
.classRules(d
),c
.validator
.attributeRules(d
),c
.validator
.staticRules(d
)),d
);if(d
.required
){e
=d
.required
;delete d
.required
;d
=c
.extend({required
:e
},d
)}return d
}});c
.extend(c
.expr
[":"],{blank:function(a
){return!c
.trim(""+a
.value
)},filled:function(a
){return!!c
.trim(""+a
.value
)},unchecked:function(a
){return!a
.checked
}});c
.validator=function(a
,
17 b
){this.settings
=c
.extend(true,{},c
.validator
.defaults
,a
);this.currentForm
=b
;this.init()};c
.validator
.format=function(a
,b
){if(arguments
.length
==1)return function(){var d
=c
.makeArray(arguments
);d
.unshift(a
);return c
.validator
.format
.apply(this,d
)};if(arguments
.length
>2&&b
.constructor!=Array
)b
=c
.makeArray(arguments
).slice(1);if(b
.constructor!=Array
)b
=[b
];c
.each(b
,function(d
,e
){a
=a
.replace(RegExp("\\{"+d
+"\\}","g"),e
)});return a
};c
.extend(c
.validator
,{defaults
:{messages
:{},groups
:{},rules
:{},errorClass
:"error",
18 validClass
:"valid",errorElement
:"label",focusInvalid
:true,errorContainer
:c([]),errorLabelContainer
:c([]),onsubmit
:true,ignore
:":hidden",ignoreTitle
:false,onfocusin:function(a
){this.lastActive
=a
;if(this.settings
.focusCleanup
&&!this.blockFocusCleanup
){this.settings
.unhighlight
&&this.settings
.unhighlight
.call(this,a
,this.settings
.errorClass
,this.settings
.validClass
);this.addWrapper(this.errorsFor(a
)).hide()}},onfocusout:function(a
){if(!this.checkable(a
)&&(a
.name
in this.submitted
||!this.optional(a
)))this.element(a
)},
19 onkeyup:function(a
){if(a
.name
in this.submitted
||a
==this.lastElement
)this.element(a
)},onclick:function(a
){if(a
.name
in this.submitted
)this.element(a
);else a
.parentNode
.name
in this.submitted
&&this.element(a
.parentNode
)},highlight:function(a
,b
,d
){a
.type
==="radio"?this.findByName(a
.name
).addClass(b
).removeClass(d
):c(a
).addClass(b
).removeClass(d
)},unhighlight:function(a
,b
,d
){a
.type
==="radio"?this.findByName(a
.name
).removeClass(b
).addClass(d
):c(a
).removeClass(b
).addClass(d
)}},setDefaults:function(a
){c
.extend(c
.validator
.defaults
,
20 a
)},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.",accept
:"Please enter a value with a valid extension.",maxlength
:c
.validator
.format("Please enter no more than {0} characters."),
21 minlength
:c
.validator
.format("Please enter at least {0} characters."),rangelength
:c
.validator
.format("Please enter a value between {0} and {1} characters long."),range
:c
.validator
.format("Please enter a value between {0} and {1}."),max
:c
.validator
.format("Please enter a value less than or equal to {0}."),min
:c
.validator
.format("Please enter a value greater than or equal to {0}.")},autoCreateRanges
:false,prototype:{init:function(){function a(e
){var f
=c
.data(this[0].form
,"validator"),g
="on"+e
.type
.replace(/^validate/,
22 "");f
.settings
[g
]&&f
.settings
[g
].call(f
,this[0],e
)}this.labelContainer
=c(this.settings
.errorLabelContainer
);this.errorContext
=this.labelContainer
.length
&&this.labelContainer
||c(this.currentForm
);this.containers
=c(this.settings
.errorContainer
).add(this.settings
.errorLabelContainer
);this.submitted
={};this.valueCache
={};this.pendingRequest
=0;this.pending
={};this.invalid
={};this.reset();var b
=this.groups
={};c
.each(this.settings
.groups
,function(e
,f
){c
.each(f
.split(/\s/),function(g
,h
){b
[h
]=e
})});var d
=
23 this.settings
.rules
;c
.each(d
,function(e
,f
){d
[e
]=c
.validator
.normalizeRule(f
)});c(this.currentForm
).validateDelegate("[type='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",a
).validateDelegate("[type='radio'], [type='checkbox'], select, option","click",
24 a
);this.settings
.invalidHandler
&&c(this.currentForm
).bind("invalid-form.validate",this.settings
.invalidHandler
)},form:function(){this.checkForm();c
.extend(this.submitted
,this.errorMap
);this.invalid
=c
.extend({},this.errorMap
);this.valid()||c(this.currentForm
).triggerHandler("invalid-form",[this]);this.showErrors();return this.valid()},checkForm:function(){this.prepareForm();for(var a
=0,b
=this.currentElements
=this.elements();b
[a
];a
++)this.check(b
[a
]);return this.valid()},element:function(a
){this.lastElement
=
25 a
=this.validationTargetFor(this.clean(a
));this.prepareElement(a
);this.currentElements
=c(a
);var b
=this.check(a
);if(b
)delete this.invalid
[a
.name
];else this.invalid
[a
.name
]=true;if(!this.numberOfInvalids())this.toHide
=this.toHide
.add(this.containers
);this.showErrors();return b
},showErrors:function(a
){if(a
){c
.extend(this.errorMap
,a
);this.errorList
=[];for(var b
in a
)this.errorList
.push({message
:a
[b
],element
:this.findByName(b
)[0]});this.successList
=c
.grep(this.successList
,function(d
){return!(d
.name
in a
)})}this.settings
.showErrors
?
26 this.settings
.showErrors
.call(this,this.errorMap
,this.errorList
):this.defaultShowErrors()},resetForm:function(){c
.fn
.resetForm
&&c(this.currentForm
).resetForm();this.submitted
={};this.lastElement
=null;this.prepareForm();this.hideErrors();this.elements().removeClass(this.settings
.errorClass
)},numberOfInvalids:function(){return this.objectLength(this.invalid
)},objectLength:function(a
){var b
=0,d
;for(d
in a
)b
++;return b
},hideErrors:function(){this.addWrapper(this.toHide
).hide()},valid:function(){return this.size()==
27 0},size:function(){return this.errorList
.length
},focusInvalid:function(){if(this.settings
.focusInvalid
)try{c(this.findLastActive()||this.errorList
.length
&&this.errorList
[0].element
||[]).filter(":visible").focus().trigger("focusin")}catch(a
){}},findLastActive:function(){var a
=this.lastActive
;return a
&&c
.grep(this.errorList
,function(b
){return b
.element
.name
==a
.name
}).length
==1&&a
},elements:function(){var a
=this,b
={};return c(this.currentForm
).find("input, select, textarea").not(":submit, :reset, :image, [disabled]").not(this.settings
.ignore
).filter(function(){!this.name
&&
28 a
.settings
.debug
&&window
.console
&&console
.error("%o has no name assigned",this);if(this.name
in b
||!a
.objectLength(c(this).rules()))return false;return b
[this.name
]=true})},clean:function(a
){return c(a
)[0]},errors:function(){return c(this.settings
.errorElement
+"."+this.settings
.errorClass
,this.errorContext
)},reset:function(){this.successList
=[];this.errorList
=[];this.errorMap
={};this.toShow
=c([]);this.toHide
=c([]);this.currentElements
=c([])},prepareForm:function(){this.reset();this.toHide
=this.errors().add(this.containers
)},
29 prepareElement:function(a
){this.reset();this.toHide
=this.errorsFor(a
)},check:function(a
){a
=this.validationTargetFor(this.clean(a
));var b
=c(a
).rules(),d
=false,e
;for(e
in b
){var f
={method
:e
,parameters
:b
[e
]};try{var g
=c
.validator
.methods
[e
].call(this,a
.value
.replace(/\r/g,""),a
,f
.parameters
);if(g
=="dependency-mismatch")d
=true;else{d
=false;if(g
=="pending"){this.toHide
=this.toHide
.not(this.errorsFor(a
));return}if(!g
){this.formatAndAdd(a
,f
);return false}}}catch(h
){this.settings
.debug
&&window
.console
&&console
.log("exception occured when checking element "+
30 a
.id
+", check the '"+f
.method
+"' method",h
);throw h
;}}if(!d
){this.objectLength(b
)&&this.successList
.push(a
);return true}},customMetaMessage:function(a
,b
){if(c
.metadata
){var d
=this.settings
.meta
?c(a
).metadata()[this.settings
.meta
]:c(a
).metadata();return d
&&d
.messages
&&d
.messages
[b
]}},customMessage:function(a
,b
){var d
=this.settings
.messages
[a
];return d
&&(d
.constructor==String
?d
:d
[b
])},findDefined:function(){for(var a
=0;a
<arguments
.length
;a
++)if(arguments
[a
]!==undefined)return arguments
[a
]},defaultMessage:function(a
,
31 b
){return this.findDefined(this.customMessage(a
.name
,b
),this.customMetaMessage(a
,b
),!this.settings
.ignoreTitle
&&a
.title
||undefined,c
.validator
.messages
[b
],"<strong>Warning: No message defined for "+a
.name
+"</strong>")},formatAndAdd:function(a
,b
){var d
=this.defaultMessage(a
,b
.method
),e
=/\$?\{(\d
+)\}/g
;if(typeof d
=="function")d
=d
.call(this,b
.parameters
,a
);else if(e
.test(d
))d
=jQuery
.format(d
.replace(e
,"{$1}"),b
.parameters
);this.errorList
.push({message
:d
,element
:a
});this.errorMap
[a
.name
]=d
;this.submitted
[a
.name
]=
32 d
},addWrapper:function(a
){if(this.settings
.wrapper
)a
=a
.add(a
.parent(this.settings
.wrapper
));return a
},defaultShowErrors:function(){for(var a
=0;this.errorList
[a
];a
++){var b
=this.errorList
[a
];this.settings
.highlight
&&this.settings
.highlight
.call(this,b
.element
,this.settings
.errorClass
,this.settings
.validClass
);this.showLabel(b
.element
,b
.message
)}if(this.errorList
.length
)this.toShow
=this.toShow
.add(this.containers
);if(this.settings
.success
)for(a
=0;this.successList
[a
];a
++)this.showLabel(this.successList
[a
]);
33 if(this.settings
.unhighlight
){a
=0;for(b
=this.validElements();b
[a
];a
++)this.settings
.unhighlight
.call(this,b
[a
],this.settings
.errorClass
,this.settings
.validClass
)}this.toHide
=this.toHide
.not(this.toShow
);this.hideErrors();this.addWrapper(this.toShow
).show()},validElements:function(){return this.currentElements
.not(this.invalidElements())},invalidElements:function(){return c(this.errorList
).map(function(){return this.element
})},showLabel:function(a
,b
){var d
=this.errorsFor(a
);if(d
.length
){d
.removeClass(this.settings
.validClass
).addClass(this.settings
.errorClass
);
34 d
.attr("generated")&&d
.html(b
)}else{d
=c("<"+this.settings
.errorElement
+"/>").attr({"for":this.idOrName(a
),generated
:true}).addClass(this.settings
.errorClass
).html(b
||"");if(this.settings
.wrapper
)d
=d
.hide().show().wrap("<"+this.settings
.wrapper
+"/>").parent();this.labelContainer
.append(d
).length
||(this.settings
.errorPlacement
?this.settings
.errorPlacement(d
,c(a
)):d
.insertAfter(a
))}if(!b
&&this.settings
.success
){d
.text("");typeof this.settings
.success
=="string"?d
.addClass(this.settings
.success
):this.settings
.success(d
)}this.toShow
=
35 this.toShow
.add(d
)},errorsFor:function(a
){var b
=this.idOrName(a
);return this.errors().filter(function(){return c(this).attr("for")==b
})},idOrName:function(a
){return this.groups
[a
.name
]||(this.checkable(a
)?a
.name
:a
.id
||a
.name
)},validationTargetFor:function(a
){if(this.checkable(a
))a
=this.findByName(a
.name
).not(this.settings
.ignore
)[0];return a
},checkable:function(a
){return/radio|checkbox/i.test(a
.type
)},findByName:function(a
){var b
=this.currentForm
;return c(document
.getElementsByName(a
)).map(function(d
,
36 e
){return e
.form
==b
&&e
.name
==a
&&e
||null})},getLength:function(a
,b
){switch(b
.nodeName
.toLowerCase()){case "select":return c("option:selected",b
).length
;case "input":if(this.checkable(b
))return this.findByName(b
.name
).filter(":checked").length
}return a
.length
},depend:function(a
,b
){return this.dependTypes
[typeof a
]?this.dependTypes
[typeof a
](a
,b
):true},dependTypes
:{"boolean":function(a
){return a
},string:function(a
,b
){return!!c(a
,b
.form
).length
},"function":function(a
,b
){return a(b
)}},optional:function(a
){return!c
.validator
.methods
.required
.call(this,
37 c
.trim(a
.value
),a
)&&"dependency-mismatch"},startRequest:function(a
){if(!this.pending
[a
.name
]){this.pendingRequest
++;this.pending
[a
.name
]=true}},stopRequest:function(a
,b
){this.pendingRequest
--;if(this.pendingRequest
<0)this.pendingRequest
=0;delete this.pending
[a
.name
];if(b
&&this.pendingRequest
==0&&this.formSubmitted
&&this.form()){c(this.currentForm
).submit();this.formSubmitted
=false}else if(!b
&&this.pendingRequest
==0&&this.formSubmitted
){c(this.currentForm
).triggerHandler("invalid-form",[this]);this.formSubmitted
=
38 false}},previousValue:function(a
){return c
.data(a
,"previousValue")||c
.data(a
,"previousValue",{old
:null,valid
:true,message
:this.defaultMessage(a
,"remote")})}},classRuleSettings
:{required
:{required
:true},email
:{email
:true},url
:{url
:true},date
:{date
:true},dateISO
:{dateISO
:true},dateDE
:{dateDE
:true},number
:{number
:true},numberDE
:{numberDE
:true},digits
:{digits
:true},creditcard
:{creditcard
:true}},addClassRules:function(a
,b
){a
.constructor==String
?this.classRuleSettings
[a
]=b
:c
.extend(this.classRuleSettings
,
39 a
)},classRules:function(a
){var b
={};(a
=c(a
).attr("class"))&&c
.each(a
.split(" "),function(){this in c
.validator
.classRuleSettings
&&c
.extend(b
,c
.validator
.classRuleSettings
[this])});return b
},attributeRules:function(a
){var b
={};a
=c(a
);for(var d
in c
.validator
.methods
){var e
;if(e
=d
==="required"&&typeof c
.fn
.prop
==="function"?a
.prop(d
):a
.attr(d
))b
[d
]=e
;else if(a
[0].getAttribute("type")===d
)b
[d
]=true}b
.maxlength
&&/-1|2147483647|524288/.test(b
.maxlength
)&&delete b
.maxlength
;return b
},metadataRules:function(a
){if(!c
.metadata
)return{};
40 var b
=c
.data(a
.form
,"validator").settings
.meta
;return b
?c(a
).metadata()[b
]:c(a
).metadata()},staticRules:function(a
){var b
={},d
=c
.data(a
.form
,"validator");if(d
.settings
.rules
)b
=c
.validator
.normalizeRule(d
.settings
.rules
[a
.name
])||{};return b
},normalizeRules:function(a
,b
){c
.each(a
,function(d
,e
){if(e
===false)delete a
[d
];else if(e
.param
||e
.depends
){var f
=true;switch(typeof e
.depends
){case "string":f
=!!c(e
.depends
,b
.form
).length
;break;case "function":f
=e
.depends
.call(b
,b
)}if(f
)a
[d
]=e
.param
!==undefined?
41 e
.param
:true;else delete a
[d
]}});c
.each(a
,function(d
,e
){a
[d
]=c
.isFunction(e
)?e(b
):e
});c
.each(["minlength","maxlength","min","max"],function(){if(a
[this])a
[this]=Number(a
[this])});c
.each(["rangelength","range"],function(){if(a
[this])a
[this]=[Number(a
[this][0]),Number(a
[this][1])]});if(c
.validator
.autoCreateRanges
){if(a
.min
&&a
.max
){a
.range
=[a
.min
,a
.max
];delete a
.min
;delete a
.max
}if(a
.minlength
&&a
.maxlength
){a
.rangelength
=[a
.minlength
,a
.maxlength
];delete a
.minlength
;delete a
.maxlength
}}a
.messages
&&delete a
.messages
;
42 return a
},normalizeRule:function(a
){if(typeof a
=="string"){var b
={};c
.each(a
.split(/\s/),function(){b
[this]=true});a
=b
}return a
},addMethod:function(a
,b
,d
){c
.validator
.methods
[a
]=b
;c
.validator
.messages
[a
]=d
!=undefined?d
:c
.validator
.messages
[a
];b
.length
<3&&c
.validator
.addClassRules(a
,c
.validator
.normalizeRule(a
))},methods
:{required:function(a
,b
,d
){if(!this.depend(d
,b
))return"dependency-mismatch";switch(b
.nodeName
.toLowerCase()){case "select":return(a
=c(b
).val())&&a
.length
>0;case "input":if(this.checkable(b
))return this.getLength(a
,
43 b
)>0;default:return c
.trim(a
).length
>0}},remote:function(a
,b
,d
){if(this.optional(b
))return"dependency-mismatch";var e
=this.previousValue(b
);this.settings
.messages
[b
.name
]||(this.settings
.messages
[b
.name
]={});e
.originalMessage
=this.settings
.messages
[b
.name
].remote
;this.settings
.messages
[b
.name
].remote
=e
.message
;d
=typeof d
=="string"&&{url
:d
}||d
;if(this.pending
[b
.name
])return"pending";if(e
.old
===a
)return e
.valid
;e
.old
=a
;var f
=this;this.startRequest(b
);var g
={};g
[b
.name
]=a
;c
.ajax(c
.extend(true,{url
:d
,
44 mode
:"abort",port
:"validate"+b
.name
,dataType
:"json",data
:g
,success:function(h
){f
.settings
.messages
[b
.name
].remote
=e
.originalMessage
;var j
=h
===true;if(j
){var i
=f
.formSubmitted
;f
.prepareElement(b
);f
.formSubmitted
=i
;f
.successList
.push(b
);f
.showErrors()}else{i
={};h
=h
||f
.defaultMessage(b
,"remote");i
[b
.name
]=e
.message
=c
.isFunction(h
)?h(a
):h
;f
.showErrors(i
)}e
.valid
=j
;f
.stopRequest(b
,j
)}},d
));return"pending"},minlength:function(a
,b
,d
){return this.optional(b
)||this.getLength(c
.trim(a
),b
)>=d
},maxlength:function(a
,
45 b
,d
){return this.optional(b
)||this.getLength(c
.trim(a
),b
)<=d
},rangelength:function(a
,b
,d
){a
=this.getLength(c
.trim(a
),b
);return this.optional(b
)||a
>=d
[0]&&a
<=d
[1]},min:function(a
,b
,d
){return this.optional(b
)||a
>=d
},max:function(a
,b
,d
){return this.optional(b
)||a
<=d
},range:function(a
,b
,d
){return this.optional(b
)||a
>=d
[0]&&a
<=d
[1]},email:function(a
,b
){return this.optional(b
)||/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))$/i.test(a
)},
46 url:function(a
,b
){return this.optional(b
)||/^(https?|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(a
)},
47 date:function(a
,b
){return this.optional(b
)||!/Invalid|NaN/.test(new Date(a
))},dateISO:function(a
,b
){return this.optional(b
)||/^\d{4}[\/-]\d{1,2}[\/-]\d{1,2}$/.test(a
)},number:function(a
,b
){return this.optional(b
)||/^-?(?:\d+|\d{1,3}(?:,\d{3})+)(?:\.\d+)?$/.test(a
)},digits:function(a
,b
){return this.optional(b
)||/^\d+$/.test(a
)},creditcard:function(a
,b
){if(this.optional(b
))return"dependency-mismatch";if(/[^0-9 -]+/.test(a
))return false;var d
=0,e
=0,f
=false;a
=a
.replace(/\D/g,"");for(var g
=a
.length
-1;g
>=
48 0;g
--){e
=a
.charAt(g
);e
=parseInt(e
,10);if(f
)if((e
*=2)>9)e
-=9;d
+=e
;f
=!f
}return d
%10==0},accept:function(a
,b
,d
){d
=typeof d
=="string"?d
.replace(/,/g
,"|"):"png|jpe?g|gif";return this.optional(b
)||a
.match(RegExp(".("+d
+")$","i"))},equalTo:function(a
,b
,d
){d
=c(d
).unbind(".validate-equalTo").bind("blur.validate-equalTo",function(){c(b
).valid()});return a
==d
.val()}}});c
.format
=c
.validator
.format
})(jQuery
);
49 (function(c
){var a
={};if(c
.ajaxPrefilter
)c
.ajaxPrefilter(function(d
,e
,f
){e
=d
.port
;if(d
.mode
=="abort"){a
[e
]&&a
[e
].abort();a
[e
]=f
}});else{var b
=c
.ajax
;c
.ajax=function(d
){var e
=("port"in d
?d
:c
.ajaxSettings
).port
;if(("mode"in d
?d
:c
.ajaxSettings
).mode
=="abort"){a
[e
]&&a
[e
].abort();return a
[e
]=b
.apply(this,arguments
)}return b
.apply(this,arguments
)}}})(jQuery
);
50 (function(c
){!jQuery
.event
.special
.focusin
&&!jQuery
.event
.special
.focusout
&&document
.addEventListener
&&c
.each({focus
:"focusin",blur
:"focusout"},function(a
,b
){function d(e
){e
=c
.event
.fix(e
);e
.type
=b
;return c
.event
.handle
.call(this,e
)}c
.event
.special
[b
]={setup:function(){this.addEventListener(a
,d
,true)},teardown:function(){this.removeEventListener(a
,d
,true)},handler:function(e
){arguments
[0]=c
.event
.fix(e
);arguments
[0].type
=b
;return c
.event
.handle
.apply(this,arguments
)}}});c
.extend(c
.fn
,{validateDelegate:function(a
,
51 b
,d
){return this.bind(b
,function(e
){var f
=c(e
.target
);if(f
.is(a
))return d
.apply(f
,arguments
)})}})})(jQuery
);