function verif_password(password)
{
    if (password.value.length < 4 ) {    	
    	return false 
    }
    
    if (password.value.match(/(.*[!,@,#,$,%,^,&,*,?,_,~,' ',"'",'"','�','�','�','�','�','�','�','�','�','�','�','�','�','�','�','�','�','�','�','�','�','�','�','�','�','�','�','�','�','�','�','�','�','�','�','�','�','�','�','�','�','�','�','�','�','�','�','�','�','�','�','�','�'])/))  return false
    else return true    
}

function validForm(myform){
	
	ret = true;
	retv2 = true;			
	writetag('error_nom', '');
	writetag('error_prenom', '');
	writetag('error_adresse', '');
	writetag('error_cp', '');
	writetag('error_ville', '');
	writetag('error_pays', '');
	writetag('error_email', '');
	// writetag('error_login', '');
	// writetag('error_pass', '');
	// writetag('error_confirm_pass', '');
	writetag('error_cp_f', '');
	writetag('error_siret', '');
	writetag('error_naf', '');
	writetag('error_email_f', '');
	writetag('error_main', '');
	writetag('error_professionel', '');
	writetag('error_raison sociale', '');
	
	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;
		if (test.indexOf('_o')> 0){		
			if(test!="login_o" && test!="pass_o" && test!="confirm_pass_o" ) { 	
				noColor('titre_'+current);
				}
			switch (tag){
				case "INPUT" :
					if (champ.value.length == 0){
						if (test=="nom_o")		nom_champ_tmp = 'nom';
						if (test=="prenom_o")	nom_champ_tmp = 'pr&eacute;nom';										
						if (test=="adresse_o")	nom_champ_tmp = 'adresse';
						if (test=="cp_o")		nom_champ_tmp = 'code postal';
						if (test=="ville_o")	nom_champ_tmp = 'ville';						
						if (test=="email_o")	nom_champ_tmp = 'email';						
						if (test=="login_o")	nom_champ_tmp = 'identifiant';
						if (test=="pass_o")		nom_champ_tmp = 'mot de passe';
						if (test=="confirm_pass_o")	nom_champ_tmp = 'confirmation mot de passe';						
						
						writetag('error_'+current.replace('_o',''), '<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=="email_o"){
						result_mail = verifEmail(champ,'',false);
						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=="pass_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">> 3 caract�res, sans accent et sans espace'+'</div>');
						//	rougeBord(current);
						//	rougeColor('titre_'+current);
						//	ret = false;
						}else{
						resultpass = passwordStrength(champ.value);
						// result_pass2 = switchpass(resultpass);
						
						result_pass2 = true; 
						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=="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">> 3 caract�res, sans accent et sans espace'+'</div>');
					//		rougeBord(current);
					//		rougeColor('titre_'+current);
					//		ret = false;
					}
					}
					break;					
				case  "SELECT" :
					if(champ.options[champ.selectedIndex].value =='' || champ.options[champ.selectedIndex].value =='?'){						
						if (test=="civ_o")	nom_champ_tmp = 'civilit&eacute;';
						if (test=="pays_o") nom_champ_tmp = 'pays';						
						if (ret==false)list_erreur = list_erreur+', ';												
						list_erreur = list_erreur+nom_champ_tmp;						
						writetag('error_'+current.replace('_o',''), '<div class="erreur_formu2">Veuillez remplir le champs '+nom_champ_tmp+'</div>');
						rougeBord(current);
						rougeColor('titre_'+current);
						ret = false;
					}
					break;				
			}
		}
		if (test=="cp_o"){
			if (document.getElementById('pays_o').value == 'FRA' ){
				if (champ.value.length > 0){
					if (isNaN(champ.value)){
						if (ret==false)list_erreur = list_erreur+', ';												
						list_erreur = list_erreur+'code postal';
						writetag('error_cp', '<div class="erreur_formu2">Votre code postal est invalide</div>');
						rougeBord(current);
						rougeColor('titre_'+current);
						ret = false;
					}else if(champ.value.length != '5'){
						if (ret==false)list_erreur = list_erreur+', ';												
						list_erreur = list_erreur+'code postal';
						writetag('error_cp', '<div class="erreur_formu2">Votre code postal est invalide</div>');
						rougeBord(current);
						rougeColor('titre_'+current);
						ret = false;			
					}
				}
			}
		}
		
		
		if (test=="cp_f"){
			noColor('titre_'+current);
			if (document.getElementById('pays_f').value == 'FRA' ){
				if (champ.value.length > 0){
					if (isNaN(champ.value)){
						if (ret==false)list_erreur = list_erreur+', ';												
						list_erreur = list_erreur+'code postal de facturation';
						writetag('error_cp_f', '<div class="erreur_formu2">Votre code postal est invalide</div>');
						rougeBord(current);
						rougeColor('titre_'+current);
						ret = false;
					}else if(champ.value.length != '5'){
						if (ret==false)list_erreur = list_erreur+', ';												
						list_erreur = list_erreur+'code postal de facturation';
						writetag('error_cp_f', '<div class="erreur_formu2">Votre code postal est invalide</div>');
						rougeBord(current);
						rougeColor('titre_'+current);
						ret = false;			
					}
				}
			}
		}
		
		if (test=="siret"){
			noColor('titre_'+current);
			if (champ.value.length > 0){
				if (isNaN(champ.value)){
					if (ret==false)list_erreur = list_erreur+', ';												
					list_erreur = list_erreur+'N&deg;Siret';						
					writetag('error_siret', '<div class="erreur_formu2">Votre N&deg;Siret est invalide</div>');
					rougeBord(current);
					rougeColor('titre_'+current);
					ret = false;
				}else if(champ.value.length != '14'){
					if (ret==false)list_erreur = list_erreur+', ';												
					list_erreur = list_erreur+'N&deg;Siret';						
					writetag('error_siret', '<div class="erreur_formu2">Votre N&deg;Siret est invalide</div>');
					rougeBord(current);
					rougeColor('titre_'+current);
					ret = false;			
				}
			}
		}
		
		if (test=="naf"){	
			noColor('titre_'+current);	
			if (champ.value.length > 0){
				if(champ.value.length != '4'){
					if (ret==false)list_erreur = list_erreur+', ';												
					list_erreur = list_erreur+'code NAF';						
					writetag('error_naf', '<div class="erreur_formu2">Votre code NAF est invalide</div>');
					rougeBord(current);
					rougeColor('titre_'+current);
					ret = false;			
				}
			}
		}
		
		if (test=="email_f"){
			noColor('titre_'+current);
			if (champ.value.length > 0){
				result_mail = verifEmail(champ,'',false);
				if (result_mail == true){
					if (document.getElementById('error_email_f').innerHTML.search('invalide')> 0)result_mail = false;
				}
				if (result_mail == false){	
					if (ret==false)list_erreur = list_erreur+', ';												
					list_erreur = list_erreur+'email de facturation';	
					rougeBord(current);
					rougeColor('titre_'+current);													
					ret = false;								
				}
			}
		}
				
		if (test=="confirm_pass_o"){
		
		//	if (champ.value.length > 0){
		//		if (champ.value != document.getElementById('pass_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;
		//		}
		//	}
		}
		
		if (test=="professionel"){
		noColor('titre_'+current);
				if (!(document.getElementById('professionel1').checked || document.getElementById('professionel2').checked)) {
					if(champ.id =="professionel2"){
						if(list_erreur != ""){
							list_erreur = list_erreur+', ';	
						}											
						list_erreur = list_erreur+'type d\'adresse';
					}	
					writetag('error_professionel','<div class="erreur_formu2">Veuillez cocher le type d\'adresse.</div>');		
					rougeColor('titre_'+current);
					ret = false;
				}
		}
		if (test=="raison_sociale"){
			noColor('titre_'+current);
			if(document.getElementById('professionel1').checked && document.getElementById('raison_sociale').value.length == 0){
				if(list_erreur != ""){
				list_erreur = list_erreur+', ';
				}												
				list_erreur = list_erreur+'raison sociale';
				
				writetag('error_raison sociale','<div class="erreur_formu2">Veuillez remplir le champ raison sociale.</div>');		
				rougeColor('titre_'+current);
				ret = false;
			}
		}
		
		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(0,0);
		}
	
		/*if (test=="restriction" && ret == true){
			if (!(document.getElementById('id_restriction1').checked || document.getElementById('id_restriction2').checked)) {
				writetag('error_main', '<div id="error_main_css">Veuillez choisir de recevoir ou non des offres promotionnelles 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;
			}
		}
	}
	//if (checkGodFatherChilds) ret &= checkGodFatherChilds();
	return ret;
}

function disable(disable,enable){
	for (i=0;i< document.forms.form_submit.elements.length ;i++){
		if(document.forms.form_submit.elements[i].id.indexOf(disable) > 0){
			document.forms.form_submit.elements[i].disabled = true;
		}
		if(document.forms.form_submit.elements[i].id.indexOf(enable) > 0){
			document.forms.form_submit.elements[i].disabled = false;
		}
	
	}
}


function rendObligatoire(typeAddress){
	typeAddressValue = typeAddress.value;
	if (typeAddressValue == 0 ){
		noColor('titre_raison_sociale');
		writetag('error_raison sociale', '');
		document.getElementById('raisonSocial').style.display='none';
	
	}else if (typeAddressValue == 1 ){
		document.getElementById('raisonSocial').style.display='inline';
		
	}

}


function affichePort(listepays){
	if (listepays.value !=  'FRA' && listepays.value != 'FXX' ){
		writetag('fraisPort', '+ frais de port &eacute;ventuels');
	}else{
		writetag('fraisPort', '');
	}
}


function multi_liste_submit(id_change){
	//id indice pair, libele indice impair
	var tabService = new Array('-2','-- Pr�cisez de votre fonction --','-1','Autre','1','Acheteur','3','Assistante Commerciale','4','Assistante Marketing','12','Responsable Juridique','13','Commercial','16','Directeur Commercial/Ventes','20','Directeur des Achats','21','Directeur des ressources humaines','24','Directeur du marketing','32','Documentation','35','Directeur g�n�ral','36','Pr�sident directeur g�n�ral','44','Responsable marketing','50','Responsable informatique/bureautique','51','Responsable des ressources humaines','81','Responsable des achats','82','Assistante de direction','86','Responsable qualit�','87','Directeur qualit�','90','Responsable logistique','91','Directeur logistique','92','Ing�nieur','100','Directeur production/fabrication/atelier','101','Responsable du bureau d\'�tudes','107','Directeur du bureau d\'�tudes','108','Responsable production/fabrication/atelier','117','Etudiant (ENS. SUP.)','118','Enseignant','120','Gerant','121','Proprietaire','124','Directeur �tablissement/usine','128','Directeur informatique/bureautique','130','Responsable �tablissement/usine','131','Directeur communication/publicit�','132','Responsable communication/publicit�','133','Assistante communication','136','Directeur juridique','137','Directeur administratif et financier','140','Directeur services g�n�raux','141','Responsable services g�n�raux','145','Agent g�n�ral','146','Courtier','147','Banque','153','Directeur de produit','154','Chef de produit','156','Chef de marche','157','Charge d\'�tudes','158','Responsable commercial/ventes','161','Directeur r�gional/zone','162','Responsable r�gional/zone','163','Directeur d\'agence/antenne','164','Responsable d\'agence/antenne','165','Directeur technico-commercial','166','Responsable technico-commercial','167','Directeur de client�le','168','Responsable de client�le','169','Responsable administratif et financier','170','Directeur administratif','171','Responsable administratif','172','Directeur financier','173','Responsable Financier','174','Directeur gestion/comptabilit�','175','Responsable gestion/comptabilit�','178','Directeur de la tr�sorerie/recouvrement','179','Responsable de la tr�sorerie/recouvrement','182','Directeur technique','183','Responsable technique','188','Directeur de la maintenance','189','Responsable de la maintenance','197','Directeur des op�rations/travaux','198','Responsable des op�rations/travaux','201','Responsable de l\'entretien','202','Directeur de la s�curit�','203','Responsable de la s�curit�','204','Directeur environnement','205','Responsable environnement','206','Directeur �tudes/d�veloppement/ing�nieur','207','Responsable �tudes/d�veloppement/ing�nieur','210','Directeur de la recherche/innovation','212','Responsable de la recherche/innovation','217','Directeur de projet','218','Chef de projet','219','Directeur de la sous-traitante','220','Responsable de la sous-traitante','223','Directeur scientifique','224','Responsable scientifique','227','Directeur de la diversification','228','Responsable de la diversification','229','Directeur m�thodes/normalisation','230','Responsable m�thodes/normalisation','233','Directeur des syst�mes d\'information','234','Responsable des syst�mes d\'information','236','Responsable  Internet/Intranet','243','Directeur Internet/Intranet','249','Directeur de d�partement/d�cision/services','251','Directeur central','252','Responsable central','253','Directeur de cabinet','255','Directeur du personnel','256','Responsable du personnel','257','Directeur organisation/planning','258','Responsable organisation/planning','259','Directeur du  recrutement','260','Responsable du  recrutement','261','Directeur de la formation','262','Responsable de la formation','263','Directeur de l\'administration du personnel','264','Responsable de l\'administration du personnel','265','Directeur des approvisionnements','266','Responsable des approvisionnements','267','Directeur de la distribution','268','Responsable de la distribution','269','Directeur des stocks','270','Responsable des stocks','271','Directeur conditionnement/emballage','272','Responsable conditionnement/emballage','273','Directeur du transport','274','Responsable  du transport','275','Pr�sident du conseil d\'administration','276','Administrateur','277','Pr�sident du conseil de surveillance','278','Membre du conseil de surveillance','279','Pr�sident du directoire','280','Pr�sident','281','Membre comite direction','284','Directeur des relations publiques','285','Responsable des relations publiques','286','Directeur de la promotion des ventes','287','Responsable de la promotion des ventes','288','Directeur cr�ation/artistique','289','Responsable cr�ation/artistique','290','Directeur international/export','291','Responsable international/export','292','Directeur import','293','Responsable import','298','Directeur mat�riel','299','Responsable mat�riel','300','Agent de voyage','302','Agent de comptoir','303','Secr�taire g�n�rale','306','Documentaliste','307','Directeur de magasin','310','vendeur','311','Caissi�re/H�tesse','312','Chef de rayon','313','Billettiste','314','Forfaitiste','316','Agent de r�servation','323','Directeur de site','324','Expert','326','Actuaire','327','Risk manager','328','banquier','330','Chef de d�partement','331','administratif','332','Directeur de r�seau','333','Directeur de l\' exploitation','336','Di�t�ticien','337','Chef de cuisine','338','gestionnaire','339','Directeur de restaurant','340','Chef de cuisinr','341','Inspecteur','342','Avocat','343','Greffier','344','Magistrat','345','Notaire','346','Indemnisation','347','Contentieux','348','Souscription','349','Relations clients','350','Directeur exploitation','351','Technicien','352','Chef d\'escale','353','Directeur technique','354','Responsable de d�partement/division/services','355','Chef d\'etablissement','356','Lyceen/Collegien','357','Presse','358','Consultant','359','Analyste','360','Maire','361','Depute','362','Conseiller �conomique','363','Pr�fet','364','Charge de mission','365','Evaluateur risque','366','Directeur d\'enseigne','367','Cuisinier','368','Intendant','369','Econome','370','Bibliothecaire','371','Responsable franchise','372','Direction','373','Acheteur','374','Ouvrier','377','Projeteur','378','Directeur de la pr�vention','379','Responsable de la prevention','380','Directeur','381','Responsable','382','Directeur de l\'entretien','384','Responsable exploitation','385','Responsable magasin','386','Chomeur','387','Retraite','388','Courtage','390','Assistante','391','Agent assurance','392','Directeur du d�veloppement �conomique','393','Juriste','394','Chef service marches','395','Responsable du d�veloppement �conomique','396','Ing�nieur qualit�','397','Agent courtage')
	var tabLien = new Array('-1','390','-1','-1','-1','386','-1','380','-1','381','-1','387','1','44','1','157','1','156','1','154','1','4','1','153','1','24','2','292','2','290','2','165','2','161','2','3','2','16','2','13','2','163','2','167','2','291','2','162','2','293','2','158','2','164','2','168','2','166','3','179','3','171','3','169','3','175','3','173','3','12','3','178','3','170','3','137','3','136','3','174','3','172','5','197','5','182','5','100','5','271','5','188','5','108','5','198','5','272','5','374','5','189','5','183','5','351','6','228','6','212','6','220','6','377','6','101','6','207','6','224','6','230','6','258','6','210','6','219','6','227','6','218','6','229','6','257','6','223','6','92','6','107','6','217','6','206','7','128','7','243','7','233','7','50','7','234','7','236','8','81','8','20','8','1','9','82','9','249','9','251','9','124','9','35','9','354','9','252','9','130','10','256','10','260','10','51','10','262','10','264','10','255','10','259','10','21','10','261','10','263','11','267','11','269','11','265','11','273','11','91','11','266','11','268','11','274','11','270','11','90','12','121','12','280','12','36','12','275','12','277','12','279','12','120','12','281','12','278','12','276','13','133','13','286','13','288','13','131','13','284','13','132','13','289','13','287','13','285','15','299','15','141','15','298','15','140','24','145','24','391','25','397','25','388','25','146','26','394','26','147','26','328','27','341','27','324','28','343','28','393','28','345','28','344','28','342','30','370','30','355','30','356','30','368','30','369','30','118','30','117','32','327','54','314','61','306','61','32','61','357','62','359','62','358','63','331','63','330','63','312','63','311','63','307','63','385','64','332','64','366','64','333','65','336','65','337','65','323','65','338','66','339','66','340','66','367','70','361','70','362','70','253','70','364','70','392','70','360','70','303','70','395','70','363','71','310','71','313','71','302','71','316','71','300','72','326','73','347','73','346','74','365','75','349','75','348','76','384','76','353','76','350','76','352','78','382','78','202','78','378','78','204','78','205','78','203','78','201','78','379','79','86','79','87','79','396','80','372','80','373','80','371')
	var champs_liste_service = document.form_submit.liste_service;
	var champs_liste_fonction = document.form_submit.liste_fonction;
	champs_liste_fonction.options.length = 0;
	champs_liste_fonction.options[0] = new Option('-- Pr�cisez votre fonction --','-2');
	var j=1;
	
	if(id_change == 'service')
	{
		champs_liste_fonction.length=1;	
		for(i=0;i<tabLien.length;i++)
		{
			if(tabLien[i] == champs_liste_service.value)
			{
				champs_liste_fonction.options[j] = new Option(get_libelle(tabLien[i+1],tabService),tabLien[i+1]);
				j++;
			}
			i=i+1;
		}
	}
}

function get_libelle(id_service,tableau)
{
	var i=0
	var lib=''
	
	while(i < tableau.length && tableau[i] != id_service)
	{
		i=i+2
	}
	
	if(i < tableau.length)
	{
		lib=tableau[i+1]	
	}
	
	return lib;
}

var xmlhttp_check_email;
var xmlhttp_check_email_f;


function check_email() {
	if (xmlhttp_check_email.readyState==4) {
		if (xmlhttp_check_email.status==200) {
			writetag('error_email', xmlhttp_check_email.responseText);
		} 
		else {
			alert("Problem retrieving XML data on check_email(),statut : "+xmlhttp_check_email.status);
		}
	}
	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>');
}

function check_email_f() {
	if (xmlhttp_check_email_f.readyState==4) {
		if (xmlhttp_check_email_f.status==200) {
			writetag('error_email_f', xmlhttp_check_email_f.responseText);
		} 
		else {
			alert("Problem retrieving XML data on check_email(),statut : "+xmlhttp_check_email_f.status);
		}
	}
	else
		writetag('error_email_f', '<div class="erreur_formu2" style="background:none;padding-left:0px"><img src=\"images/loading.gif\" alt=\"En cours\" width=\"15\" />En cours...</div>');
}

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 trim(val) {
	var retour = ""
	for(i=0;i < val.length;i++)
		if(val.charAt(i) != " ") {
			retour += val.charAt(i)
		}
	return retour
}

function getTargetUrl(str){
	var chaine = window.location.href;
	if( chaine.indexOf(str,0)==-1) return '/abonnement/index.php';
	else return 'index.php'; 
}

function verifEmail(email,idPerdu,mode) {
	noBord(email);
	email.value = trim(email.value);
	var error_tag = 'error_'+email.id.replace(/_o$/, '');
	var error_tag_f = 'error_email_f';
	errorElement = document.getElementById(error_tag);
	
	if (email.value.length == 0) {	
		displayErrorElement(errorElement,'show');
		rougeBord(email);
		return false;
	}
	
	var modele = /^[a-z0-9\-_\.]+@[a-z0-9.-]{2,}[.][a-z]{2,5}$/i;
	if (!modele.test(email.value)){
		writetag(error_tag, '<div class="erreur_formu2">Le format de l\'adresse email est invalide</div>');
		displayErrorElement(errorElement,'show');
		rougeBord(email);
		return false;
	}
	
	if (email.name.indexOf('_f')> 0) writetag(error_tag_f, '');
	else writetag(error_tag, '');
	

	if(email.name.indexOf('_f')> 0){
		xmlhttp_check_email_f = createXMLHttpRequest();
		if (xmlhttp_check_email_f!=null) {
			if (mode == true)
				xmlhttp_check_email_f.onreadystatechange = function () {
					if (xmlhttp_check_email_f.readyState==4) {
						if (xmlhttp_check_email_f.status==200) {
							writetag(error_tag_f, xmlhttp_check_email_f.responseText);
						} 
						else {
							/*alert("Problem retrieving XML data on check_email(),statut : "+xmlhttp_check_email_f.status);*/
						}
					}
					else
						writetag(error_tag_f, '<div class="erreur_formu2" style="background:none;padding-left:0px"><img src=\"images/loading.gif\" alt=\"En cours\" width=\"15\" />En cours...</div>');
				}
			}				
			xmlhttp_check_email_f.open("GET",getTargetUrl(window.targetUrlDomain)+'?p=3&sp=4&email_f='+escape(email.value)+'&idPerdu='+idPerdu, mode);
			xmlhttp_check_email_f.send(null);
			if (mode == false) {
				check_email_f();
				if (idPerdu !=""){
					if (document.getElementById(error_tag).innerHTML.search('invalide')> 0)return false;
				}else{
					
				}
			}
		}
	else{
		xmlhttp_check_email = createXMLHttpRequest();
		if (xmlhttp_check_email!=null) {
			if(mode == true){
				xmlhttp_check_email.onreadystatechange = function() {
					if (xmlhttp_check_email.readyState==4) {
						if (xmlhttp_check_email.status==200) {
							rep = xmlhttp_check_email.responseText;
						
							writetag(error_tag, rep);			
							if ((rep.indexOf('invalide') > -1) || (rep.indexOf('utilis') > -1)) test_email = false;
							else test_email = true;
						} 
						else {
							/*alert("Problem retrieving XML data on check_email(),statut : "+xmlhttp_check_email.status);*/
						}
					}
					else
						writetag(error_tag, '<div class="erreur_formu2" style="background:none;padding-left:0px"><img src=\"images/loading.gif\" alt=\"En cours\" width=\"15\" />En cours...</div>');
				}
			}
			
			xmlhttp_check_email.open("GET",getTargetUrl(window.targetUrlDomain)+'?p=3&sp=4&email='+escape(email.value),mode);
			
			xmlhttp_check_email.send(null);
			if (mode == false) {
				if (xmlhttp_check_email.readyState==4) {
					if (xmlhttp_check_email.status==200) {
						rep = xmlhttp_check_email.responseText;
						writetag(error_tag, rep);
						
						if ((rep.indexOf('invalide') > -1) || (rep.indexOf('utilis') > -1)) {
							test_email = false;
							//alert(navigator.appName.search('Explorer'));
							displayErrorElement(errorElement,'show');
							rougeBord(email);
						}
						else{
							test_email = true;
							displayErrorElement(errorElement,'show');
							noBord(email);
							
						}
					} 
					else {
						/*alert("Problem retrieving XML data on check_email(),statut : "+xmlhttp_check_email.status);*/
					}
				}
				else
					writetag(error_tag, '<div class="erreur_formu2" style="background:none;padding-left:0px"><img src=\"images/loading.gif\" alt=\"En cours\" width=\"15\" />En cours...</div>');

				if (document.getElementById(error_tag).innerHTML.search('invalide')> 0){
					displayErrorElement(errorElement,'show');
					rougeBord(email);
					return false;
				}
			}
		}
	}
	displayErrorElement(errorElement,'show');
	return test_email;
}


