// JavaScript Document

test_text = "*";
test_class = "";

function formValidation(form,requieredFlag,errorMsg){
	var emptyElements = 0;
	var fieldId	=	'';
	var texte = '';
	for (i=0 ; i<= form.length-1 ; i++){
			currentField	=	form[i];
			fieldId = currentField.id;
			fieldType	=	currentField.type;
			texte	= texte + fieldId.substring(fieldId.lastIndexOf("_")+1)+' : '+currentField.type +"\n";
			previousEmptyElements	=	emptyElements;
			if (fieldId.substring(fieldId.lastIndexOf("_")+1) == requieredFlag){
				switch (fieldType){
					case 'text':
						if (currentField.value == ''){ emptyElements ++; }
						break;
						
					case 'select-one':
						for ( var k=0; k<currentField.options.length; k++){
							if ( currentField.options[k].selected == true && currentField.options[k].value == "" ){ emptyElements ++; }
						}
						break;
						
					case 'textarea':
						if (currentField.value == ''){ emptyElements ++; }
						break;
				}
				if (previousEmptyElements != emptyElements){
					currentField.style.backgroundColor = '#6297BC';	
				}else{
					currentField.style.backgroundColor = 'white';	
				}
			}
					
	}
	// alert(texte);
	if (emptyElements>0){
		if (errorMsg!=''){ alert(errorMsg); }
		return (false);
	}else{
		return (true);
	}
}

function formSetEnabled(fieldIdList,stateSet){
		var reg=new RegExp("[ ,;]+", "g");
		var arFieldId	=	fieldIdList.split(reg);
		for (var i=0; i<arFieldId.length; i++) {
			
			if (stateSet){ //Activer
				document.getElementById(arFieldId[i]).disabled = false;
			}else{ // Désactiver
				document.getElementById(arFieldId[i]).disabled = true;
			}
 		}
}

function formSetRequiered(fieldIdList,requieredFlag,stateSet){
		// StateSet = true -> ajouter le requieredFlag à l'id, false -> l'enlever
		// fieldList = liste des ids pour les champs concernés séparés par , ou ;
		// requieredFlag = texte à ajouter ou enlever
		var reg=new RegExp("[ ,;]+", "g");
		var arFieldId	=	fieldIdList.split(reg);
		for (var i=0; i<arFieldId.length; i++) {
			if (stateSet){ //Ajouter
				currentFieldId	=	arFieldId[i];
				newFieldId		=	arFieldId[i]+requieredFlag;
			}else{ // Enlever
				currentFieldId	=	arFieldId[i]+requieredFlag;
				newFieldId		=	arFieldId[i];
				document.getElementById(currentFieldId).style.backgroundColor = 'white';
			}
 			document.getElementById(currentFieldId).id = newFieldId;
		}
}

function verif_form(formulaire,message) {
	vide = 0;
	for ( var i=0; i<formulaire.getElementsByTagName("label").length; i++ ) {
		element_label = formulaire.getElementsByTagName("label")[i];
		txt_label = element_label.firstChild.nodeValue;
		class_label = element_label.className;
		
		if ( (test_text != "" && txt_label.indexOf(test_text) != -1) || (test_class != "" && class_label == test_class)) {
			if ( element_label.getAttribute("htmlFor") || element_label.getAttribute("for") ) {
				if ( document.all ){ 
					id_champs = element_label.getAttribute("htmlFor"); 
				}else{ 
					id_champs = element_label.getAttribute("for");
					champs = document.getElementById(id_champs);
					
					if ( champs.tagName == "INPUT" && champs.getAttribute("type") == "text" && champs.value == ""){ 
						vide ++; 
					}else if ( champs.tagName == "TEXTAREA" && champs.value == "" ){ 
						vide ++; 
					}
				}
			}else{
				if ( element_label.getElementsByTagName("input")[0] ) {
					input_label = element_label.getElementsByTagName("input")[0];
					if ( input_label.getAttribute("type") == "text" && input_label.value == "" ){ 
						vide ++;
					}else if ( element_label.getElementsByTagName("textarea")[0] && element_label.getElementsByTagName("textarea")[0].value == "" ){ 
						vide ++;
					}
				}
			}
		}
	}
	
	for (var j=0; j<formulaire.getElementsByTagName("select").length; j++ ) {
		liste = formulaire.getElementsByTagName("select")[j];
		for ( var k=0; k<liste.options.length; k++){
			if ( liste.options[k].selected == true && liste.options[k].value == "" ){ vide ++; }
		}
	}
	
	if ( vide != 0 ) {
		alert(message);
		return false;
	}else{
		return true;
	}
}

// Vérification du format des champs e-mails

function checkMailAddress(mailAddress){
	var reg = new RegExp('^[a-z0-9]+([_|\.|-]{1}[a-z0-9]+)*@[a-z0-9]+([_|\.|-]­{1}[a-z0-9]+)*[\.]{1}[a-z]{2,6}$', 'i');

	if(reg.test(mailAddress)){
		return(true);
	}else{
		alert("Le format de votre e-mail est incorrect");
		return(false);
	}
}