function rougeBord(id) {
	//alert(id);
	document.getElementById(id).style.borderColor = '#FF0303';
}

function bleuBord(id) {
	document.getElementById(id).style.borderColor = '#60A8B7';
}

function rougeColor(id) {
	//alert(id);
	document.getElementById(id).style.color = '#FF0303';
}

function noBord(id) {
	//alert(id);
	document.getElementById(id).style.borderColor = '#ABB1B6';
}

function noBord2(id) {
	//alert(id);
	document.getElementById(id).style.borderColor = '#ABB1B6';
}

function noColor(id) {
	document.getElementById(id).style.color = '#000';
}

/* fonction writetag */

function writetag(tag, content) {
	if(typeof(tag) != 'undefined' && typeof(document.getElementById(tag)) != 'undefined'){
		document.getElementById(tag).innerHTML = content;
	}
}


function checkAll(idElement){
	var tab = document.getElementsByTagName("input");
	tot = tab.length;
	for(n=0;n<tot;n++){
		if(tab[n].id.indexOf(idElement+'_') != -1){
			tab[n].checked = !document.getElementById(idElement).checked;
		}
	}
}

function checkOne(idElement){
	var tab = document.getElementsByTagName("input");
	var tot = tab.length;
	var isChecked = false;
	var objet = document.getElementById(idElement);
	for(n=0;n<tot;n++){
		if(tab[n].id.indexOf(objet.id+'_') != -1 && tab[n].checked == true){
			isChecked = true;
			break;
		}
	}
	if (isChecked){
		document.getElementById(idElement).setAttribute('checked','checked');
		document.getElementById(idElement).checked = true;
		document.getElementById('label_'+idElement).className = 'checkbox_checked';
	}
	else{
		document.getElementById(idElement).checked = false;
		document.getElementById('label_'+idElement).className = 'checkbox_unchecked';
	}	
}

/*----------------------------- Identification ----------------------------------*/
var xmlhttp_check_pwd;

function CheckElement(element){
	if (isNaN(eval("document.getElementById('"+element+"');"))){
		return true;
	}else false;
}

