/************************************************
 * Scripts Généraux                             *
 *                                              *
 ************************************************/

/** Vérification du navigateur **/
var Navigateur_Mircosoft = false;
if (navigator.appName.indexOf("Microsoft") != -1) Navigateur_Mircosoft = true;


//****************************************************************************//
/**
 * Permet d'afficher un message dans la barre de status
 *
 * @param   Texte  String   Message ?fficher
 *
 */
function Barre_Etat (Texte)
  {
   status                  = '.... Ligue Ouest de la Fédération Sportive de la Police Française  ... ';
	 setTimeout("Barre_Etat ()", 200);
  }
// Fin de la fonction Barre_Etat ()


//****************************************************************************//

//****************************************************************************//

/**
 * Permet de sélectionner tous les Checkbox d'un formulaire
 *
 * @param   Nom_Formulaire     String   Nom du formulaire
 * @param   Change_Couleur     boolean  Doit-on changer la classe ?
 *
 */
function Selectionne_Tout (Nom_Formulaire)
  {
   Taille = document.forms[Nom_Formulaire].elements.length;
   var i=0;
 	 while (i!=Taille)
         {
  		    if (document.forms[Nom_Formulaire].elements[i].type=='checkbox')
             {
              La_TR          = document.forms[Nom_Formulaire].elements[i].parentNode.parentNode;
              La_fonction    = La_TR.onmouseover;
              var Expression = new RegExp ("ligne[a-zA-Z0-9]+", "g");
              La_Classe_TR   = Expression.exec (La_fonction);
              var Expression = new RegExp (" [a-zA-Z0-9]+", "g");
              La_Police_TR   = Expression.exec (La_TR.className);

  			      document.forms[Nom_Formulaire].elements[i].checked = !document.forms[Nom_Formulaire].elements[i].checked;

              if (document.forms[Nom_Formulaire].elements[i].checked)
                 {
                  document.forms[Nom_Formulaire].elements[i].className = "ligneC";
                  La_TR.className                                      = "ligneC" + La_Police_TR;
                 }
              else
                 {
                  document.forms[Nom_Formulaire].elements[i].className = La_Classe_TR;
                  La_TR.className                                      = La_Classe_TR + La_Police_TR;
                 }
             }
		      i++;
         }
  }
// Fin de la fonction Selectionne_Tout ()


//****************************************************************************//

/**
 * Permet de colorer les lignes des tableaux
 *
 * @param   LaLigne            Object   Ligne du tableau concern?* @param   Action             String   Action (0 : over / out - 1 : click)
 * @param   Style_Par_Defaut   Object   Style normal de la ligne
 * @param   Police_Par_Defaut  Object   Police normale de la ligne
 *
 */
