var ns4 = (document.layers)? true:false;         //NS 4
var ie4 = (document.all)? true:false;         //IE 4
var dom = (document.getElementById)? true:false;   //NS 6 , IE 5 ou firefox

//pour utiliser ce code javascript
//il faut que pour chaque champ on précise le ID 
//et puis il faut créer un div qui a le mème ID du champ concerné plus _div à la fin
// par exemple le champ de id='nom' son div est de id='nom_div'
//on doit ajouter aussi les syles ChampSaisi,ChampSaisiErreur et important


//  remplir le div selon le navigateur
function ecritCalque(idCalque,texte)
{
  
  //document.getElementById(idCalque).innerHTML = texte;
  	
   if (dom) {
      document.getElementById(idCalque).innerHTML = texte;
         return;
      }
      if (ie4) {
          document.all[idCalque].innerHTML = texte;
         return;
      }
      if (ns4) {
          with (eval('document.'+idCalque+'.document')) {
             open();
             write(texte);
             close();
         }
         return;
      }

  
}

// récupérer un objet selon le navigateur en savant son id
function valeur_tous_navigateurs(idChamp)
{
	if (document.getElementById)
	{
		obj = document.getElementById(idChamp);
	}
	else if (document.all)
	{
		obj = document.all[idChamp];
	}
	else
	{
		obj = document.layers[idChamp];
	}
	return obj;
}

// validation d'un champ (id du champs,type="text|email|tel|nombre|date|checkbox|liste",obligation=true|false)
function valide_saisi(monchamp,type,obligation)
{
	var str=monchamp+"_div";
	
	//  rècupération des objets selon n'importe quel navigateur
	var obj_nom=valeur_tous_navigateurs(monchamp);	
	var obj_div=valeur_tous_navigateurs(str);
	obj_div.style.display='none';	
	obj_nom.className='ChampSaisi';	
	var val=obj_nom.value;
	if(type=="liste")
		return 0;
	if(obligation)
	if (val=="")
	{
		ecritCalque(str,"<font class='important'>Ce champ est obligatoire</font>");
		obj_div.style.display='block';	
		obj_nom.className='ChampSaisiErreur';
		return 1;
	}
	if(type=="email")
	if(!verifier_email(val))		
	{
		ecritCalque(str,"<font class='important'>L'email saisi n'est pas valide</font>");
		obj_div.style.display='block';
		obj_nom.className='ChampSaisiErreur';
		return 1;
	}
	if(type=="nombre")
	if(!verifier_nombre(val))		
	{
		ecritCalque(str,"<font class='important'>La valeur saisi n'est pas un nombre</font>");
		obj_div.style.display='block';
		obj_nom.className='ChampSaisiErreur';
		return 1;
	}
	if(type=="tel")
	if(!verifier_tel(val))		
	{
		ecritCalque(str,"<font class='important'>La valeur saisi n'est pas un numéro de téléphone valide</font>");
		obj_div.style.display='block';
		obj_nom.className='ChampSaisiErreur';
		return 1;
	}
	if(type=="date")
	if(!verifier_date(val))		
	{
		ecritCalque(str,"<font class='important'>La valeur saisi n'est pas une date valide</font>");
		obj_div.style.display='block';
		obj_nom.className='ChampSaisiErreur';
		return 1;
	}
	if(type=="liste")
	if(!verifier_cambobox(val))		
	{
		ecritCalque(str,"<font class='important'>Il faut choisir un élément</font>");
		obj_div.style.display='block';
		obj_nom.className='ChampSaisiErreur';
		return 1;
	}
	if(type=="ckeckbox")
	if(!verifier_checkbox(val))		
	{
		ecritCalque(str,"<font class='important'>La selection est obligatoire</font>");
		obj_div.style.display='block';
		obj_nom.className='ChampSaisiErreur';
		return 1;
	}				
	return 0;			
	
}
function verifier_email(adresse)
{
	if(adresse=="")
		return true;
	var place = adresse.indexOf("@",1);
	var point = adresse.indexOf(".",place+1);
	if ((place > -1)&&(adresse.length >2)&&(point > 1))
	{
		return true;
	}
	else
	{
		return false;
	}
}
function verifier_nombre(monchamp)
{
	if(monchamp=="")
		return true;
	var exp = new RegExp("^[0-9-.]*$","g");
	return exp.test(monchamp);

}
function verifier_cambobox(monchamp)
{
}
function verifier_checkbox(monchamp)
{
	if(monchamp=="")
		return true;
		
	str=monchamp.split(";");
	
	for(i=0;i<str.length;i++)
	{
		
		if((str[i]!="")&&(str[i]!=" ")&&(str[i]!="MAIN_")&&(str[i]!="MINI_"))
		{
			var obj_div=valeur_tous_navigateurs(str[i]);
			if(obj_div)
			if(obj_div.checked==true)
				return true;
		}
	}
	return false;
}
function verifier_tel(monchamp)
{
	if(monchamp=="")
		return true;
	str=monchamp.replace(" ","");
	return verifier_nombre(str);
}
function verifier_date(d) {
	// Cette fonction permet de vérifier la validité d'une date au format jj/mm/aa ou jj/mm/aaaa	
	if(d=="")
		return true;
	if (d == "") // si la variable est vide on retourne faux
		return false;
	
	e = new RegExp("^[0-9]{1,2}\/[0-9]{1,2}\/([0-9]{2}|[0-9]{4})$");
	
	if (!e.test(d)) // On teste l'expression régulière pour valider la forme de la date
		return false; // Si pas bon, retourne faux

	// On sépare la date en 3 variables pour vérification, parseInt() converti du texte en entier
	j = parseInt(d.split("/")[0], 10); // jour
	m = parseInt(d.split("/")[1], 10); // mois
	a = parseInt(d.split("/")[2], 10); // année

	// Si l'année n'est composée que de 2 chiffres on complète automatiquement
	if (a < 1000) {
		if (a < 89)	a+=2000; // Si a < 89 alors on ajoute 2000 sinon on ajoute 1900
		else a+=1900;
	}

	// Définition du dernier jour de février
	// Année bissextile si annnée divisible par 4 et que ce n'est pas un siècle, ou bien si divisible par 400
	if (a%4 == 0 && a%100 !=0 || a%400 == 0) fev = 29;
	else fev = 28;

	// Nombre de jours pour chaque mois
	nbJours = new Array(31,fev,31,30,31,30,31,31,30,31,30,31);	
	return ( m >= 1 && m <=12 && j >= 1 && j <= nbJours[m-1] );
}


