var ie = document . all ? 1 : 0
var ns = document . layers ? 1 : 0
var ns6 = document.getElementById && !document.all ? 1 : 0

// Position en hauteur une fois le menu ouvert
var topOpen = 10;
// Position en hauteur lorsque le menu est fermé
var topClosed = 10;

var master = new Object("element")
master . curLeft = -120; // Position de départ du calque
master . curTop = 10; // Hauteur de départ du calque
master . gapLeft = 0;
master . gapTop = 0;
master . timer = null;

function moveAlong(layerName, paceLeft, paceTop, fromLeft, fromTop)
{
    clearTimeout(eval(layerName) . timer);

    if (eval(layerName) . curLeft != fromLeft) {
	    // Calcul position horizontale
        if ((Math . max(eval(layerName) . curLeft, fromLeft) - Math . min(eval(layerName) . curLeft, fromLeft)) < paceLeft) {
            eval(layerName) . curLeft = fromLeft;
        } else if (eval(layerName) . curLeft < fromLeft) {
            eval(layerName) . curLeft = eval(layerName) . curLeft + paceLeft;
        } else if (eval(layerName) . curLeft > fromLeft) {
            eval(layerName) . curLeft = eval(layerName) . curLeft - paceLeft;
        } 
        // Définition de la position horizontale du menu
        if (ie) {
            document . all[layerName] . style . left = eval(layerName) . curLeft;
        } 
        if (ns) {
            document[layerName] . left = eval(layerName) . curLeft;
        } 
        if (ns6) {
            document . getElementById(layerName) . style . left = eval(layerName) . curLeft;
        } 
    } 
	
    if (eval(layerName) . curTop != fromTop) {
	    // Calcul position verticale
        if ((Math . max(eval(layerName) . curTop, fromTop) - Math . min(eval(layerName) . curTop, fromTop)) < paceTop) {
            eval(layerName) . curTop = fromTop;
        } else if (eval(layerName) . curTop < fromTop) {
            eval(layerName) . curTop = eval(layerName) . curTop + paceTop;
        } else if (eval(layerName) . curTop > fromTop) {
            eval(layerName) . curTop = eval(layerName) . curTop - paceTop;
        } 
        // Définition position verticale du menu
        if (ie) {
            document . all[layerName] . style . top = eval(layerName) . curTop;
        } 
        if (ns) {
            document[layerName] . top = eval(layerName) . curTop;
        } 
        if (ns6) {
            document . getElementById(layerName) . style . top = eval(layerName) . curTop;
        } 
    } 
    eval(layerName) . timer = setTimeout('moveAlong("' + layerName + '",' + paceLeft + ',' + paceTop + ',' + fromLeft + ',' + fromTop + ')', 30)

} // Fin function MoveAlong

function setPace(layerName, fromLeft, fromTop, motionSpeed)
{
    eval(layerName) . gapLeft = (Math . max(eval(layerName) . curLeft, fromLeft) - Math . min(eval(layerName) . curLeft, fromLeft)) / motionSpeed;
    eval(layerName) . gapTop = (Math . max(eval(layerName) . curTop, fromTop) - Math . min(eval(layerName) . curTop, fromTop)) / motionSpeed;
    // Ouvre le menu
    moveAlong(layerName, eval(layerName) . gapLeft, eval(layerName) . gapTop, fromLeft, fromTop)
} 

// Définition du menu à "fermé" lors de l'arrivée sur le site
var expandState = 0;

// Fonction Expand ()
function expand()
{
    if (expandState == 0) { // si le menu est fermé
        // Passe les paramètres d'ouverture à la fonction setPace qui contient la fonction d'ouverture "moveAlong()"
        // setPace ("nom du calque", "position par rapport à la gauche", "position en hauteur", "vitesse d'ouverture")
        setPace("master", 0, topOpen, 10); 
        // Modification de l'image "menu" :
        if (ie) {
            document . menutop . src = "menub.gif";
        } else if (ns6) {
            document . getElementById("img_menu") . innerHTML = "<img src=\"menub.gif\" border=\"0\" width=\"18\" height=\"70\">";
        } 
        expandState = 1; // définition de l'état à "ouvert"
    } else { // Si le menu est ouvert
        setPace("master", -120, topClosed, 10); // Referme le menu
        // Modification de l'image "menu" :
        if (ie) {
            document . menutop . src = "menu.gif";
        } else if (ns6) {
            document . getElementById("img_menu") . innerHTML = "<img src=\"menu.gif\" border=\"0\" width=\"18\" height=\"70\">";
        } 
        expandState = 0; // définition de l'état à "fermé"
    } 
} ;


// Fonction pour que le menu reste toujours visible lors du scroll
function FixY()
{
    if (expandState == 0) {
        if (ie || ns6) { sidemenu . style . top = document . body . scrollTop + topClosed; } 
        if (ns) { sidemenu . top = window . pageYOffset + topClosed; } 
    } else {
        if (ie || ns6) { sidemenu . style . top = document . body . scrollTop + topOpen; } 
        if (ns) { sidemenu . top = window . pageYOffset + topOpen; } 
    } 
} 
// Fonction setInterval qui appelle toutes les 100 ms la fonction FixY qui détecte la position du menu et le remet en place s il y a scroll
