/*
Class: FormValidation [Built on MooTools framework: www.mootools.net]
Author: Martin Jezek 2010
Version: 2.0
*/  
var FormValidation=new Class({Implements:Options,options:{parent_class_error:true,error_class:"validate_error",error_message:"Musíte vyplnit všechny povinné údaje označené hvězdičkou !!",error_mail_message:"Musíte zadat E-mail ve správném tvaru !! [např.: jmeno@domena.cz]",error_number_message:"Musíte zadat celé číslo !!",error_phone_message:"Musíte zadat telefoní číslo ve správném tvaru !! [např.: +420 789 123 456]",error_zipcode_message:"Zadejte PSČ ve správném tvaru !! [např.: 512 03]",error_mail_or_phone_message:"Zadejte E-mail nebo telefoní číslo !!",error_agree_message:"Musíte souhlasit s podmínkami !!"},initialize:function(options){this.setOptions(options);this.validateForms();},validate_error:false,validate_mail_error:false,validate_phone_error:false,validate_zipcode_error:false,validate_mail_or_error:false,validate_phone_or_error:false,validate_agree_error:false,regular_number:/^[0-9]+$/,regular_mail:/\S+@\S+\.\w{2,4}$/,regular_phone:/^(\+42[0-9]\s*)?[1-9](\s*\d\s*){8}$/,regular_zipcode:/^[0-9]{3} ?[0-9]{2}$/,result_message:"",validateForms:function(){$$(".form-validation").each(function(form){form.addEvent("submit",this.validateInputs.bind(this,form))},this);},validateInputs:function(form){this.result_message="";this.validate_error=false;this.validate_mail_error=false;this.validate_number_error=false;this.validate_phone_error=false;this.validate_zipcode_error=false;this.validate_mail_or_error=false;this.validate_phone_or_error=false;this.validate_agree_error=false;form.getElements("input").each(function(input){if(input.hasClass("check-is-blank")){if(this.options.parent_class_error){input.getParent().removeClass(this.options.error_class);}else{input.removeClass(this.options.error_class);}
if(input.value.trim()==""){if(this.options.parent_class_error){input.getParent().addClass(this.options.error_class);}else{input.addClass(this.options.error_class);}
this.validate_error=true;}}
if(input.hasClass("check-is-checked")){if(this.options.parent_class_error){input.getParent().removeClass(this.options.error_class);}else{input.removeClass(this.options.error_class);}
if(input.checked!=true){if(this.options.parent_class_error){input.getParent().addClass(this.options.error_class);}else{input.addClass(this.options.error_class);}
this.validate_error=true;}}
if(input.hasClass("check-is-agree")){if(this.options.parent_class_error){input.getParent().removeClass(this.options.error_class);}else{input.removeClass(this.options.error_class);}
if(input.checked!=true){if(this.options.parent_class_error){input.getParent().addClass(this.options.error_class);}else{input.addClass(this.options.error_class);}
this.validate_agree_error=true;}}
if(input.hasClass("check-is-mail")){if(this.options.parent_class_error){input.getParent().removeClass(this.options.error_class);}else{input.removeClass(this.options.error_class);}
input.value=input.value.replace(/ /g,"");if(!(this.regular_mail.test(input.value))){if(this.options.parent_class_error){input.getParent().addClass(this.options.error_class);}else{input.addClass(this.options.error_class);}
this.validate_mail_error=true;}}
if(input.hasClass("check-is-number")){if(this.options.parent_class_error){input.getParent().removeClass(this.options.error_class);}else{input.removeClass(this.options.error_class);}
input.value=input.value.replace(/ /g,"");if(!(this.regular_number.test(input.value))){if(this.options.parent_class_error){input.getParent().addClass(this.options.error_class);}else{input.addClass(this.options.error_class);}
this.validate_number_error=true;}}
if(input.hasClass("check-is-phone")){if(this.options.parent_class_error){input.getParent().removeClass(this.options.error_class);}else{input.removeClass(this.options.error_class);}
input.value=input.value.replace(/ /g,"");if(!(this.regular_phone.test(input.value))){if(this.options.parent_class_error){input.getParent().addClass(this.options.error_class);}else{input.addClass(this.options.error_class);}
this.validate_phone_error=true;}}
if(input.hasClass("check-is-phone2")){if(this.options.parent_class_error){input.getParent().removeClass(this.options.error_class);}else{input.removeClass(this.options.error_class);}
input.value=input.value.replace(/ /g,"");if(input.value!=""){if(!(this.regular_phone.test(input.value))){if(this.options.parent_class_error){input.getParent().addClass(this.options.error_class);}else{input.addClass(this.options.error_class);}
this.validate_phone_error=true;}}}
if(input.hasClass("check-is-zipcode")){if(this.options.parent_class_error){input.getParent().removeClass(this.options.error_class);}else{input.removeClass(this.options.error_class);}
input.value=input.value.replace(/ /g,"");if(!(this.regular_zipcode.test(input.value))){if(this.options.parent_class_error){input.getParent().addClass(this.options.error_class);}else{input.addClass(this.options.error_class);}
this.validate_zipcode_error=true;}}
if(input.hasClass("check-is-mail-or")){if(this.options.parent_class_error){input.getParent().removeClass(this.options.error_class);}else{input.removeClass(this.options.error_class);}
input.value=input.value.replace(/ /g,"");if(!(this.regular_mail.test(input.value))){if(this.options.parent_class_error){input.getParent().addClass(this.options.error_class);}else{input.addClass(this.options.error_class);}
this.validate_mail_or_error=true;}
form.getElements("input").each(function(inputz){if(inputz.hasClass("check-is-phone-or")){if(this.options.parent_class_error){inputz.getParent().removeClass(this.options.error_class);}else{inputz.removeClass(this.options.error_class);}
inputz.value=inputz.value.replace(/ /g,"");if(!((this.validate_mail_or_error==true)&&(inputz.value==""))){if(inputz.value!=""){if(!(this.regular_phone.test(inputz.value))){this.validate_phone_or_error=true;if(this.options.parent_class_error){inputz.getParent().addClass(this.options.error_class);}else{inputz.addClass(this.options.error_class);}}}}
if((this.validate_mail_or_error==true)&&(input.value=="")){if(!(this.regular_phone.test(inputz.value))){if(input.value==""&&inputz.value!=""){this.validate_mail_or_error=false;if(this.options.parent_class_error){input.getParent().removeClass(this.options.error_class);}else{input.removeClass(this.options.error_class);}}
this.validate_phone_or_error=true;if(this.options.parent_class_error){inputz.getParent().addClass(this.options.error_class);}else{inputz.addClass(this.options.error_class);}}else{if(this.options.parent_class_error){input.getParent().removeClass(this.options.error_class);}else{input.removeClass(this.options.error_class);}
this.validate_mail_or_error=false;}}}},this);}},this);form.getElements("select").each(function(select){if(select.hasClass("check-is-selected-first")){if(this.options.parent_class_error){select.getParent().removeClass(this.options.error_class);}else{select.removeClass(this.options.error_class);}
if(select.options[0].selected==true){if(this.options.parent_class_error){select.getParent().addClass(this.options.error_class);}else{select.addClass(this.options.error_class);}
this.validate_error=true;}}},this);form.getElements("textarea").each(function(textarea){if(textarea.hasClass("check-is-blank")){if(this.options.parent_class_error){textarea.getParent().removeClass(this.options.error_class);}else{textarea.removeClass(this.options.error_class);}
if(textarea.value==""){if(this.options.parent_class_error){textarea.getParent().addClass(this.options.error_class);}else{textarea.addClass(this.options.error_class);}
this.validate_error=true;}}},this);if(this.validate_error)this.result_message+=this.options.error_message+" \n";if(this.validate_mail_or_error==true&&this.validate_phone_or_error==true){this.result_message+=this.options.error_mail_or_phone_message+" \n";}else if(this.validate_mail_or_error==true&&this.validate_phone_or_error==false){this.result_message+=this.options.error_mail_message+" \n";}else if(this.validate_mail_or_error==false&&this.validate_phone_or_error==true){this.result_message+=this.options.error_phone_message+" \n";}
if(this.validate_zipcode_error)this.result_message+=this.options.error_zipcode_message+" \n";if(this.validate_number_error)this.result_message+=this.options.error_number_message+" \n";if(this.validate_phone_error)this.result_message+=this.options.error_phone_message+" \n";if(this.validate_mail_error)this.result_message+=this.options.error_mail_message+" \n";if(this.validate_agree_error)this.result_message+=this.options.error_agree_message+" \n";if(this.result_message==""){return true;}else{alert(this.result_message);return false;}}});
