var mwdValidationNoticeNoForm=1;var mwdValidationNoticeNoEmailFields=2;var mwdValidationNoticeNoRequiredFields=4;var mwdValidationNoticeNoURLFields=8;function mwd_form_validator(C,B,A){if(!A){A={}}this.options=A;this.name=B;this.form=C;this.flags=0;this.errCount=0;this.focusElement;this.emailFields=new Array();this.requiredFields=new Array();this.urlFields=new Array();this.intFields=new Array();this.metaInfo=new Array();this.test=mwd_validator_value_test;this.errors=new Object();this.customize=mwd_custom_validate;this.validate=mwd_validate;this.set_action=mwd_set_action;this.set_required_fields=mwd_set_required_fields;this.action="";this.init=mwd_form_validator_init;this.stylize=mwd_validation_stlyize;this.create_errors_message=mwd_create_errors_message;this.init()}function mwd_form_validator_init(){this.set_action();this.submitSuccessNotice=this.options.successNotice;this.failInputStyle=this.options.failInputStyle;this.failLabelStyle=this.options.failLabelStyle;this.successInputStyle=this.options.successInputStyle;this.successLabelStyle=this.options.successLabelStyle;this.errorIntro=this.options.errorNotice;this.messageTarget=this.options.errorField;this.formRequiredField=this.options.requiredFields;this.formEmailField=this.options.emailFields;this.custom_validation=this.options.customValidation;this.set_required_fields()}function mwd_create_errors_message(){var E;var D=true;var C=new String();if(document.getElementById(this.messageTarget)){E=document.getElementById(this.messageTarget)}else{D=false}for(var A in this.errors){if(D){if(this.form[A]){click="javascript:"+this.name+".form."+A+".focus()"}else{if(document.getElementById(A)){click="#"+A}else{click="#"}}C+='<li><a href="'+click+'">'+this.errors[A]+"</a></li>"}else{C+=this.errors[A]+"\n\n"}}if(C!=""){if(D){var B="";if(this.errorIntro){B='<h1 class="mwdErrorMessageIntro" id="mwdErrorMessageIntro'+this.name+'">'+this.errorIntro+"</h1>"}C='<div class="mwdErrorMessageDiv" id="mwdErrorMessageDiv'+this.name+'">'+B+"<ul>"+C+"</ul></div>";E.innerHTML=C}else{if(this.errorIntro){C=this.errorIntro+"\n\n"+C}alert(C)}}}function mwd_set_action(){try{if(!this.form){this.flags|=mwdValidationNoticeNoForm;throw"NoForm"}if(this.form.action.value){this.action=this.form.action.value}else{this.action=this.form.action}this.form.action="javascript:"+this.name+".validate()";if(this.form.action.value){this.form.action.value="javascript:"+this.name+".validate()"}}catch(A){if(A=="NoForm"){}}}function mwd_custom_validate(){if(this.custom_validation){this.custom_validation()}}function mwd_set_required_fields(){if(!this.formRequiredField){this.formRequiredField="mwdRequiredFields"}if(!this.formEmailField){this.formEmailField="mwdRequiredEmailFields"}try{if(this.form[this.formEmailField]){if(this.form[this.formEmailField].value!=""){var B=this.form[this.formEmailField].value.split(",");for(var A=0;A<B.length;A++){this.emailFields.push(this.form[B[A]])}}}else{this.flags|=mwdValidationNoticeNoEmailFields;throw ("NoEmail")}}catch(C){if(C=="NoEmail"){}}try{if(this.form[this.formRequiredField]){if(this.form[this.formRequiredField].value!=""){var B=this.form[this.formRequiredField].value.split(",");for(var A=0;A<B.length;A++){this.requiredFields.push(this.form[B[A]])}}}else{this.flags|=mwdValidationNoticeNoRequiredFields;throw ("NoRequired")}}catch(C){if(C=="NoRequired"){}}}function mwd_validate(D){this.errors=new Object();this.errCount=0;this.focusElement=null;try{for(var A=0;A<this.requiredFields.length;A++){if(!this.test(this.requiredFields[A])){this.errCount++;if(!this.focusElement){this.focusElement=this.requiredFields[A]}try{if(this.requiredFields[A].title){this.errors[this.requiredFields[A].name]=this.requiredFields[A].title}else{this.errors[this.requiredFields[A].name]='"'+mwd_strip_tags(mwd_input_get_label(this.requiredFields[A]).innerHTML,"<b><strong><em><i><a><img>")+'" is a required field. Please enter a value.'}}catch(C){this.errors[this.requiredFields[A].name]='"'+this.requiredFields[A].name+'" is a required field. Please enter a value.'}}}for(var A=0;A<this.emailFields.length;A++){var B=mwd_input_get_label(this.emailFields[A]);if(mwd_validator_mail_test(this.emailFields[A].value)){this.stylize(this.emailFields[A],this.successInputStyle);if(B){this.stylize(B,this.successLabelStyle)}}else{this.errCount++;if(!this.focusElement){this.focusElement=this.emailFields[A]}this.stylize(this.emailFields[A],this.failInputStyle);if(B){this.stylize(B,this.failLabelStyle)}try{if(this.emailFields[A].title){this.errors[this.emailFields[A].name]=this.emailFields[A].title+" The current value is either empty or not a valid email syntax."}else{this.errors[this.emailFields[A].name]='"'+mwd_strip_tags(mwd_input_get_label(this.emailFields[A]).innerHTML,"<b><strong><em><i><a><img>")+'" is a required field. Please enter a valid email address.'}}catch(C){this.errors[this.emailFields[A].name]=this.emailFields[A].name+" is a required email field. Please make sure to enter a valid email address."}}}this.customize();if(!this.errCount){if(this.form.action.value){this.form.action.value=this.action}this.form.action=this.action;this.form.submit();if(document.getElementById(this.messageTarget)){document.getElementById(this.messageTarget).innerHTML=this.submitSuccessNotice}}else{this.create_errors_message();if(this.focusElement){this.focusElement.focus()}}}catch(C){}}function mwd_validator_value_test(B){var C=true;if(B){if(B.type){if(B.type=="checkbox"){if(!B.checked){C=false}}}if(!B.value.match(/[a-zA-Z0-9\-\.`~!@#$%^&*\(\)\[\]\{\},?:;'"\/\\<>]/i)){C=false}var A=mwd_input_get_label(B);if(C==false){this.stylize(B,this.failInputStyle);if(A){this.stylize(A,this.failLabelStyle)}}else{this.stylize(B,this.successInputStyle);if(A){this.stylize(A,this.successLabelStyle)}}}return C}function mwd_validation_stlyize(C,A){for(prop in A){try{C.style[prop]=A[prop]}catch(B){alert(B)}}}function mwd_validator_mail_test(B){var A=new String(B);return A.match(/^[-a-z0-9!#$%&\'*+\/=?^_`{|}~]+(\.[-a-z0-9!#$%&\'*+\/=?^_`{|}~]+)*@(([a-z0-9]([-a-z0-9]*[a-z0-9]+)?){1,63}\.)+([a-z0-9]([-a-z0-9]*[a-z0-9]+)?){2,63}$/i)}function mwd_input_get_label(B){if(B.parentNode){if(B.parentNode.tagName=="label"){return B.parentNode}}var C=document.getElementsByTagName("label"),A;for(A=0;A<C.length;A++){if(C[A].htmlFor==B.id){return C[A]}}return false}function mwd_strip_tags(G,B){var D="",A="",F=false;var E=allowed_array=[];var C=function(I,H,J){return J.split(I).join(H)};if(B){allowed_array=B.match(/([a-zA-Z]+)/gi)}G+="";E=G.match(/(<\/?[^>]+>)/gi);for(D in E){if(isNaN(D)){continue}html=E[D].toString();F=false;for(k in allowed_array){allowed_tag=allowed_array[k];i=-1;if(i!=0){i=html.toLowerCase().indexOf("<"+allowed_tag+">")}if(i!=0){i=html.toLowerCase().indexOf("<"+allowed_tag+" ")}if(i!=0){i=html.toLowerCase().indexOf("</"+allowed_tag)}if(i==0){F=true;break}}if(!F){G=C(html,"",G)}}return G};