function Colorie_Tableau(LaLigne,Action,Gestion_Checked,Style_Par_Defaut,Police_Par_Defaut)
   {
    La_Checkbox = null;

    if (typeof(document.getElementsByTagName) != 'undefined')
       {
        La_Checkbox = LaLigne.getElementsByTagName('input');
       }

    Style_Actuel = LaLigne.className;

    if (Police_Par_Defaut != '')
       {
        Style_Par_Defaut_Police = Style_Par_Defaut + " " + Police_Par_Defaut;
        LigneC_Police           = "ligneC " + Police_Par_Defaut;
        LigneCrouge_Police      = "ligneCrouge " + Police_Par_Defaut;
        LigneS_Police           = "ligneS " + Police_Par_Defaut;
        LigneSrouge_Police      = "ligneSrouge " + Police_Par_Defaut;
       }
    else
       {
        Style_Par_Defaut_Police = Style_Par_Defaut;
        LigneC_Police           = "ligneC";
        LigneCrouge_Police      = "ligneCrouge";
        LigneS_Police           = "ligneS";
        LigneSrouge_Police      = "ligneSrouge";
       }

    switch (Action)
       {
             // Gestion du survol
        case 0 :
             if ((Style_Actuel.toLowerCase() == LigneC_Police.toLowerCase()) || (Style_Actuel.toLowerCase() == LigneCrouge_Police.toLowerCase())) {Break;}

              if (Style_Actuel.toLowerCase() == Style_Par_Defaut_Police.toLowerCase())
                {
                 if (Style_Par_Defaut.toLowerCase() == 'lignerouge')
                    {
                     LaLigne.className        = LigneSrouge_Police;
                     La_Checkbox[0].className = "LigneSrouge";
                    }
                 else
                    {
                     LaLigne.className        = LigneS_Police;
                     La_Checkbox[0].className = "ligneS";
                    }
                }
             else
                {
                 LaLigne.className        = Style_Par_Defaut_Police;
                 La_Checkbox[0].className = Style_Par_Defaut;
                }
             break;

             // Gestion du click
        case 1 :
              if ((Style_Actuel.toLowerCase() == LigneS_Police.toLowerCase()) || (Style_Actuel.toLowerCase() == LigneSrouge_Police.toLowerCase()))
                {
                 if (Style_Par_Defaut.toLowerCase() == 'lignerouge')
                    {
                     LaLigne.className        = LigneCrouge_Police;
                     La_Checkbox[0].className = "ligneCrouge";
                    }
                 else
                    {
                     LaLigne.className        = LigneC_Police;
                     La_Checkbox[0].className = "ligneC";
                    }
                 if (Gestion_Checked) {La_Checkbox[0].checked = true;}
                }
             else
                {
                 if (Style_Par_Defaut.toLowerCase() == 'lignerouge')
                    {
                     LaLigne.className        = LigneSrouge_Police;
                     La_Checkbox[0].className = "ligneSrouge";
                    }
                 else
                    {
                     LaLigne.className        = LigneS_Police;
                     La_Checkbox[0].className = "ligneS";
                    }
                 if (Gestion_Checked) {La_Checkbox[0].checked = false;}
                }
             break;
       }
   }
// Fin de la fonction Colorie_Tableau ()


//****************************************************************************//

/**
 * Permet de vérifier la sélection des checkboxes.
 *
 * @param   La_Checkbox        Object   Checkebox du tableau concerné
 *
 */
function Verifie (La_Checkbox)
   {
    Style_Actuel = La_Checkbox.className;

    if ((Style_Actuel.toLowerCase() == "lignec") || (Style_Actuel.toLowerCase() == "lignecrouge"))
       {La_Checkbox.checked = true;}
    else
       {La_Checkbox.checked = false;}
   }
// Fin de Verifie ()


//****************************************************************************//
/**
 * Permet de valider un formulaire en modifiant certains inputs...
 *
 * @param   Genere_Formulaire     Bool     G?ration du formulaire ?
 * @param   Nom_Formulaire        String   Nom du formulaire ?alider
 * @param   Fichier_Php           String   Nom du fichier Php ?x?ter
 * @param   Inputs                Array    Tableau Inputs et valeurs des inputs ?odifier
 *
 */
function Valide_Formulaire (Genere_Formulaire, Nom_Formulaire, Fichier_Php, Inputs)
{
 if (!Fichier_Php) {Fichier_Php = "index.php";}
 Phrase = Racine_Du_Site + Fichier_Php;
 if (Genere_Formulaire)
    {
     var leForm = document.createElement ("form");
     leForm.setAttribute ("method", "post");
     leForm.setAttribute ("name", Nom_Formulaire);
     leForm.name = Nom_Formulaire;

     for (var i = 0; i < Inputs.length; i++)
         {
          var inp = document.createElement("input");
          inp.setAttribute ("type", "hidden");
          inp.setAttribute ("name", Inputs[i]);
          inp.setAttribute ("value", Inputs[i+1]);
          leForm.appendChild (inp);
        }

     document.body.appendChild (leForm)
    }
 else
    {
     var leForm = document.forms[Nom_Formulaire];
     for (var i = 0; i < Inputs.length; i++)
         {
          leForm.elements[Inputs[i]].value = Inputs[i+1];
          i++;
         }
    }
    leForm.action = Phrase;
    leForm.submit ();
}
// Fin de Valide_Formulaire ()


//****************************************************************************//
/**
 * Permet de vérifier si les données sont numériques...
 *
 * @param   Champ_Saisi           String   Champ à vérifier
 *
 */