// pour valider une formulaire on doit le faire de cette manière selon les id des champs qu'on a
function valide_form()
{
	var nb_fautes=0;
	nb_fautes+=valide_saisi("descriptif_Nom","",true);
	nb_fautes+=valide_saisi("descriptif_Email","email",false);
	nb_fautes+=valide_saisi("descriptif_EmailFriend","date",true);
	if(nb_fautes)
		return false;
	return true;
}
function submit_action_form_validation(formName,actionValue){
	//document.forms[formName].ACTION.value=actionValue;
	if(ie4)
	if (window.external)
		window.external.AutoCompleteSaveForm(document.forms[formName]);
	var valide=false;
	switch(formName)
	{
		
		case "descriptif": valide=valide_Envoyer_Ami();break;
		case "cat": valide=valide_catalogue_etudiant();break;
		case "contEtudiant": valide=valide_contact_etudiant();break;
		case "newsletter": valide=valide_newsletter();break;
		case "catGen": valide=valide_catalogue();break;
		case "extrait_pdf_form": valide=valide_extrait();break;
		default:valide=valide_catalogue_etudiant();break;
	}
	if(valide)
		document.forms[formName].submit();
}
function valide_newsletter()
{
	
	var nb_fautes=0;
	nb_fautes+=valide_saisi("UTILISATEUR_NOM","text",false);
	nb_fautes+=valide_saisi("UTILISATEUR_PRENOM","text",false);
	nb_fautes+=valide_saisi("UTILISATEUR_EMAIL","email",true);	
	nb_fautes+=valide_saisi("NamesCheckbox","ckeckbox",true);	
	if(nb_fautes)
		return false;
	return true;
}
function valide_catalogue()
{
	var str=valeur_tous_navigateurs('TypeCatal1');	
	if(str.checked==true)
		return valide_catalogue_pdf();
	else
		return valide_catalogue_courrier();
	
}
function valide_extrait()
{
	var str=valeur_tous_navigateurs('TypeCatal1');	
	if(str.checked==true)
		return valide_extrait_pdf();
	else
		return valide_extrait_courrier();
	
}
function valide_extrait_pdf()
{
	
	var nb_fautes=0;
	nb_fautes+=valide_saisi("UTILISATEUR_NOM","text",true);
	nb_fautes+=valide_saisi("UTILISATEUR_PRENOM","text",true);
	nb_fautes+=valide_saisi("UTILISATEUR_ADRESSE","text",false);
	nb_fautes+=valide_saisi("UTILISATEUR_EMAIL","email",true);
	nb_fautes+=valide_saisi("UTILISATEUR_CODEPOSTAL","nombre",false);
	nb_fautes+=valide_saisi("UTILISATEUR_VILLE","text",false);
	nb_fautes+=valide_saisi("UTILISATEUR_PAYS","liste",false);
	nb_fautes+=valide_saisi("UTILISATEUR_TEL","tel",false);
	if(nb_fautes)
		return false;
	return true;
}
function valide_extrait_courrier()
{	
	var nb_fautes=0;
	nb_fautes+=valide_saisi("UTILISATEUR_NOM","text",true);
	nb_fautes+=valide_saisi("UTILISATEUR_PRENOM","text",true);
	nb_fautes+=valide_saisi("UTILISATEUR_ADRESSE","text",true);
	nb_fautes+=valide_saisi("UTILISATEUR_EMAIL","email",true);
	nb_fautes+=valide_saisi("UTILISATEUR_CODEPOSTAL","nombre",true);
	nb_fautes+=valide_saisi("UTILISATEUR_VILLE","text",true);
	nb_fautes+=valide_saisi("UTILISATEUR_PAYS","liste",true);	
	if(nb_fautes)
		return false;
	return true;
}
function valide_catalogue_pdf()
{
	
	var nb_fautes=0;
	nb_fautes+=valide_saisi("UTILISATEUR_NOM","text",true);
	nb_fautes+=valide_saisi("UTILISATEUR_PRENOM","text",true);
	nb_fautes+=valide_saisi("UTILISATEUR_ADRESSE","text",false);
	nb_fautes+=valide_saisi("UTILISATEUR_EMAIL","email",true);
	nb_fautes+=valide_saisi("UTILISATEUR_CODEPOSTAL","nombre",false);
	nb_fautes+=valide_saisi("UTILISATEUR_VILLE","text",false);
	nb_fautes+=valide_saisi("UTILISATEUR_PAYS","liste",false);
	nb_fautes+=valide_saisi("NamesCheckbox","ckeckbox",true);
	if(nb_fautes)
		return false;
	return true;
}
function valide_catalogue_courrier()
{	
	var nb_fautes=0;
	nb_fautes+=valide_saisi("UTILISATEUR_NOM","text",true);
	nb_fautes+=valide_saisi("UTILISATEUR_PRENOM","text",true);
	nb_fautes+=valide_saisi("UTILISATEUR_ADRESSE","text",true);
	nb_fautes+=valide_saisi("UTILISATEUR_EMAIL","email",false);
	nb_fautes+=valide_saisi("UTILISATEUR_CODEPOSTAL","text",true);
	nb_fautes+=valide_saisi("UTILISATEUR_VILLE","text",true);
	nb_fautes+=valide_saisi("UTILISATEUR_PAYS","liste",true);
	nb_fautes+=valide_saisi("UTILISATEUR_ENTREPRISE","text",true);
	nb_fautes+=valide_saisi("NamesCheckbox","ckeckbox",true);
	if(nb_fautes)
		return false;
	return true;
}
function valide_catalogue_etudiant()
{
	//var str=valeur_tous_navigateurs('TypeCatal1');	
	//if(str.checked==true)
		//return valide_catalogue_etudiant_pdf();
	//else
		return valide_catalogue_etudiant_courrier();
	
}

