/*

	Auteur : Virginie Bernard
	Date : 15 mars 2008
	Description :	Fichier de validation

*/

// fonction pour enlever les espaces du debut et de la fin d'une string
String.prototype.trim = function() { return this.replace(/^\s+|\s+$/, ''); };

/* fonction pour faire ouvrir un popup des numeros de tuile pour selection*/
function popTuiles(){
	// on ouvre une fenetre
	window.open("servicesOfferts.html?id=soumission#tuilesacoustiques", "Tuiles", "width=800,height=400,scrollbars,resizable");
}

// fonction pour valider le courriel entré
function valideEmail(emailAddr) {

	var message = "Veuillez entrer une adresse courriel valide";

	if (emailAddr.match(/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/)){
		return true;
	}
	else{
    	alert(message);
		return false;
	}
}

// fonction pour valider si c'est un nombre entier qui est tapé
// le laisse comme ca s'il est correct, sinon l'efface et amene le focus dessus
function checkNombreEntier(strFocus)
{
	var tempIntNumb = document.getElementById(strFocus).value;

	var blnNumber = true;
	var intPeriod = tempIntNumb.indexOf(".");
	var message = "";
	
	if (intPeriod!=-1)
	{
		message = tempIntNumb +" doit être un nombre entier";
		blnNumber = false;
	}

	for (i = 0; i<tempIntNumb.length; i++) {//début for
		z = parseInt(tempIntNumb.charAt(i)) 
		if (isNaN(z)) {
			blnNumber = false;
			message = tempIntNumb +" n'est pas un chiffre, veuillez entrer un nombre entier";
		}
	}//end for
	
	if (!blnNumber)
	{
		document.getElementById(strFocus).value = "";
		alert(message);
		document.getElementById(strFocus).focus();
	}
	return blnNumber;
}


// fonction pour valider si c'est un chiffre qui est tapé
function checkNumbers(intNumb,strFocus)
{
	blnNumber = true;
	intPeriod = intNumb.indexOf(".");
	var tempIntNumb;
	
	if (intPeriod!=-1)
	{
		if (intPeriod==intNumb.lastIndexOf("."))
		{
			intFirstNum = intNumb.substring(0,intPeriod-1);
			intLastNum = intNumb.substring(intPeriod+1);
			tempIntNumb = intFirstNum+intLastNum;
			
			if (intLastNum.length > 2){
				window.alert(intNumb +" doit être un chiffre de format 0.00");
				window.document.getElementById(strFocus).focus();
				if (!isNaN(tempIntNumb)){
					var nombre = new Number(intNumb);
					window.document.getElementById(strFocus).value = nombre.toFixed(2);
					changeDimensions(strFocus);
				}
				return false;
			}
		}
	}
	else
	{
		tempIntNumb = intNumb;
	}

	for (i = 0; i<tempIntNumb.length; i++)
		{//début for
		z = parseInt(tempIntNumb.charAt(i)) 
		if (isNaN(z))
			{
			blnNumber = false;		
			}
		}//end for

	if (blnNumber)
	{
		return (true);
	}
	else
	{
		window.alert(intNumb +" n'est pas un chiffre, veuillez entrer un chiffre");
		window.document.getElementById(strFocus).focus();
		window.document.getElementById(strFocus).value = "";
		return (false); 
	}
}

// fonction qui retourne vrai si au moins un type de produit a été choisi
function radioChoisis(){

	var blnRadioChoisi = false;
	
	//on fait le tour des boutons radio de la section plafonds
	for (var i = 0; i< document.frmSoumission.plafonds.length; i++){
		if (document.frmSoumission.plafonds[i].checked)
		blnRadioChoisi = true; 
	}
	//on fait le tour des boutons radio de la section cloisons
	for (var i = 0; i< document.frmSoumission.cloisons.length; i++){
		if (document.frmSoumission.cloisons[i].checked)
		blnRadioChoisi = true; 
	}
	
	return blnRadioChoisi;

}

