// Fonctions qui vérifie si les formulaires sont remplis -------------------------------------------------------------------------------------------------------
// Version : 1.6 (16/06/2004)
// Si array "arrayToTest" n'existe pas, tous les champs du formulaire "formulaire" sont testé.
// Necessite les fonctions colorErreur() et colorNormal()
function verifFormulaire(formulaire, arrayChToTest, getReturn, lang)
{
	if (!getReturn)
		getReturn = false;
	if (!lang)
		lang = "fr";	
	if(arrayChToTest) // seulemnt les champs du tableau arrayChToTest sont à tester
	{
		var box = new Array();
		for(bclChToTest=0; bclChToTest < arrayChToTest.length; bclChToTest++)
		{
			// Reconstruction des objets à partir des string passer dans le tableau
			box[bclChToTest] = eval("window.document."+formulaire.name+"."+arrayChToTest[bclChToTest]);
		}
	}
	else // Tous les champs seront testés
	{
		box = formulaire.elements;
	}
	formErreur = false;
	regXp = /^[a-zA-Z0-9]*\*$/;
	
	// Définition des Messages d'erreur --------------------------------------------------------------------------------------------------
	var arrayMsg = new Array();
	arrayMsg["fr"] = new Array();
	arrayMsg["en"] = new Array();
	
	// Français
	arrayMsg["fr"]["vide"] = "Non renseigné !!!";
	arrayMsg["fr"]["pwd"] = "les mot de passe ne sont pas identiques !";
	arrayMsg["fr"]["email"] = "e-mail incorrect !!!";
	arrayMsg["fr"]["msgFin"] = "Vérifiez que les champs du formulaire\ndont le fond est rouge sont bien remplis...";
	// Anglais
	arrayMsg["en"]["vide"] = "Empty !!!";
	arrayMsg["en"]["pwd"] = "Password do not match !";
	arrayMsg["en"]["email"] = "bad email adress !!!";
	arrayMsg["en"]["msgFin"] = "Please check the red fields...";
	
	// FIN Définition des Messages d'erreur --------------------------------------------------------------------------------------------------
	
	for (bclChamps=0; bclChamps < box.length; bclChamps++)
	{
		// Reinitialisation de l'aspect du champs
		colorNormal(box[bclChamps]);
		
		// Test des champs textes
		if ((box[bclChamps].value == "" || box[bclChamps].value == arrayMsg[lang]["vide"])&& box[bclChamps].name.match(regXp)==null) // si le champs est vide
		{
			colorErreur(box[bclChamps]);			
			if (box[bclChamps].type != "password" && box[bclChamps].type != "select-one")
				box[bclChamps].value = arrayMsg[lang]["vide"];
			formErreur = true;
		}
		// Pour tester les mot de passe, attention le champs de confirmation de mot de passe
		// doit être placé juste derriere le 1er champs du mot de passe. (pas d'element de formulaire
		// entre les deux !!!)
		else if (box[bclChamps].type == "password") // si le champs est le mot de passe
		{
			if (box[bclChamps+1] && box[bclChamps+1].type == "password")
			{
				if (box[bclChamps].value != box[bclChamps+1].value)
				{
					alert (arrayMsg[lang]["pwd"]);
					return;
				}
			}
		}
		else if (box[bclChamps].name.match(/^.*mail.*$/)) // si le nom du champs contient le mot mail
		{
			result = box[bclChamps].value.match(/^[a-zA-Z0-9\-\_\.]*@[a-zA-Z0-9\-\_\.]*\.[a-zA-Z]{2,4}$/);
			if (result == null)
			{
				colorErreur(box[bclChamps]);
				box[bclChamps].value = arrayMsg[lang]["email"];
				formErreur = true;
			}				
		}
		// Test des champs SELECT (valeur par défaut ModeliXe = #)
		else if (box[bclChamps].type == "select-one" && box[bclChamps].value == "#")
		{
			colorErreur(box[bclChamps]);
			formErreur = true;
		}
	}
	if (formErreur == false)
	{
		formulaire.submit();
		if (getReturn == true) return true;
	}
	else
	{
		alert (arrayMsg[lang]["msgFin"]);
		if (getReturn == true) return false;
	}
}
// Fonction utiliser par la vérification de formulaire pour mettre en évidence les erreurs (v1.3)
function colorErreur(elementDuForm)
{
	elementDuForm.style.border = "1px solid #B4B4B4";
	elementDuForm.style.backgroundColor = "#FFDDDD";
}
function colorNormal(elementDuForm)
{
	elementDuForm.style.border = "1px solid #B4B4B4";
	elementDuForm.style.backgroundColor = "#FFFFFF";
}
// Fin fonction de vérification de formulaire générique--------------------------------------------------------------------------------------------------------------------


// Fonctions propores à Dreamweaver -------------------------------------------------------------------
function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function MM_nbGroup(event, grpName) { //v6.0
  var i,img,nbArr,args=MM_nbGroup.arguments;
  if (event == "init" && args.length > 2) {
    if ((img = MM_findObj(args[2])) != null && !img.MM_init) {
      img.MM_init = true; img.MM_up = args[3]; img.MM_dn = img.src;
      if ((nbArr = document[grpName]) == null) nbArr = document[grpName] = new Array();
      nbArr[nbArr.length] = img;
      for (i=4; i < args.length-1; i+=2) if ((img = MM_findObj(args[i])) != null) {
        if (!img.MM_up) img.MM_up = img.src;
        img.src = img.MM_dn = args[i+1];
        nbArr[nbArr.length] = img;
    } }
  } else if (event == "over") {
    document.MM_nbOver = nbArr = new Array();
    for (i=1; i < args.length-1; i+=3) if ((img = MM_findObj(args[i])) != null) {
      if (!img.MM_up) img.MM_up = img.src;
      img.src = (img.MM_dn && args[i+2]) ? args[i+2] : ((args[i+1])? args[i+1] : img.MM_up);
      nbArr[nbArr.length] = img;
    }
  } else if (event == "out" ) {
    for (i=0; i < document.MM_nbOver.length; i++) {
      img = document.MM_nbOver[i]; img.src = (img.MM_dn) ? img.MM_dn : img.MM_up; }
  } else if (event == "down") {
    nbArr = document[grpName];
    if (nbArr)
      for (i=0; i < nbArr.length; i++) { img=nbArr[i]; img.src = img.MM_up; img.MM_dn = 0; }
    document[grpName] = nbArr = new Array();
    for (i=2; i < args.length-1; i+=2) if ((img = MM_findObj(args[i])) != null) {
      if (!img.MM_up) img.MM_up = img.src;
      img.src = img.MM_dn = (args[i+1])? args[i+1] : img.MM_up;
      nbArr[nbArr.length] = img;
  } }
}

function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}
// -- FIN Fonctions propores à Dreamweaver -------------------------------------------------------------

