/**
 * Laurent Nardin Consulting & Dev. Informatique
 *
 * Description: various form data validation scripts for the gite project (frontend and backend parts)
 *              French version
 * Creation date: 26.07.04
 * File name: validatefrm.js
 * 
 * @version 1.0
 * @copyright 2004 
 **/
 
/*	validateFormReservation
 *
 *  Check if data for the reservation form are valid
 */ 
function validateFormReservation()
{
	var form = document.forms['frmDatesSelect'];
	var _fromDate = form.fromDate.value;
	var _toDate = form.toDate.value;
	if(! chkDateFld(_fromDate, false))
	{
		alert("Veuillez entrer une date valide, SVP. (exemple: 12-05-2004)");
		form.fromDate.focus();
		return false;
	}
	if(! chkDateFld(_toDate, false))
	{
		alert("Veuillez entrer une date valide, SVP. (exemple: 12-05-2004)");
		form.toDate.focus();
		return false;
	}
	var fromval = form.fromDate.value;
	var toval = form.toDate.value;
	var arrayfrom = fromval.split("-");
	var arrayto = toval.split("-");
	var fromDate = new Date(parseInt(arrayfrom[2], 10), parseInt(arrayfrom[1], 10)-1, parseInt(arrayfrom[0], 10));
	var toDate = new Date(parseInt(arrayto[2], 10), parseInt(arrayto[1], 10)-1, parseInt(arrayto[0], 10));
	if (toDate <= fromDate)
	{
		alert("Veuillez entrer une date de fin plus grande que la date de début");
		form.toDate.focus();
		return false;
	}
	return true;
}

/*	validateFormClientData
 *
 *  Check if data for the client data form are valid (front end side used by a normal user)
 */ 
function validateFormClientData()
{
	var form = document.forms['frmClientData'];
	var _name = form.name.value;
	var _firstName = form.firstname.value;
	var _email = form.email.value;
	var _address = form.address.value;
	var _zipCode = form.zipcode.value;
	var _city = form.city.value;
	var _country = form.country.value;
	var _birthDate = form.birthdate.value;
	var _job = form.job.value;
	var _homePhone = form.homephone.value;
	var _profPhone = form.profphone.value;
	var _fax = form.fax.value;
	var _mobile = form.mobile.value;
	var _persons = form.persons.value;
	var _children = form.children.value;
	var _timeOfArrival = form.timeofarrival.value;
	var _notice = form.notice.value;
	
	if (! checkTextFld(_firstName, 2, 50, true))
	{
		alert("Veuillez entrer un prénom valide, SVP.");
		form.firstname.focus();
		return false;
	}
	if (! checkTextFld(_name, 2, 50, true))
	{
		alert("Veuillez entrer un nom valide, SVP.");
		form.name.focus();
		return false;
	}
	if (! chkIsValidAddressFld(_address, 2, 150, true))
	{
		alert("Veuillez entrer une adresse valide, SVP.");
		form.address.focus();
		return false;
	}
	if (! checkTextFld(_country, 2, 50, true))
	{
		alert("Veuillez entrer un nom de pays valide, SVP.");
		form.country.focus();
		return false;
	}
	if (! chkIsValidPostCodeFld(_zipCode, 4, 20))
	{
		alert("Veuillez entrer un code postal valide, SVP.\nEntrer une valeur numérique sans espace\nExemple: 65000");
		form.zipcode.focus();
		return false;
	}
	if (! checkTextFld(_city, 2, 100, true))
	{
		alert("Veuillez entrer un nom de ville valide, SVP.");
		form.city.focus();
		return false;
	}
	if (! chkIsValidPhoneFld(_homePhone, 6, 50))
	{
		alert("Veuillez entrer un numéro de téléphone valide, SVP.\nExemples: 0041 55 11 11 31 11, 079 46 22 22 22");
		form.homephone.focus();
		return false;
	}
	if (! chkIsValidPhoneFld(_mobile, 0, 50))
	{
		alert("Veuillez entrer un numéro de mobile valide, SVP.\nExemples: 0041 55 11 11 31 11, 079 46 22 22 22");
		form.mobile.focus();
		return false;
	}
	if (! chkIsValidPhoneFld(_profPhone, 0, 50))
	{
		alert("Veuillez entrer un numéro de téléphone valide, SVP.\nExemples: 0041 55 11 11 31 11, 079 46 22 22 22");
		form.profphone.focus();
		return false;
	}
	if (! chkIsValidPhoneFld(_fax, 0, 50))
	{
		alert("Veuillez entrer un numéro de fax valide, SVP.\nExemples: 0041 55 11 11 31 11, 079 46 22 22 22");
		form.fax.focus();
		return false;
	}
	if (! checkEmailFld(_email))
	{
		alert("Veuillez entrer une adresse e-mail valide, SVP.\nExemple: prenom.nom@yahoo.com");
		form.email.focus();
		return false;
	}
	if (! chkDateFld(_birthDate, true))
	{
		alert("Veuillez entrer une date de naissance valide, SVP.\nExemple: 12-05-1976");
		form.birthdate.focus();
		return false;
	}
	if (! chkLengthFld(_job, 0, 50))
	{
		alert("Veuillez entrer une profession/activité valide, SVP.");
		form.job.focus();
		return false;
	}
	if(! chkIsNumericFld(_persons, 1, 2))
	{
		alert("Veuillez entrer un nombre de personnes valide, SVP.\nExemple: 2");
		form.persons.focus();
		return false;
	}
	if(! chkIsNumericFld(_children, 0, 2))
	{
		alert("Veuillez entrer un nombre d'enfants valide, SVP.\nExemple: 2");
		form.children.focus();
		return false;
	}
	if (! chkIsTimeFld(_timeOfArrival, true))
	{
		alert("Veuillez entrer un temps d'arrivée valide, SVP.\nExemple: 12:00");
		form.timeofarrival.focus();
		return false;
	}
	if (! chkLengthFld(_notice, 0, 1024))
	{
		alert("Veuillez entrer des informations valides, SVP.");
		form.notice.focus();
		return false;
	}
	return true;
}

