/**
 * Fonctions javascript de controle des formulaires
 * 
 * @author David Trannoy
 * @copyright Technimedia
 */


function marquer_champ(champ){
	champ.style.border = '1px solid red';
}



function isMailValide (champ) {
	var str = champ.value;
	var regexp = new RegExp("^[a-zA-Z0-9_\\-\\.]{2,}@[a-zA-Z0-9\\-_\\.]{2,}\\.[a-zA-Z]{2,4}$", "g");

	if(!regexp.test(str)) {
		return false;
	}
	
	return true;
}

/**
 * Controle du formulaire de récupération du mot de passe
 * @param form
 * @return
 */
function recup_mdp_control(form) {
	if(form.elements['mail'].value=="") {
		alert("Veuillez saisir une adresse email.");
		return false;
	}
	
	if(!isMailValide(form.elements['mail'])){
		alert("L'adresse email saisie n'est pas valide.");
		return false;
	}
	
	return true;
}

/**
 * Controle du formulaire de login
 * @param form
 * @return
 */
function login_control(form) {
	if(form.elements['mail'].value=="" || form.elements['mdp'].value=="") {
		alert("Veuillez renseigner tous les champs obligatoires SVP.");
		return false;
	}
	
	if(!isMailValide(form.elements['mail'])){
		alert("L'adresse email saisie n'est pas valide.");
		return false;
	}
	
	return true;
}

/**
 * 
 * @param id
 * @return
 */



function client_control(form) {
	if(!controle_form(form.elements['mail'])){
		return false;
	}
	
	/*
	if(!isMailValide(form.elements['mail'])){
		marquer_champ(form.elements['mail']);
		alert("L'adresse email saisie n'est pas valide.");		
		return false;
	} else {
		form.elements['mail'].style.border = '';
	}*/
	if(form.elements['mail'].value != form.elements['mail2'].value) {
		marquer_champ(form.elements['mail']);
		marquer_champ(form.elements['mail2']);
		alert("Les emails saisis ne sont pas identiques.");
		return false;
	} else {
		form.elements['mail'].style.border = '';
		form.elements['mail2'].style.border = '';
	}
	if(form.elements['mdp'].value != form.elements['confirm'].value) {
		marquer_champ(form.elements['mdp']);
		marquer_champ(form.elements['confirm']);
		alert("Les mots de passe saisis ne sont pas identiques.");
		return false;
	} else {
		form.elements['mdp'].style.border = '';
		form.elements['confirm'].style.border = '';
	}
	
	if(form.elements['tel'].value=="" && form.elements['mobile'].value=="") {
		marquer_champ(form.elements['tel']);
		marquer_champ(form.elements['mobile']);
		alert("Vous devez saisir au minimum un numéro de téléphone (fixe ou mobile).");
		return false;
	} else {
		form.elements['tel'].style.border = '';
		form.elements['mobile'].style.border = '';
	}
	
	
	return true;
			
}


/**
 * 
 * @param id
 * @return
 */

function pro_control(form) {
	if(form.elements['raison_soc'].value==""
		||form.elements['prenom'].value==""
		|| form.elements['nom'].value==""
		|| form.elements['adresse1'].value==""
		|| form.elements['cp'].value==""
		|| form.elements['ville'].value==""
		|| form.elements['siret'].value==""
		|| form.elements['tva_intra'].value==""
		|| form.elements['ape'].value==""
		|| (form.elements['tel'].value=="" && form.elements['mobile'].value=="") 
		|| form.elements['mail'].value==""
		|| form.elements['mdp'].value==""
		|| form.elements['confirm'].value==""
		) {
		alert("Veuillez renseigner tous les champs obligatoires SVP.");
		return false;
	}
	
	if(!isMailValide(form.elements['mail'])){
		marquer_champ(form.elements['mail']);
		alert("L'adresse email saisie n'est pas valide.");		
		return false;
	} else {
		form.elements['mail'].style.border = '';
	}
	
	if(form.elements['mdp'].value != form.elements['confirm'].value) {
		marquer_champ(form.elements['mdp']);
		marquer_champ(form.elements['confirm']);
		alert("Les mots de passe saisis ne sont pas identiques.");
		return false;
	} else {
		form.elements['mdp'].style.border = '';
		form.elements['confirm'].style.border = '';
	}
	
	return true;
			
}



