function ouvrir(page,nom,x,y,scroll)
{ wo=window.open(page,nom,"width="+x+",height="+y+",scrollbars="+scroll); wo.focus(); }


function verif_longueur_text(champ,mini,libelle)
{
if (champ.value.length < mini)
 {
 if (champ.value.length==0)
  window.alert("The " + libelle + " field must be filled in !")
 else window.alert("The " + libelle + " field must contain a minimum of  " + mini + " characters");
 champ.focus(); return false;
 }  
return true;
}


function verif_autorise_text(champ,autorise,libelle)
{
for (i=0; i<champ.value.length ;i++)
 {
 carac = champ.value.charAt(i);
 if (autorise.indexOf(carac)==-1)
   {alert("The "+libelle+" field contains forbidden characters !");
   champ.focus(); return false;}
 }
return true;
}


function verif_jourdumois(j,m,a)
{
if (m.value == 2)
  {
  if (a.value%4) jourmax = 28
  else
    {
    if (!(a.value%100) && (a.value%400)) jourmax = 28
    else jourmax = 29;
    }
  }
else 
  {
  if (m.value==4 || m.value==6 || m.value==9 || m.value==11) jourmax = 30
  else jourmax = 31;
  }
if ((j.value<1) || (j.value>jourmax))
  {alert("The DAY must be a number between 1 and "+jourmax);
  j.focus(); j.select(); return false;}
return true;  
}


function verif_date(j,m,a,obligatoire,libelle)
{
if (obligatoire)
  {
  if (!verif_longueur_text(j,1,'DAY ('+libelle+')')) return false;
  if (!verif_longueur_text(m,1,'MONTH ('+libelle+')')) return false;
  if (!verif_longueur_text(a,4,'YEAR ('+libelle+')')) return false;
  }
else
  {
  j_vide = (j.value.length == 0);
  m_vide = (m.value.length == 0);
  a_vide = (a.value.length < 4);
  if (!(j_vide && m_vide && a_vide) && (j_vide || m_vide || a_vide))
    {alert('The date is incomplete. Please complete or delete it');
    j.focus(); return false;}
  else if (j_vide && m_vide && a_vide) return true;
  }

if (!verif_autorise_text(j,'0123456789','DAY')) return false;
if (!verif_autorise_text(m,'0123456789','MONTH')) return false;
if (!verif_autorise_text(a,'0123456789','YEAR')) return false;
if ((m.value < 1) || (m.value > 12)) 
  {alert('The MONTH must be a number between 1 and 12 !');
  m.focus(); m.select(); return false;}
if (!verif_jourdumois(j,m,a)) return false;
return true;
}


function verif_email(email)
{
if (email.value.length>0)
 {
 pos1=email.value.indexOf('@'); pos2=email.value.lastIndexOf('@'); pos3=email.value.lastIndexOf('.');
 if ((pos1<=0) || (pos1==email.value.length-1) || (pos1!=pos2) || (pos3<=0) || (pos3==email.value.length-1))
  { 	   
  alert("Invalid E-MAIL address"); email.focus(); return false;
  }	
}	
return true;
}


function verif_entier(champ,libelle)
{
if (champ.value.length)
 if (isNaN(champ.value) || (champ.value.indexOf('.')!=-1))
  {alert('The '+libelle+' field must be a whole number !');
   champ.focus(); return false;}
return true;
}


function verif_entier_limites(champ,mini,maxi,libelle)
{
if (verif_entier(champ,libelle))
 {
 if ((champ.value<mini) || (champ.value>maxi))
  {alert('The '+libelle+' field must be a number between '+mini+' and '+maxi+'.');
   champ.focus(); return false;}
 }
else return false;
return true;
}


function confirmer(msg)
{ return confirm("Please confirm " + msg); }
