/********************   VERIFICATION DE FORMULAIRE   ********************/

 
 /*
	Developed by Robert Nyman, http://www.robertnyman.com
	Code/licensing: http://code.google.com/p/getelementsbyclassname/
*/
var getElementsByClassName = function (className, tag, elm){
	if (document.getElementsByClassName) {
		getElementsByClassName = function (className, tag, elm) {
			elm = elm || document;
			var elements = elm.getElementsByClassName(className),
				nodeName = (tag)? new RegExp("\\b" + tag + "\\b", "i") : null,
				returnElements = [],
				current;
			for(var i=0, il=elements.length; i<il; i+=1){
				current = elements[i];
				if(!nodeName || nodeName.test(current.nodeName)) {
					returnElements.push(current);
				}
			}
			return returnElements;
		};
	}
	else if (document.evaluate) {
		getElementsByClassName = function (className, tag, elm) {
			tag = tag || "*";
			elm = elm || document;
			var classes = className.split(" "),
				classesToCheck = "",
				xhtmlNamespace = "http://www.w3.org/1999/xhtml",
				namespaceResolver = (document.documentElement.namespaceURI === xhtmlNamespace)? xhtmlNamespace : null,
				returnElements = [],
				elements,
				node;
			for(var j=0, jl=classes.length; j<jl; j+=1){
				classesToCheck += "[contains(concat(' ', @class, ' '), ' " + classes[j] + " ')]";
			}
			try	{
				elements = document.evaluate(".//" + tag + classesToCheck, elm, namespaceResolver, 0, null);
			}
			catch (e) {
				elements = document.evaluate(".//" + tag + classesToCheck, elm, null, 0, null);
			}
			while ((node = elements.iterateNext())) {
				returnElements.push(node);
			}
			return returnElements;
		};
	}
	else {
		getElementsByClassName = function (className, tag, elm) {
			tag = tag || "*";
			elm = elm || document;
			var classes = className.split(" "),
				classesToCheck = [],
				elements = (tag === "*" && elm.all)? elm.all : elm.getElementsByTagName(tag),
				current,
				returnElements = [],
				match;
			for(var k=0, kl=classes.length; k<kl; k+=1){
				classesToCheck.push(new RegExp("(^|\\s)" + classes[k] + "(\\s|$)"));
			}
			for(var l=0, ll=elements.length; l<ll; l+=1){
				current = elements[l];
				match = false;
				for(var m=0, ml=classesToCheck.length; m<ml; m+=1){
					match = classesToCheck[m].test(current.className);
					if (!match) {
						break;
					}
				}
				if (match) {
					returnElements.push(current);
				}
			}
			return returnElements;
		};
	}
	return getElementsByClassName(className, tag, elm);
};
 
 
 
 /* Contrôles du formulaire, étape 1 */


function validForm1() {

	// Pattern for valid e-mail address    
    //var objRegExp  = /(^([_a-z0-9-]+)(\.[_a-z0-9-]+)*@([a-z0-9-]+)(\.[a-z0-9-]+)*(\.[a-z]{2,4})$)/;
   	//var emailField = document.getElementById('email').value;
    
    if (document.getElementById('org_nom').value == '') {
    	alert("Veuillez saisir votre le nom de l'organisme demandeur");
        document.getElementById('org_nom').focus();
        return false;
    }
    
    if (document.getElementById('type_organisme').value == '') {
    	alert("Veuillez saisir le type d'organisme");
        document.getElementById('type_organisme').focus();
        return false;
    }
    
    if (document.getElementById('nom_contact').value == '') {
    	alert("Veuillez saisir le nom du contact");
        document.getElementById('nom_contact').focus();
        return false;
    }
    
    if (document.getElementById('mail_contact').value == '') {
    	alert("Veuillez saisir une adresse e-mail");
        document.getElementById('mail_contact').focus();
        return false;
    }
    
    if (document.getElementById('tel_contact').value == '') {
    	alert("Veuillez saisir le téléphone du contact");
        document.getElementById('tel_contact').focus();
        return false;
    }
    
    if ((document.getElementById('nbCadresH').value == 0) && (document.getElementById('nbCadresF').value == 0) && (document.getElementById('nbStagiairesH').value == 0) && (document.getElementById('nbStagiairesF').value == 0) && (document.getElementById('nbMineursH').value == 0) && (document.getElementById('nbMineursF').value == 0)) {
    	alert("Veuillez saisir la répartition des participants");
        document.getElementById('nbCadresH').focus();
        return false;
    }
    
    // on vérifie que le nombre total de participants correspond au total des répartitions
    var nb_repartis = (	parseInt(document.getElementById('nbCadresH').value) + 
    					parseInt(document.getElementById('nbCadresF').value) + 
    					parseInt(document.getElementById('nbStagiairesH').value) +
    					parseInt(document.getElementById('nbStagiairesF').value));
    
    if ( nb_repartis != (document.getElementById('nb_participants').value)) {
    	alert("Mauvaise répartition des participants");
        document.getElementById('nbCadresH').focus();
        return false;
    }        
    
    if (document.getElementById('arrDate').value == '') {
    	alert("Veuillez saisir la date de votre arrivée");
        document.getElementById('arrDate').focus();
        return false;
    }
    
    if (document.getElementById('depDate').value == '') {
    	alert("Veuillez saisir la date de votre départ");
        document.getElementById('depDate').focus();
        return false;
    }
    
}


