//Conception Z.  All right resered
if(!Array.indexOf){
	    Array.prototype.indexOf = function(obj){
	        for(var i=0; i<this.length; i++){
	            if(this[i]==obj){
	                return i;
	            }
	        }
	        return -1;
	    }
}

var okBool = null;
var arrBool = new Array();
var arrBoolM = new Array();
var arrBoolEmail = new Array();
var msgErrorDiv;
var arrSameValueField1 = new Array();
var arrSameValueField2 = new Array();
var arrSameValueFieldErrorMsg  =new Array();
var langue = null;
var boolDeact = false;
var boolRadio = false;
var boolSilent = false;
/*** validateForm
	declare vaildation function in the order they appere in the from
*/
function validateForm()
{
	var firstErrorElement;
	var arrStrMsgError = new Array();
		
	for(var x=0;x<arrBool.length;x++)
	{
		divElement = document.getElementById(arrBool[x]);
		var boolRadio = false;
		
		if(divElement.getAttribute("type") == "radio")
		{
			divElementR = document.getElementsByName(arrBool[x]);
			for(i=0;i<divElementR.length;i++)
			{
				var objRadio = divElementR[i];
				if(objRadio.checked == true)
					var boolRadio = true;
			}	
		}
			
			
		if((divElement.value == "") || (divElement.getAttribute("type") == "checkbox" && divElement.checked == false) || (divElement.getAttribute("type") == "radio" && boolRadio == false))
		{
			
			
			if(arrBoolM[x] != '')
				var messageTO = arrBoolM[x];
				
			else
			{
			if(langue == "english" || langue == "en")
				var messageTO = "A required field is missing";
			else
				var messageTO = "Veuillez compléter tous les champs.";
			}	
		
			arrStrMsgError.push(messageTO);
			//divElement.className = "errorField";
			addClass(divElement,'errorField');
			if(firstErrorElement == null){
				firstErrorElement = divElement
			}
		
		}else{
			removeClass(divElement,'errorField');	
		}	
	}		
	for(var x=0;x<arrBoolEmail.length;x++)
	{
		
		var inputEmail = document.getElementById(arrBoolEmail[x]);
		var boite = document.getElementById(arrBoolEmail[x]).value;
		if (boite.indexOf("@")!= -1 && boite.indexOf(".") != -1 && boite.length > 5){
			 messageTO = "";
			 removeClass(inputEmail,'errorField');
		}	 
		else
		{	
			if(langue == "english" || langue == "en")
				var messageTO = "Invalid email";
			else
				var messageTO = "Adresse électronique erronée";
				
			arrStrMsgError.push(messageTO);
			addClass(inputEmail,'errorField');
			//inputEmail.className = "errorField";
			
			if(firstErrorElement == null){
				firstErrorElement = inputEmail
			}
		}	
	}
	
	for(var x=0;x<arrSameValueField1.length;x++){
		
		if(document.getElementById(arrSameValueField1[x]).value != document.getElementById(arrSameValueField2[x]).value) {
			
			//document.getElementById(arrSameValueField2[x]).className = "errorField";
			addClass(document.getElementById(arrSameValueField2[x]),'errorField');
			arrStrMsgError.push(arrSameValueFieldErrorMsg[x]);
			
			if(firstErrorElement == null){
				firstErrorElement = document.getElementById(arrSameValueField2[x]);
			}
		}else{
			removeClass(document.getElementById(arrSameValueField2[x]),'errorField');	
		}
		
	}
		
	
	
	if(firstErrorElement == null){
		
		return true;	
	}else{
		
		if(!boolSilent){
			if(msgErrorDiv == null){
				alert(arrStrMsgError.join('\n'));
			}else{
				msgErrorDiv.innerHTML = arrStrMsgError.join('</br>');	
			}
		}
		
		document.location = "#"+firstErrorElement.id;
		firstErrorElement.focus;
		
		return false;	
	}
	
		
		
}	

function setSilent(bool){
	boolSilent = bool;
}

function setlangue(lang)
{
	langue = lang;
}
function setMsgErrorDiv(div)
{
	msgErrorDiv = div;
}
function addClass(element,strClassName){
	var newClassName = "";
	
	var arrClass = element.className.split(' ');
	
	
	for(var x=0;x<arrClass.length;x++){
		if(arrClass[x]=="")
			continue;
		
		if(strClassName == arrClass[x]){
			
			return 	element;
		}
		newClassName +=	arrClass[x];
		if(x+1<=arrClass.length){
			newClassName += " ";	
		}
	}
	if(x==0){
		element.className = strClassName;	
	}else{
		element.className = newClassName + strClassName;	
	}
	
	return element;
	
}
function removeClass(element,strClassName){
		
		var newClassName ="";
		var arrClass = element.className.split(' ');
		//alert(element.id);
		//alert(element.className);
		for(var x=0;x<arrClass.length;x++){
			
			if(arrClass[x] !=strClassName){
				newClassName +=	arrClass[x];
			}
			if(x+1<=arrClass.length){
				newClassName += " ";	
			}
			
		}
		
	element.className = newClassName;
	return element;
}

function emailField(name)
{
	
	arrBoolEmail[arrBoolEmail.length] = name;	
}
function sameValueField(fieldId1,fieldId2,message)	
{	
	arrSameValueField1[arrSameValueField1.length] = fieldId1;
	arrSameValueField2[arrSameValueField2.length] = fieldId2;
	arrSameValueFieldErrorMsg[arrSameValueFieldErrorMsg.length] =  message;
}

function required(name,message)
{
	//alert('go 2');	
	/*alert(arrBool.length);*/
    //	alert();
    //alert(name+arrBool.length);
	arrBool[arrBool.length] = name;
	if(typeof(message) == 'undefined')
		arrBoolM[arrBoolM.length] = '';
	else
		arrBoolM[arrBoolM.length] = message;
}	

function validateField(idChamps,type,keyMessage)
{
	divElement = document.getElementById(idChamps);
	if(type == 'text')
	{
		if(divElement.value == "")
		{
			if(langue == "english" || langue == "en")
				var messageTO = "A required field is missing";
			else
				var messageTO = "Un champ obligatoire n'est pas complété";
				
			divElement = document.getElementById(keyMessage);
			divElement.innerHTML = messageTO;
			return false;
		}	
	
	}	
	if(type == 'email')
	{
		var boite = divElement.value;
		if (boite.indexOf("@")!= -1 && boite.indexOf(".") != -1 && boite.length > 5) messageTO = "";
		else
		{
			if(langue == "english" || langue == "en")
				var messageTO = "Invalid email";
			else
				var messageTO = "Adresse électronique erronée";
			divElement = document.getElementById(keyMessage);
			divElement.innerHTML = messageTO;
			return false;
		}	

	}	
}

function isdefined(variable)
{
	//alert(typeof(window[variable]));
    return (typeof(window[variable]) == "undefined")?  false: true;
}

function removeRequired(name,message)
{
	
	var ind = arrBool.indexOf(name);
	if(ind >=0)
		arrBool.splice(ind,1);
	//alert(arrBool.length);
	var ind = arrBoolM.indexOf(message);
	if(ind >=0)
		arrBoolM.splice(ind,1);
	
}	

function removeEmail(name)
{
	var ind = arrBoolEmail.indexOf(name);
	if(ind >=0)
		arrBoolEmail.splice(ind,1);
}	