function verifEmailDansBase(profil,email) {

	if(email.name.indexOf('_f')> 0){
		xmlhttp_check_email_f = createXMLHttpRequest();
		if (xmlhttp_check_email_f!=null) {
			xmlhttp_check_email_f.onreadystatechange = check_email_f;				
			var test = xmlhttp_check_email_f.open("GET",'/abonnement/?p=3&sp=7&f='+profil.value+'&email_f='+escape(email.value),true);
			xmlhttp_check_email_f.send(null);
		}
	}
	return true;
}




var xmlhttp_check_pwd;

function CheckPassword(id_offre,dispatchPassePerdu){

	ret = true;
	writetag('error_password', '');

	if (document.getElementById('login').value.length == 0){
		writetag('error_password', '<div class="messageError"><img src="images/warning00.gif" alt="" />&nbsp; Veuillez remplir le champ identifiant.</div>');
		rougeBord('login');
		ret = false;
	}
	
	if (document.getElementById('pass').value.length == 0){
		if (document.getElementById('login').value.length == 0){
			writetag('error_password', '<div class="messageError"><img src="images/warning00.gif" alt="" />&nbsp; Veuillez remplir les champs identifiant et mot de passe.</div>');
		}
		else{
			writetag('error_password', '<div class="messageError"><img src="images/warning00.gif" alt="" />&nbsp; Veuillez remplir le champ mot de passe.</div>');
		}
		rougeBord('pass');
		ret = false;
	}
	
	if (ret){

		xmlhttp_check_pwd = createXMLHttpRequest();
		if (xmlhttp_check_pwd == null) return false;

		xmlhttp_check_pwd.open("GET",'/abonnement/?p=3&sp=5&login='+escape(document.getElementById('login').value)+'&pwd='+escape(document.getElementById('pass').value)+'&a='+escape(document.getElementById('id_profil').value)+'&f='+escape(document.getElementById('id_offre').value), false);
		xmlhttp_check_pwd.send(null);
		if (xmlhttp_check_pwd.readyState!=4)
			return false;
		if (xmlhttp_check_pwd.status != 200) {
			alert("Le site a rencontré un problème technique, merci de faire une nouvelle tentative ultérieurement.");
			return false;
		}
		
		var rep = xmlhttp_check_pwd.responseText;

		if (rep == 0) {
			writetag('error_password', '<div class="messageError"><img src="images/warning00.gif" alt="" />&nbsp; D�sol�, vos codes d\'acc�s sont erron�s. Veuillez r�essayer ou cliquer ci-dessous sur &quot;Mot de passe oubli�?&quot;.</div>');
			return false;	
		}
		
		else if (rep == 2){
			writetag('error_password', '<div class="messageError"><img src="images/warning00.gif" alt="" />&nbsp; Vous �tes d�j� abonn� � ce magazine. Veuillez contacter le service abonnement par mail � <a href=\"mailto:abo@gisi.fr\">abo@gisi.fr</a> ou par téléphone au 0156794100.</div>');
			return false;
		}
			
		else if (rep == 1) {
			//return true;			
		}
	}
	return ret;
}
/* script pour les abonnement */
function on_submit_profil(id_profil) {
	var id_profil,id_cryte,id_offre;		
	arrayofid=id_profil.split(',');
	document.choix_abo.id_profil.value=arrayofid[0];
	document.choix_abo.id_crypte.value=arrayofid[1];
	document.choix_abo.id_offre.value=arrayofid[2];		

	document.forms.choix_abo.submit();
}


