/*
Class: FormValidation [Built on MooTools framework: www.mootools.net]
Author: Martin Jezek 2011
Version: 2.2
*/  
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_length_eq:/check-is-length-eq-[0-9]+$/,regular_length_lt:/check-is-length-lt-[0-9]+$/,regular_length_gt:/check-is-length-gt-[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:form}))},this);},validateInputs:function(forms){var form=forms.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.className.match(this.regular_length_eq)){var length_class=input.className.match(this.regular_length_eq);var length_num=parseInt(length_class.toString().replace("check-is-length-eq-",""));var error_before=false;if(this.options.parent_class_error){if(input.getParent().hasClass(this.options.error_class)&&!input.getParent().hasClass("length-eq")){error_before=true;}}else{if(input.hasClass(this.options.error_class)&&!input.getParent().hasClass("length-eq")){error_before=true;}}
if(!error_before){if(this.options.parent_class_error){if(input.getParent().hasClass("length-eq")){input.getParent().removeClass(this.options.error_class);input.getParent().removeClass("length-eq");}}else{if(input.hasClass("length-eq")){input.removeClass(this.options.error_class);input.removeClass("length-eq");}}
if(input.value.length!=length_num){if(this.options.parent_class_error){input.getParent().addClass(this.options.error_class);input.getParent().addClass("length-eq");}else{input.addClass(this.options.error_class);input.addClass("length-eq");}
this.validate_error=true;}}}
if(input.className.match(this.regular_length_lt)){var length_class=input.className.match(this.regular_length_lt);var length_num=parseInt(length_class.toString().replace("check-is-length-lt-",""));var error_before=false;if(this.options.parent_class_error){if(input.getParent().hasClass(this.options.error_class)&&!input.getParent().hasClass("length-lt")){error_before=true;}}else{if(input.hasClass(this.options.error_class)&&!input.getParent().hasClass("length-lt")){error_before=true;}}
if(!error_before){if(this.options.parent_class_error){if(input.getParent().hasClass("length-lt")){input.getParent().removeClass(this.options.error_class);input.getParent().removeClass("length-lt");}}else{if(input.hasClass("length-lt")){input.removeClass(this.options.error_class);input.removeClass("length-lt");}}
if(input.value.length>=length_num){if(this.options.parent_class_error){input.getParent().addClass(this.options.error_class);input.getParent().addClass("length-lt");}else{input.addClass(this.options.error_class);input.addClass("length-lt");}
this.validate_error=true;}}}
if(input.className.match(this.regular_length_gt)){var length_class=input.className.match(this.regular_length_gt);var length_num=parseInt(length_class.toString().replace("check-is-length-gt-",""));var error_before=false;if(this.options.parent_class_error){if(input.getParent().hasClass(this.options.error_class)&&!input.getParent().hasClass("length-gt")){error_before=true;}}else{if(input.hasClass(this.options.error_class)&&!input.getParent().hasClass("length-gt")){error_before=true;}}
if(!error_before){if(this.options.parent_class_error){if(input.getParent().hasClass("length-gt")){input.getParent().removeClass(this.options.error_class);input.getParent().removeClass("length-gt");}}else{if(input.hasClass("length-gt")){input.removeClass(this.options.error_class);input.removeClass("length-gt");}}
if(input.value.length<=length_num){if(this.options.parent_class_error){input.getParent().addClass(this.options.error_class);input.getParent().addClass("length-gt");}else{input.addClass(this.options.error_class);input.addClass("length-gt");}
this.validate_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;}}});
