var encours=0;
var envoye=0;

/* Fonctions gÚnÚrales */
/* ******************* */

function isVide( val)
{
  var espaces= /^([\s]*)$/;
  if( val.match( espaces) )
    return true;
  else 
    return false;
}

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 isNumberString (InString)
{
	if(InString.length==0)
		return (false);
	RefString="1234567890.";
	for (Count=0; Count < InString.length; Count++)
	{
		TempChar= InString.substring (Count, Count+1);
		if (RefString.indexOf (TempChar, 0)==-1)
			return (false);
	}
	return (true);
}

function getVisibilityOf(MyDocument,MyElement)
{
	if (MyDocument.all)		//Explorer 4,5
	{
		return MyDocument.all[MyElement].style.visibility;
	}
	else if (MyDocument.layers)	//Netscape 4
	{
		return MyDocument.layers[MyElement].visibility;
	}
	else if (MyDocument.getElementById)	//Netscape 6
	{
		return MyDocument.getElementById(MyElement).style.visibility;
	}
}

function getAnElementById(MyDocument,objId)
{
	if (MyDocument.layers) { //Netscape 4
		return eval('MyDocument.' + objId);
	}
	else if (navigator.userAgent.indexOf("Opera") != -1) { //Opera
		return eval('MyDocument.all.' + objId);
	}
	else if (MyDocument.all && !MyDocument.getElementById) { //IE 4
		return eval('MyDocument.all.' + objId);
	}
	else if (MyDocument.getElementById) { //Netscape 6 & IE 5
		return MyDocument.getElementById(objId);
	}
	else {
		alert('Ce site Internet utilise la technologie DHTML. Nous vous recommandons une mise Ó jour de votre navigateur pour un fonctionnement optimal.');
	}
	return NULL;
}

*/

/* ********************************* */
/* Fonctions SpÚcifiques formulaires */
/* ********************************* */

function GetLibelle(theForm,ElemName)
{
	var Libelle=ElemName; //Par dÚfaut
	var strToEval='if (theForm.libelle_'+ElemName+') ';
	strToEval+='if (theForm.libelle_'+ElemName+'.value!="") '
	strToEval+='Libelle=theForm.libelle_'+ElemName+'.value;';
	eval(strToEval);
	return Libelle;
}

function IsRequired(theForm,ElemName)
{
	var bIsRequired=0;
	var strToEval='if (theForm.presence_'+ElemName+') ';
	strToEval+='if (theForm.presence_'+ElemName+'.value==\'_OBLIGATOIRE\') '
	strToEval+='bIsRequired=1;';
	eval(strToEval);
	return bIsRequired;
};


function GetSpecialControlType(theForm,ElemName)
{
	var CtrlType=""; //Par defaut
	var strToEval='if (theForm.type_'+ElemName+') ';
//	strToEval+='if (theForm.type_'+ElemName+'.value!="") '
	strToEval+='if ( !isVide( theForm.type_'+ElemName+'.value) ) '
	strToEval+='CtrlType=theForm.type_'+ElemName+'.value;';
	eval(strToEval);
	return CtrlType;
}

