/************************************************************************************
www.vag-construction.com 

object:	Function and Variable definition and declaration.
Date:	05/02/2010
Author:	V.Nercessian
EMail:	v.nercessian@gmail.com

*************************************************************************************/
var strMandatory = "* Le champ est obligatoire.";
var strNameFormat = "Les caractères autorisés sont (A-Z)(a-z), (-), (.) et les espaces.";
var strPhoneFormat = "Les caractères autorisés sont (0-9), (-), (.), (+), (()) et les espaces.";
var strMailError = "L\'address de courrier électronique que vous avez saisie n'est pas valide.";
//const strPhoneFormat = "Les caractères autorisés sont (0-9), (-), (.), (+), (()) et les espaces et les parenthèses.";

function getParams()
{
	var name=new Array();
	var valeur=new Array();
	
	param = window.location.search.slice(1,window.location.search.length);

	first = param.split("&");

	for(i=0;i<first.length;i++){
		second = first[i].split("=");
		name[i] = second[0];
		valeur[i] = second[1];
	}
	return valeur;
}

function IsValidForm()
{
	var bResult = true;
	//var nCount = 0;
	var cInput = '';
	var strInputType = "";
	var strInputValue = "";
	var strInputName = "";
	var strInputEmptyErrors = "";
	var strInputErrors = "";
	var objSubmitForm = document.getElementById('SubmitForm');
	var objInput = objSubmitForm.getElementsByTagName('input');
	var objTextarea = objSubmitForm.getElementsByTagName('textarea');

	for(i = 0; i < objInput.length; i++)
	{
		strInputType = objInput[i].getAttribute("type");
		if(strInputType == "text"){
			strInputValue = trim(objInput[i].value);
			strInputName = objInput[i].name;

			if((strInputValue.length == 0) && (strInputName != "societe"))
			{
				//if(nCount > 0)
					//strInputEmptyErrors += ", ";
				
				if(strInputName == "tel"){
					strInputEmptyErrors = "Téléphone";
					strInputErrors = "* Le champ (" + strInputEmptyErrors + ") est obligatoire."
					setFormState(strInputName + "_id", strInputErrors, true, false);
					bResult = ((strInputErrors.length > 0) || (bResult == false))? false : true;
					//nCount++;
				}
				else{
					cInput = strInputName.charAt(0).toUpperCase();
					strInputEmptyErrors = cInput + strInputName.substring(1, strInputName.length);
					strInputErrors = "* Le champ (" + strInputEmptyErrors + ") est obligatoire."
					setFormState(strInputName + "_id", strInputErrors, true, false);
					bResult = ((strInputErrors.length > 0) || (bResult == false))? false : true;
					/*****************************************************************************************
					//Version pour alert()
					//Convertir la première lettre d'un mot en majuscule
					//cInput = strInputName.charAt(0).toUpperCase();
				
					//Reconstruire le mot
					//strInputEmptyErrors += "* " + cInput + strInputName.substring(1, strInputName.length);
					
					//nCount++;
					*****************************************************************************************/
				}
			}
			else{

				if(strInputName == "nom"){
					strInputErrors = IsValidName(strInputValue);
					setFormState(strInputName + "_id", strInputErrors, true, false);
					bResult = ((strInputErrors.length > 0) || (bResult == false))? false : true;
				}
				else if(strInputName == "prenom"){
					strInputErrors = IsValidName(strInputValue);
					setFormState(strInputName + "_id", strInputErrors, true, false);
					bResult = ((strInputErrors.length > 0) || (bResult == false))? false : true;
				}
				else if(strInputName == "societe"){
					setFormState(strInputName + "_id", "", true, false);
				}
				else if(strInputName == "email"){
					strInputErrors = IsValidMail(strInputValue);
					setFormState(strInputName + "_id", strInputErrors, true, false);
					bResult = ((strInputErrors.length > 0) || (bResult == false))? false : true;
				}
				else if(strInputName == "tel"){
					strInputErrors = IsValidPhone(strInputValue);

					setFormState(strInputName + "_id", strInputErrors, true, false);
					bResult = ((strInputErrors.length > 0) || (bResult == false))? false : true;
				}
				else if(strInputName == "objet"){
					setFormState(strInputName + "_id", "", true, false);
					bResult = ((strInputErrors.length > 0) || (bResult == false))? false : true;
				}
			}
		}
	}
	strInputValue = trim(objTextarea[0].value);
	strInputName = objTextarea[0].name;
	if((strInputValue.length == 0) || (strInputValue == "Laissez votre message ici"))
	{
		cInput = strInputName.charAt(0).toUpperCase();
		strInputEmptyErrors = cInput + strInputName.substring(1, strInputName.length);
		strInputErrors = "* Le champ (" + strInputEmptyErrors + ") est obligatoire."
		setFormState(strInputName + "_id", strInputErrors, true, false);

		/***************************************************************************************
		//Version pour alert()
		strInputName = objTextarea[0].name;
		//Convertir la première lettre d'un mot en majuscule
		cInput = strInputName.charAt(0).toUpperCase();
					
		if(nCount > 0)
			strInputEmptyErrors += ", ";
			
		//Reconstruire le mot
		strInputEmptyErrors += "* " + cInput + strInputName.substring(1, strInputName.length);
		***************************************************************************************/
	}
	else{
		setFormState(strInputName + "_id", "", true, false);
	}
	
	/***************************************************************************************
	//Version pour alert()	
	if(strInputEmptyErrors.length > 0){
		strState = "Les champs suivants sont obligatoires.";
		document.getElementById("stateTitle").childNodes[0].nodeValue = strState;
		
		var p = document.getElementById('stateDscrip');
		p.childNodes[0].nodeValue = strInputEmptyErrors + ".";
		alert(strState + '\n' + strInputEmptyErrors + ".");
		bResult = false;
	}
		
	if(strInputErrors.length > 0){
		strState = "Error Format.";
		document.getElementById("stateTitle").childNodes[0].nodeValue = strState;
		
		var p = document.getElementById('stateDscrip');
		p.childNodes[0].nodeValue = strInputEmptyErrors + ".";
		alert(strState + '\n' + strInputErrors + ".");
		bResult = false;
	}
	***************************************************************************************/
	bResult = ((strInputErrors.length > 0) || (bResult == false))? false : true;
	return bResult;
}