/**
 * Javascript de controle pour le middle office
 */

function client_control_modif(form) {
	if(form.elements['prenom'].value==""
		|| form.elements['nom'].value==""
		|| form.elements['adresse1'].value==""
		|| form.elements['cp'].value==""
		|| form.elements['ville'].value==""
		|| (form.elements['tel'].value=="" && form.elements['mobile'].value=="") 
		|| form.elements['mail'].value==""
		) {
		alert("Veuillez renseigner tous les champs obligatoires SVP.");
		return false;
	}
	
	if(!isMailValide(form.elements['mail'])){
		marquer_champ(form.elements['mail']);
		alert("L'adresse email saisie n'est pas valide.");		
		return false;
	} else {
		form.elements['mail'].style.border = '';
	}
	
	return true;
}


function client_control_modif_mdp(form) {
	
	if(form.elements['old_mdp'].value==""
		|| form.elements['mdp'].value==""
		|| form.elements['confirm'].value==""
		) {
		
		alert("Veuillez renseigner tous les champs obligatoires SVP.");
		return false;
		
	}
	
	if(form.elements['mdp'].value != form.elements['confirm'].value) {
		marquer_champ(form.elements['mdp']);
		marquer_champ(form.elements['confirm']);
		alert("Les mots de passe saisis ne sont pas identiques.");
		return false;
	} else {
		form.elements['mdp'].style.border = '';
		form.elements['confirm'].style.border = '';
	}
	
	return true;
}


function controle_certificat(form) {
	if(form.elements['marque'].value==""
		|| form.elements['date'].value==""
		) {
		
		alert("Veuillez renseigner tous les champs obligatoires SVP.");
		return false;		
	}	
	
	/*
	 * Controle des champs d'adresse 
	 * 	lorsqu'ils sont affichés
	 */
	if((form.elements['select_demarches'].value==22	|| form.elements['select_demarches'].value==21)
		&& 
		( form.elements['nom'].value==""
		  || form.elements['adresse1'].value==""
		  || form.elements['cp'].value==""
		  || form.elements['ville'].value==""			
		)) {
		
		alert("Veuillez renseigner tous les champs obligatoires SVP.");
		return false;
		
	}
	
	
	
	return true;
	
}

function getParent(child,tag) {
  if(child != null) {
	  var parent = child.parentNode;
	  if(parent != null) {
		  while(parent!=null && parent.tagName != tag ) {
			  parent = parent.parentNode;
		  }
	  }
	  return parent;
  }
  return null;
}

/**
 * Script de controle de formulaire,
 * 
 * tous les champs dont l'id commence par required_ sont obligatoires
 * @return
 */

function controle_form(email) {
	var retour = true;
	
	/**
	 * Parcours des éléments INPUT de la page
	 */
	var listOfInput = document.getElementsByTagName('INPUT');
	
	var numberOfInput = listOfInput.length;
	for(var i=0;i<numberOfInput;i++){		
		listOfInput[i].style.border = "";
		if(listOfInput[i].id.substr(0,9) == 'required_') {
			var div_parent = getParent(listOfInput[i],'DIV');		
			if(listOfInput[i].value=="" && div_parent != null && div_parent.style.display != 'none') {		
				listOfInput[i].style.border = "1px red solid";			
				retour = false;
			}
		}
	}
	
	/**
	 * Parcours des éléments TEXTAREA de la page
	 */
	listOfInput = document.getElementsByTagName('TEXTAREA');
	
	numberOfInput = listOfInput.length;
	for(var j=0;j<numberOfInput;j++){		
		listOfInput[j].style.border = "";
		
		var div_parent = getParent(listOfInput[j],'DIV');
		if(listOfInput[j].id.substr(0,9) == 'required_' && listOfInput[j].value=="" && div_parent != null && div_parent.style.display != 'none') {
			listOfInput[j].style.border = "1px red solid";

			retour = false;
		}
	}
	
	if(!retour) {
		alert("Veuillez remplir tous les champs requis, SVP.");
		return false;
	}
	
	if(email && email != null) {		
		if(!isMailValide(email)){
			email.style.border = "1px red solid";
			alert("L'adresse email saisie n'est pas valide.");
			return false;
		}
	}
	


	
	return true;
}