/* Contrôles du formulaire, étape 2 */ 

function validForm2() {

	 var nbChambres = document.getElementsByClassName('nb_chambre').length;
	 var cpt = 0;
	 
	 for (i=1; i<= nbChambres; i++) {
	 
	 	if (document.getElementById('nb_chambre'+i).value != 0) {
	 	
	 		cpt++;
	 
			if (document.getElementById('type_chambre'+i).value == '') {
				alert("Veuillez choisir une formule d'hébergement");
				document.getElementById('type_chambre'+i).focus();
				return false;
			} //fin if
			 
			if (document.getElementById('nb_places_chambre'+i).value == '') {
				alert("Veuillez choisir le type de chambre");
				document.getElementById('nb_places_chambre'+i).focus();
				return false;

			} //fin if
		 
		} //fin if
	 } //fin for
	 	 
	 if (cpt == 0) {
	 	if (!confirm("Vous n'avez choisi aucun hébergement. souhaitez vous continuer?")) {
			return false;
		} else {
			return true; 
		}
	 } 
}



/* Contrôles du formulaire, étape 3 */

function validForm3() {

	 if ((document.getElementById('type_install1').value == '') && (document.getElementById('type_install2').value == '') && (document.getElementById('type_install3').value == '') && (document.getElementById('pah').value == '') && (document.getElementById('SalleReunion').value == '')) {
	    if (!confirm("Vous n'avez choisi aucune installation. Voulez-vous continuer?")) {
	    	document.getElementById('type_install1').focus();
	    	return false;
	    }
	    else { return true; }
	 }
	 
	 if ((document.getElementById('type_install1').value != '') && (document.getElementById('date_resa_install1').value == '')) {
	    alert("Vous n'avez pas choisi de date pour la réservation de votre première installation");
	    document.getElementById('date_resa_install1').focus();
	 	return false;
	 }	 
	 
	 if ((document.getElementById('type_install2').value != '') && (document.getElementById('date_resa_install2').value == '')) {
	    alert("Vous n'avez pas choisi de date pour la réservation de votre deuxième installation");
	    document.getElementById('date_resa_install2').focus();
	 	return false;
	 }	 
	 
	 if ((document.getElementById('type_install3').value != '') && (document.getElementById('date_resa_install3').value == '')) {
	    alert("Vous n'avez pas choisi de date pour la réservation de votre troisième installation");
	    document.getElementById('date_resa_install3').focus();
	 	return false;
	 }
	 
	 if ((document.getElementById('pah').value != '') && (document.getElementById('date_resa_pah').value == '')) {
	    alert("Vous n'avez pas choisi de date pour la réservation du PAH");
	    document.getElementById('date_resa_pah').focus();
	 	return false;
	 }
	 
	 if ((document.getElementById('SalleReunion').value != '') && (document.getElementById('date_resa_salle').value == '')) {
	    alert("Vous n'avez pas choisi de date pour la réservation de la salle de réunion");
	    document.getElementById('date_resa_salle').focus();
	 	return false;
	 } 
}


/* Contrôles du formulaire, étape 4 */ 