function getFieldFormat(strInputName, strDescription, bOldMsgdelete, bNewLineAfter) {
	setFormState(strInputName, strDescription, bOldMsgdelete, bNewLineAfter) 
}

function setFormState(strInputName, strErrorDescription, bOldMsgdelete, bNewLineAfter) {

	var p = document.getElementById(strInputName);
	var childNodes = p.childNodes;
	var br;
	
	p.style.display = "block";
	if(bOldMsgdelete){
		while(childNodes.length)
			p.removeChild(childNodes[childNodes.length - 1]);
		
	}
	
	if(bNewLineAfter == true){
		br = document.createElement('br');
		p.appendChild(br);
	}
	
	if(strErrorDescription.length > 0)
		p.appendChild(document.createTextNode(strErrorDescription));
	else
		p.style.display = "none";
}
	
function setSendState(urlParam) {

	var strState="";
	var strDescription="";
	var p = null;
	var br = null;
	var a = null;
	
	p = document.getElementById('stateDscrip');
	if(urlParam == 'yes'){
		strState = "Votre message a été envoyé avec succès !";
		strDescription = "Merci de nous avoir contacté et de l'intérêt que vous nous portez.";
		p.appendChild(document.createTextNode(strDescription));
		br = document.createElement('br');
		p.appendChild(br);
		p.appendChild(document.createTextNode("Vous allez recevoir un email de confirmation d'ici quelques minutes à l'adresse que vous avez indiquée."));
	}
	else if(urlParam == 'no'){
		strState="Erreur lors de l'envoi du message.";
		//strDescription="Votre message n'a pas été envoyé, veuillez réessayer ultérieurement.";
		strDescription="Votre message n'a pas été envoyé.";
		p.appendChild(document.createTextNode(strDescription));			   
		br = document.createElement('br');
		p.appendChild(br);
		br = document.createElement('br');
		p.appendChild(br);
		p.appendChild(document.createTextNode("* Veuillez vérifier la validité de l'adresses de messagerie que vous avez précisé. "));
		br = document.createElement('br');
		p.appendChild(br);
		p.appendChild(document.createTextNode("* Ou veuillez réessayer ultérieurement."));
		br = document.createElement('br');
		p.appendChild(br);
		br = document.createElement('br');
		p.appendChild(br);
		a = document.createElement('a');
		a.setAttribute('href', 'javascript:history.back()');
		a.appendChild(document.createTextNode("Revenir a la page precedente."));
		p.appendChild(a);
	}
	else{
		strState="Nous contacter";
	}
	document.getElementById("stateTitle").childNodes[0].nodeValue = strState;
}

