function $TN(Name) {return document.getElementsByTagName (Name);}
function $SA (Noeud, Att, Val) {Noeud.setAttribute(Att, Val);}

window.onload=montre;
function montre (Id)
{
  var d = document.getElementById(Id);
  for (var i = 1; i <= 10; i++)
    if (document.getElementById('smenu' + i)) document.getElementById('smenu' + i).style.display = 'none';
  if (d)
    d.style.display = 'block';
} // montre ()

function Cache ()
{
  for (var i = 1; i <= 10; i++)
    if (document.getElementById('smenu' + i)) document.getElementById('smenu' + i).style.display = 'none';
} // Cache ()

function array_unique (array)
{
  var p, i, j, tmp_arr = array;
  for (i = tmp_arr.length; i;)
  {
    for (p = --i; p > 0;)
    {
      if (tmp_arr[i] === tmp_arr[--p])
      {
        for(j = p; --p && tmp_arr[i] === tmp_arr[p];);
        i -= tmp_arr.splice(p + 1, j - p).length;
      } // if ()
    } // for ()
  } // for ()
  return tmp_arr;
} // array_unique ()

function CheckPwd(Form, Nom1)
{
  var Pwd = document.forms[Form][Nom1].value;
  var Strength = 0;
  var Pwd_length = Pwd.length;

  if (Pwd_length < 4)
  {
    document.getElementById('Force').innerHTML = "Force du mot de passe";
    if (document.all)
      document.getElementById('Force').style.setAttribute('cssText', 'color: #FF0000;');
    else
      $SA (document.getElementById('Force'), 'style', 'color: #FF0000;');
    return;
  } // if ()
  else
    Strength = Pwd_length * 4;

  for (var i = 2; i <= 4; i++)
  {
    var Temp = Pwd.split(i);
    Strength -= (Math.ceil(Pwd_length / i) - array_unique(Temp).length);
  } // for ()

  var RegNum = new RegExp('[0-9]','g');
  var Numbers = RegNum.exec(Pwd);

  if (Numbers != null)
  {
    Numbers = Numbers[0].length;
    if (Numbers >= 3) Strength += 5;
  } // if ()
  else
    Numbers = 0;

  var RegSy = new RegExp('[\\\|!@#\$%&\*\/=\?,;\.:\-_\+~\^¨]','g');
  var Symbols = RegSy.exec(Pwd);

  if (Symbols != null)
  {
    Symbols = Symbols[0].length;
    if (Symbols >= 2) Strength += 5;
  } // if ()
  else
    Symbols = 0;

  var RegLc = new RegExp('[a-z]','g');
  var LowerCase = RegLc.exec(Pwd);
  var RegUc = new RegExp('[A-Z]','g');
  var UpperCase = RegUc.exec(Pwd);

  if (LowerCase != null)
    LowerCase = LowerCase[0].length;
  else
    LowerCase = 0;

  if (UpperCase != null)
    UpperCase = UpperCase[0].length;
  else
    UpperCase = 0;

  if ((LowerCase > 0) && (UpperCase > 0)) Strength += 10;

  var Char = LowerCase + UpperCase;

  if ((Numbers > 0)  && (Symbols > 0))  Strength += 15;
  if ((Numbers > 0)  && (Char > 0))     Strength += 15;
  if ((Symbols > 0)  && (Char > 0))     Strength += 15;
  if ((Numbers == 0) && (Symbols == 0)) Strength -= 10;
  if ((Symbols == 0) && (Char == 0))    Strength -= 10;
  if (Strength < 0)   Strength = 0;
  if (Strength > 100) Strength = 100;
  var Color = ['FF0000', 'CC0066', 'FF6600', '33CC00', '33FF00'];
  var Txt = ['Très faible', 'Faible', 'Moyen', 'Fort', 'Très fort'];
  var Niveau = 0;
  if (Strength < 20) Niveau = 0;
  else if (Strength < 45) Niveau = 1;
  else if (Strength < 68) Niveau = 2;
  else if (Strength < 88) Niveau = 3;
  else Niveau = 4;
  document.getElementById('Force').innerHTML = Txt[Niveau]; // Strength + "% " + 
  if (document.all)
    document.getElementById('Force').style.setAttribute('cssText', 'color: #'+Color[Niveau]+';');
  else
    $SA (document.getElementById('Force'), 'style', 'color: #'+Color[Niveau]+';');
} // CheckPwd ()

