// Bibliothèque de fonctions de vérification

String.prototype.trim = function() {
    return this.replace(/^\s*|\s*$/g, "");
};

function O(elem){
	return document.getElementById(elem);
};

function V(elem) {
	return O(elem).value;
};

function IsEmpty(string){
    return (string.trim()=='');
};

function IsMail(email){
    return (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(email));
};

function IsNumeric(number){
    return (/^[0-9\s]+$/.test(number));
};

function IsString(string){
    return (/^[a-zA-Zéèàùïêâ\s]+([.'-]?)([a-zA-Zéèàùïêâ\s]*)$/.test(string));
};


/* Fonction de vérification des données saisies dans le formulaire ---------------------------------------------------------------- */

function verif ()
{
	// On déclare les variables et on leur assigne une valeur
	
	var $nom = document.getElementById('nom').value;
	var $prenom = document.getElementById('prenom').value;
	var $mail = document.getElementById('mail').value;
	var $tel = document.getElementById('tel').value;
	var $station = document.getElementById('station').value;
	var $jour = document.getElementById('jour').value;
	var $mois = document.getElementById('mois').value;
	var $annee = document.getElementById('annee').value;
	var chk1 = document.getElementById("debutant");
	var chk2 = document.getElementById("confirme");
	var chk3 = document.getElementById("expert");
	
	var $msg1 = "Veuillez saisir votre nom !";
	var $msg2 = "Veuillez vérifier votre nom !";
	var $msg3 = "Veuillez saisir votre prénom !";
	var $msg4 = "Veuillez vérifier votre prénom !";
	var $msg5 = "Veuillez saisir votre adresse e-mail !";
	var $msg6 = "Veuillez vérifier votre adresse e-mail !";
	var $msg7 = "Veuillez saisir votre numéro de téléphone !";
	var $msg8 = "Veuillez vérifier votre numéro de téléphone !";
	var $msg9 = "Veuillez saisir la station de ski souhaitée !";
	var $msg10 = "Veuillez vérifier la station de ski souhaitée !";
	var $msg11 = "Le numéro de téléphone doit contenir 10 chiffres sans espaces !";
	var $msg13 = "Merci de préciser votre niveau !";
	
	
if ($nom == "")
	{
	alert ($msg1);
	document.forms[0].nom.focus();
	document.forms[0].nom.style.background="red";
	return false ;
	}
	else {
		if (IsString($nom) == false) 
		{
		alert ($msg2);
		document.forms[0].nom.focus();
		document.forms[0].nom.style.background="red";
		return false ;
		}
	else {
		if ($prenom == "") 
		{
		alert ($msg3);
		document.forms[0].prenom.focus();
		document.forms[0].prenom.style.background="red";
		return false ;
		}
	else {
		if (IsString($prenom) == false) 
		{
		alert ($msg4);
		document.forms[0].prenom.focus();
		document.forms[0].prenom.style.background="red";
		return false ;
		}	
		else {
			if ($mail =="") 
			{
			alert ($msg5);
			document.forms[0].mail.focus();
			document.forms[0].mail.style.background="red";
			return false ;
			}	
			else {
				if (IsMail($mail) == false) 
					{
					alert ($msg6);
					document.forms[0].mail.focus();
					document.forms[0].mail.style.background="red";
					return false ;
					}	
			else {
				if ($tel == "") 
					{
					alert ($msg7);
					document.forms[0].tel.focus();
					document.forms[0].tel.style.background="red";
					return false ;
					}	
			else {
				if (IsNumeric($tel) == false) 
					{
					alert ($msg8);
					document.forms[0].tel.focus();
					document.forms[0].tel.style.background="red";
					return false ;
					}	
			else {
				if ($tel.length != 10) 
					{
					alert ($msg11);
					document.forms[0].tel.focus();
					document.forms[0].tel.style.background="red";
					return false ;
					}
			else {
				if ($station == "") 
					{
					alert ($msg9);
					document.forms[0].station.focus();
					document.forms[0].station.style.background="red";
					return false ;
					}	
			else {
				if (IsString($station) == false) 
					{
					alert ($msg10);
					document.forms[0].station.focus();
					document.forms[0].station.style.background="red";
					return false ;
					}
			else {
				if ((chk1.checked) == false && (chk2.checked) == false && (chk3.checked) == false) 
					{
					alert ($msg13);
					return false ;
					}
				else return true;
					}}}}}}}
				}
			}
		}
	}
}


/* Fonction de vérification des données saisies dans le formulaire ---------------------------------------------------------------- */

function verif_1 ()
{
	// On déclare les variables et on leur assigne une valeur
	
	var $nom = document.getElementById('nom').value;
	var $prenom = document.getElementById('prenom').value;
	var $mail = document.getElementById('mail').value;
	var $tel = document.getElementById('tel').value;
	var $demande = document.getElementById('objet').value;
	
	var $msg1 = "Veuillez saisir votre nom !";
	var $msg2 = "Veuillez vérifier votre nom !";
	var $msg3 = "Veuillez saisir votre prénom !";
	var $msg4 = "Veuillez vérifier votre prénom !";
	var $msg5 = "Veuillez saisir votre adresse e-mail !";
	var $msg6 = "Veuillez vérifier votre adresse e-mail !";
	var $msg7 = "Veuillez saisir votre numéro de téléphone !";
	var $msg8 = "Veuillez vérifier votre numéro de téléphone !";
	var $msg9 = "Le numéro de téléphone doit contenir 10 chiffres sans espaces !";
	var $msg10 = "Veuillez préciser l'objet de votre demande !";
	
	
if ($nom == "")
	{
	alert ($msg1);
	document.forms[0].nom.focus();
	document.forms[0].nom.style.background="red";
	return false ;
	}
	else {
		if (IsString($nom) == false) 
		{
		alert ($msg2);
		document.forms[0].nom.focus();
		document.forms[0].nom.style.background="red";
		return false ;
		}
	else {
		if ($prenom == "") 
		{
		alert ($msg3);
		document.forms[0].prenom.focus();
		document.forms[0].prenom.style.background="red";
		return false ;
		}
	else {
		if (IsString($prenom) == false) 
		{
		alert ($msg4);
		document.forms[0].prenom.focus();
		document.forms[0].prenom.style.background="red";
		return false ;
		}	
		else {
			if ($mail =="") 
			{
			alert ($msg5);
			document.forms[0].mail.focus();
			document.forms[0].mail.style.background="red";
			return false ;
			}	
			else {
				if (IsMail($mail) == false) 
					{
					alert ($msg6);
					document.forms[0].mail.focus();
					document.forms[0].mail.style.background="red";
					return false ;
					}	
			else {
				if ($tel == "") 
					{
					alert ($msg7);
					document.forms[0].tel.focus();
					document.forms[0].tel.style.background="red";
					return false ;
					}	
			else {
				if (IsNumeric($tel) == false) 
					{
					alert ($msg8);
					document.forms[0].tel.focus();
					document.forms[0].tel.style.background="red";
					return false ;
					}	
			else {
				if ($tel.length != 10) 
					{
					alert ($msg9);
					document.forms[0].tel.focus();
					document.forms[0].tel.style.background="red";
					return false ;
					}
				else return true;
					}}}}
				}
			}
		}
	}
}


/* Fonction de vérification de la date saisie dans le formulaire  ---------------------------------------------------------------- */


function date ()
{
	// On déclare les variables et on leur assigne une valeur
	
	var $dat = document.getElementById('jour').value + '/' + document.getElementById('mois').value + '/' + document.getElementById('annee').value;
	
	// On déclare les variables et on leur assigne une valeur
	
	var $msg12 = "La date saisie est dépassée !";

	if (DateFuture($dat) == false) 
	{
	alert ($msg12);
	document.forms[0].jour.focus();
	document.forms[0].jour.style.background="red";
	return false ;
	}
	else return true
}

/* Bibliothèques de Fonctions de vérification des dates ------------------------------------------------------------------------------------------------------- */

// Enleve le '0' des nb < 10
function ConvNum(tabDeDate) {
for (i=0; i<tabDeDate.length; i++)
tabDeDate[i] = (tabDeDate[i].charAt(0)=='0')?tabDeDate[i].charAt(1):tabDeDate[i];
return tabDeDate;
}

// Retourne true si valeur_date est postérieure à la date du jour
function DateFuture(valeur_date)
{var tabDate = valeur_date.split('/');
var datAujourdhui = new Date();
if (valeur_date.length > 0)
{ var datTest_Date = new Date(parseInt(tabDate[2]), parseInt(tabDate[1])-1, parseInt(tabDate[0]));
if (datTest_Date <= datAujourdhui || datTest_Date.getDate() <= datAujourdhui.getDate()) return false;
}
return true;
}

// Retourne 1 si valeur_date1 < valeur_date2
// 0 si valeur_date1 = valeur_date2
// -1 si valeur_date1 > valeur_date2
function Compare_Dates(valeur_date1, valeur_date2)
{var tabDate1 = valeur_date1.split('/');
tabDate1 = ConvNum(tabDate1);
var datTest_Date1 = new Date(parseInt(tabDate1[2]), parseInt(tabDate1[1])-1, parseInt(tabDate1[0]));
var tabDate2 = valeur_date2.split('/');
tabDate2 = ConvNum(tabDate2);
var datTest_Date2 = new Date(parseInt(tabDate2[2]), parseInt(tabDate2[1])-1, parseInt(tabDate2[0]));
return (datTest_Date2-datTest_Date1==0)?"0":(datTest_Date2-datTest_Date1<0)?"-1":"1";
}

// Vérifie le format d une date saisie
function Verif_Date(valeur_date)
{ var tabDate = valeur_date.split('/');
tabDate = ConvNum(tabDate);
var datTest_Date = new Date(parseInt(tabDate[2]), parseInt(tabDate[1])-1, parseInt(tabDate[0]));
if (valeur_date.length>10)
{ alert('Ne dois pas dépasser 10 caractères.');
return false;
}
for (i=0; i<valeur_date.length; i++)
{ if (valeur_date.charAt(i) == ' ')
{ alert("La date ne doit pas contenir d\'espaces.");
return false;
}
}
if (valeur_date.length > 0)
{ if ((parseInt(tabDate[0]) != datTest_Date.getDate()) || (parseInt(tabDate[1]) != parseInt(datTest_Date.getMonth())+1))
{ alert("Veuillez saisir la date au format 'J/M/SSAA' ou JJ/MM/SSAA.\n\nex : 6/6/2004 ou 06/06/2004");
return false;
}
if ((tabDate[2].length != 4) || (parseInt(tabDate[2]) < 2007) || (parseInt(tabDate[2]) > 2099))
{ alert("Veuillez saisir l'année sur 4 chiffres.\n\nElle doit être comprise entre 2007 et 2099.");
return false;
}
}
return true;
}

function ControleDates() {
var strMsg='';
if (Verif_Date(document.getElementById('debut').value) && Verif_Date(document.getElementById('fin').value)) {
switch (Compare_Dates(document.getElementById('debut').value, document.getElementById('fin').value)) {
case "-1" :
alert('KO:\nDate début > Date fin'); break;
case "0" :
alert('KO:\nDate début = Date fin'); break;
case "1" :
alert('OK:\nDate début < Date fin'); break;
default :
alert('Comparaison impossible');break;
}
}
}
//-->