// ------------------------------------------------------
// basicmenu.js (c) l.bruninx 2003
// ------------------------------------------------------
// @version : 1.0
// @revision: beta-1
// @author  : Luc bruninx
// @description :
//  Bibliothèque de scripts JavaScript pour animer et la
//  gestion de menu du type BasicMenu par l.bruninx
// ------------------------------------------------------
// Nécessite l'imporation préalable de la bibliothèque
// scriptslib.js
// ------------------------------------------------------

function BasicMenu(overColor,outColor,overLinkColor,outLinkColor) {
    //
    // Constructeur de la class BasicMenu :
    // ------------------------------------
    // Un BasicMenu est constitué d'un tableau HTML avec au minimum
    // une cellule <TD> et un lien <A>.
    // Ce tableau peut avoir des formes divers. Le code est suffisament
    // souple pour s'adapter à divers situations.
    // Il suffit de créer l'objet BasicMenu dans un script.
    // Puis, de lier les attributs onMouseOver, onMouseOut et onMouseClick
    // de la balise TABLE sur les prototype ci-dessous en précisant
    // comme argument this pour que le code retrouve l'objet en cours.
    //
    if(arguments.length>0) {
        this.init(overColor,outColor,overLinkColor,outLinkColor);
    }
}

BasicMenu.prototype.init = function (overColor,outColor,overLinkColor,outLinkColor) {
    //
    // Initialisation de l'objet BasicMenu...
    // overColor et outColor se rapportent aux couleurs des cellules lors des
    // évènements onMouseOver et onMouseOut.
    // idem avec overLinkColor et outLinkColor mais pour le lien interne.
    //
    this.overColor     = overColor;
    this.outColor      = outColor;
    this.overLinkColor = overLinkColor;
    this.outLinkColor  = outLinkColor;
}

BasicMenu.prototype.mouseOver = function (tableObj) {
    //
    // Comportement lors d'un mouseOver...
    //
    var cell = tableCell(tableObj,0);
    var lnk  = tableLink(tableObj,0);
    if(cell!=undefined){
        cell.style.background = this.overColor;
    }
    if(lnk!=undefined){
        lnk.style.color = this.overLinkColor;
    }
}

BasicMenu.prototype.mouseOut = function (tableObj) {
    //
    // Comportement lors d'un mouseOut...
    //
    var cell = tableCell(tableObj,0);
    var lnk  = tableLink(tableObj,0);
    if(cell!=undefined){
        cell.style.background = this.outColor;
    }
    if(lnk!=undefined){
        lnk.style.color = this.outLinkColor;
    }
}

BasicMenu.prototype.mouseClick = function (tableObj) {
    //
    // Comportement lors d'un click...
    //
    // Remarque : Le programme va chercher lui-même l'url dans le lien.
    //
    var lnk  = tableLink(tableObj,0);
    if(lnk!=undefined){
        location.href = lnk.href;
    }
}