function Est_Numerique (Champ_Saisi)
{
   var ValidChars = "0123456789,.-";
   var IsNumber   = true;
   var Char;


   for (i = 0; i < Champ_Saisi.length && IsNumber; i++)
      {
      Char = Champ_Saisi.charAt (i);
      if (ValidChars.indexOf (Char) == -1)
         {IsNumber = false;}
      }
   return IsNumber;
}


//****************************************************************************//

/**
 * Permet de visualiser le contenu d'un textearea en format HTML
 *
 * @param   Nom_Formulaire        String   Nom du Formulaire
 * @param   Nom_TexteArea         String   Nom du TexteArea
 * @param   Effacement            Boolean  Effacement de la zone ?
 */
function Visualise_TexteArea (Nom_Formulaire, Nom_TexteArea, Effacement)
  {
   if (Effacement)
      {
       vCombo_TA  = '';
      }
   else
      {
       vCombo_TA  = '<p /><table width="100%" class="CadreGB" align="center"><tr><td><div class="policenormale" style="Z-INDEX: 1; OVERFLOW: auto; height:200px; POSITION: relative">';
       vCombo_TA += document.forms[Nom_Formulaire].elements[Nom_TexteArea].value;
       vCombo_TA += '</div></td></tr></table>';
      }

   if (document.layers ) {Mon_DIV = document.layers ["Combo_TA"];}
   if (document["Combo_TA"]) {Mon_DIV = document ["Combo_TA"];}
   if (document.getElementById) {Mon_DIV = document.getElementById ("Combo_TA");}
   if (document.all) {Mon_DIV = document.all["Combo_TA"];}

   Mon_DIV.innerHTML = vCombo_TA;
  }


  //****************************************************************************//

/**
 * Permet de formater un textearea en mettant en place des balises HTML
 *
 * @param   Balise                Integer  Type de la balise
 * @param   Nom_Formulaire        String   Nom du Formulaire
 * @param   Nom_TexteArea         String   Nom du TexteArea
 *
 */
function Formate_Texte (Balise, Nom_Formulaire, Nom_TexteArea)
 {
  switch (Balise)
     {
      case 1 :
           Balise_Ouvrante = '<b>';
           Balise_Fermante = '</b>';
           break;
      case 2 :
           Balise_Ouvrante = '<i>';
           Balise_Fermante = '</i>';
           break;
      case 3 :
           Balise_Ouvrante = '<u>';
           Balise_Fermante = '</u>';
           break;
      case 4 :
           Balise_Ouvrante = '<div align="left">';
           Balise_Fermante = '</div>\n';
           break;
      case 5 :
           Balise_Ouvrante = '<div align="center">';
           Balise_Fermante = '</div>\n';
           break;
      case 6 :
           Balise_Ouvrante = '<div align="right">';
           Balise_Fermante = '</div>\n';
           break;
      case 7 :
           Balise_Ouvrante = '\n<ul>\n  <li />';
           Balise_Fermante = '\n</ul>\n';
           break;
      case 8 :
           Balise_Ouvrante = '<br />';
           Balise_Fermante = '';
           break;
      case 9 :
           Balise_Ouvrante = '<span class="' + document.forms[Nom_Formulaire].elements['Style'].value + '">';
           Balise_Fermante = '</span>\n';
           document.forms[Nom_Formulaire].elements['Style'].value = '-';
           break;
      case 10 :
           Balise_Ouvrante = '<img ' + document.forms[Nom_Formulaire].elements['SImage'].value + ' border="0" />';
           Balise_Fermante = '';
           document.forms[Nom_Formulaire].elements['SImage'].value = '-';
           break;
      case 11 :
           vTexte_Debut  = '<table>\n   <tr class="policenormale">\n      <td>\n         <embed style="WIDTH: 158px; HEIGHT: 180px" pluginspage="http://www.microsoft.com/windows/mediaplayer/download/default.asp" src="' + document.Formulaire.SVideo.value + '" width="158" height="180" type=\'video/x-ms-asf-plugin showcontrols="true"\' Displaysize="4" showstatusbar="1" animationstart="true" filename="' + document.Formulaire.SVideo.value + '" animationatstart="true" transparentatstart="true" autostart="true" controltype="1">\n      </td>\n       <td>';
           vTexte_Milieu = document.forms[Nom_Formulaire].elements[Nom_TexteArea].value;
           vTexte_Fin    = '\n      </td>\n   </tr>\n</table>';
           document.forms[Nom_Formulaire].elements[Nom_TexteArea].value = vTexte_Debut + vTexte_Milieu + vTexte_Fin;
           exit;
           break;
      case 12 :
           Balise_Ouvrante = '\n<table border="1" width="100%" cellspacing="1" cellpadding="4">\n  <tr class="policenormale">\n    <td width="50%">Ins?r ici votre texte ou votre image</td>\n    <td>Ins?r ici votre texte ou votre image</td>\n  </tr>\n</table>\n';
           Balise_Fermante = '';
           break;
     }

  if (document.selection)
     {
      var TexteSelectionne = document.selection.createRange().text;

      document.forms[Nom_Formulaire].elements[Nom_TexteArea].focus ();
      sel = document.selection.createRange ();

      sel.text = Balise_Ouvrante + TexteSelectionne + Balise_Fermante;
      document.Formulaire.insert.focus ();
     }
  else
  if (document.forms[Nom_Formulaire].elements[Nom_TexteArea].selectionStart || document.forms[Nom_Formulaire].elements[Nom_TexteArea].selectionStart == "0")
     {
      var startPos  = document.forms[Nom_Formulaire].elements[Nom_TexteArea].selectionStart;
      var endPos    = document.forms[Nom_Formulaire].elements[Nom_TexteArea].selectionEnd;
      var chaineSql = document.forms[Nom_Formulaire].elements[Nom_TexteArea].value;

      document.forms[Nom_Formulaire].elements[Nom_TexteArea].value = chaineSql.substring (0, startPos) + Balise_Ouvrante + chaineSql.substring (startPos, endPos) + Balise_Fermante + chaineSql.substring (endPos, chaineSql.length);
     }
  else
     {
      document.forms[Nom_Formulaire].elements[Nom_TexteArea].value += Nom_Du_Champ;
     }
 }


  //****************************************************************************//

