// Code JavaScript pour la gestion des menus.
// Auteur: OrdinaSoft, Patrick Lanz, Lausanne.
// Première version: 26 août 2005

var CurMenu1     = null;  // menu de niveau 1 actuellement sélectionné
var CurMenu1Text = null;  // texte du menu de niveau 1 actuellement sélectionné
var CurMenu2     = null;  // menu de niveau 2 actuellement sélectionné
var CurMenu2bis  = null;  // cellule de niveau 2 actuellement sélectionné
var CurMenu2_1   = null;  // texte du menu de niveau 2 actuellement sélectionné
var CurMenu3     = null;  // menu de niveau 3 actuellement sélectionné

function MenuHilight1 (Text)
// Montre que le menu de niveau 1 donné par Text est sélectionné.
{
  CurMenu1.style.backgroundColor = '#483030';
  document.getElementById (Text).style.color = "#F4F0F0";
}

function MenuNormal1 (Text)
// Montre que le menu de niveau 1 donné par Text n'est plus sélectionné.
{
  CurMenu1.style.backgroundColor = '#F4F0F0';
  document.getElementById (Text).style.color = "#371E04";
}

function MenuSel (Self, Name, SubMenu)
// Sélection d'un menu de niveau 1.
//   Self est la cellule sur laquelle on est.
//   Name est le nom pour le texte.
//   SubMenu est le sous-menu à afficher.
{
  CurMenu1     = Self;
  CurMenu1Text = Name;
  MenuHilight1 (Name);
  if (SubMenu) {
    var xPos = Self.offsetLeft;
    var yPos = Self.offsetTop;
    var Parent = Self.offsetParent;
    while (Parent) {
      xPos += Parent.offsetLeft;
      yPos += Parent.offsetTop;
      Parent = Parent.offsetParent;
    }
    CurMenu2 = document.getElementById (SubMenu);
    var Style = CurMenu2.style;
    Style.top = yPos + Self.offsetHeight;
    Style.left = xPos;
    Style.visibility = 'visible';
  }
}

function MenuUnsel (Self, Name, SubMenu)
// On quitte un menu de niveau 1.
//   Self est la cellule sur laquelle on est.
//   Name est le nom pour le texte.
//   SubMenu est le sous-menu affiché.
{
  MenuNormal1 (Name);
  if (CurMenu2)
    CurMenu2.style.visibility = 'hidden';
}

function MenuHilight2 (Cell)
// On passe par dessus une entrée d'un menu de niveau 2.
//   Cell est la cellule sur laquelle on est.
{
  CurMenu2.style.visibility = 'visible';
  MenuHilight1 (CurMenu1Text);
  var Style = Cell.style;
  Style.backgroundColor = "#483030";
  Style.color = "#F4F0F0";
}

function MenuNormal2 (Cell)
// On quitte une entrée d'un menu de niveau 2.
//   Cell est la cellule sur laquelle on est.
{
  var Style = Cell.style;
  Style.backgroundColor = "#C7C78F";
  Style.color = "#371E04";
}

function MenuHide2 ()
// On quitte un menu de niveau 2.
{
  CurMenu2.style.visibility = 'hidden';
  MenuNormal1 (CurMenu1Text);
}

function MenuSel2 (Cell, TextCell, SubMenu)
// Sélection d'un menu de niveau 2.
//   Cell est la cellule sur laquelle on est.
//   TextCell est le nom de la cellule avec le texte.
//   SubMenu est le sous-menu à afficher.
{
  CurMenu2bis = Cell;
  MenuHilight2 (Cell);
  CurMenu2_1 = document.getElementById (TextCell);
  MenuHilight2 (CurMenu2_1);
  var xPos = Cell.offsetLeft;
  var yPos = Cell.offsetTop;
  var Parent = Cell.offsetParent;
  while (Parent) {
    xPos += Parent.offsetLeft;
    yPos += Parent.offsetTop;
    Parent = Parent.offsetParent;
  }
  CurMenu3 = document.getElementById (SubMenu);
  var Style = CurMenu3.style;
  Style.top = yPos - 1;
  Style.left = xPos + Cell.offsetWidth - 1;
  Style.visibility = 'visible';
}

function MenuUnsel2 (Cell)
// On quitte un menu de niveau 2.
//   Cell est la cellule sur laquelle on est.
{
  MenuNormal2 (Cell);
  MenuNormal2 (CurMenu2_1);
  CurMenu3.style.visibility = 'hidden';
}

function MenuHilight3 (Cell)
// On passe par dessus une entrée d'un menu de niveau 3.
//   Cell est la cellule sur laquelle on est.
{
  CurMenu3.style.visibility = 'visible';
  MenuHilight1 (CurMenu1Text);
  MenuHilight2 (CurMenu2bis);
  MenuHilight2 (CurMenu2_1);
  var Style = Cell.style;
  Style.backgroundColor = "#483030";
  Style.color = "#F4F0F0";
}

function MenuHide3 ()
// On quitte un menu de niveau 3.
{
  CurMenu3.style.visibility = 'hidden';
  CurMenu2.style.visibility = 'hidden';
  MenuNormal2 (CurMenu2);
  MenuNormal2 (CurMenu2_1);
  MenuNormal2 (CurMenu2bis);
  MenuNormal1 (CurMenu1Text);
}
