(function(a){var j="option:selected",e="string",g="function",h="pending",f="dependency-mismatch",i="invalid-form",c=false,b=true,d="validator";a.extend(a.fn,{validate:function(g){var f=this;if(!f.length){g&&g.debug&&window.console&&console.warn("nothing selected, can't validate, returning nothing");return}var e=a.data(f[0],d);if(e)return e;e=new a.validator(g,f[0]);a.data(f[0],d,e);if(e.settings.onsubmit){f.find("input, button").filter(".cancel").click(function(){e.cancelSubmit=b});f.submit(function(d){e.settings.debug&&d.preventDefault();function a(){if(e.settings.submitHandler){e.settings.submitHandler.call(e,e.currentForm);return c}return b}if(e.cancelSubmit){e.cancelSubmit=c;return a()}if(e.form()){if(e.pendingRequest){e.formSubmitted=b;return c}return a()}else{e.focusInvalid();return c}})}return e},valid:function(){var b=this;if(a(b[0]).is("form"))return b.validate().form();else{var d=c,e=a(b[0].form).validate();b.each(function(){d|=e.element(this)});return d}},removeAttrs:function(d){var c={},b=this;a.each(d.split(/\s/),function(d,a){c[a]=b.attr(a);b.removeAttr(a)});return c},rules:function(j,f){var b=this[0];if(j){var g=a.data(b.form,d).settings,h=g.rules,e=a.validator.staticRules(b);switch(j){case"add":a.extend(e,a.validator.normalizeRule(f));h[b.name]=e;if(f.messages)g.messages[b.name]=a.extend(g.messages[b.name],f.messages);break;case"remove":if(!f){delete h[b.name];return e}var i={};a.each(f.split(/\s/),function(b,a){i[a]=e[a];delete e[a]});return i}}var c=a.validator.normalizeRules(a.extend({},a.validator.metadataRules(b),a.validator.classRules(b),a.validator.attributeRules(b),a.validator.staticRules(b)),b);if(c.required){var k=c.required;delete c.required;c=a.extend({required:k},c)}return c}});a.extend(a.expr[":"],{blank:function(b){return!a.trim(b.value)},filled:function(b){return!!a.trim(b.value)},unchecked:function(a){return!a.checked}});a.format=function(c,b){if(arguments.length==1)return function(){var b=a.makeArray(arguments);b.unshift(c);return a.format.apply(this,b)};if(arguments.length>2&&b.constructor!=Array)b=a.makeArray(arguments).slice(1);if(b.constructor!=Array)b=[b];a.each(b,function(a,b){c=c.replace(new RegExp("\\{"+a+"\\}","g"),b)});return c};a.validator=function(b,c){this.settings=a.extend({},a.validator.defaults,b);this.currentForm=c;this.init()};a.extend(a.validator,{defaults:{messages:{},groups:{},rules:{},errorClass:"error",errorElement:"label",focusInvalid:b,errorContainer:a([]),errorLabelContainer:a([]),onsubmit:b,ignore:[],ignoreTitle:c,onfocusin:function(b){var a=this;a.lastActive=b;if(a.settings.focusCleanup&&!a.blockFocusCleanup){a.settings.unhighlight&&a.settings.unhighlight.call(a,b,a.settings.errorClass);a.errorsFor(b).hide()}},onfocusout:function(a){var b=this;!b.checkable(a)&&(a.name in b.submitted||!b.optional(a))&&b.element(a)},onkeyup:function(a){(a.name in this.submitted||a==this.lastElement)&&this.element(a)},onclick:function(a){a.name in this.submitted&&this.element(a)},highlight:function(c,b){a(c).addClass(b)},unhighlight:function(c,b){a(c).removeClass(b)}},setDefaults:function(b){a.extend(a.validator.defaults,b)},messages:{required:"This field is required.",remote:"Please fix this field.",email:"Please enter a valid email address.",url:"Please enter a valid URL.",date:"Please enter a valid date.",dateISO:"Please enter a valid date (ISO).",dateDE:"Bitte geben Sie ein gültiges Datum ein.",number:"Please enter a valid number.",numberDE:"Bitte geben Sie eine Nummer ein.",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:a.format("Please enter no more than {0} characters."),minlength:a.format("Please enter at least {0} characters."),rangelength:a.format("Please enter a value between {0} and {1} characters long."),range:a.format("Please enter a value between {0} and {1}."),max:a.format("Please enter a value less than or equal to {0}."),min:a.format("Please enter a value greater than or equal to {0}.")},autoCreateRanges:c,prototype:{init:function(){var b=this;b.labelContainer=a(b.settings.errorLabelContainer);b.errorContext=b.labelContainer.length&&b.labelContainer||a(b.currentForm);b.containers=a(b.settings.errorContainer).add(b.settings.errorLabelContainer);b.submitted={};b.valueCache={};b.pendingRequest=0;b.pending={};b.invalid={};b.reset();var f=b.groups={};a.each(b.settings.groups,function(c,b){a.each(b.split(/\s/),function(b,a){f[a]=c})});var e=b.settings.rules;a.each(e,function(c,b){e[c]=a.validator.normalizeRule(b)});function c(c){var b=a.data(this[0].form,d);b.settings["on"+c.type]&&b.settings["on"+c.type].call(b,this[0])}a(b.currentForm).delegate("focusin focusout keyup",":text, :password, :file, select, textarea",c).delegate("click",":radio, :checkbox",c);b.settings.invalidHandler&&a(b.currentForm).bind("invalid-form.validate",b.settings.invalidHandler)},form:function(){var b=this;b.checkForm();a.extend(b.submitted,b.errorMap);b.invalid=a.extend({},b.errorMap);!b.valid()&&a(b.currentForm).triggerHandler(i,[b]);b.showErrors();return b.valid()},checkForm:function(){var a=this;a.prepareForm();for(var b=0,c=a.currentElements=a.elements();c[b];b++)a.check(c[b]);return a.valid()},element:function(d){var c=this;d=c.clean(d);c.lastElement=d;c.prepareElement(d);c.currentElements=a(d);var e=c.check(d);if(e)delete c.invalid[d.name];else c.invalid[d.name]=b;if(!c.numberOfInvalids())c.toHide=c.toHide.add(c.containers);c.showErrors();return e},showErrors:function(c){var b=this;if(c){a.extend(b.errorMap,c);b.errorList=[];for(var d in c)b.errorList.push({message:c[d],element:b.findByName(d)[0]});b.successList=a.grep(b.successList,function(a){return!(a.name in c)})}b.settings.showErrors?b.settings.showErrors.call(b,b.errorMap,b.errorList):b.defaultShowErrors()},resetForm:function(){var b=this;a.fn.resetForm&&a(b.currentForm).resetForm();b.submitted={};b.prepareForm();b.hideErrors();b.elements().removeClass(b.settings.errorClass)},numberOfInvalids:function(){return this.objectLength(this.invalid)},objectLength:function(b){var a=0;for(var c in b)a++;return a},hideErrors:function(){this.addWrapper(this.toHide).hide()},valid:function(){return this.size()==0},size:function(){return this.errorList.length},focusInvalid:function(){var b=this;if(b.settings.focusInvalid)try{a(b.findLastActive()||b.errorList.length&&b.errorList[0].element||[]).filter(":visible").focus()}catch(c){}},findLastActive:function(){var b=this.lastActive;return b&&a.grep(this.errorList,function(a){return a.element.name==b.name}).length==1&&b},elements:function(){var e=this,d={};return a([]).add(this.currentForm.elements).filter(":input").not(":submit, :reset, :image, [disabled]").not(this.settings.ignore).filter(function(){var f=this;!f.name&&e.settings.debug&&window.console&&console.error("%o has no name assigned",f);if(f.name in d||!e.objectLength(a(f).rules()))return c;d[f.name]=b;return b})},clean:function(b){return a(b)[0]},errors:function(){return a(this.settings.errorElement+"."+this.settings.errorClass,this.errorContext)},reset:function(){var b=this;b.successList=[];b.errorList=[];b.errorMap={};b.toShow=a([]);b.toHide=a([]);b.formSubmitted=c;b.currentElements=a([])},prepareForm:function(){var a=this;a.reset();a.toHide=a.errors().add(a.containers)},prepareElement:function(a){this.reset();this.toHide=this.errorsFor(a)},check:function(d){var e=this;d=e.clean(d);if(e.checkable(d))d=e.findByName(d.name)[0];var j=a(d).rules(),g=c;for(method in j){var k={method:method,parameters:j[method]};try{var i=a.validator.methods[method].call(e,d.value.replace(/\r/g,""),d,k.parameters);if(i==f){g=b;continue}g=c;if(i==h){e.toHide=e.toHide.not(e.errorsFor(d));return}if(!i){e.formatAndAdd(d,k);return c}}catch(l){e.settings.debug&&window.console&&console.log("exception occured when checking element "+d.id+", check the '"+k.method+"' method");throw l;}}if(g)return;e.objectLength(j)&&e.successList.push(d);return b},customMetaMessage:function(c,d){if(!a.metadata)return;var b=this.settings.meta?a(c).metadata()[this.settings.meta]:a(c).metadata();return b&&b.messages&&b.messages[d]},customMessage:function(c,b){var a=this.settings.messages[c];return a&&(a.constructor==String?a:a[b])},findDefined:function(){for(var a=0;a<arguments.length;a++)if(arguments[a]!==undefined)return arguments[a];return undefined},defaultMessage:function(b,d){var c=this;return c.findDefined(c.customMessage(b.name,d),c.customMetaMessage(b,d),!c.settings.ignoreTitle&&b.title||undefined,a.validator.messages[d],"<strong>Warning: No message defined for "+b.name+"</strong>")},formatAndAdd:function(b,d){var c=this,a=c.defaultMessage(b,d.method);if(typeof a==g)a=a.call(c,d.parameters,b);c.errorList.push({message:a,element:b});c.errorMap[b.name]=a;c.submitted[b.name]=a},addWrapper:function(a){if(this.settings.wrapper)a=a.add(a.parents(this.settings.wrapper));return a},defaultShowErrors:function(){var a=this;for(var b=0;a.errorList[b];b++){var c=a.errorList[b];a.settings.highlight&&a.settings.highlight.call(a,c.element,a.settings.errorClass);a.showLabel(c.element,c.message)}if(a.errorList.length)a.toShow=a.toShow.add(a.containers);if(a.settings.success)for(var b=0;a.successList[b];b++)a.showLabel(a.successList[b]);if(a.settings.unhighlight)for(var b=0,d=a.validElements();d[b];b++)a.settings.unhighlight.call(a,d[b],a.settings.errorClass);a.toHide=a.toHide.not(a.toShow);a.hideErrors();a.addWrapper(a.toShow).show()},validElements:function(){return this.currentElements.not(this.invalidElements())},invalidElements:function(){return a(this.errorList).map(function(){return this.element})},showLabel:function(f,g){var c=this,d=c.errorsFor(f);if(d.length){d.removeClass().addClass(c.settings.errorClass);d.attr("generated")&&d.html(g)}else{d=a("<"+c.settings.errorElement+"/>").attr({"for":c.idOrName(f),generated:b}).addClass(c.settings.errorClass).html(g||"");if(c.settings.wrapper)d=d.hide().show().wrap("<"+c.settings.wrapper+"/>").parent();if(!c.labelContainer.append(d).length)c.settings.errorPlacement?c.settings.errorPlacement(d,a(f)):d.insertAfter(f)}if(!g&&c.settings.success){d.text("");typeof c.settings.success==e?d.addClass(c.settings.success):c.settings.success(d)}c.toShow=c.toShow.add(d)},errorsFor:function(a){return this.errors().filter("[for='"+this.idOrName(a)+"']")},idOrName:function(a){return this.groups[a.name]||(this.checkable(a)?a.name:a.id||a.name)},checkable:function(a){return/radio|checkbox/i.test(a.type)},findByName:function(b){var c=this.currentForm;return a(document.getElementsByName(b)).map(function(d,a){return a.form==c&&a.name==b&&a||null})},getLength:function(c,b){switch(b.nodeName.toLowerCase()){case"select":return a(j,b).length;case"input":if(this.checkable(b))return this.findByName(b.name).filter(":checked").length}return c.length},depend:function(a,c){return this.dependTypes[typeof a]?this.dependTypes[typeof a](a,c):b},dependTypes:{"boolean":function(a){return a},string:function(c,b){return!!a(c,b.form).length},"function":function(b,a){return b(a)}},optional:function(b){return!a.validator.methods.required.call(this,a.trim(b.value),b)&&f},startRequest:function(a){if(!this.pending[a.name]){this.pendingRequest++;this.pending[a.name]=b}},stopRequest:function(d,c){var b=this;b.pendingRequest--;if(b.pendingRequest<0)b.pendingRequest=0;delete b.pending[d.name];if(c&&b.pendingRequest==0&&b.formSubmitted&&b.form())a(b.currentForm).submit();else!c&&b.pendingRequest==0&&b.formSubmitted&&a(b.currentForm).triggerHandler(i,[b])},previousValue:function(d){var c="previousValue";return a.data(d,c)||a.data(d,c,previous={old:null,valid:b,message:this.defaultMessage(d,"remote")})}},classRuleSettings:{required:{required:b},email:{email:b},url:{url:b},date:{date:b},dateISO:{dateISO:b},dateDE:{dateDE:b},number:{number:b},numberDE:{numberDE:b},digits:{digits:b},creditcard:{creditcard:b}},addClassRules:function(b,c){b.constructor==String?(this.classRuleSettings[b]=c):a.extend(this.classRuleSettings,b)},classRules:function(d){var c={},b=a(d).attr("class");b&&a.each(b.split(" "),function(){this in a.validator.classRuleSettings&&a.extend(c,a.validator.classRuleSettings[this])});return c},attributeRules:function(e){var b={},d=a(e);for(method in a.validator.methods){var c=d.attr(method);if(c)b[method]=c}if(b.maxlength&&/-1|2147483647|524288/.test(b.maxlength))delete b.maxlength;return b},metadataRules:function(b){if(!a.metadata)return{};var c=a.data(b.form,d).settings.meta;return c?a(b).metadata()[c]:a(b).metadata()},staticRules:function(c){var e={},b=a.data(c.form,d);if(b.settings.rules)e=a.validator.normalizeRule(b.settings.rules[c.name])||{};return e},normalizeRules:function(d,f){a.each(d,function(j,h){if(h===c){delete d[j];return}if(h.param||h.depends){var i=b;switch(typeof h.depends){case e:i=!!a(h.depends,f.form).length;break;case g:i=h.depends.call(f,f)}if(i)d[j]=h.param!==undefined?h.param:b;else delete d[j]}});a.each(d,function(c,b){d[c]=a.isFunction(b)?b(f):b});a.each(["minlength","maxlength","min","max"],function(){if(d[this])d[this]=Number(d[this])});a.each(["rangelength","range"],function(){var a=this;if(d[a])d[a]=[Number(d[a][0]),Number(d[a][1])]});if(a.validator.autoCreateRanges){if(d.min&&d.max){d.range=[d.min,d.max];delete d.min;delete d.max}if(d.minlength&&d.maxlength){d.rangelength=[d.minlength,d.maxlength];delete d.minlength;delete d.maxlength}}if(d.messages)delete d.messages;return d},normalizeRule:function(c){if(typeof c==e){var d={};a.each(c.split(/\s/),function(){d[this]=b});c=d}return c},addMethod:function(b,c,d){a.validator.methods[b]=c;a.validator.messages[b]=d;c.length<3&&a.validator.addClassRules(b,a.validator.normalizeRule(b))},methods:{required:function(d,b,e){if(!this.depend(e,b))return f;switch(b.nodeName.toLowerCase()){case"select":var c=a(j,b);return c.length>0&&(b.type=="select-multiple"||(a.browser.msie&&!c[0].attributes.value.specified?c[0].text:c[0].value).length>0);case"input":if(this.checkable(b))return this.getLength(d,b)>0;default:return a.trim(d).length>0}},remote:function(l,c,k){var i=this;if(i.optional(c))return f;var j=i.previousValue(c);if(!i.settings.messages[c.name])i.settings.messages[c.name]={};i.settings.messages[c.name].remote=typeof j.message==g?j.message(l):j.message;k=typeof k==e&&{url:k}||k;if(j.old!==l){j.old=l;var d=i;i.startRequest(c);var m={};m[c.name]=l;a.ajax(a.extend(b,{url:k,mode:"abort",port:"validate"+c.name,dataType:"json",data:m,success:function(a){if(a){var e=d.formSubmitted;d.prepareElement(c);d.formSubmitted=e;d.successList.push(c);d.showErrors()}else{var b={};b[c.name]=a||d.defaultMessage(c,"remote");d.showErrors(b)}j.valid=a;d.stopRequest(c,a)}},k));return h}else if(i.pending[c.name])return h;return j.valid},minlength:function(d,b,c){return this.optional(b)||this.getLength(a.trim(d),b)>=c},maxlength:function(d,b,c){return this.optional(b)||this.getLength(a.trim(d),b)<=c},rangelength:function(e,b,d){var c=this.getLength(a.trim(e),b);return this.optional(b)||c>=d[0]&&c<=d[1]},min:function(c,a,b){return this.optional(a)||c>=b},max:function(c,a,b){return this.optional(a)||c<=b},range:function(b,c,a){return this.optional(c)||b>=a[0]&&b<=a[1]},email:function(b,a){return this.optional(a)||/^((([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(b)},url:function(b,a){return this.optional(a)||/^(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(b)},date:function(b,a){return this.optional(a)||!/Invalid|NaN/.test(new Date(b))},dateISO:function(b,a){return this.optional(a)||/^\d{4}[\/-]\d{1,2}[\/-]\d{1,2}$/.test(b)},dateDE:function(b,a){return this.optional(a)||/^\d\d?\.\d\d?\.\d\d\d?\d?$/.test(b)},number:function(b,a){return this.optional(a)||/^-?(?:\d+|\d{1,3}(?:,\d{3})+)(?:\.\d+)?$/.test(b)},numberDE:function(b,a){return this.optional(a)||/^-?(?:\d+|\d{1,3}(?:\.\d{3})+)(?:,\d+)?$/.test(b)},digits:function(b,a){return this.optional(a)||/^\d+$/.test(b)},creditcard:function(a,g){if(this.optional(g))return f;if(/[^0-9-]+/.test(a))return c;var e=0,b=0,d=c;a=a.replace(/\D/g,"");for(n=a.length-1;n>=0;n--){var h=a.charAt(n),b=parseInt(h,10);if(d)if((b*=2)>9)b-=9;e+=b;d=!d}return e%10==0},accept:function(c,b,a){a=typeof a==e?a:"png|jpe?g|gif";return this.optional(b)||c.match(new RegExp(".("+a+")$","i"))},equalTo:function(c,d,b){return c==a(b).val()}}})})(jQuery);(function(a){var c=a.ajax,b={};a.ajax=function(d){d=a.extend(d,a.extend({},a.ajaxSettings,d));var e=d.port;if(d.mode=="abort"){b[e]&&b[e].abort();return b[e]=c.apply(this,arguments)}return c.apply(this,arguments)}})(jQuery);(function(a){a.each({focus:"focusin",blur:"focusout"},function(c,b){a.event.special[b]={setup:function(){if(a.browser.msie)return false;this.addEventListener(c,a.event.special[b].handler,true)},teardown:function(){if(a.browser.msie)return false;this.removeEventListener(c,a.event.special[b].handler,true)},handler:function(c){arguments[0]=a.event.fix(c);arguments[0].type=b;return a.event.handle.apply(this,arguments)}}});a.extend(a.fn,{delegate:function(d,b,c){return this.bind(d,function(e){var d=a(e.target);if(d.is(b))return c.apply(d,arguments)})},triggerEvent:function(b,c){return this.triggerHandler(b,[a.event.fix({type:b,target:c})])}})})(jQuery);