function emailCheck(emailStr)
{
	var emailPat=/^(.+)@(.+)$/
	var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"
	var validChars="\[^\\s" + specialChars + "\]"
	var quotedUser="(\"[^\"]*\")"
	var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/
	var atom=validChars + '+'
	var word="(" + atom + "|" + quotedUser + ")"
	var userPat=new RegExp("^" + word + "(\\." + word + ")*$")
	var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$")
	var matchArray=emailStr.match(emailPat)

//  var re = /^([a-zA-Z0-9_])([a-zA-Z0-9_\.\-])*\@(([a-zA-Z0-9_\-])+\.)+([a-zA-Z0-9]{2,4})$/;

	if (matchArray==null)
	{
	 	alert("Le courriel n'est pas valide.")
		return false
	}

	var user=matchArray[1]
	var domain=matchArray[2]

	// See if "user" is valid
	if (user.match(userPat)==null)
	{
    	// user is not valid
    	alert("Le courriel n'est pas valide.")
    	return false
	}

	var IPArray=domain.match(ipDomainPat)
	if (IPArray!=null)
	{
    	// this is an IP address
		for (var i=1;i<=4;i++)
		{
	    	if (IPArray[i]>255)
			{
	        	alert("Le courriel n'est pas valide!")
				return false
			}
		}
    	return true
	}

	// Domain is symbolic name
	var domainArray=domain.match(domainPat)
	if (domainArray==null)
	{
		alert("Le nom de domaine du courriel n'est pas valide.")
    	return false
	}

	var atomPat=new RegExp(atom,"g");
	var domArr=domain.match(atomPat);
	var len=domArr.length;
	if (domArr[domArr.length-1].length<2 || domArr[domArr.length-1].length>4)
	{
   		// the address must end in a two letter, a three letter or a four letter word.
   		alert("Le courriel doit se terminer soit par trois ou quatre lettres de domaine (.info,.com,.net,.org,...), soit par les deux lettres du pays (.fr,.de.,us,...).")
   		return false
	}

	// Make sure there's a host name preceding the domain.
	if (len<2)
	{
		var errStr="Le nom de domaine du courriel n'est pas précisé."
		alert(errStr)
   		return false
	}

	// If we've gotten this far, everything's valid!
	return true;
}

function ValiderFormulaire(MyDocument,MyForm)
{
  if( encours !=0 )
  {
    return;
  }
  encours=1;
	if (MyForm)
	{
		if (MyForm.elements)
		{
			for(i=0; i < MyForm.elements.length; i++)
			{
				var theElement=MyForm.elements[i];
				var name=theElement.name;
				var value=theElement.value;
				var type=theElement.type;
				if( type=='select-one')
  				var value=theElement.options[ theElement.selectedIndex].value;
				else
	   			var value=theElement.value;

				var libelle=theElement.name;	//par dÚfaut

				if (type!='hidden')
				{
					//if (type=='radio')
					//if (type=='checkbox')

					//Check prÚsence obligatoire
					var bObligatoire=IsRequired(MyForm,name);
					if (bObligatoire && isVide( value))
					{
						alert('Le champ "'+GetLibelle(MyForm,name)+'" est requis.\nVeuillez renseigner ce champ.');
						theElement.focus();
            encours=0;
						return;
					}

					var CtrlType=GetSpecialControlType(MyForm,name);
					if (CtrlType!="")
					{
						//Check e-mail
						if (CtrlType=="_EMAIL")
							if (!emailCheck(value))
							{
								theElement.focus();
                encours=0;
								return;
							}
					}
				}
			}
		  if( envoye != 1)
      {
        envoye=1;
        MyForm.submit();
      }
    }
  }
  encours=0;
	/*var myObj=getAnElementById(MyDocument,'id03nom');
	alert(myObj.value);
	myObj=getAnElementById(MyDocument,'O');
	if (myObj.length>0)
		for(i=0; i < myObj.length; i++)
			alert(myObj[i].value);
	*/
/*
	if (MyDocument.layers)
	{ //Netscape 4
			alert(MyDocument.layers.length);
			alert(MyDocument.layers[0].name);
//document.layer['layername'].document.forms[0]
			for(i=0; i < MyDocument.layers.size; i++)
			{
				var msg='Name='+MyDocument.layers[i].name+'\nVisibility='+MyDocument.layers[i].visibility;
				alert(msg);
			}
	}
*/


/*
	for(i=0; i < document.all('shvatz').length; i++)
	{
		if(document.all('shvatz')(i).className == 'counterCultureMedia'; ourShvatz = document.all('shvatz')(i);
		}
	}
*/
/*	alert(document.ids['03nom'].value);
	alert(formulaire.03nom.id);
	alert(formulaire.03nom.value);*/
	//	formulaire.submit();

}


/*
function CheckMailOk(theForm,ElemName,Elemvalue)
{
	var IsMailOk=emailCheck(Elemvalue);
	if (!IsMailOk)
		if (theForm)
			if (theForm.ElemName)
				theForm.ElemName.focus();
	return IsMailOk;
};

*/