function AJAX_cp(extention_erreur){
	if(extention_erreur=='_o')extention_erreur2='';
	else extention_erreur2 = extention_erreur;
	writetag('error_cp'+extention_erreur2, '');
	var ret = true;
	var champ = document.getElementById('cp'+extention_erreur);
	if ((extention_erreur=='_o' &&	document.getElementById('pays_o').value == 'FRA') || (extention_erreur=='_f' &&	document.getElementById('pays_f').value == 'FRA')){
		if (champ.value.length > 0){
			if (isNaN(champ.value)){
				writetag('error_cp'+extention_erreur2, '<div class="erreur_formu2">Votre code postal est invalide</div>');
				ret = false;
			}else if(champ.value.length != '5'){
				writetag('error_cp'+extention_erreur2, '<div class="erreur_formu2">Votre code postal est invalide</div>');
				ret = false;			
			}
			if (ret) writetag('error_cp'+extention_erreur2, '<div class="erreur_formu2" style="background:none;padding-left:0px"><img src="images/un_valid.gif" alt="CP valide" border="0" /></div>');	
		}
	}
}
	

function AJAX_siret(){
	writetag('error_siret', '');
	var ret = true;
	var champ = document.getElementById('siret');	
	if (champ.value.length > 0){
		if (isNaN(champ.value)){
			writetag('error_siret', '<div class="erreur_formu2">Votre N&deg;Siret est invalide</div>');
			ret = false;
		}else if(champ.value.length != '14'){
			writetag('error_siret', '<div class="erreur_formu2">Votre N&deg;Siret est invalide</div>');
			ret = false;			
		}
		if (ret) writetag('error_siret', '<div class="erreur_formu2" style="background:none;padding-left:0px"><img src="images/un_valid.gif" alt="Siret valide" border="0" /></div>');
	}
	
}
		