function validForm4() {
	 
	 if (document.getElementById('nomChefStage').value == '') {
	    alert("Vous n'avez pas saisi de nom pour le chef de stage");
	    document.getElementById('nomChefStage').focus();
	 	return false;
	 }	 
	 
	 if (document.getElementById('nomOrgaFact').value == '') {
	    alert("Vous n'avez pas saisi de nom pour l'organisme de facturation");
	    document.getElementById('nomOrgaFact').focus();
	 	return false;
	 }
	 
	 if (document.getElementById('adresseOrgaFact').value == '') {
	    alert("Vous n'avez pas saisi d'adresse pour l'organisme de facturation");
	    document.getElementById('adresseOrgaFact').focus();
	 	return false;
	 }
	 
	 if (document.getElementById('CPorgaFact').value == '') {
	    alert("Vous n'avez pas saisi le code postal pour l'organisme de facturation");
	    document.getElementById('CPorgaFact').focus();
	 	return false;
	 }	
	 
	 if (document.getElementById('villeOrgaFact').value == '') {
	    alert("Vous n'avez pas saisi la ville de l'organisme de facturation");
	    document.getElementById('villeOrgaFact').focus();
	 	return false;
	 }
	 
 	if(document.getElementById('agree').checked) {
		return true;
	} else { 
		alert("Vous devez accepter les Conditions Générales de Réservation pour pouvoir continuer");
		document.getElementById('agree').focus();
		return false;
	} 
}


/* formulaire 2, calcul du nombre de places réservées */
function calcNbPlacesresa() {

	var nbChambres = getElementsByClassName('nb_chambre').length;
	var nbPlacesResa = 0;
	 
	for (i=1; i<= nbChambres; i++) {
	
		nbChambre = document.getElementById('nb_chambre'+i).value;
		nbPlacesChambre = document.getElementById('nb_places_chambre'+i).value;
		//alert (nbChambre + " / " + nbPlacesChambre);
	
		if ((nbChambre != 0) && (nbPlacesChambre != '')) {
			nbPlacesResa = nbPlacesResa + (parseInt(nbChambre) * parseInt(nbPlacesChambre));
			//alert (nbPlacesResa);
		} //fin if
	} // fin for
	 
	document.getElementById('nb_places_reserv').value = nbPlacesResa;	 
}


function OnOff_arrivee() {

	if ((document.getElementById('arrivee_anticipee').checked)) {
		//alert ('cochée !')
		document.getElementById('diner_AA').disabled = false;
		document.getElementById('nbPers_AA').disabled = false;
	} else { 
		//alert ('pas cochée !');
		document.getElementById('diner_AA').disabled = true;
		document.getElementById('nbPers_AA').disabled = true;		
	}
}


function OnOff_hebergement() {

	var nbChambres = getElementsByClassName('nb_chambre').length;
	
	for (i=1; i<= nbChambres; i++) {

		if ((document.getElementById('nb_chambre'+i).value) == 0) {
			//alert ('désactivé !')
			document.getElementById('type_chambre'+i).style.visibility = "hidden";
			document.getElementById('nb_places_chambre'+i).style.visibility = "hidden";
		} else { 
			//alert ('activé !');
			document.getElementById('type_chambre'+i).style.visibility = "visible";
			document.getElementById('nb_places_chambre'+i).style.visibility = "visible";		
		}
	}

}

// fonction non utilisée, permet de désactiver le bouton TERMINER tant que la case n'est pas cochée
function OnOff_terminer() {	

		if (document.getElementById('agree').checked) {
			alert ('cocheé !');
			document.getElementById('letsgo').disabled = false;		
		} else {
			alert ('décocheé !');
			document.getElementById('letsgo').disabled = true;
		}
}


/* Formulaire de contact */
function CheckForm() {

	if (document.getElementById('nom').value == '') {
		alert ('Merci de rentrer votre nom');
		document.getElementById('nom').focus();
		return false;
	}
		
	if (document.getElementById('prenom').value == '') {
		alert ('Merci de rentrer votre prenom');
		document.getElementById('prenom').focus();
		return false;
	}
	
	if (document.getElementById('email').value == '') {
		alert ('Merci de rentrer votre adresse e-mail');
		document.getElementById('email').focus();
		return false;
	}

	if (document.getElementById('contacterService').value == '') {
		alert ('Vous devez sélectionner un service auquel votre message sera adressé !');
		document.getElementById('contacterService').focus();
		return false;
	}
	
	if ((document.getElementById('message').value == '') || (document.getElementById('message').value == 'Tapez ici votre commentaire'))  {
		alert ('Vous n\'avez pas saisi de message !');
		document.getElementById('message').focus();
		return false;
	}
}