// fonction qui retourne vrai si au moins un type de produit a été choisi
function verifierPlafondsChoisis(){

	var blnRadioChoisi = false;
	
	for (var i = 0; i< document.frmSoumission.plafonds.length; i++){
		// si un plafond a ete choisi, on attribue vrai a la variable
		if (document.frmSoumission.plafonds[i].checked)
		blnRadioChoisi = true; 
	}
	
	return blnRadioChoisi;

}

// fonction qui retourne vrai si au moins un type de produit a été choisi
function verifierCloisonsChoisis(){

	var blnRadioChoisi = false;
	
	for (var i = 0; i< document.frmSoumission.cloisons.length; i++){
		// si une cloison a ete choisie, on attribue vrai a la variable
		if (document.frmSoumission.cloisons[i].checked)
		blnRadioChoisi = true; 
	}
	
	return blnRadioChoisi;

}


// fonction pour valider la soumission 
function valideSoumission(){


	// ici on determine l'extension du fichier attache et s'il ne fait pas partie
	// de la liste des extensions acceptables, on ne transmet pas
	if (document.frmSoumission.fichier_du_plan.value!=""){

		var fichier_nom = document.frmSoumission.fichier_du_plan.value;
		var pos = fichier_nom.lastIndexOf(".");

		if (pos!=-1) {
			var extens = fichier_nom.substring(pos+1);
			extens = extens.toLowerCase();
			if (extens!="pdf" && extens!="doc" && extens!="xls" && extens!="jpg" && extens!="jpeg" && extens!="gif" && extens!="tiff"){
				document.frmSoumission.fichier_du_plan.value = "";
				alert("Le fichier attaché choisi n'est pas de format reconnu \n(pdf, doc, jpg, gif)");
				return false;				
			}
		}
	}
	// verifie si au moins un type de produit a ete choisi
	if (!radioChoisis()){
		alert("Vous devez choisir soit un type de plafond suspendu ou une cloison");
		return false;
	}
	// verifie si le plafond a ete choisi, il faut que les dimensions soient choisies aussi
	if (verifierPlafondsChoisis() && (window.document.getElementById("largeurPlafond").value.trim()=="" || window.document.getElementById("longueurPlafond").value.trim()=="")){
		alert("Vous devez entrer la largeur et la longueur du \nplafond suspendu pour lequel vous faites la soumission");
		window.document.getElementById("largeurPlafond").focus();
		return false;
	}
	// verifie si le plafond a ete choisi, il faut que le numero de tuile soit choisi aussi
	if (verifierPlafondsChoisis() && document.frmSoumission.noTuile.value.trim()==""){
		window.document.getElementById("noTuile").focus();
		alert("Vous devez entrer le numéro de tuile");
		return false;
	}
	// verifie si la cloison a ete choisie, il faut que les dimensions soient choisies aussi
	if (verifierCloisonsChoisis() && (window.document.getElementById("longueurCloison").value.trim()=="" || window.document.getElementById("hauteurCloison").value.trim()=="")){
		alert("Vous devez entrer la longueur et la hautueur de cloison dont vous avez besoin");
		window.document.getElementById("longueurCloison").focus();
		return false;
	}
	// verifie si le nom a ete rempli
	if (document.frmSoumission.nom.value=="" || document.frmSoumission.nom.value.trim()==""){
		document.frmSoumission.nom.value="";
		alert("Veuillez entrer votre nom");
		document.frmSoumission.nom.focus();
		return false;
	}// ci-dessous c'est pour forcer les 2 noms dans le champ nom
	else if(document.frmSoumission.nom.value.lastIndexOf(' ')==-1 || document.frmSoumission.nom.value.lastIndexOf(' ')==document.frmSoumission.nom.value.length-1){
		alert("Veuillez entrer votre prénom et nom");
		document.frmSoumission.nom.focus();
		return false;
	}
	// verifie si le telephone a ete choisi
	if (document.frmSoumission.tel_code_regional.value=="" || document.frmSoumission.tel_code_regional.value.trim()=="" || document.frmSoumission.tel_3P.value=="" || document.frmSoumission.tel_3P.value.trim()=="" || document.frmSoumission.tel_4D.value=="" || document.frmSoumission.tel_4D.value.trim()==""){
		alert("Veuillez entrer un numéro de téléphone");
		document.frmSoumission.tel_code_regional.focus();
		return false;
	}
	// verifie que le telephone entre soit des nombres entiers
	var code_regional = document.frmSoumission.tel_code_regional.value;
	var tel3p = document.frmSoumission.tel_3P.value;
	var tel4d = document.frmSoumission.tel_4D.value;
	if (!checkNombreEntier("tel_code_regional")){
		return false;
	}
	//verifie que le code regional ait 3 chiffres
	else if (code_regional.length!=3) {
		alert('Le code régional doit être composé de 3 chiffres');
		document.frmSoumission.tel_code_regional.focus();
		return false;
	}
	if (!checkNombreEntier("tel_3P")){
		return false;
	}
	//verifie que ca soit 3 chiffres
	else if (tel3p.length!=3) {
		alert('Ce champ doit contenir 3 chiffres');
		document.frmSoumission.tel_3P.focus();
		return false;
	}
	if (!checkNombreEntier("tel_4D")){
		return false;
	}
	//verifie que ca soit 4 chiffres
	else if (tel4d.length!=4) {
		alert('La fin du numéro de téléphone doit être composé de 4 chiffres');
		document.frmSoumission.tel_4D.focus();
		return false;
	}
	// verifie que le courriel est entre
	if (document.frmSoumission.courriel.value=="" || document.frmSoumission.courriel.value.trim()==""){
		document.frmSoumission.courriel.value="";
		alert("Veuillez entrer votre adresse courriel");
		document.frmSoumission.courriel.focus();
		return false;
	}
	// verifie la validite du courriel entre
	if (valideEmail(document.frmSoumission.courriel.value)==false){
		document.frmSoumission.courriel.value="";
		document.frmSoumission.courriel.focus();
		return false;
	}
	// si aucune erreur retourne vrai
	return true;
}


