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("Le champ " + libelle + " doit être renseigné !")
 else window.alert("Le champ " + libelle + " doit avoir une longueur de " + mini + " caractères.");
 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('le champ '+libelle+' contient des caractères non autorisés !');
   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("Le JOUR doit être compris entre 1 et "+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,'JOUR ('+libelle+')')) return false;
  if (!verif_longueur_text(m,1,'MOIS ('+libelle+')')) return false;
  if (!verif_longueur_text(a,4,'ANNEE ('+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('La date est incomplète, complétez ou effacez-la');
    j.focus(); return false;}
  else if (j_vide && m_vide && a_vide) return true;
  }

if (!verif_autorise_text(j,'0123456789','JOUR')) return false;
if (!verif_autorise_text(m,'0123456789','MOIS')) return false;
if (!verif_autorise_text(a,'0123456789','ANNEE')) return false;
if ((m.value < 1) || (m.value > 12)) 
  {alert('Le chiffre du MOIS doit être compris entre 1 et 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("L'adresse E-MAIL n'est pas valide"); email.focus(); return false;
  }	
}	
return true; 	   
}


function verif_entier(champ,libelle)
{
if (champ.value.length)
 if (isNaN(champ.value) || (champ.value.indexOf('.')!=-1))
  {alert('Le champ '+libelle+' doit être un nombre entier !');
   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('Le champ '+libelle+' doit être compris entre '+mini+' et '+maxi+'.');
   champ.focus(); return false;}
 }
else return false;
return true;
}


function verif_check(champ,mini,maxi,lib)
{
nbcheck=0; i=0;
if (champ.length>0)
  {
  while (i<champ.length) if (champ[i++].checked) nbcheck++;
  if (nbcheck<mini) 
    { alert('Vous devez sélectionner au moins '+mini+' élément'+(mini>1?'s':'')+' de '+lib); return false;}
  if ((maxi>mini) && (nbcheck>maxi))
    { alert('Vous devez sélectionner au maximum '+maxi+' élément'+(maxi>1?'s':'')+' de '+lib); return false;}
  }
return true;
}
function alerte(champ,message){if(message.length){alert(message);champ.focus();} return false;}
function confirmer(msg) { return confirm("Veuillez confirmer " + msg); }
function multipleselecte(champ,message){if(champ.options.selectedIndex==-1) return(alerte(champ,message));return true;}