function valide_contact_etudiant()
{
	
	var nb_fautes=0;
	nb_fautes+=valide_saisi("UTILISATEUR_NOM","text",true);
	nb_fautes+=valide_saisi("UTILISATEUR_PRENOM","text",true);
	nb_fautes+=valide_saisi("UTILISATEUR_EMAIL","email",true);
	nb_fautes+=valide_saisi("UTILISATEUR_CODEPOSTAL","nombre",false);	
	nb_fautes+=valide_saisi("UTILISATEUR_TEL","tel",false);
	if(nb_fautes)
		return false;
	return true;
}
function valide_catalogue_etudiant_pdf()
{
	
	var nb_fautes=0;
	nb_fautes+=valide_saisi("UTILISATEUR_NOM","text",true);
	nb_fautes+=valide_saisi("UTILISATEUR_PRENOM","text",true);
	nb_fautes+=valide_saisi("UTILISATEUR_ADRESSE","text",false);
	nb_fautes+=valide_saisi("UTILISATEUR_EMAIL","email",true);
	nb_fautes+=valide_saisi("UTILISATEUR_CODEPOSTAL","nombre",false);
	nb_fautes+=valide_saisi("UTILISATEUR_VILLE","text",false);
	nb_fautes+=valide_saisi("UTILISATEUR_PAYS","liste",false);
	nb_fautes+=valide_saisi("UTILISATEUR_TEL","tel",false);
	if(nb_fautes)
		return false;
	return true;
}
function valide_catalogue_etudiant_courrier()
{	
	var nb_fautes=0;
	nb_fautes+=valide_saisi("UTILISATEUR_NOM","text",true);
	nb_fautes+=valide_saisi("UTILISATEUR_PRENOM","text",true);
	nb_fautes+=valide_saisi("UTILISATEUR_ADRESSE","text",true);
	nb_fautes+=valide_saisi("UTILISATEUR_EMAIL","email",false);
	nb_fautes+=valide_saisi("UTILISATEUR_CODEPOSTAL","text",true);
	nb_fautes+=valide_saisi("UTILISATEUR_VILLE","text",true);
	nb_fautes+=valide_saisi("UTILISATEUR_PAYS","liste",true);
	nb_fautes+=valide_saisi("UTILISATEUR_TEL","tel",false);
	if(nb_fautes)
		return false;
	return true;
}
function valide_Envoyer_Ami()
{
	var nb_fautes=0;
	nb_fautes+=valide_saisi("descriptif_Nom","text",true);
	nb_fautes+=valide_saisi("descriptif_Email","email",true);
	nb_fautes+=valide_saisi("descriptif_EmailFriend","email",true);	
	if(nb_fautes)
		return false;
	return true;
}