function SamePwd (Form, Nom1, Nom2)
{
  var Pwd1 = document.forms[Form][Nom1].value;
  var Pwd2 = document.forms[Form][Nom2].value;
  if (Pwd1 != '' && Pwd2 != '')
  {
    if (Pwd1 == Pwd2 && Pwd1.length >= 4)
    {
      document.getElementById('SameMdP').innerHTML = "Les mots de passe correspondent !";
      if (document.all)
        document.getElementById('SameMdP').style.setAttribute('cssText', 'color: #33FF00;');
      else
        $SA (document.getElementById('SameMdP'), 'style', 'color: #33FF00;');
      document.forms[Form]["SubmitForm"].disabled = false;
    } // if ()
    else
    {
      document.getElementById('SameMdP').innerHTML = "Les mots de passe ne correspondent pas !";
      if (document.all)
        document.getElementById('SameMdP').style.setAttribute('cssText', 'color: #FF0000;');
      else
        $SA (document.getElementById('SameMdP'), 'style', 'color: #FF0000;');
      document.forms[Form]["SubmitForm"].disabled = true;
    } // else
  } // if ()
  else
  {
    document.getElementById('SameMdP').innerHTML = "Vérification de la concordance des mots de passe";
    if (document.all)
      document.getElementById('SameMdP').style.setAttribute('cssText', 'color: #000000;');
    else
      $SA (document.getElementById('SameMdP'), 'style', 'color: #000000;');
    document.forms[Form]["SubmitForm"].disabled = true;
  } // else
} // SamePwd ()

function GetInfo (From, From2)
{
  var Res = '';
  var Pratique = new Array (
    document.forms[From]["MaPratique1"].checked,
    document.forms[From]["MaPratique2"].checked,
    document.forms[From]["MaPratique3"].checked,
    document.forms[From]["Frequence"].value,
    document.forms[From]["Pratique1"].checked,
    document.forms[From]["Pratique2"].checked,
    document.forms[From]["Pratique3"].checked);
  for (var i = 0; i < 7; i++)
    Res += ((Pratique[i])?((i == 3)?Pratique[i]:'1'):'0') + ((i == 2 || i == 3)?'-':((i == 6)?'':'!'));
  document.forms[From2]["Info"].value = Res;
} // GetInfo ()


function Over (id)
{
  if (document.getElementById(id))
  {
    if (document.all)
      document.getElementById(id).style.setAttribute('cssText', '');
    else
      $SA (document.getElementById(id), 'style', '');
  } // if ()
} // Over ()

function Out (id)
{
  if (document.getElementById(id))
  {
    if (document.all)
      document.getElementById(id).style.setAttribute('cssText', 'display: none;');
    else
      $SA (document.getElementById(id), 'style', 'display: none;');
  } // if ()
} // Out ()

function OverSS (id)
{
  if (document.getElementById(id))
  {
    var nav = navigator.userAgent;
    var IE8 = false;
    var Opera = false;
    if (nav.substring(25, 33) == 'MSIE 8.0') IE8 = true;
    if (nav.substring(0, 5) == 'Opera') Opera = true;
    if (document.all)
      if (IE8)
        document.getElementById(id).style.setAttribute('cssText', 'margin-left: 111px; z-index:6; margin-top: 15px');
      else
        document.getElementById(id).style.setAttribute('cssText', 'margin-left: 110px; z-index:6; margin-top: -20px');
    else
      if (Opera)
        $SA (document.getElementById(id), 'style', 'margin-left: 111px; z-index:6; margin-top: -25px;');
      else
        $SA (document.getElementById(id), 'style', 'margin-left: 111px; z-index:6;');
  } // if ()
} // OverSS ()

function OutSS (id)
{
  if (document.getElementById(id))
  {
    if (document.all)
      document.getElementById(id).style.setAttribute('cssText', 'margin-left: 110px; display: none; z-index:6; margin-top: -20px');
    else
      $SA (document.getElementById(id), 'style', 'margin-left: 111px; display: none; z-index:6;');
  } // if ()
} // OutSS ()

function RechercheVTT ()
{
  var xhr = getXhr();
  xhr.onreadystatechange = function()
  {
    if (xhr.readyState == 4 && xhr.status == 200)
      $('Tableau').innerHTML = xhr.responseText;
  } // onreadystatechange ()
  var SendValue = "Depart=" + document.getElementById('Depart').options[document.getElementById('Depart').selectedIndex].value;
  SendValue += "&Longueur=" + document.getElementById('Longueur').options[document.getElementById('Longueur').selectedIndex].value;
  SendValue += "&Denivelee=" + document.getElementById('Denivelee').options[document.getElementById('Denivelee').selectedIndex].value;
  SendValue += "&Niveau=" + document.getElementById('Niveau').options[document.getElementById('Niveau').selectedIndex].value;
  SendValue += "&Min=" + document.getElementById('Min').value;
  SendValue += "&Lon=" + document.getElementById('Lon').value;
  SendValue += "&Den=" + document.getElementById('Den').value;
  SendValue += "&Niv=" + document.getElementById('Niv').value;
  xhr.open("GET", "Include/Pages/DataParcoursVTT.php?" + SendValue, true);
  xhr.send(null);
} // RechercheVTT ()

