
// ------------------------------------------------------------------------------------
// VARIABLES GLOBALES
// ------------------------------------------------------------------------------------
var TabChampObligatoire = new CreeTableauChampObligatoire ("NOM", "PRENOM", "ADRESS1",  "VILLE",  "CPOSTAL", "TELEPHONE", "EMAIL");
var NombreChampObligatoire; 

var TabChampNumerique = new CreeTableauChampNumerique ("CPOSTAL");
var NombreChampNumerique; 

var MSG_CONFIRM = "Voulez-vous réellement détruire cet enregistrement ?";

// ------------------------------------------------------------------------------------
// FONCTIONS
// ------------------------------------------------------------------------------------



// ------------------------------------------------------------------------------------
// Objet : Retourne la valeur du produit
// Paramètres : Form , Valeur du produit
// Retour : 	Rien
// Version : 1.1
// ------------------------------------------------------------------------------------
function GetAndSetProduit(Form, Valeur)
{
  for (i=0; i < Form.NOM.length; i++)
  {
    if (Form.NOM.options[i].text == Valeur)
    {
      Form.NOM.options[i].selected = true
      return
    }
  }
}


//--------------------------------------------
// Objet : Effectue la vérification/validation de la form
// Paramètres : Form
// Retour : 	true si OK
//			false sinon
// Version : 1.1
// ------------------------------------------------------------------------------------
function ValidationForm(form)
{
  if (ControleValidite(form, 'NOM'))
    if (ControleValidite(form, 'PRENOM'))
      if (ControleValidite(form, 'ADRESS1'))
        if (ControleValidite(form, 'VILLE'))
          if (ControleValidite(form, 'CPOSTAL'))
            if ( ControleValidite(form, 'TELEPHONE'))
              if (ControleValidite(form, 'EMAIL'))
		return true;
              else
                return false;
            else
              return false;
          else
            return false;
        else
          return false;
      else
        return false;
    else
      return false;
  else
       return false;
return true;
}



// ------------------------------------------------------------------------------------
// Objet : Création du tableau des champs obligatoires
// Paramètres : Toutes le valeurs des items du tableau à initialiser
// Retour : Rien
// Version : 1.0
// ------------------------------------------------------------------------------------
function CreeTableauChampObligatoire()
{
  this.length = CreeTableauChampObligatoire.arguments.length;
  NombreChampObligatoire= CreeTableauChampObligatoire.arguments.length;
  for (i=0; i < this.length; i++)
    {
      this[i] = CreeTableauChampObligatoire.arguments[i];
    }
}

// ------------------------------------------------------------------------------------
// Objet : Création du tableau des champs numériques
// Paramètres : Toutes le valeurs des items du tableau à initialiser
// Retour : Rien
// Version : 1.0
// ------------------------------------------------------------------------------------
function CreeTableauChampNumerique()
{
  this.length = CreeTableauChampNumerique.arguments.length;
  NombreChampNumerique= CreeTableauChampNumerique.arguments.length;
  for (i=0; i < this.length; i++)
    {
      this[i] = CreeTableauChampNumerique.arguments[i];
    }
}


// ------------------------------------------------------------------------------------
// Objet : Vérification de l'obligation du champ
// Paramètres : Champ
// Retour : 	true si obligatoire
//			false sinon
// Version : 1.1
// ------------------------------------------------------------------------------------
function ChampObligatoire(Champ)
{
  for (i=0; i < NombreChampObligatoire; i++)
  {
    if (Champ.indexOf(TabChampObligatoire[i]) != -1)
        return true;
  }
  return false;
}

// ------------------------------------------------------------------------------------
// Objet : Vérification de la numéricité d'un champ
// Paramètres : Champ
// Retour : 	true si numérique
//			false sinon
// Version : 1.1
// ------------------------------------------------------------------------------------
function ChampNumerique(Champ)
{
  for (i=0; i < NombreChampNumerique; i++)
  {
    if (Champ.indexOf(TabChampNumerique[i]) != -1)
      return true;
  }
  return false;
}

// ------------------------------------------------------------------------------------
// Objet : Vérifie si le champ est renseigné ou pas
// Paramètres : Champ
// Retour : 	true si renseigné
//			false sinon
// Version : 1.0
// ------------------------------------------------------------------------------------
function ChampRenseigne(Chaine)
{
  if (Chaine.length != 0)
  {
	return true;
  }
  else
  {
	return false;
  }

}

// ------------------------------------------------------------------------------------
// Objet : Vérifie si la chaine passée est un entier
// Paramètres : Chaine
// Retour : 	true si entier
//			false sinon
// Version : 1.0
// ------------------------------------------------------------------------------------

function ControleEntier(Chaine)
{
  var Chiffre = "0123456789";
  for (Cpt=0; Cpt < Chaine.length; Cpt++)
    {
      temp = Chaine.substring(Cpt, Cpt+1);
      if (Chiffre.indexOf(temp)== -1)
      {
        return false;
      }
    }
  return true;
}

// ------------------------------------------------------------------------------------
// Objet : Renvoie la valeur du champ d'une form
// Paramètres : Form, Champ
// Retour : 	Valeur
// Version : 1.1
// ------------------------------------------------------------------------------------
function GetValueOfField(Form, Champ)
{
  return(eval("document." + Form.name + "." + Champ + ".value"));
}

// ------------------------------------------------------------------------------------
// Objet : Ecrit une valeur dans le champ d'une form
// Paramètres : Form, Champ, Valeur
// Retour : 	Rien
// Version : 1.1
// ------------------------------------------------------------------------------------
function SetValueToField(Form, Champ, Valeur)
{
  eval("document." + Form.name + "." + Champ + ".value" + "= Valeur");
}

// ------------------------------------------------------------------------------------
// Objet : Contrôle la validité du champ
// Paramètres : Champ
// Retour : 	true si entier
//			false sinon
// Version : 1.1
// ------------------------------------------------------------------------------------

function ControleValidite(Form, Champ)
{

// Pour les champs obligatoires
if (ChampObligatoire(Champ))
{
  if (!ChampRenseigne(GetValueOfField(Form, Champ)))
  {
    alert("Le champ " + Champ + " est obligatoire");
    return false;
  }
}

// Pour les champs numériques
if (ChampNumerique(Champ))
{
  if (!ControleEntier(GetValueOfField(Form, Champ)))
  {
    alert("Le champ " + Champ + " est numerique");
    SetValueToField(Form, Champ, "");
    return false;
  }
}

return true;
}