function AJAX_naf(){
	writetag('error_naf', '');
	var champ = document.getElementById('naf');		
		
	if (champ.value.length > 0){
		if(champ.value.length != '4'){
			writetag('error_naf', '<div class="erreur_formu2">Votre code NAF est invalide</div>');
			ret = false;
		}else{
			writetag('error_naf', '<div class="erreur_formu2" style="background:none;padding-left:0px"><img src="images/un_valid.gif" alt="Naf valide" border="0" /></div>');
		}
	}
	
	
}	

function AJAX_login(){		
	writetag('error_login', '');
	var champ = document.getElementById('login_o');
		
	result_login = verif_password(champ);
	if (result_login == false){
		writetag('error_login', '<div class="erreur_formu2">> 3 caract�res, sans accent et sans espace</div>');
	}else{
		writetag('error_login', '<div class="erreur_formu2" style="background:none;padding-left:0px"><img src="images/un_valid.gif" alt="Login valide" border="0" /></div>');
	}	
}

function AJAX_pass(){		
	writetag('error_pass', '');
	var champ = document.getElementById('pass_o');
			
	result_pass = verif_password(champ);
	if (result_pass == false){
		writetag('error_pass', '<div class="erreur_formu2">> 3 caract�res, sans accent et sans espace</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 writetag(id, content) {
	id = (typeof id == "string") ? document.getElementById(id) : id;
	if (id) id.innerHTML = content;
}

function rougeBord(id) {
	id = (typeof id == "string") ? document.getElementById(id) : id;
	if (id) id.style.borderColor = '#FF0303';
}

function bleuBord(id) {
	id = (typeof id == "string") ? document.getElementById(id) : id;
	if (id) id.style.borderColor = '#60A8B7';
}

function rougeColor(id) {
	id = (typeof id == "string") ? document.getElementById(id) : id;
	if (id) id.style.color = '#FF0303';
}

function noBord(id) {
	id = (typeof id == "string") ? document.getElementById(id) : id;
	if (id) id.style.borderColor = '#ABB1B6';
}

function noColor(id) {
	id = (typeof id == "string") ? document.getElementById(id) : id;
	if (id) id.style.color = '#000';
}

function test_email(idPerdu){
	var champ = document.getElementById('email_f');
	var profil = document.getElementById('f');
	if (champ.value == ''){
		writetag('error_email_f', '<div class="messageError"><img src="images/warning00.gif" alt="" />&nbsp; Veuillez saisir une adresse email.</div>');
		return false;
	}
	result_mail = verifEmail(champ,idPerdu,false);
	if (result_mail){
		result_mail_dans_base = verifEmailDansBase(profil,champ);
	//	document.getElementById('formulaire_mdp_perdu').submit();
	}	
}

function filDomaineName(email){
	tab = email.split('@');
	domaine = tab[1];
	for(i=1;i<=4;i++){
		if (!document.getElementById('child_email-'+i).value){
			document.getElementById('child_email-'+i).value = '@'+domaine;
		}
	}
}
function displayErrorElement(errorElement,param){
	if(navigator.appName.search('Explorer')!= -1){
		if (param == 'show') errorElement.style.display = 'inline';
		else errorElement.style.display = 'none';
	}
	else{
		if (param == 'show') errorElement.show() 
		else errorElement.hide();
	}
}