/*----------------------------- V&eacute;rification Formulaire ----------------------------------*/
function verif_password(password)
{
    if (password.value.length < 4 ) {    	
    	return false 
    }
    
    if (password.value.match(/(.*[!,@,#,$,%,^,&,*,?,_,~,' ',"'",'"','ÃƒÂ€','ÃƒÂ�','ÃƒÂ‚','ÃƒÂƒ','ÃƒÂ„','ÃƒÂ…','ÃƒÂ ','ÃƒÂ¡','ÃƒÂ¢','ÃƒÂ£','ÃƒÂ¤','ÃƒÂ¥','ÃƒÂ’','ÃƒÂ“','ÃƒÂ”','ÃƒÂ•','ÃƒÂ–','ÃƒÂ˜','ÃƒÂ²','ÃƒÂ³','ÃƒÂ´','ÃƒÂµ','ÃƒÂ¶','ÃƒÂ¸','ÃƒÂˆ','ÃƒÂ‰','ÃƒÂŠ','ÃƒÂ‹','ÃƒÂ¨','ÃƒÂ©','ÃƒÂª','ÃƒÂ«','ÃƒÂ‡','ÃƒÂ§','ÃƒÂŒ','ÃƒÂ�','ÃƒÂŽ','ÃƒÂ�','ÃƒÂ¬','ÃƒÂ­','ÃƒÂ®','ÃƒÂ¯','ÃƒÂ™','ÃƒÂš','ÃƒÂ›','ÃƒÂœ','ÃƒÂ¹','ÃƒÂº','ÃƒÂ»','ÃƒÂ¼','ÃƒÂ¿','ÃƒÂ‘','ÃƒÂ±'])/))  return false
    else return true    
}


function AJAX_pass(){		
	writetag('error_pass', '');
	var champ = document.getElementById('password_o');
			
	result_pass = verif_password(champ);
	if (result_pass == false){
		writetag('error_pass', '<div class="erreur_formu2">4 caract&egrave;res minimum sans espace ni accent. Les majuscules et les miniscules sont diff&eacute;renci&eacute;es.</div>');
	}else{
		writetag('error_pass', '<div class="erreur_formu2" style="background:none;padding-left:0px"><img src="images/un_valid.gif" alt="Mot de passe valide" border="0" /></div>');
	}	
}

function switchpass(password){
	var bas = document.getElementById('bas');
	var moyen = document.getElementById('moyen');
	var haut = document.getElementById('haut');
	if (password=='Bad'){
		bas.style.display='block';
		moyen.style.display='none';
		haut.style.display='none';
		return false;
	}
	if (password=='Good'){
		bas.style.display='none';
		moyen.style.display='block';
		haut.style.display='none';
		return true;
	}
	if (password=='Strong'){
		bas.style.display='none';
		moyen.style.display='none';
		haut.style.display='block';
		return true
	}
}

function getListCheckbox(form,check){
	
	var i = 0;
	for (j=0;j<form.elements.length;j++){
		champ_checkbox = form.elements.item(j);
		//alert(check.name + ' ' + champ_checkbox.name);
		if (champ_checkbox.name == check.name){
			//alert(champ_checkbox.checked);
			if (champ_checkbox.checked == true)return true;
		}
	}
	return false;
}
test_email = true;

function validForm(myform){
	
	checkboxfom = myform;
	ret = true;
	retv2 = true;		
	//alert(document.getElementById('error_main'));	
	
	var tabTag = new Array('error_main', 'error_civilite', 'error_nom', 'error_prenom', 'error_email', 'error_ville', 'error_adresse1', 'error_code_postal', 'error_login', 'error_pass', 'error_confirm_pass', 'error_raison_sociale', 'error_condition', 'error_liste_secteur_activite', 'error_fonction', 'error_liste_service', 'error_titre');
	for(i in tabTag){
		if(document.getElementById(tabTag[i]) != null)
			writetag(tabTag[i], '');
	}	

	fonctionchecked = false;
	universchecked = false;
	conditionChecked = false;
	countunivers = 0;
	
	var list_erreur = '';
	var nom_champ_tmp = '';
	for (k=0;k<myform.elements.length;k++){
		champ = myform.elements.item(k);
		tag = champ.tagName ;
		test = champ.name ;
		current = champ.name;
		//alert(current);
		if (test.indexOf('_o') != -1){
			if(current=='fonction_o'){						
				// noColor('titre_fonction_o');
				}
			else {
				if (current == 'univers_o[]'){
					if (universchecked == false) noColor('titre_'+current);
				}else noColor('titre_'+current);
			}	 
			
			switch (tag){
				case "INPUT" :
					switch(champ.type){
					case "text" : 
						
						if (trim(champ.value).length == 0){
							if (test=="nom_o")				    nom_champ_tmp = 'nom';
							else if (test=="prenom_o")			nom_champ_tmp = 'pr&eacute;nom';										
							else if (test=="email_o")			nom_champ_tmp = 'email';						
							else if (test=="ville_o")	        nom_champ_tmp = 'ville';
							else if (test=="code_postal_o")	        nom_champ_tmp = 'code postal';
							else if (test=="adresse1_o")	        nom_champ_tmp = 'adresse';
							else if (test=="raison_sociale_o")	nom_champ_tmp = 'raison sociale';
							else if (test=="titre_o")			nom_champ_tmp = 'fonction';
							else                                nom_champ_tmp = test.slice(0,test.indexOf('_o'));						
							writetag('error_'+current.replace('_o',''), '<div class="erreur_formu2">Veuillez remplir le champ '+nom_champ_tmp+'</div>');
							rougeBord(current);
							//alert(current);
							rougeColor('titre_'+current);
							if (ret==false)list_erreur = list_erreur+', ';												
							list_erreur = list_erreur+nom_champ_tmp;
							ret = false;
						}else if(test=="email_o"){
							result_mail = verifEmailNL(champ,'',false);
							//alert(result_mail)
							if (result_mail == false){
								rougeBord(current);
								rougeColor('titre_'+current);
								if (ret==false)list_erreur = list_erreur+', ';												
								list_erreur = list_erreur+'email';					
								ret = false;								
							}
						}else if (test=="login_o"){
							result_login = verif_password(champ);
							if (result_login == false){	
								if (ret==false)list_erreur = list_erreur+', ';												
								list_erreur = list_erreur+'identifiant';
								writetag('error_login', '<div class="erreur_formu2">Le mot de passe doit être sans espaces ni accents. Les majuscules et les miniscules sont diff&eacute;renci&eacute;es.'+'</div>');
								rougeBord(current);
								rougeColor('titre_'+current);
								ret = false;
							}
						}
						break;
					case "password" :
						if (champ.value.length == 0){
							if (test=="password_o"){
								nom_champ_tmp = 'mot de passe';
								writetag('error_pass', '<div class="erreur_formu2">Veuillez remplir le champ '+nom_champ_tmp+'</div>');
							}
							if (test=="confirm_pass_o"){
								nom_champ_tmp = 'confirmation mot de passe';
								writetag('error_confirm_pass', '<div class="erreur_formu2">Veuillez remplir le champ '+nom_champ_tmp+'</div>');
							}
							rougeBord(current);
							rougeColor('titre_'+current);
							if (ret==false)list_erreur = list_erreur+', ';												
							list_erreur = list_erreur+nom_champ_tmp;
							ret = false;
						}else if (test=="password_o"){
							result_pass = verif_password(champ);
							if (result_pass == false){
								if (ret==false)list_erreur = list_erreur+', ';												
								list_erreur = list_erreur+'mot de passe';													
								writetag('error_pass', '<div class="erreur_formu2">> Le mot de passe doit être sans espaces ni accents</div>');
								rougeBord(current);
								rougeColor('titre_'+ current);
								ret = false;
							}else{
								resultpass = passwordStrength(champ.value);
								result_pass2 = switchpass(resultpass);
								if (result_pass2 == false){
									if (ret==false)list_erreur = list_erreur+', ';												
									list_erreur = list_erreur+'mot de passe';														
									writetag('error_pass', '<div class="erreur_formu2">niveau de protection trop bas'+'</div>');
									rougeBord(current);
									rougeColor('titre_'+current);
									ret = false;
								}
							}
						}else if (test=="confirm_pass_o"){
							if (champ.value != document.getElementById('password_o').value){
								if (ret == false)list_erreur = list_erreur+', ';												
								list_erreur = list_erreur+'confirmation du mot de passe';
																			
								writetag('error_confirm_pass', 	'<div class="erreur_formu2">Veuillez rentrer un mot de passe identique</div>');		
								rougeBord(current);
								rougeColor('titre_'+current);
								ret = false;
							}
						}

						break;
					case "radio":
						if (fonctionchecked ==false){
							if (test=="fonction_o"){
								champ = document.getElementsByName("fonction_o");
								nom_champ_tmp = "statut";
							}
							
							for (i = 0;i<champ.length;i++){
								if (champ[i].value != "") {
								if (champ[i].checked){
									noColor('titre_fonction_o');	
									break;
									}
								}
							}
							if (i == champ.length) {
								if (ret==false)list_erreur = list_erreur+', ';												
								list_erreur = list_erreur+nom_champ_tmp;						
								writetag('error_'+current.replace('_o',''), '<div class="erreur_formu2">Veuillez s&eacute;lectionner votre '+nom_champ_tmp+'</div>');
								// rougeBord(current);
								
								// alert(current);
								if(current=='fonction_o'){
									
									rougeColor('titre_fonction_o');
									} 
								else {
									rougeColor('titre_'+current);
									}
								ret = false;
							}
						fonctionchecked = true;
						}
						
						break;
					case "checkbox":
						if (universchecked ==false){
							if (test=="univers_o[]"){
								current = "univers_o";
								nom_champ_tmp = "univers";
								//alert (getListCheckbox(checkboxfom,'univers_o[]'));
								if (getListCheckbox(checkboxfom,champ) == false){
									if (ret==false)list_erreur = list_erreur+', ';
									list_erreur = list_erreur + nom_champ_tmp;						
									writetag('error_univers', '<div class="erreur_formu2">Veuillez s&eacute;lectionner votre univers</div>');
									//rougeBord(current);
									rougeColor('titre_univers_o');
									ret = false;												
									universchecked = true;
								}
							}
						}
/* ---------------------------- */

						if (conditionChecked == false){
							if (test=="condition_o"){
								current = "condition_o";
								nom_champ_tmp = "conditions g&eacute;n&eacute;rales";
								if (getListCheckbox(checkboxfom,champ) == false){
									if (ret==false)list_erreur = list_erreur+', ';
									list_erreur = list_erreur + nom_champ_tmp;						
									writetag('error_condition', '<div class="erreur_formu2">Vous devez accepter les conditions g&eacute;n&eacute;rales</div>');
									//rougeBord(current);
									rougeColor('condition_o');
									ret = false;												
									universchecked = true;
								}
							}
						}

/* ----------------------------- */
						
						
						
						break;
					}
					break;					
				case  "SELECT" :
					if(champ.options[champ.selectedIndex].value =='' || champ.options[champ.selectedIndex].value =='?'){						
						if (test=="civilite_o")	nom_champ_tmp = 'civilit&eacute;';
						if (test=="liste_service_o")		nom_champ_tmp = 'service';
						if (test=="liste_secteur_activite_o")		nom_champ_tmp = 'secteur d\'activit&eacute;';
						if (ret==false)list_erreur = list_erreur+', ';												
						list_erreur = list_erreur + nom_champ_tmp;						
						writetag('error_'+current.replace('_o',''), '<div class="erreur_formu2">Veuillez s&eacute;lectionner votre '+nom_champ_tmp+'</div>');
						rougeBord(current);
						rougeColor('titre_'+current);
						ret = false;
					}
					break;
				
			}
		}

		if (ret==false && retv2 == true){
			if(list_erreur != '') {
				if(list_erreur.indexOf(",") > 0){
					writetag('error_main', '<div id="error_main_css">Veuillez remplir correctement les champs '+list_erreur+'.</div>');
				}else{
					writetag('error_main', '<div id="error_main_css">Veuillez remplir correctement le champ '+list_erreur+'.</div>');
				}
			}else{
				writetag('error_main', '<div id="error_main_css">Veuillez remplir correctement les champs.</div>');
			}
			window.scrollTo(100,0);
		}
	
		
		if (test=="newsletter" && ret == true){
			if (!(document.getElementById('id_newsletter1').checked || document.getElementById('id_newsletter2').checked)) {
				writetag('error_newsletter', '<div id="error_main_css">Veuillez choisir de recevoir ou non la newsletter LSA sur votre adresse e-mail!</div>') ;
				window.scrollTo(0,0);
				ret = false;
				retv2 = false;
			}
		}
		
		if (test=="accepteconditions" && ret == true){
			if (document.getElementById("accepteconditions").checked == false){
				writetag('error_main', '<div id="error_main_css">Vous devez accepter les conditions g&eacute;n&eacute;rales d\'utilisation pour vous inscrire.</div>');
				window.scrollTo(0,0);
				ret = false;
				retv2 = false;
			}
		}
	}		
	return ret;
}

/*-------------------------------------fonctions AJAX------------------------------------*/

function createXMLHttpRequest(){
	var xmlhttp;
	
	if (window.XMLHttpRequest) {
		xmlhttp = new XMLHttpRequest();
		// evite un Bug du navigateur Safari :
		if (xmlhttp.overrideMimeType) xmlhttp.overrideMimeType("text/xml");
	}
	else if (window.ActiveXObject){
		try {
			xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
		} 
		catch (e){   
			try {
				xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e){return false;}
		}
	}
	return xmlhttp;  
}


function check_emailNL() {
	if (xmlhttp_check_email.readyState==4) {
		if (xmlhttp_check_email.status==200) {
		
			rep = xmlhttp_check_email.responseText;	
			if (rep == 1){
				writetag('error_email', '<div class="erreur_formu2" style="background:none;padding-left:0px"><img src="images/un_valid.gif" alt="Email valide" /></div>');
				test_email = true;
				noBord('email_o')
				noColor('titre_email_o');
				
			}else if ((rep == 0) || (rep == -1)){
				writetag('error_email', '<div class="erreur_formu2">Votre adresse email est invalide</div>');			
				test_email = false;			
				rougeBord('email_o');
				rougeColor('titre_email_o');
		
			}else if (rep == 2){
				writetag('error_email', '<div class="erreur_formu2">Email d&eacute;j&agrave; utilis&eacute;. Connectez vous avec votre email en <a href="connexion" style="color:#0000FF;">cliquant ici</a>.<br/>Mot de passe perdu? <a href="identifiants" style="color:#0000FF;">Cliquez ici</a>.</div>');			
				test_email = false;			
				rougeBord('email_o');
				rougeColor('titre_email_o');
		
			}
			
		} 
		else {
			alert("Problem retrieving XML data on check_emailNL(),statut : "+xmlhttp_check_email.status);
			test_email = false;
		}
	}
	else{
		writetag('error_email', '<div class="erreur_formu2" style="background:none;padding-left:0px"><img src=\"images/loading.gif\" alt=\"En cours\" width=\"15\" />En cours...</div>');
		test_email = false;
	}
}

function trim(val) {
	var retour = ""
	for(i=0;i < val.length;i++)
		if(val.charAt(i) != " ") {
			retour += val.charAt(i)
		}
	return retour
}

var xmlhttp_check_email;

function getTargetUrl(str){
	var chaine = window.location.href;
	if( chaine.indexOf(str,0)==-1) {
		return '/index.php';
	}
	else {
		return 'index.php';
	} 

}

function verifEmailNL(email,idPerdu,mode) {
	if(typeof(document.getElementById(email)) != 'undefined'){
		email.value = trim(email.value);
		writetag('error_email', '');
		noColor('titre_email_o');
		
		if (email.value.length == 0) {		
			return false;		
		}
	
		xmlhttp_check_email = createXMLHttpRequest();
		if (xmlhttp_check_email!=null) {
			if(mode == true){
				xmlhttp_check_email.onreadystatechange = check_emailNL;
			}
			if(document.getElementById('id') != null)
				id = '&id='+document.getElementById('id').value;
			else
				id = '';
			xmlhttp_check_email.open("GET",'?p=1&sp=4&email='+escape(email.value)+id,mode);
			xmlhttp_check_email.send(null);
			if (mode == false) {
				check_emailNL();
				if (document.getElementById('error_email').innerHTML.search('invalide')> 0)return false;
			}
		}
		
		var modele = /^[a-z0-9\-_\.]+@[a-z0-9.-]{2,}[.][a-z]{2,5}$/i;
		if (!modele.test(email.value)){
			return false;
		}
		//alert(test_email);
		return test_email;
	}
	else return false;
}

var xmlHttp;
var current_id_focus = 0;
// Ligne non selectionnee
var background_color_no_foc = '#FFFFFF';
var color_text = '#FFFFFF';
// Ligne selectionnee
var background_color_foc = '#EF7E38';
var color_no_text = '#000000';

function showHint(str) {
	if (str.lenght > 2 )
	if (xmlHttp != null) {
		xmlHttp.abort();
		xmlHttp = null;
	}

	xmlHttp=GetXmlHttpObject();
	if (xmlHttp==null) {
		alert ("Browser does not support HTTP Request");
		return;
	} 
	var url= "index.php?p=5&sp=3&mot="+str;
	
	xmlHttp.onreadystatechange=stateChanged;
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
} 

function stateChanged() { 
	if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete") {
 		document.getElementById("list_fonctions").innerHTML=xmlHttp.responseText;
		document.getElementById("list_fonctions").style.display='block';
	}
}

function GetXmlHttpObject() {
	var xmlHttp=null;
	try {
		// Firefox, Opera 8.0+, Safari
		xmlHttp=new XMLHttpRequest();
	}
	catch (e) {
	// Internet Explorer
		try {
			xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e) {
			xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
		}
	}
	return xmlHttp;
}

 function give_focus_style(id,control)
{
	if ( id != 0 && id != current_id_focus && id != null)
	{
		
		var input_hidden = document.getElementById('list'+id);
		input_hidden.style.backgroundColor = background_color_foc;
		input_hidden.style.color = color_text;
		input_hidden.style.cursor = 'default';
	
	}
	if ( control == 1 && current_id_focus != null)
	{
		//alert("current"+id+"ancien"+current_id_focus);
		current_id_focus = id;
		loose_focus_style(current_id_focus);

	}
}

/**
  *		Permet de remettre le style normal
  *		
  *		@ param : id => id de l'input text a desactiver le style pointer
  */
function loose_focus_style(id){
	if ( current_id_focus != 0 ){
			var input_hidden = document.getElementById('list'+id);
			input_hidden.style.backgroundColor = background_color_no_foc;
			input_hidden.style.color = color_no_text;
	}
}

function hide_list(){
	document.getElementById('list_fonctions').style.display='none';
}

function validFormChoixNL() {
	var erreur = false;

	/* Check si choixAbo est choisi ou pas */
	document.getElementById('error_general4').style.display='none';
	document.getElementById('error_general5').style.display='none';
	
	if (document.getElementById('choixAbo0').checked == false && document.getElementById('choixAbo1').checked == false) {
		document.getElementById('error_general3').style.display = 'block';
		erreur = true;
	} else {
		document.getElementById('error_general3').style.display='none';
	}

	/* Vérification de la validité du n° d'abonné */

	if (document.getElementById('choixAbo1').checked == true) {
		var no_abonne = document.getElementById('no_abonne').value;
		if (no_abonne.length == 0) {
			document.getElementById('error_general4').style.display='block';
			erreur = true;
		}/* else {
			var modele = /^[a-zA-Z]\d{7}$/i;
			if (!modele.test(no_abonne)) {
				document.getElementById('error_general4').style.display='block';
				erreur = true;
			} else {
				document.getElementById('error_general4').style.display='hidden';
			}
			
		}*/
		
		xmlhttp_send_access_code = createXMLHttpRequest();
		xmlhttp_send_access_code.open("GET", getTargetUrl(window.targetUrlDomain)+'/?p=1&sp=2&no_abonne='+escape(no_abonne), false);
		xmlhttp_send_access_code.send(null);
	
	
		if (xmlhttp_send_access_code.status == 200) {
			if (xmlhttp_send_access_code.responseText == 1) {
			}			
			else if (xmlhttp_send_access_code.responseText == 0) {
				document.getElementById('error_general4').style.display='block';
				erreur = true;
			} else  if (xmlhttp_send_access_code.responseText == -1 || xmlhttp_send_access_code.responseText == 2) {
				document.getElementById('error_general5').style.display='block';
				erreur = true;
			}
		} else {
			alert("Problem retrieving XML data on check_emailNL(),statut : " + xmlhttp_send_access_code.status);
		}

	}
	
	/* Vérification du choix d'au moins 1 NL */
	choixNL = false;
	tab = document.getElementsByTagName('input');
	for(i in tab){
		if(tab[i].type == 'checkbox' && tab[i].value.indexOf('news') != -1 && tab[i].checked == true){
			choixNL = true;
			break;
		}
	}
	if(choixNL == false){
		document.getElementById('error_general2').style.display='block';
		erreur = true;
	}
	
	if (erreur == true) return false;
	document.getElementById('form_submit').submit();
	
	
}

function loadCountryState(id_country, id_etat) {
	if (id_etat != null) {
		var req_etat = "&id_etat=" + id_etat;
	} else {
		var req_etat = "";
	}

	xmlhttp_lcs = createXMLHttpRequest();
	if (xmlhttp_lcs!=null) {	
			xmlhttp_lcs.onreadystatechange = displayCountryState;
			xmlhttp_lcs.open("GET", getTargetUrl(window.targetUrlDomain)+"/?p=4&sp=4&id_country=" + id_country + req_etat, true);
			xmlhttp_lcs.send(null);
	}
}

function displayCountryState() {
	if (xmlhttp_lcs.readyState == 4) {
		if (xmlhttp_lcs.status == 200) {
			writetag('country_state_list', xmlhttp_lcs.responseText);
			if (xmlhttp_lcs.responseText!='') {
			document.getElementById('country_state_list').style.display = 'block';
			} else {
			document.getElementById('country_state_list').style.display = 'none';
			}
		} 
		else {
			/*alert("Problem retrieving XML data on ***,statut : "+xmlhttp_lcs.status);*/
		}
	}
	else {
		writetag('country_state_list', '<img src=\"images/loading.gif\" alt=\"En cours\" width=\"15\" />En cours...');
	}
}
