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)
 {
 var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
 if (!filter.test(email.value)) { 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); }

function majusc(champ) { champ.value = champ.value.toUpperCase(); }
function minusc(champ) { champ.value = champ.value.toLowerCase(); }
function majuscprem(champ) 
{ tmp=champ.value; champ.value = tmp.charAt(0).toUpperCase()+tmp.substring(1,champ.value.length); }
