//------------------------------------------------------------------------
//fonction qui gere l'envoi de courrier 
//------------------------------------------------------------------------
function ecrire ( arg1,arg2 )
{
    var envoi=new String(arg1+'%40'+arg2);
    envoi='mailto:'+envoi;
    document.location.href=envoi;
}
//------------------------------------------------------------------------
//envoi de formulaire classique avec methode post 
//------------------------------------------------------------------------
function post_form (id_form,url)
{
    var obj_form=obj(id_form,0);
    obj_form.method="post";
    obj_form.action=url;
    obj_form.submit();
}
//------------------------------------------------------------------------
//retourne true si une serie de boutons radios est cochee une fois
//------------------------------------------------------------------------
function radio_coche(id_formulaire,nom_radio)
  {
    var obj_formulaire=capt_obj(id_formulaire,'');
    var cpt=0;
    var val="false";
    alert(obj_formulaire.elements[nom_radio].length);
    while ( cpt < obj_formulaire.elements[nom_radio].length )
    {
      if ( obj_formulaire.elements[nom_radio][cpt].checked )
      {
        val="true";
        break;
      }
      else
          cpt++;
    }
    return val;
  }
//------------------------------------------------------------------------
//suppression des espaces a droite d'une chaine
//------------------------------------------------------------------------
function right_trim(chaine)
{
    var espace=" ";
    var a=espace.charAt(0);
    var i=chaine.length - 1;
    while (chaine.charAt(i)==a)
        i--;
    return chaine.substring(0,i+1);
}
//------------------------------------------------------------------------
//suppression des espaces a gauche d'une chaine
//------------------------------------------------------------------------
function left_trim(chaine)
{
    var espace=" ";
    var a=espace.charAt(0);
    var i=0;
    while (chaine.charAt(i)==a)
        i++;
    return chaine.substring(i,chaine.length);
}
//------------------------------------------------------------------------
//suppression des espaces d'une chaine a gauche et a droite
//------------------------------------------------------------------------
function trim(chaine)
{
    var a=left_trim(chaine);
    var b=right_trim(a);
    return b;
}
//------------------------------------------------------------------------
//controle que les zones dont l'id commence par o_ ne sont pas vides
//------------------------------------------------------------------------
function controle_saisie(formulaire)
{
    //controle des saisies
    var msg_error="";
    var cpt_error=0;
    for (i=0;i<formulaire.length;i++)
    {
        var id_champ=new String(formulaire.elements[i].id);
        var id_obli=id_champ.substring(0,2);
        if(id_obli=="o_")
        {
            //champ obligatoire
            if (trim(formulaire.elements[i].value)=="")
            {
                if(cpt_error==0)
                {
                    msg_error+="Veuillez renseigner le(s) champ(s) suivant(s):\n";
                    cpt_error++;
                }
                var id_error=id_champ.substring(2,id_champ.length);
                msg_error+=id_error+"\n";
            }
        }
    }
    return(msg_error);
}
//------------------------------------------------------------------------
//highlight des cellules de tableau html (classe)
//------------------------------------------------------------------------
function highlight_cel(object_id,classe)
{
	var obj_prop=capt_obj(object_id,"");
	obj_prop.className=""+classe;
}

//------------------------------------------------------------------------
//numeroter ou denumeroter la ligne survolee
//------------------------------------------------------------------------
function numero_line(num_lig,id1_zone_cpt,id2_zone_cpt,tot_lig)
{
	var obj_zone1_cpt=capt_obj(id1_zone_cpt,"");
	var obj_zone2_cpt=capt_obj(id2_zone_cpt,"");
	numlig=num_lig+1;
	if(num_lig==-1)
	{
		obj_zone1_cpt.value="/ "+tot_lig;
		obj_zone2_cpt.value="/ "+tot_lig;
	}
	else
	{
		obj_zone1_cpt.value=numlig+" / "+tot_lig;
		obj_zone2_cpt.value=numlig+" / "+tot_lig;
	}
}

//------------------------------------------------------------------------
//-> Fonction Entry
//------------------------------------------------------------------------

function Entry(nEntrie, Vecteur, Separateur)
{
 var NbEntries
 var PosEnCours
 var i, a
 var Chardeb
 var Charfin

 //->verifier que l'entree specifiee existe bien

 NbEntries = NumEntries(Vecteur, Separateur);

 if ((NbEntries == 1) || (nEntrie > NbEntries))
   {
    return (Vecteur);
   }

 //-> Tester si on cherche la derniere entree

 if (nEntrie == NbEntries)
   {
    //Recherche du dernier separateur
    PosEnCours = Vecteur.lastIndexOf(Separateur);

    a = PosEnCours + 1;

    if (a > Vecteur.length)
      {
       return ("");
      }
    else
      {
       return ( Vecteur.substring(PosEnCours + 1, Vecteur.length) );
      }
   }

 //-> Recherche de l'entree

 NbEntries = 0;
 PosEnCours = 0;
 i = 0;

 while(1)
   {
    i = Vecteur.indexOf(Separateur,PosEnCours);

    NbEntries = NbEntries + 1;

    if (NbEntries == nEntrie)
      {
       //Lecture de la position de debut
       Chardeb = PosEnCours;

       //Recherche du separateur suivant
       Charfin = i;

       if (Chardeb == Charfin)
         {
          return ("");
         }
       else
         {
          return (Vecteur.substring(Chardeb, Charfin));
         }

      }

     PosEnCours = i + 1;
    }

}

//-----------------------------------------------------------------------------
//-> Fonction NumEntries
//--> Fonction qui retourne le nombre d'entrees d'un vecteur pour un separateur donne
//-----------------------------------------------------------------------------

