function formValidator(){	
	var name = document.forms.forma.name;
	var surname = document.forms.forma.surname;
	var tel = document.forms.forma.tel;
	var qmail = document.forms.forma.qmail;
	var start = document.forms.forma.start;
	var end = document.forms.forma.end;
	var adults  = document.forms.forma.adults;
	var kids = document.forms.forma.kids;
	var babies = document.forms.forma.babies;
	var pokoj = document.forms.forma.pokoj;
	var entered = document.forms.forma.captchastring;

	
			if(isAlphabet(name, "Wpisz poprawnie swoje imię")){
				if(isAlphabet(surname, "Wpisz poprawnie swoje nazwisko")){
					if(lengthRestriction(tel, 6, 15)){
						if(emailValidator(qmail, "Wpisz poprawny adres email")){
							if(dateValidator(start, "Podaj datę przyjazdu w formacie RRRR-MM-DD, z zakresu od 29.04.2010 do 30.09.2010."+"\n"+"Poprawną datę możesz wybrać, korzystając z ikony kalendarza.")){
								if(dateValidator(end, "Podaj datę wyjazdu w formacie RRRR-MM-DD, z zakresu 29.04.2010 do 30.09.2010."+"\n"+"Poprawną datę możesz wybrać, korzystając z ikony kalendarza.")){
									if(madeSelection(pokoj, "Wybierz rodzaj pokoju")){
										if(maxNumber(adults,kids,babies, "Za duża liczba gości")){
											if(guestsSelection(pokoj,adults,kids, "W pokoju Standard mogą mieszkać dwie osoby dorosłe, z dziećmi do lat 3")){
												if(checkCode(entered, "Wpisz poprawnie kod z obrazka")){
												return true;
												}
											}
										}
									}
								}
							}
						}
					}
				}
			}
	return false;
}

function mailValidator(){	
	var adres = document.forms.formb.adres;
	if(emailValidator(adres, "Wpisz poprawny adres email")){
		return true;
	}										
	return false;
}

function checkCode(elem, helperMsg){
	if(elem.value == ""){
		alert(helperMsg);
		elem.focus();
		return false;
	}else{
		return true;
	}
}

function dateValidator(elem, helperMsg){
	if(elem.value == ""){
		alert(helperMsg);
		elem.focus();
		return false;
	}else{
	var dataExpression = /^([1-3][0-9]{3,3})-(0[4-9])-(0[1-9]|[1-2][0-9]|3[0-1])$/;
		if (elem.value.match(dataExpression)){
			return true;
		} else {
			alert(helperMsg);
			elem.focus();
			return false;
		}
	}
}

function isNumeric(elem, helperMsg){
	var numericExpression = /^[0-9]+$/;
	if(elem.value.match(numericExpression)){
		return true;
	}else{
		alert(helperMsg);
		elem.focus();
		return false;
	}
}

function isAlphabet(elem, helperMsg){
	var alphaExp = /[a-zA-Z]+/;
	if(elem.value.match(alphaExp)){
		return true;
	}else{
		alert(helperMsg);
		elem.focus();
		return false;
	}
}

function maxNumber(elem1, elem2, elem3, helperMsg){
	var num1 = Number(elem1.value);
	var num2 = Number(elem2.value);
	var num3 = Number(elem3.value);
	var total = (num1+num2+num3);
	if(total<5){
		return true;
	}else{
		alert(helperMsg);
		elem1.focus();
		return false;
	}
}

function lengthRestriction(elem, min, max){
	var uInput = elem.value;
	var numericExpression = /^[0-9]+$/;
	if(uInput.length >= min && uInput.length <= max && uInput.match(numericExpression)){
		return true;
	}else{
		alert("Numer telefonu powinien zawierać od " +min+ " do " +max+ " cyfr - bez spacji.");
		elem.focus();
		return false;
	}
}
function madeSelection(elem, helperMsg){
	if(elem.value == "null"){
		alert(helperMsg);
		elem.focus();
		return false;
	}else{
		return true;
	}
}

function guestsSelection(elem1,elem2,elem3, helperMsg){
	if((elem1.value == "standard" && elem2.value == "4")||(elem1.value == "standard" && elem2.value == "3" )||(elem1.value == "standard" && elem3.value!= "0")){
		alert(helperMsg);
		elem1.focus();
		return false;	
	}else{
		return true;
	}
}


function emailValidator(elem, helperMsg){
	var emailExp = /^[\w\-\.\+]+\@[a-zA-Z0-9\.\-]+\.[a-zA-z]{2,4}$/;
	if(elem.value.match(emailExp)){
		return true;
	}else{
		alert(helperMsg);
		elem.focus();
		return false;
	}
}