// fonction pour changer calculer dynamiquement les dimensions du plafond ou de la cloison
function changeDimensions(strInputName){

	// verifie que ca soit des nombres
	if(checkNumbers(window.document.getElementById(strInputName).value,strInputName))
	{
		var valeur1 = 0;
		var valeur2 = 0;
		var dimensionChange = "";
		var blnChange = false;

		//verifie si c la section plafond qu'il faut changer le total
		if (strInputName=="largeurPlafond" || strInputName=="longueurPlafond") {
			//verifie que toutes les dimensions sont entrees
			if (window.document.getElementById("largeurPlafond").value.trim()!="" && window.document.getElementById("longueurPlafond").value.trim()!=""){
				valeur1 = window.document.getElementById("largeurPlafond").value;
				valeur2 = window.document.getElementById("longueurPlafond").value;
				dimensionChange = "plafond_pi2";
				blnChange = true;
			}
		}
		// verifie si c la section cloison qu'il faut changer le total
		else if (strInputName=="longueurCloison" || strInputName=="hauteurCloison"){
			// verifie  que toutes les dimensions sont entrees
			if (window.document.getElementById("longueurCloison").value.trim()!="" && window.document.getElementById("hauteurCloison").value.trim()!=""){
				valeur1 = window.document.getElementById("longueurCloison").value;
				valeur2 = window.document.getElementById("hauteurCloison").value;
				dimensionChange = "cloison_pi2";
				blnChange = true;
			}
		}
		// si tout est correct et que l'on peut calculer les dimensions totales
		if (blnChange) {
			// on cree des nombres avec les valeurs - pour aider a l'arrondissement des chiffres
			var num1 = new Number(valeur1);
			var num2 = new Number(valeur2);
			var total = new Number(num1*num2);

			// on fixe l'arrondissement a 2 decimales
			window.document.getElementById(dimensionChange).value = total.toFixed(2);
		}
	}
}

