// JavaScript Document

var encours=0;
var envoye=0;
var errors='';

function testdate(valeur){ // teste si la date est entrée correctement
	var i;j=valeur.length;
	if(j==0) return true;
	if(j<10) return false;
	for(i=0;i<10;i++){
		if(i==2 || i==5){
			if(valeur.charAt(i)!="/") return false;
		}else{
			if(isNaN(valeur.charAt(i))) return false;
		}
	}
	return true;
}
function MM_reloadPage(init) {  //reloads the window if Nav4 resized
  if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
    document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
  else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);

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)
	{
	 	errors+="L'adresse électronique n'est pas valide.\n";
		return false
	}

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

	// See if "user" is valid
	if (user.match(userPat)==null)
	{
    	// user is not valid
    	errors+="L'adresse électronique n'est pas valide.\n";
    	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)
			{
	      errors+="L'adresse électronique n'est pas valide!\n";
				return false
			}
		}
    	return true
	}

	// Domain is symbolic name
	var domainArray=domain.match(domainPat)
	if (domainArray==null)
	{
		errors+="Le nom de domaine du courriel n'est pas valide.\n";
    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.
   		errors+="L'adresse électronique doit se terminer soit par trois ou quatre \nlettres de domaine (.info,.com,.net,.org,...), soit par les deux lettres du pays (.fr,.de.,us,...).\n";
   		return false
	}

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

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

function MM_validateForm() { //v4.0
  if( encours !=0 )
  {
    return;
  }
  encours=1;
  errors='';
  var i,p,q,nm,test,num,min,max='',args=MM_validateForm.arguments;
  for (i=0; i<(args.length-2); i+=3)
  {
    test=args[i+2]; val=MM_findObj(args[i]);
    if (val) 
    { 
      nm=val.name; 
      if ((val=val.value)!="")
      {
        if (test.indexOf('isEmail')!=-1)
        { 
          if (!emailCheck(val))
					{ ;
					}
//           p=val.indexOf('@');
//           if (p<1 || p==(val.length-1))
//             errors+='l\'adresse électronique doit être correctement saisie\n(par exemple : aaaaaa@bbb.cc)\n';
        }
        else if (test!='R')
        {
          if (isNaN(val))
            errors+='le code postal ne doit comprendre que des chiffres\n';
          if (test.indexOf('inRange') != -1)
          {
           p=test.indexOf(':');
           min=test.substring(8,p); max=test.substring(p+1);
           if (val<min || max<val) 
            errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';
          }
        }
      }
      else if (test.charAt(0) == 'R') 
        errors += '- '+nm+' is required.\n';
    }
  }
  if (errors) 
  {
    alert('Erreur dans la saisie :\n'+errors);
    encours=0;
  }
  else if( envoye != 1)
  {
    envoye=1;
  }
  document.MM_returnValue = (errors == '' && envoye == 1);
}

function jour(){
var now = new Date();
var dayNames = new Array("dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi");
var monthNames = new Array("janvier","f&eacute;vrier","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre");
var date_en_lettres = new String();
var lejour = new String();
lejour="" + now.getDate();if(lejour=="1") lejour=lejour+"er";
date_en_lettres=dayNames[now.getDay()] + " " + lejour + " " + monthNames[now.getMonth()] + " "+now.getFullYear(); return date_en_lettres;
}

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_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_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 Compter(Target, max, nomchamp)
{
	StrLen = Target.value.length
	if (StrLen > max )
	{
		Target.value = Target.value.substring(0,max);
		CharsLeft = max;
	}
	else
	{
		CharsLeft = StrLen;
	}
	nomchamp.value = CharsLeft;
}