/*	validateFormClientData
 *
 *  Check if data for the client data form are valid (back end side used by an administrator)
 */ 
function validateFormClientDataAdmin()
{
	var form = document.forms['frmClientData'];
	var _name = form.name.value;
	var _firstName = form.firstname.value;
	var _email = form.email.value;
	var _address = form.address.value;
	var _zipCode = form.zipcode.value;
	var _city = form.city.value;
	var _country = form.country.value;
	var _birthDate = form.birthdate.value;
	var _job = form.job.value;
	var _homePhone = form.homephone.value;
	var _profPhone = form.profphone.value;
	var _fax = form.fax.value;
	var _mobile = form.mobile.value;
	var _persons = form.persons.value;
	var _children = form.children.value;
	var _timeOfArrival = form.timeofarrival.value;
	var _notice = form.notice.value;
	
	if (! checkTextFld(_firstName, 2, 50, true))
	{
		alert("Veuillez entrer un prénom valide, SVP.");
		form.firstname.focus();
		return false;
	}
	if (! checkTextFld(_name, 2, 50, true))
	{
		alert("Veuillez entrer un nom valide, SVP.");
		form.name.focus();
		return false;
	}
	if (_address.length && ! chkIsValidAddressFld(_address, 2, 150, true))
	{
		alert("Veuillez entrer une adresse valide, SVP.");
		form.address.focus();
		return false;
	}
	if (_country.length && ! checkTextFld(_country, 2, 50, true))
	{
		alert("Veuillez entrer un nom de pays valide, SVP.");
		form.country.focus();
		return false;
	}
	if (_zipCode.length && ! chkIsValidPostCodeFld(_zipCode, 4, 20))
	{
		alert("Veuillez entrer un code postal valide, SVP.\nEntrer une valeur numérique sans espace\nExemple: 65000");
		form.zipcode.focus();
		return false;
	}
	if (_city.length && ! checkTextFld(_city, 2, 100, true))
	{
		alert("Veuillez entrer un nom de ville valide, SVP.");
		form.city.focus();
		return false;
	}
	if (_homePhone.length && ! chkIsValidPhoneFld(_homePhone, 6, 50))
	{
		alert("Veuillez entrer un numéro de téléphone valide, SVP.\nExemples: 0041 55 11 11 31 11, 079 46 22 22 22");
		form.homephone.focus();
		return false;
	}
	if (! chkIsValidPhoneFld(_mobile, 0, 50))
	{
		alert("Veuillez entrer un numéro de mobile valide, SVP.\nExemples: 0041 55 11 11 31 11, 079 46 22 22 22");
		form.mobile.focus();
		return false;
	}
	if (! chkIsValidPhoneFld(_profPhone, 0, 50))
	{
		alert("Veuillez entrer un numéro de téléphone valide, SVP.\nExemples: 0041 55 11 11 31 11, 079 46 22 22 22");
		form.profphone.focus();
		return false;
	}
	if (! chkIsValidPhoneFld(_fax, 0, 50))
	{
		alert("Veuillez entrer un numéro de fax valide, SVP.\nExemples: 0041 55 11 11 31 11, 079 46 22 22 22");
		form.fax.focus();
		return false;
	}
	if (! checkEmailFld(_email))
	{
		alert("Veuillez entrer une adresse e-mail valide, SVP.\nExemple: prenom.nom@yahoo.com");
		form.email.focus();
		return false;
	}
	if (_birthDate.length && ! chkDateFld(_birthDate, true))
	{
		alert("Veuillez entrer une date de naissance valide, SVP.\nExemple: 12-05-1976");
		form.birthdate.focus();
		return false;
	}
	if (! chkLengthFld(_job, 0, 50))
	{
		alert("Veuillez entrer une profession/activité valide, SVP.");
		form.job.focus();
		return false;
	}
	if(! chkIsNumericFld(_persons, 1, 2))
	{
		alert("Veuillez entrer un nombre de personnes valide, SVP.\nExemple: 2");
		form.persons.focus();
		return false;
	}
	if(! chkIsNumericFld(_children, 0, 2))
	{
		alert("Veuillez entrer un nombre d'enfants valide, SVP.\nExemple: 2");
		form.children.focus();
		return false;
	}
	if (! chkIsTimeFld(_timeOfArrival, true))
	{
		alert("Veuillez entrer un temps d'arrivée valide, SVP.\nExemple: 12:00");
		form.timeofarrival.focus();
		return false;
	}
	if (! chkLengthFld(_notice, 0, 1024))
	{
		alert("Veuillez entrer des informations valides, SVP.");
		form.notice.focus();
		return false;
	}
	return true;
}

