﻿(function($){$.extend($.fn,{validate:function(options){if(!this.length){options&&options.debug&&window.console&&console.warn("nothing selected, can't validate, returning nothing");return;};var validator=$.data(this[0],'validator');if(validator){return validator;};validator=new $.validator(options,this[0]);$.data(this[0],'validator',validator);if(validator.settings.onsubmit){this.find("input, button").filter(".cancel").click(function(){validator.cancelSubmit=true;});if(validator.settings.submitHandler){this.find("input, button").filter(":submit").click(function(){validator.submitButton=this;});};this.submit(function(event){if(validator.settings.debug)event.preventDefault();function handle(){if(validator.settings.submitHandler){if(validator.submitButton){var hidden=$("<input type='hidden'/>").attr("name",validator.submitButton.name).val(validator.submitButton.value).appendTo(validator.currentForm);};validator.settings.submitHandler.call(validator,validator.currentForm);if(validator.submitButton){hidden.remove();};return false;};return true;};if(validator.cancelSubmit){validator.cancelSubmit=false;return handle();};if(validator.form()){if(validator.pendingRequest){validator.formSubmitted=true;return false;};return handle();}else{validator.focusInvalid();return false;}});};return validator;},valid:function(){if($(this[0]).is('form')){return this.validate().form();}else{var valid=true;var validator=$(this[0].form).validate();this.each(function(){valid&=validator.element(this);});return valid;}},removeAttrs:function(attributes){var result={},$element=this;$.each(attributes.split(/\s/),function(index,value){result[value]=$element.attr(value);$element.removeAttr(value);});return result;},rules:function(command,argument){var element=this[0];if(command){var settings=$.data(element.form,'validator').settings;var staticRules=settings.rules;var existingRules=$.validator.staticRules(element);switch(command){case "add":$.extend(existingRules,$.validator.normalizeRule(argument));staticRules[element.name]=existingRules;if(argument.messages)settings.messages[element.name]=$.extend(settings.messages[element.name],argument.messages);break;case "remove":if(!argument){delete staticRules[element.name];return existingRules;};var filtered={};$.each(argument.split(/\s/),function(index,method){filtered[method]=existingRules[method];delete existingRules[method];});return filtered;}};var data=$.validator.normalizeRules($.extend({},$.validator.metadataRules(element),$.validator.classRules(element),$.validator.attributeRules(element),$.validator.staticRules(element)),element);if(data.required){var param=data.required;delete data.required;data=$.extend({required:param},data);};return data;}});$.extend($.expr[":"],{blank:function(a){return !$.trim(""+a.value);},filled:function(a){return !!$.trim(""+a.value);},unchecked:function(a){return !a.checked;}});$.validator=function(options,form){this.settings=$.extend({},$.validator.defaults,options);this.currentForm=form;this.init();};$.validator.format=function(source,params){if(arguments.length==1)return function(){var args=$.makeArray(arguments);args.unshift(source);return $.validator.format.apply(this,args);};if(arguments.length>2&&params.constructor !=Array){params=$.makeArray(arguments).slice(1);};if(params.constructor !=Array){params=[params];};$.each(params,function(i,n){source=source.replace(new RegExp("\\{"+i+"\\};","g"),n);});return source;};$.extend($.validator,{defaults:{messages:{},groups:{},rules:{},errorClass:"error",validClass:"valid",errorElement:"label",focusInvalid:true,errorContainer:$([]),errorLabelContainer:$([]),onsubmit:true,ignore:[],ignoreTitle:false,onfocusin:function(element){this.lastActive=element;if(this.settings.focusCleanup&&!this.blockFocusCleanup){this.settings.unhighlight&&this.settings.unhighlight.call(this,element,this.settings.errorClass,this.settings.validClass);this.errorsFor(element).hide();}},onfocusout:function(element){if(!this.checkable(element)&&(element.name in this.submitted||!this.optional(element))){this.element(element);}},onkeyup:function(element){if(element.name in this.submitted||element==this.lastElement){this.element(element);}},onclick:function(element){if(element.name in this.submitted)this.element(element);else if(element.parentNode.name in this.submitted)this.element(element.parentNode)},highlight:function(element,errorClass,validClass){$(element).addClass(errorClass).removeClass(validClass);},unhighlight:function(element,errorClass,validClass){$(element).removeClass(errorClass).addClass(validClass);}},setDefaults:function(settings){$.extend($.validator.defaults,settings);},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:$.validator.format("Please enter no more than {0}; characters."),minlength:$.validator.format("Please enter at least {0}; characters."),rangelength:$.validator.format("Please enter a value between {0}; and {1}; characters long."),range:$.validator.format("Please enter a value between {0}; and {1}."),max:$.validator.format("Please enter a value less than or equal to {0}."),min:$.validator.format("Please enter a value greater than or equal to {0}.")},autoCreateRanges:false,prototype:{init:function(){this.labelContainer=$(this.settings.errorLabelContainer);this.errorContext=this.labelContainer.length&&this.labelContainer||$(this.currentForm);this.containers=$(this.settings.errorContainer).add(this.settings.errorLabelContainer);this.submitted={};this.valueCache={};this.pendingRequest=0;this.pending={};this.invalid={};this.reset();var groups=(this.groups={});$.each(this.settings.groups,function(key,value){$.each(value.split(/\s/),function(index,name){groups[name]=key;});});var rules=this.settings.rules;$.each(rules,function(key,value){rules[key]=$.validator.normalizeRule(value);});function delegate(event){var validator=$.data(this[0].form,"validator");validator.settings["on"+event.type]&&validator.settings["on"+event.type].call(validator,this[0]);};$(this.currentForm).delegate("focusin focusout keyup",":text, :password, :file, select, textarea",delegate).delegate("click",":radio, :checkbox, select, option",delegate);if(this.settings.invalidHandler)$(this.currentForm).bind("invalid-form.validate",this.settings.invalidHandler);},form:function(){this.checkForm();$.extend(this.submitted,this.errorMap);this.invalid=$.extend({},this.errorMap);if(!this.valid())$(this.currentForm).triggerHandler("invalid-form",[this]);this.showErrors();return this.valid();},checkForm:function(){this.prepareForm();for(var i=0,elements=(this.currentElements=this.elements());elements[i];i++){this.check(elements[i]);};return this.valid();},element:function(element){element=this.clean(element);this.lastElement=element;this.prepareElement(element);this.currentElements=$(element);var result=this.check(element);if(result){delete this.invalid[element.name];}else{this.invalid[element.name]=true;};if(!this.numberOfInvalids()){this.toHide=this.toHide.add(this.containers);};this.showErrors();return result;},showErrors:function(errors){if(errors){$.extend(this.errorMap,errors);this.errorList=[];for(var name in errors){this.errorList.push({message:errors[name],element:this.findByName(name)[0]});};this.successList=$.grep(this.successList,function(element){return !(element.name in errors);});};this.settings.showErrors?this.settings.showErrors.call(this,this.errorMap,this.errorList):this.defaultShowErrors();},resetForm:function(){if($.fn.resetForm)$(this.currentForm).resetForm();this.submitted={};this.prepareForm();this.hideErrors();this.elements().removeClass(this.settings.errorClass);},numberOfInvalids:function(){return this.objectLength(this.invalid);},objectLength:function(obj){var count=0;for(var i in obj)count++;return count;},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{$(this.findLastActive()||this.errorList.length&&this.errorList[0].element||[]).filter(":visible").focus();}catch(e){}}},findLastActive:function(){var lastActive=this.lastActive;return lastActive&&$.grep(this.errorList,function(n){return n.element.name==lastActive.name;}).length==1&&lastActive;},elements:function(){var validator=this,rulesCache={};return $([]).add(this.currentForm.elements).filter(":input").not(":submit, :reset, :image, [disabled]").not(this.settings.ignore).filter(function(){!this.name&&validator.settings.debug&&window.console&&console.error("%o has no name assigned",this);if(this.name in rulesCache||!validator.objectLength($(this).rules()))return false;rulesCache[this.name]=true;return true;});},clean:function(selector){return $(selector)[0];},errors:function(){return $(this.settings.errorElement+"."+this.settings.errorClass,this.errorContext);},reset:function(){this.successList=[];this.errorList=[];this.errorMap={};this.toShow=$([]);this.toHide=$([]);this.currentElements=$([]);},prepareForm:function(){this.reset();this.toHide=this.errors().add(this.containers);},prepareElement:function(element){this.reset();this.toHide=this.errorsFor(element);},check:function(element){element=this.clean(element);if(this.checkable(element)){element=this.findByName(element.name)[0];};var rules=$(element).rules();var dependencyMismatch=false;for(method in rules){var rule={method:method,parameters:rules[method]};try{var result=$.validator.methods[method].call(this,element.value.replace(/\r/g,""),element,rule.parameters);if(result=="dependency-mismatch"){dependencyMismatch=true;continue;};dependencyMismatch=false;if(result=="pending"){this.toHide=this.toHide.not(this.errorsFor(element));return;};if(!result){this.formatAndAdd(element,rule);return false;}}catch(e){this.settings.debug&&window.console&&console.log("exception occured when checking element "+element.id+", check the '"+rule.method+"' method",e);throw e;}};if(dependencyMismatch)return;if(this.objectLength(rules))this.successList.push(element);return true;},customMetaMessage:function(element,method){if(!$.metadata)return;var meta=this.settings.meta?$(element).metadata()[this.settings.meta]:$(element).metadata();return meta&&meta.messages&&meta.messages[method];},customMessage:function(name,method){var m=this.settings.messages[name];return m&&(m.constructor==String?m:m[method]);},findDefined:function(){for(var i=0;i<arguments.length;i++){if(arguments[i]!==undefined)return arguments[i];};return undefined;},defaultMessage:function(element,method){return this.findDefined(this.customMessage(element.name,method),this.customMetaMessage(element,method),!this.settings.ignoreTitle&&element.title||undefined,$.validator.messages[method],"<strong>Warning: No message defined for "+element.name+"</strong>");},formatAndAdd:function(element,rule){var message=this.defaultMessage(element,rule.method),theregex=/\$?\{(\d+)\};/g;if (typeof message =="function"){message =message.call(this,rule.parameters,element);}else if (theregex.test(message)){message =jQuery.format(message.replace(theregex,'{$1};'),rule.parameters);};this.errorList.push({message:message,element:element });this.errorMap[element.name]=message;this.submitted[element.name]=message;},addWrapper:function(toToggle){if (this.settings.wrapper)toToggle =toToggle.add(toToggle.parent(this.settings.wrapper));return toToggle;},defaultShowErrors:function(){for (var i =0;this.errorList[i];i++){var error =this.errorList[i];this.settings.highlight &&this.settings.highlight.call(this,error.element,this.settings.errorClass,this.settings.validClass);this.showLabel(error.element,error.message);};if (this.errorList.length){this.toShow =this.toShow.add(this.containers);};if (this.settings.success){for (var i =0;this.successList[i];i++){this.showLabel(this.successList[i]);}};if (this.settings.unhighlight){for (var i =0,elements =this.validElements();elements[i];i++){this.settings.unhighlight.call(this,elements[i],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 $(this.errorList).map(function(){return this.element;});},showLabel:function(element,message){var label =this.errorsFor(element);if (label.length){label.removeClass().addClass(this.settings.errorClass);label.attr("generated")&&label.html(message);}else {label =$("<" +this.settings.errorElement +"/>").attr({"for":this.idOrName(element),generated:true }).addClass(this.settings.errorClass).html(message ||"");if (this.settings.wrapper){label =label.hide().show().wrap("<" +this.settings.wrapper +"/>").parent();};if (!this.labelContainer.append(label).length)this.settings.errorPlacement ?this.settings.errorPlacement(label,$(element)):label.insertAfter(element);};if (!message &&this.settings.success){label.text("");typeof this.settings.success =="string" ?label.addClass(this.settings.success):this.settings.success(label);};this.toShow =this.toShow.add(label);},errorsFor:function(element){var name =this.idOrName(element);return this.errors().filter(function(){return $(this).attr('for')==name });},idOrName:function(element){return this.groups[element.name]||(this.checkable(element)?element.name :element.id ||element.name);},checkable:function(element){return /radio|checkbox/i.test(element.type);},findByName:function(name){var form=this.currentForm;return $(document.getElementsByName(name)).map(function(index,element){return element.form==form&&element.name==name&&element||null;});},getLength:function(value,element){switch(element.nodeName.toLowerCase()){case 'select':return $("option:selected",element).length;case 'input':if(this.checkable(element))return this.findByName(element.name).filter(':checked').length;};return value.length;},depend:function(param,element){return this.dependTypes[typeof param]?this.dependTypes[typeof param](param,element):true;},dependTypes:{"boolean":function(param,element){return param;},"string":function(param,element){return !!$(param,element.form).length;},"function":function(param,element){return param(element);}},optional:function(element){return !$.validator.methods.required.call(this,$.trim(element.value),element)&&"dependency-mismatch";},startRequest:function(element){if(!this.pending[element.name]){this.pendingRequest++;this.pending[element.name]=true;}},stopRequest:function(element,valid){this.pendingRequest--;if(this.pendingRequest<0)this.pendingRequest=0;delete this.pending[element.name];if(valid&&this.pendingRequest==0&&this.formSubmitted&&this.form()){$(this.currentForm).submit();this.formSubmitted=false;}else if(!valid&&this.pendingRequest==0&&this.formSubmitted){$(this.currentForm).triggerHandler("invalid-form",[this]);this.formSubmitted=false;}},previousValue:function(element){return $.data(element,"previousValue")||$.data(element,"previousValue",{old:null,valid:true,message:this.defaultMessage(element,"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(className,rules){className.constructor==String?this.classRuleSettings[className]=rules:$.extend(this.classRuleSettings,className);},classRules:function(element){var rules={};var classes=$(element).attr('class');classes&&$.each(classes.split(' '),function(){if(this in $.validator.classRuleSettings){$.extend(rules,$.validator.classRuleSettings[this]);}});return rules;},attributeRules:function(element){var rules={};var $element=$(element);for(method in $.validator.methods){var value=$element.attr(method);if(value){rules[method]=value;}};if(rules.maxlength&&/-1|2147483647|524288/.test(rules.maxlength)){delete rules.maxlength;};return rules;},metadataRules:function(element){if (!$.metadata)return {};var meta =$.data(element.form,'validator').settings.meta;return meta ?$(element).metadata()[meta]:$(element).metadata();},staticRules:function(element){var rules ={};var validator =$.data(element.form,'validator');if (validator.settings.rules){rules =$.validator.normalizeRule(validator.settings.rules[element.name])||{};};return rules;},normalizeRules:function(rules,element){$.each(rules,function(prop,val){if (val ===false){delete rules[prop];return;};if (val.param ||val.depends){var keepRule =true;switch (typeof val.depends){case "string":keepRule =!!$(val.depends,element.form).length;break;case "function":keepRule =val.depends.call(element,element);break;};if (keepRule){rules[prop]=val.param !==undefined ?val.param :true;}else {delete rules[prop];}}});$.each(rules,function(rule,parameter){rules[rule]=$.isFunction(parameter)?parameter(element):parameter;});$.each(['minlength','maxlength','min','max'],function(){if (rules[this]){rules[this]=Number(rules[this]);}});$.each(['rangelength','range'],function(){if (rules[this]){rules[this]=[Number(rules[this][0]),Number(rules[this][1])];}});if ($.validator.autoCreateRanges){if (rules.min &&rules.max){rules.range =[rules.min,rules.max];delete rules.min;delete rules.max;};if (rules.minlength &&rules.maxlength){rules.rangelength =[rules.minlength,rules.maxlength];delete rules.minlength;delete rules.maxlength;}};if (rules.messages){delete rules.messages };return rules;},normalizeRule:function(data){if (typeof data =="string"){var transformed ={};$.each(data.split(/\s/),function(){transformed[this]=true;});data =transformed;};return data;},addMethod:function(name,method,message){$.validator.methods[name]=method;$.validator.messages[name]=message !=undefined ?message :$.validator.messages[name];if (method.length <3){$.validator.addClassRules(name,$.validator.normalizeRule(name));}},methods:{required:function(value,element,param){if (!this.depend(param,element))return "dependency-mismatch";switch (element.nodeName.toLowerCase()){case 'select':var val =$(element).val();return val &&val.length >0;case 'input':if (this.checkable(element))return this.getLength(value,element)>0;default:return $.trim(value).length >0;}},remote:function(value,element,param){if (this.optional(element))return "dependency-mismatch";var previous =this.previousValue(element);if (!this.settings.messages[element.name])this.settings.messages[element.name]={};previous.originalMessage =this.settings.messages[element.name].remote;this.settings.messages[element.name].remote =previous.message;param =typeof param =="string" &&{url:param}||param;if (previous.old !==value){previous.old =value;var validator =this;this.startRequest(element);var data ={};data[element.name]=value;$.ajax($.extend(true,{url:param,mode:"abort",port:"validate" +element.name,dataType:"json",data:data,success:function(response){validator.settings.messages[element.name].remote =previous.originalMessage;var valid =response ===true;if (valid){var submitted =validator.formSubmitted;validator.prepareElement(element);validator.formSubmitted =submitted;validator.successList.push(element);validator.showErrors();}else {var errors ={};var message =(previous.message =response ||validator.defaultMessage(element,"remote"));errors[element.name]=$.isFunction(message)?message(value):message;validator.showErrors(errors);};previous.valid =valid;validator.stopRequest(element,valid);}},param));return "pending";}else if (this.pending[element.name]){return "pending";};return previous.valid;},minlength:function(value,element,param){return this.optional(element)||this.getLength($.trim(value),element)>=param;},maxlength:function(value,element,param){return this.optional(element)||this.getLength($.trim(value),element)<=param;},rangelength:function(value,element,param){var length =this.getLength($.trim(value),element);return this.optional(element)||(length >=param[0]&&length <=param[1]);},min:function(value,element,param){return this.optional(element)||value >=param;},max:function(value,element,param){return this.optional(element)||value <=param;},range:function(value,element,param){return this.optional(element)||(value >=param[0]&&value <=param[1]);},email:function(value,element){return this.optional(element)||/^((([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(value);}, url: function(value, element){ return this.optional(element)||/^(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(value); }, date: function(value, element) { return this.optional(element) || !/Invalid|NaN/.test(new Date(value)); }, dateISO: function(value, element) { return this.optional(element) || /^\d{4};[\/-]\d{1,2};[\/-]\d{1,2};$/.test(value); }, number: function(value, element) { return this.optional(element) || /^-?(?:\d+|\d{1,3};(?:,\d{3})+)(?:\.\d+)?$/.test(value); }, digits: function(value, element) { return this.optional(element) || /^\d+$/.test(value); }, creditcard: function(value, element) { if (this.optional(element)) return "dependency-mismatch"; if (/[^0-9-]+/.test(value)) return false; var nCheck = 0, nDigit = 0, bEven = false; value = value.replace(/\D/g, ""); for (var n = value.length - 1; n >= 0; n--) { var cDigit = value.charAt(n); var nDigit = parseInt(cDigit, 10); if (bEven) { if ((nDigit *= 2) > 9) nDigit -= 9; }; nCheck += nDigit; bEven = !bEven; }; return (nCheck % 10) == 0; }, accept: function(value, element, param) { param = typeof param == "string" ? param.replace(/,/g,'|'):"png|jpe?g|gif";return this.optional(element)||value.match(new RegExp(".("+param+")$","i"));},equalTo:function(value,element,param){var target=$(param).unbind(".validate-equalTo").bind("blur.validate-equalTo",function(){$(element).valid();});return value==target.val();}}});$.format=$.validator.format;})(jQuery);;(function($){var ajax=$.ajax;var pendingRequests={};$.ajax=function(settings){settings=$.extend(settings,$.extend({},$.ajaxSettings,settings));var port=settings.port;if(settings.mode=="abort"){if(pendingRequests[port]){pendingRequests[port].abort();};return(pendingRequests[port]=ajax.apply(this,arguments));};return ajax.apply(this,arguments);};})(jQuery);;(function($){$.each({focus:'focusin',blur:'focusout'},function(original,fix){$.event.special[fix]={setup:function(){if($.browser.msie)return false;this.addEventListener(original,$.event.special[fix].handler,true);},teardown:function(){if($.browser.msie)return false;this.removeEventListener(original,$.event.special[fix].handler,true);},handler:function(e){arguments[0]=$.event.fix(e);arguments[0].type=fix;return $.event.handle.apply(this,arguments);}};});$.extend($.fn,{delegate:function(type,delegate,handler){return this.bind(type,function(event){var target=$(event.target);if(target.is(delegate)){return handler.apply(target,arguments);}});},triggerEvent:function(type,target){return this.triggerHandler(type,[$.event.fix({type:type,target:target})]);}})})(jQuery);(function($){$.extend({jMessageBox:{settings:{width:350,title:'',bottomText:'',yesButtonText:'',noButtonText:'',cancelButtonText:''},_init:function(){var container=$('#jmessagebox_container');if(container.length==0){$('body').append('<iframe style="display:none;position:absolute;z-index:2997;top:0px;left:0px;width:100%;height:100%;background-color:#ffffff;filter:alpha(opacity=0);opacity:0"jmlayer="1" jmconverlayer="1"></iframe>');$('body').append('<div style="display:none;position:absolute;z-index:2998;top:0px;left:0px;width:100%;height:100%;background-color:#000000;filter:alpha(opacity=75);opacity:0.75" jmlayer="1" jmconverlayer="1"></div>');$('body').append('<div id="jmessagebox_container" name="jmessagebox_container" style="display:none;position:absolute;z-index:2999;" jmlayer="1"><div id="jmessagebox_title"></div><div id="jmessagebox_message"></div><div id="jmessagebox_buttons"><button id="jmessagebox_yesbutton"></button><button id="jmessagebox_nobutton"></button><button id="jmessagebox_cancelbutton"></button></div><div id="jmessagebox_bottom"></div></div>');$(window).scroll($.jMessageBox._fixposition);$('#jmessagebox_title').html($.jMessageBox.settings.title);$('#jmessagebox_yesbutton').html($.jMessageBox.settings.yesButtonText);$('#jmessagebox_nobutton').html($.jMessageBox.settings.noButtonText);$('#jmessagebox_cancelbutton').html($.jMessageBox.settings.cancelButtonText);$('#jmessagebox_bottom').html($.jMessageBox.settings.bottomText);}},_getposition:function(){var p={};var scrollWidth,scrollHeight;if(window.innerHeight&&window.scrollMaxY){scrollWidth=window.innerWidth+window.scrollMaxX;scrollHeight=window.innerHeight+window.scrollMaxY;}else if(document.body.scrollHeight>document.body.offsetHeight){scrollWidth=document.body.scrollWidth;scrollHeight=document.body.scrollHeight;}else{scrollWidth=document.body.offsetWidth;scrollHeight=document.body.offsetHeight;};if(self.innerHeight){if(document.documentElement.clientWidth){p.windowWidth=document.documentElement.clientWidth;}else{p.windowWidth=self.innerWidth;};p.windowHeight=self.innerHeight;}else if(document.documentElement&&document.documentElement.clientHeight){p.windowWidth=document.documentElement.clientWidth;p.windowHeight=document.documentElement.clientHeight;}else if(document.body){p.windowWidth=document.body.clientWidth;p.windowHeight=document.body.clientHeight;};if(scrollWidth<p.windowWidth){p.width=scrollWidth;}else{p.width=p.windowWidth;};if(scrollHeight<p.windowHeight){p.height=scrollHeight;}else{p.height=p.windowHeight;};p.windowWidth=Math.max(p.windowWidth,scrollWidth);p.windowHeight=Math.max(p.windowHeight,scrollHeight);if(typeof(window.pageXOffset)=="number"){p.left=window.pageXOffset;}else if(document.documentElement&&document.documentElement.scrollLeft){p.left=document.documentElement.scrollLeft;}else if(document.body){p.left=document.body.scrollLeft;}else if(window.scrollX){p.left=window.scrollX;};if(typeof(window.pageYOffset)=="number"){p.top=window.pageYOffset;}else if(document.documentElement&&document.documentElement.scrollTop){p.top=document.documentElement.scrollTop;}else if(document.body){p.top=document.body.scrollTop;}else if(window.scrollY){p.top=window.scrollY;};return p;},_fixposition:function(){var container=$('#jmessagebox_container');if(container.length>0&&container.css('display')!='none'&&container.attr('fixit')=='1'){var p=$.jMessageBox._getposition();var left=p.left+((p.width-container.width())/2);var top=p.top+((p.height-container.height())/2);container.css({left:left,top:top});}},_setbutton:function(id,arg){var button=$(id);if(arg){button.show();if(arg.text)button.html(arg.text);if(arg.click)button.get(0).onclick=arg.click;return true;}else{button.hide();return false;}},hide:function(){$('[jmlayer]').hide();},show:function(arg1,arg2){if(arg1==undefined)return;var args=arg1;if(typeof(arg1)!='object'){args={};if(arg2==undefined){args.message=arg1;}else{args.title=arg1;args.message=arg2;};args.yesButton={text:$.jMessageBox.settings.yesButtonText,click:function(){$.jMessageBox.hide();}};};$.jMessageBox._init();if(args.title==undefined&&$.jMessageBox.settings.title)args.title=$.jMessageBox.settings.title;if(args.title){$('#jmessagebox_title').html(args.title).show();}else{$('#jmessagebox_title').hide();};if(args.message){$('#jmessagebox_message').html(args.message).show();}else{$('#jmessagebox_message').hide();};var flag=0;if($.jMessageBox._setbutton('#jmessagebox_yesbutton',args.yesButton))flag++;if($.jMessageBox._setbutton('#jmessagebox_nobutton',args.noButton))flag++;if($.jMessageBox._setbutton('#jmessagebox_cancelbutton',args.cancelButton))flag++;if(flag>0){$('#jmessagebox_buttons').show();}else{$('#jmessagebox_buttons').hide();};if(args.bottom==undefined&&$.jMessageBox.settings.bottomText)args.bottom={text:$.jMessageBox.settings.bottomText};$.jMessageBox._setbutton('#jmessagebox_bottom',args.bottom);var container=$('#jmessagebox_container');if(args.width==undefined)args.width=$.jMessageBox.settings.width;container.width(args.width?args.width:'auto');container.height(args.height?args.height:'auto');if(args.left>0||args.top>0){if(args.left>0)container.css('left')=args.left+'px';if(args.top>0)container.css('top')=args.top+'px';container.css('filter','alpha(opacity=100)').css('opacity',1).attr('fixit','0');container.show();}else{container.css('filter','alpha(opacity=0)').css('opacity',0).attr('fixit','1');container.show();window.setTimeout(function(){$.jMessageBox._fixposition();container.css('filter','alpha(opacity=100)').css('opacity',1);},10);};var p=$.jMessageBox._getposition();$('[jmconverlayer]').width(p.windowWidth).height(p.windowHeight).show();},showyes:function(arg1){$.jMessageBox.settings.yesButtonText='OK';$.jMessageBox.settings.title='System Message';$.jMessageBox.show(arg1);}}})})(jQuery);var imagesPath="img/";var selectRightWidthSimple=19;var selectRightWidthScroll=2;var selectMaxHeight=200;var textareaTopPadding=10;var textareaSidePadding=10;var NF=new Array();var isIE=false;var resizeTest=1;function NFInit(){try{document.execCommand('BackgroundImageCache',false,true);}catch(e){};if(!document.getElementById){return false;};NFDo('start');};function NFDo(what){var niceforms=document.getElementsByTagName('form');var identifier=new RegExp('(^| )'+'niceform'+'( |$)');if(/MSIE(\d+\.\d+);/.test(navigator.userAgent)){var ieversion=new Number(RegExp.$1);if(ieversion<7){return false;};isIE=true;};for(var q=0;q<niceforms.length;q++){if(identifier.test(niceforms[q].className)){if(what=="start"){NF[q]=new niceform(niceforms[q]);niceforms[q].start();}else{niceforms[q].unload();NF[q]="";}}}};function NFFix(){NFDo('stop');NFDo('start');};function niceform(nf){nf._inputText=new Array();nf._inputRadio=new Array();nf._inputCheck=new Array();nf._inputSubmit=new Array();nf._inputFile=new Array();nf._textarea=new Array();nf._select=new Array();nf._multiselect=new Array();nf.add_inputText=function(obj){this._inputText[this._inputText.length]=obj;inputText(obj);};nf.add_inputRadio=function(obj){this._inputRadio[this._inputRadio.length]=obj;inputRadio(obj);};nf.add_inputCheck=function(obj){this._inputCheck[this._inputCheck.length]=obj;inputCheck(obj);};nf.add_inputSubmit=function(obj){this._inputSubmit[this._inputSubmit.length]=obj;inputSubmit(obj);};nf.add_inputFile=function(obj){this._inputFile[this._inputFile.length]=obj;inputFile(obj);};nf.add_textarea=function(obj){this._textarea[this._textarea.length]=obj;textarea(obj);};nf.add_select=function(obj){this._select[this._select.length]=obj;selects(obj);};nf.add_multiselect=function(obj){this._multiselect[this._multiselect.length]=obj;multiSelects(obj);};nf.start=function(){var allInputs=this.getElementsByTagName('input');for(var w=0;w<allInputs.length;w++){switch(allInputs[w].type){case "submit":case "reset":case "button":{this.add_inputSubmit(allInputs[w]);break;}}};var allButtons=this.getElementsByTagName('button');for(var w=0;w<allButtons.length;w++){this.add_inputSubmit(allButtons[w]);};for(w=0;w<this._inputText.length;w++){this._inputText[w].init();};for(w=0;w<this._inputRadio.length;w++){this._inputRadio[w].init();};for(w=0;w<this._inputCheck.length;w++){this._inputCheck[w].init();};for(w=0;w<this._inputSubmit.length;w++){this._inputSubmit[w].init();};for(w=0;w<this._inputFile.length;w++){this._inputFile[w].init();};for(w=0;w<this._textarea.length;w++){this._textarea[w].init();};for(w=0;w<this._select.length;w++){this._select[w].init(w);};for(w=0;w<this._multiselect.length;w++){this._multiselect[w].init(w);}};nf.unload=function(){for(w=0;w<this._inputText.length;w++){this._inputText[w].unload();};for(w=0;w<this._inputRadio.length;w++){this._inputRadio[w].unload();};for(w=0;w<this._inputCheck.length;w++){this._inputCheck[w].unload();};for(w=0;w<this._inputSubmit.length;w++){this._inputSubmit[w].unload();};for(w=0;w<this._inputFile.length;w++){this._inputFile[w].unload();};for(w=0;w<this._textarea.length;w++){this._textarea[w].unload();};for(w=0;w<this._select.length;w++){this._select[w].unload();};for(w=0;w<this._multiselect.length;w++){this._multiselect[w].unload();}}};function inputSubmit(el){el.oldClassName=el.className;el.left=document.createElement('img');el.left.className="NFButtonLeft";el.left.src=imagesPath+"0.png";el.right=document.createElement('img');el.right.src=imagesPath+"0.png";el.right.className="NFButtonRight";el.onmouseover=function(){this.className="NFButton NFh";this.left.className="NFButtonLeft NFh";this.right.className="NFButtonRight NFh";};el.onmouseout=function(){this.className="NFButton";this.left.className="NFButtonLeft";this.right.className="NFButtonRight";};el.init=function(){this.parentNode.insertBefore(this.left,this);this.parentNode.insertBefore(this.right,this.nextSibling);this.className="NFButton";};el.unload=function(){this.parentNode.removeChild(this.left);this.parentNode.removeChild(this.right);this.className=this.oldClassName;}};function findPosY(obj){var posTop=0;do{posTop+=obj.offsetTop;}while(obj=obj.offsetParent);return posTop;};function findPosX(obj){var posLeft=0;do{posLeft+=obj.offsetLeft;}while(obj=obj.offsetParent);return posLeft;};function getInputsByName(name){var inputs=document.getElementsByTagName("input");var w=0;var results=new Array();for(var q=0;q<inputs.length;q++){if(inputs[q].name==name){results[w]=inputs[q];++w;}};return results;};var existingLoadEvent=window.onload||function(){};var existingResizeEvent=window.onresize||function(){};window.onload=function(){existingLoadEvent();NFInit();};window.onresize=function(){if(resizeTest!=document.documentElement.clientHeight){existingResizeEvent();NFFix();};resizeTest=document.documentElement.clientHeight;};jQuery.jPrintArea=function(el){var iframe=document.createElement('IFRAME');var doc=null;$(iframe).attr('style','position:absolute;width:0px;height:0px;left:-500px;top:-500px;');document.body.appendChild(iframe);doc=iframe.contentWindow.document;var links=window.document.getElementsByTagName('link');for(var i=0;i<links.length;i++)if(links[i].rel.toLowerCase()=='stylesheet')doc.write('<link type="text/css" rel="stylesheet" href="'+links[i].href+'"></link>');doc.write('<div class="'+$(el).attr("class")+'">'+$(el).html()+'</div>');doc.close();iframe.contentWindow.focus();iframe.contentWindow.print();alert('Printing...');document.body.removeChild(iframe);}