function ChangeRechercheVTT ()
{
  document.getElementById('Min').value = 0;
  document.getElementById('Lon').value = 0;
  document.getElementById('Den').value = 0;
  document.getElementById('Niv').value = 0;
  RechercheVTT();
} // ChangeRechercheVTT ()

function ReinitRechercheVTT ()
{
  document.getElementById('Depart').selectedIndex = 0;
  document.getElementById('Longueur').selectedIndex = 0;
  document.getElementById('Denivelee').selectedIndex = 0;
  document.getElementById('Niveau').selectedIndex = 0;
  document.getElementById('Min').value = 0;
  document.getElementById('Lon').value = 0;
  document.getElementById('Den').value = 0;
  document.getElementById('Niv').value = 0;
  RechercheVTT();
} // ReinitRechercheVTT ()

function ChangePageVTT (Min)
{
  document.getElementById('Min').value = Min;
  RechercheVTT();
} // ChangePageVTT ()

function OrdreRechercheVTT (Ordre)
{
  var ValOrdre = document.getElementById(Ordre).value;
  document.getElementById('Lon').value = 0;
  document.getElementById('Den').value = 0;
  document.getElementById('Niv').value = 0;
  ValOrdre = ((ValOrdre + 1) % 3);
  document.getElementById(Ordre).value = ValOrdre;
  RechercheVTT();
} // OrdreRechercheVTT ()

function RechercheRoute ()
{
  var xhr = getXhr();
  xhr.onreadystatechange = function()
  {
    if (xhr.readyState == 4 && xhr.status == 200)
      $('Tableau').innerHTML = xhr.responseText;
  } // onreadystatechange ()
  var SendValue = "Depart=" + document.getElementById('Depart').options[document.getElementById('Depart').selectedIndex].value;
  SendValue += "&Longueur=" + document.getElementById('Longueur').options[document.getElementById('Longueur').selectedIndex].value;
  SendValue += "&Denivelee=" + document.getElementById('Denivelee').options[document.getElementById('Denivelee').selectedIndex].value;
  SendValue += "&Niveau=" + document.getElementById('Niveau').options[document.getElementById('Niveau').selectedIndex].value;
  SendValue += "&Min=" + document.getElementById('Min').value;
  SendValue += "&Lon=" + document.getElementById('Lon').value;
  SendValue += "&Den=" + document.getElementById('Den').value;
  SendValue += "&Niv=" + document.getElementById('Niv').value;
  xhr.open("GET", "Include/Pages/DataParcoursRoute.php?" + SendValue, true);
  xhr.send(null);
} // RechercheRoute ()

function ChangeRechercheRoute ()
{
  document.getElementById('Min').value = 0;
  document.getElementById('Lon').value = 0;
  document.getElementById('Den').value = 0;
  document.getElementById('Niv').value = 0;
  RechercheRoute();
} // ChangeRechercheRoute ()

function ReinitRechercheRoute ()
{
  document.getElementById('Depart').selectedIndex = 0;
  document.getElementById('Longueur').selectedIndex = 0;
  document.getElementById('Denivelee').selectedIndex = 0;
  document.getElementById('Niveau').selectedIndex = 0;
  document.getElementById('Min').value = 0;
  document.getElementById('Lon').value = 0;
  document.getElementById('Den').value = 0;
  document.getElementById('Niv').value = 0;
  RechercheRoute();
} // ReinitRechercheRoute ()

function ChangePageRoute (Min)
{
  document.getElementById('Min').value = Min;
  RechercheRoute();
} // ChangePageRoute ()

function OrdreRechercheRoute (Ordre)
{
  var ValOrdre = document.getElementById(Ordre).value;
  document.getElementById('Lon').value = 0;
  document.getElementById('Den').value = 0;
  document.getElementById('Niv').value = 0;
  ValOrdre = ((ValOrdre + 1) % 3);
  document.getElementById(Ordre).value = ValOrdre;
  RechercheRoute();
} // OrdreRechercheRoute ()

function MouseOver ()
{
  document.body.style.cursor="pointer";
} // MouseOver ()

function MouseOut ()
{
  document.body.style.cursor="default";
} // MouseOut ()