/*	validateModifiedBookingData
 *
 *  Check if data for the additionnal booking data form are valid (Back end side used by an administrator)
 */ 
function validateModifiedBookingData()
{
	var form = document.forms['frmClientData'];
	var _firstName = form.firstname.value;
	var _name = form.name.value;
	var _address = form.address.value;
	var _country = form.country.value;
	var _zipCode = form.zipcode.value;
	var _city = form.city.value;
	var _homePhone = form.homephone.value;
	var _mobile = form.mobile.value;
	var _profPhone = form.profphone.value;
	var _fax = form.fax.value;
	var _email = form.email.value;
	var _birthDate = form.birthdate.value;
	var _job = form.job.value;
	var _customernotice = form.customernotice.value;
	var _persons = form.persons.value;
	var _children = form.children.value;
	var _timeOfArrival = form.timeofarrival.value;
	var _paid = form.paid.value;
	var _bookingnotice = form.bookingnotice.value;
		
	if (! checkTextFld(_firstName, 2, 50, true))
	{
		alert("Veuillez entrer un prénom valide, SVP.");
		form.firstname.focus();
		return false;
	}
	if (! checkTextFld(_name, 2, 50, true))
	{
		alert("Veuillez entrer un nom valide, SVP.");
		form.name.focus();
		return false;
	}
	if (_address.length && ! chkIsValidAddressFld(_address, 2, 150, true))
	{
		alert("Veuillez entrer une adresse valide, SVP.");
		form.address.focus();
		return false;
	}
	if (_country.length && ! checkTextFld(_country, 2, 50, true))
	{
		alert("Veuillez entrer un nom de pays valide, SVP.");
		form.country.focus();
		return false;
	}
	if (_zipCode.length && ! chkIsValidPostCodeFld(_zipCode, 4, 20))
	{
		alert("Veuillez entrer un code postal valide, SVP.\nEntrer une valeur numérique sans espace\nExemple: 65000");
		form.zipcode.focus();
		return false;
	}
	if (_city.length && ! checkTextFld(_city, 2, 100, true))
	{
		alert("Veuillez entrer un nom de ville valide, SVP.");
		form.city.focus();
		return false;
	}
	if (_homePhone.length && ! chkIsValidPhoneFld(_homePhone, 6, 50))
	{
		alert("Veuillez entrer un numéro de téléphone valide, SVP.");
		form.homephone.focus();
		return false;
	}
	if (! chkIsValidPhoneFld(_mobile, 0, 50))
	{
		alert("Veuillez entrer un numéro de mobile valide, SVP.\nExemples: 0041 55 11 11 31 11, 079 46 22 22 22");
		form.mobile.focus();
		return false;
	}
	if (! chkIsValidPhoneFld(_profPhone, 0, 50))
	{
		alert("Veuillez entrer un numéro de téléphone valide, SVP.\nExemples: 0041 55 11 11 31 11, 079 46 22 22 22");
		form.profphone.focus();
		return false;
	}
	if (! chkIsValidPhoneFld(_fax, 0, 50))
	{
		alert("Veuillez entrer un numéro de fax valide, SVP.\nExemples: 0041 55 11 11 31 11, 079 46 22 22 22");
		form.fax.focus();
		return false;
	}
	if (! checkEmailFld(_email))
	{
		alert("Veuillez entrer une adresse e-mail valide, SVP.\nExemple: prenom.nom@yahoo.com");
		form.email.focus();
		return false;
	}
	if (_birthDate.length && ! chkDateFld(_birthDate, true))
	{
		alert("Veuillez entrer une date de naissance valide, SVP.\nExemple: 12-05-1976");
		form.birthdate.focus();
		return false;
	}
	if (! chkLengthFld(_job, 0, 50))
	{
		alert("Veuillez entrer une profession/activité valide, SVP.");
		form.job.focus();
		return false;
	}
	if (! chkLengthFld(_customernotice, 0, 1024))
	{
		alert("Veuillez entrer des informations valides, SVP.");
		form.customernotice.focus();
		return false;
	}
	if(! chkIsNumericFld(_persons, 1, 2))
	{
		alert("Veuillez entrer un nombre de personnes valide, SVP.\nExemple: 2");
		form.persons.focus();
		return false;
	}
	if(! chkIsNumericFld(_children, 0, 2))
	{
		alert("Veuillez entrer un nombre d'enfants valide, SVP.\nExemple: 2");
		form.children.focus();
		return false;
	}
	if (! chkIsTimeFld(_timeOfArrival, true))
	{
		alert("Veuillez entrer un temps d'arrivée valide, SVP.\nExemple: 12:00");
		form.timeofarrival.focus();
		return false;
	}
	if(! chkIsAmountFld(_paid, 1, 4))
	{
		alert("Veuillez entrer un montant valide, SVP.\nExemples: 120, 150.50");
		form.paid.focus();
		return false;
	}
	if (! chkLengthFld(_bookingnotice, 0, 1024))
	{
		alert("Veuillez entrer des informations valides, SVP.");
		form.bookingnotice.focus();
		return false;
	}
	return true;
}