/**
 * Permet la vérification de la saisie d'une date dans une zone de texte
 *
 * @param   LaDate     String  Date à vérifier
 *
 */
function Verifie_Date (LaDate)
   {
    var amin = 1930; // année mini
    var amax = 2500; // année maxi
    var separateur = "/"; // separateur entre jour/mois/annee
    var j = (LaDate.value.substring (0,2));
    var m = (LaDate.value.substring (3,5));
    var a = (LaDate.value.substring (6));

    if ((isNaN (j)) || (j < 1) || (j > 31))
       {alert("Le jour saisi n'est pas correct."); LaDate.focus(); LaDate.select(); return false; exit;}

    if ((isNaN (m)) || (m < 1) || (m > 12))
       {alert("Le mois saisie n'est pas correct."); LaDate.focus(); LaDate.select(); return false; exit;}

    if ((isNaN (a)) || (a < amin) || (a > amax))
       {alert("L'année saisie n'est pas correcte."); LaDate.focus(); LaDate.select(); return false; exit;}

    if ((LaDate.value.substring (2, 3) != separateur) || (LaDate.value.substring (5, 6) != separateur))
       {alert("Les séparateurs doivent être des " + separateur); LaDate.focus(); LaDate.select(); return false; exit;}

    var Date_Verifiee = new Date (a, m-1, j);
    j2 = Date_Verifiee.getDate();
    m2 = Date_Verifiee.getMonth() + 1;
    a2 = Date_Verifiee.getFullYear();

    if (a2 <= 100) {a2 = 1900 + a2;}
    if ((j != j2) || (m != m2) || (a != a2))
       {alert("La date " + LaDate.value + " n'est pas valide !"); LaDate.focus(); LaDate.select(); return false; exit;}
    return true;
   }

//****************************************************************************//

/**
 * Permet d'afficher toutes les propriétés d'un objet
 *
 * @param   vpObjet    Objet   Objet à traiter
 *
 */
function fAffiche_Proprietes (vpObjet)
   {
    for (i in vpObjet) 
        {
         document.write (i + " = " + obj[i] + "<br/>");
         }
   }



