FormValidator={validate:function(b){var a=$(b);return a!=null&&this.validateList(a.elements,false);},validateWithScrollSkip:function(c,a){var b=$(c);return b!=null&&this.validateList(b.elements,a);},validateList:function(h,j){if(h!=null){for(var f=0;f<h.length;f++){if(h[f]==null){continue;}var d=h[f].tagName;if(d==null){continue;}d=d.toLowerCase().strip();if(d!="input"&&d!="select"&&d!="textarea"){continue;}if(h[f].type!=null&&(h[f].type=="radio"||h[f].type=="checkbox")&&this.validateGroup(h[f].name)==false){return FormValidator.throwError(h[f],formvalidator_mandatory_field,true,j);}var k=h[f].value.strip();if(Element.hasClassName(h[f],"fv_mandatory")&&k==""){return FormValidator.throwError(h[f],formvalidator_mandatory_field,true,j);}if(Element.hasClassName(h[f],"fv_integer")&&k!=""&&FormValidator.validateInteger(k)==false){return FormValidator.throwError(h[f],formvalidator_integer_field,true,j);}if(Element.hasClassName(h[f],"fv_positive_integer")&&k!=""&&(FormValidator.validateInteger(k)==false||parseInt(k)<1)){return FormValidator.throwError(h[f],formvalidator_positiveinteger_field,true,j);}if(Element.hasClassName(h[f],"fv_nonnegative_integer")&&k!=""&&(FormValidator.validateInteger(k)==false||parseInt(k)<0)){return FormValidator.throwError(h[f],formvalidator_nonnegativeinteger_field,true,j);}if(Element.hasClassName(h[f],"fv_not_integer")&&k!=""&&FormValidator.validateInteger(k)==true){return FormValidator.throwError(h[f],formvalidator_notinteger_field,true,j);}if(Element.hasClassName(h[f],"fv_double")&&k!=""&&FormValidator.validateDouble(k)==false){return FormValidator.throwError(h[f],formvalidator_double_field,true,j);}if(Element.hasClassName(h[f],"fv_double_limit_10")&&k!=""&&FormValidator.validateDoubleLimit(k,10)==false&&FormValidator.validateDouble(k)==true){return FormValidator.throwError(h[f],formvalidator_limit10_double_field,true,j);}if(Element.hasClassName(h[f],"fv_after_comma_limit_3")&&k!=""&&FormValidator.validateAfterCommaLimit(k,3)==false){return FormValidator.throwError(h[f],formvalidator_after_comma_limit_3_field,true,j);}if(Element.hasClassName(h[f],"fv_nonnegative_double")&&k!=""&&(FormValidator.validateDouble(k)==false||parseFloat(k)<0)){return FormValidator.throwError(h[f],formvalidator_nonnegativeinteger_field,true,j);}if(Element.hasClassName(h[f],"fv_positive_double")&&k!=""&&(FormValidator.validateDouble(k)==false||parseFloat(k)<1)){return FormValidator.throwError(h[f],formvalidator_positivedouble_field,true,j);}if(h[f]!=null&&Element.hasClassName(h[f],"fv_email")&&k!=""&&FormValidator.validateEmail(k)==false){return FormValidator.throwError(h[f],formvalidator_email_field,true,j);}if(h[f]!=null&&Element.hasClassName(h[f],"fv_multiple_emails")&&k!=""&&FormValidator.validateMultipleEmails(k,h[f].id)==false){return FormValidator.throwError(h[f],formvalidator_email_field,true,j);}if(h[f]!=null&&Element.hasClassName(h[f],"fv_url")&&k!=""&&FormValidator.validateUrl(k)==false){return FormValidator.throwError(h[f],formvalidator_url_field,true,j);}if(h[f]!=null&&Element.hasClassName(h[f],"fv_business_id")&&k!=""&&FormValidator.validateBusinessId(k)==false){return FormValidator.throwError(h[f],formvalidator_business_id_field,true,j);}if(h[f]!=null&&Element.hasClassName(h[f],"fv_social_sec_number")&&k!=""&&FormValidator.validateSocialSecNumber(k)==false){return FormValidator.throwError(h[f],formvalidator_social_security_number_field,true,j);}if(h[f]!=null&&Element.hasClassName(h[f],"fv_business_id_social_sec_number")&&k!=""&&FormValidator.validateBusinessId(k)==false&&FormValidator.validateSocialSecNumber(k)==false){return FormValidator.throwError(h[f],formvalidator_business_id_social_security_number_field,true,j);}if(h[f]!=null&&Element.hasClassName(h[f],"fv_date")&&k!=""&&FormValidator.validateDatetime(k)==false){return FormValidator.throwError(h[f],formvalidator_date_field,true,j);}if(h[f]!=null&&Element.hasClassName(h[f],"fv_password")&&k!=""){var l=this.definePwd2(h,h[f].id+"2");if(l!=null&&l.value!=k){Element.addClassName(l,"fv_error");return FormValidator.throwError(h[f],formvalidator_password_equals,false,j);}if(l!=null&&k.length<6){Element.addClassName(l,"fv_error");return FormValidator.throwError(h[f],formvalidator_password_length,false,j);}}if(h[f]!=null&&Element.hasClassName(h[f],"fv_edate_more_then_sdate")&&k!=""){var g;var b;var c=this.defineStartDate(h[f].id);if($(c)){var m=this.splitDate(k);if(m.length==5){g=new Date((m[2]),(m[1]-1),(m[0]),(m[3]),(m[4]));}else{g=new Date((m[2]),(m[1]-1),(m[0]));}var a=this.splitDate($(c).value);if(a.length==5){b=new Date((a[2]),(a[1]-1),(a[0]),(a[3]),(a[4]));}else{b=new Date((a[2]),(a[1]-1),(a[0]));}}if(g<b){Element.addClassName($(c),"fv_error");return FormValidator.throwError(h[f],formvalidator_edate_less_then_sdate,true,j);}}if(h[f]!=null&&Element.hasClassName(h[f],"fv_less_than_second")&&k!=""){var e=$(h[f].id+"2");if($(e)&&e.value!=""&&parseInt(e.value)<=parseInt(k)){Element.addClassName(e,"fv_error");return FormValidator.throwError(h[f],formvalidator_less_than_second,false,j);}}if(Element.hasClassName(h[f],"fv_xml_friendly")&&FormValidator.validateXmlFriendly(k)==false){return FormValidator.throwError(h[f],formvalidator_xml_friendly_field,true,j);}Element.removeClassName(h[f],"fv_error");}}return true;},defineStartDate:function(a){if(a.indexOf("end_")==0){var b=a.substring(a.indexOf("end_")+4,a.length);return"start_"+b;}else{if(a.indexOf("_end")>0){var b=a.substring(0,a.indexOf("_end"));return b+"_start";}else{if(a.indexOf("to_")==0){var b=a.substring(a.indexOf("to_")+3,a.length);return"from_"+b;}else{if(a.indexOf("_to")>0){var b=a.substring(0,a.indexOf("_to"));return b+"_from";}}}}},definePwd2:function(b,c){for(var a=0;a<b.length;a++){if(b[a].id==c){return b[a];}}return null;},splitDate:function(d){var c=new Array();var b=d.split(/[^\d]+/);if(d.indexOf(".")>0&&current_locale=="fi_FI"){c[0]=b[0];c[1]=b[1];c[2]=(b[2].length==2?"20"+b[2]:b[2]);}else{if(d.indexOf("/")>0&&(current_locale=="en_US"||current_locale=="pt_BR"||current_locale=="es_ES")){c[0]=b[(current_locale=="es_ES"?0:1)];c[1]=b[(current_locale=="es_ES"?1:0)];c[2]=(b[2].length==2?"20"+b[2]:b[2]);}else{if(d.indexOf("-")>0&&current_locale=="sv_SE"){c[0]=b[2];c[1]=b[1];c[2]=(b[0].length==2?"20"+b[0]:b[0]);}}}if(b.length>=5){var a=b[3];if(d.indexOf("PM")>1){a=parseInt(a)+12;}c[3]=a+"";c[4]=b[4];}return c;},validateGroup:function(e){var c=true;if(e==null){return c;}var b=document.getElementsByName(e);if(b!=null&&b.length>0){var d=false;var a=true;for(i=0;i<b.length;i++){if(b[i].checked==true){d=true;}if(Element.hasClassName(b[i],"fv_mandatory")==false){a=false;break;}}c=!a||d;}return c;},throwError:function(e,c,d,a){Element.addClassName(e,"fv_error");e.focus();if(!a){e.scrollTo();}var f="";var b=e.getAttribute("title");if(d==true&&b!=null&&b!=""){f=b+": ";}alert(f+c);return false;},validateUrl:function(a){var b=/^([\w\-.]+)$/;var c=/([a-zA-Z]+)/;return b.test(a)&&c.test(a);},validateBusinessId:function(b){var a=/^([0-9]{7}-[0-9]{1})$/;return a.test(b);},validateSocialSecNumber:function(b){var a=/^((0[1-9]|[12]\d|3[01])(0[1-9]|1[0-2])\d{2}[-+aA]\d{3}\w)$/;return a.test(b);},validateMultipleEmails:function(c,f){var a=true;var d=",";if(f!=null&&f=="mailinglist_addresses"){d="\n";}var e=c.split(d);for(var b=0;b<e.length;b++){email=trim(e[b]);if(!FormValidator.validateEmail(email.replace(/\s\s*$/,""))){a=false;break;}}return a;},validateMultipleEmailsByRegex:function(a){var b=/^([a-zA-Z0-9_\+-]+(\.[a-zA-Z0-9_\+-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*\.([a-zA-Z]{2,4})[,]?\s?)+$/;return b.test(a);},validateEmail:function(b){var a=/^[a-zA-Z0-9_\+-]+(\.[a-zA-Z0-9_\+-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*\.([a-zA-Z]{2,4})$/;return a.test(b);},validateInteger:function(b){var a=/(^-?\d(\d\s?)*$)/;return a.test(b);},validateAfterCommaLimit:function(c,a){if(c.search(/\.|,/)>0){var b=c.split(/\.|,/);if(b[1].length>a){return false;}}return true;},validateDoubleLimit:function(c,a){if(c.search(/\.|,/)>0){var b=c.split(/\.|,/);if(b[0].length>(a-2)||b[1].length>2){return false;}return true;}else{if(c.length>(a-2)){return false;}else{return true;}}},validateDouble:function(b){var a=/(^-?(\d\s?)*\.?\,?\d*$)/;return a.test(b);},validateDatetime:function(b){var a=/^(\d{1,2}(\.)\d{1,2}(\.)\d{4}|\d{1,2}(\/)\d{1,2}(\/)\d{2,4}|\d{4}(\-)\d{1,2}(\-)\d{1,2})(\s(0?[0-9]|1[0-9]|2[0-3]):[0-5]\d(\s(AM|PM))?)?$/;return a.test(b);},validateXmlFriendly:function(b){var a=/([<,>,&,',"])/;return !a.test(b);}};