function NumEntries( Vecteur , Separateur )
{

var NbEntries
var i
var Posanalyse

Posanalyse = 0;
NbEntries = 0;

while (1)
  {
   i = Vecteur.indexOf(Separateur,Posanalyse);

  // i = InStr(Posanalyse, Vecteur, Separateur)
   if ( i == -1 )
     {
      return (NbEntries + 1); //-> Renvoyer le nombre d'entrees
     }
   else
     {
      NbEntries = NbEntries + 1;
      Posanalyse = i + 1;
     }
  }

}
//-----------------------------------------------------------------------------
//verifier la validite d'une date au format jj/mm/aaaa
//-----------------------------------------------------------------------------
function check_date(d)
{
	var longueur_date=d.length;
	if (longueur_date!=10)
		return false;
		
	var slash1=d.substr(2,1)
	if(slash1!="/")
		return false;
		
	var slash2=d.substr(5,1)
	if(slash2!="/")
		return false;

	var annee=new Number(parseInt(d.substr(6),10));
	var mois=new Number(parseInt(d.substr(3,2),10));
	var jour=new Number(parseInt(d.substr(0,2),10));

	if (mois==2)
	{
		if (annee%4==0 && (annee%100!=0 || annee%400==0))
		{
			// annee bissextile
			if (jour>29 || jour==0)
			{
				//fevrier<= 29 jours
				return false;
			}
		}
		else
		{
			//annee standard
			if (jour>28 || jour==0)
			{
				//fevrier <= 28 jours
				return false;
			}
		}
	}
	else
	{
		if (mois<=12 && mois!=0)
		{
			if (mois==4 || mois==6 || mois==9 || mois==11)
			{
				//mois <= 30 jours
				if (jour>30 || jour==0)
				{
					return false;
				}
			}
			if (mois==1 || mois==3 || mois==5 || mois==7 || mois==8 || mois==10 || mois==12)
			{
				//mois <= 31 jours
				if (jour>31 || jour==0)
				{
					return false;
				}
			}
		}
		else
		{
			return false;
		}
	}
	return true;
}

//-------------------------------------------------
//-> fonction supdate : Comparaison de dates
// -> retourne true si date2>=date1
//-------------------------------------------------
function supdate(date1,date2)
{
 var result = new Boolean();
 result = false;
 vard1 = new String(date1);
 vard2 = new String(date2);

 d11 = Entry(1,vard1,"/");
 d12 = Entry(2,vard1,"/");
 d13 = Entry(3,vard1,"/");
 d21 = Entry(1,vard2,"/");
 d22 = Entry(2,vard2,"/");
 d23 = Entry(3,vard2,"/");

 var date_r1 = new Number(d13 + d12 + d11);
 var date_r2 = new Number(d23 + d22 + d21);

 if (date_r2>=date_r1)
   result = true;

 return (result);
}

//----------------------------------------------------------
//-> fonction check_car : reperage des caracteres interdits
//-----------------------------------------------------------
function check_car(tab_cars,tab_zones,formulaire)
{
	//nombre de caracteres a controler
	var cpt_cars = tab_cars.length;
	
	//nombre de zones a controler
	var cpt_zones = tab_zones.length;
	
	//Initialisation de la variable de retour erreur
	var erreur=new String("");
	
	var trouve=0;

	//boucle sur les zones de texte a� verifier
	for (var i=0;i<cpt_zones;i++)
	{
		var zone=formulaire.elements[""+tab_zones[i]];
		//boucle sur les valeurs interdites
		for(var j=0; j<cpt_cars; j++)
		{
			if (zone.value.indexOf(tab_cars[j]) != -1 )
			{
				//affichage du message d'erreur si le caractere interdit est trouve
				erreur+="Caractere interdit : "+tab_cars[j]+"\n";
				trouve=1;
			}
		}
	}
	if(trouve==0)
		return("ok");
	//valeur de retour
	return (erreur);
}

//----------------------------------------------------------
//-> fonction ctrl_numer : controle de zone numerique
//-----------------------------------------------------------
function ctrl_numer(objet)
{
	var is_nume=true;
	with (objet) // Pour l objet en parametre
	{
		objval=objet.value;
		for (cpt=0; cpt < objval.length; cpt++)
		{
			tempchar= objval.substring (cpt, cpt+1);
			if (!isNaN(tempchar)||tempchar==".")
				is_nume=true;
			else
			{
				is_nume=false;
				break;
			}
		}
	}

	if (!is_nume) // Si valeur n est pas numerique
		return false;
	else
		return true;
}

//----------------------------------------------------------
//-> fonction check_num : controle de zones numeriques
//-----------------------------------------------------------
function check_num(tab_zones)
{
	var numchars="0123456789";
	//nombre de zones a controler
	var cpt_zones=tab_zones.length;

	//boucle sur les zones de texte a verifier
	for (var i=0;i<cpt_zones;i++)
	{
		var zone=tab_zones[i];
		var retour=true;
		for (var j=0; j<zone.length; j++)
		{
			var car=zone.charAt(j);
			retour=( numchars.indexOf(car) != -1);
		}
	}
	//valeur de retour
	return (retour);
}
//----------------------------------------------------------
//-> fonction checkbox_all : coche ou decoche toutes les 
//checkbox du formulaire (id) passe en argument
//-----------------------------------------------------------

function checkbox_all(object_id,coche_check)

{

	var obj_form=capt_obj(object_id,"");

	for (i=0;i<obj_form.length;i++)

	{

		if (obj_form.elements[i].type=="checkbox")
		{
			if(coche_check==1)
				obj_form.elements[i].checked=true;
			else
				obj_form.elements[i].checked=false;
		}
	}

} 