function IsValidName(strValue) {

	var strResult = "";
	var strReg = "";
	
	var reg = /[\sa-zA-Zéèêàïôç.-]+$/;
	strReg = reg.exec(strValue);
	
	if(strReg == null){
		strResult = strNameFormat;
		return strResult;
	}
	return strResult;
}

function IsValidPhone(strPhone) {

	var strResult = "";
	var strReg = "";

	//var reg = /^[0-9.-]+$/;
	var reg = /[\s\+\(\)0-9.-]+$/;
	strReg = reg.exec(strPhone);
	
	if(strReg == null){
		strResult = strPhoneFormat;
		return strResult;
	}
	return strResult;
}

function IsValidMail(strEmail) {

	var bResult = false;
	var nLength = 0;
	var nPosition = -1;
	var nPositionTmp = -1;
	var cFirst, cLast, cSpecial;
	var strResult = "";
	var strTemp = "";
	var strReg = "";
	var cArray=new Array();
	var strArray=new Array();

	var reg = /^[a-zA-Z0-9._-]{2,}@[a-zA-Z0-9.-]{2,}[.][a-zA-Z]{2,}$/;
	
	cArray[0] = '.';
	cArray[1] = '_';
	cArray[2] = '-';

	strReg = reg.exec(strEmail);
	
	if(strReg == null){
		strResult = strMailError;
		return strResult;
	}

	strArray = strEmail.split("@");
   
	if(strArray.length != 2){
		strResult = strMailError;
		return strResult;
	}

	for(var i = 0; i < 2; i++)
	{
		strTemp = strArray[i];
		nLength = strTemp.length;
		cFirst = strTemp.charAt(0).toLowerCase();
		cLast = strTemp.charAt(nLength - 1).toLowerCase();

		if((((cFirst >= 'a') && (cFirst <= 'z')) || ((cFirst >= 0) && (cFirst <= 9)))
				&& (((cLast >= 'a') && (cLast <= 'z')) || ((cLast >= 0) && (cLast <= 9))))
		{
			for(var j = 0; j < cArray.length; j++)
			{	
				cSpecial = cArray[j];
				
				do{
					nPosition = strTemp.indexOf(cArray[j], nPositionTmp + 1);
					
					if(nPosition != -1){
						if((strTemp.charAt(nPosition + 1) == '.') || (strTemp.charAt(nPosition + 1) == '_')
								|| (strTemp.charAt(nPosition + 1) == '-'))
						{
							j = cArray.length;
							i = 2;
							strResult = strMailError;
							break;
						}
	
					}
					nPositionTmp = nPosition;
					
				}while(nPosition != -1);
			}
		}
		else
		{
			strResult = strMailError;
			break;
		}
	}
	return strResult;
}

function trim(str, chars) {
	return ltrim(rtrim(str, chars), chars);
}
 
function ltrim(str, chars) {
	chars = chars || "\\s";
	return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
}
 
function rtrim(str, chars) {
	chars = chars || "\\s";
	return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
}
