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