/*
--------------------------------------------------------
Menu horizontal a deroulement vertical (a un niveau)
--------------------------------------------------------
Copyright 2002 GHS
--------------------------------------------------------
20021203 SB : Version 1.0 terminee
--------------------------------------------------------
Ce script gere l'affichage d'un menu horizontal qui se deroule par roll sur les menus et qui
ouvre des sous-menus. il permet de gerer l'emplacement des sous-menus, le roll de background pour 
le sous-menu, les styles CSS
--------------------------------------------------------
Usage : 
        - Charger de Javascript dans le HEAD
        - Creer le menu comme indique dans les parties suivantes 
            (dans le HEAD ou dans le BODY mais avant le code HTML affichant le menu)
        - Appeler l'affichage d'un menu donne ou l'on veut dans le code
--------------------------------------------------------
Fonctions creees :
    Menu(idMenu, classe, libelle) : constructeur du menu
    afficherMenu() : affiche le menu (pas le sous-menu)
    creerSSMenu(classe, width, height, background, backgroundRoll, pos_rel_top, pos_rel_left) : cree le sous-menu
    ajouterSSMenu(lien, libelle, classe) : ajoute une rubrique dans le sous-menu
    fermerSSMenu() : ferme le sous-menu
    ouvrirMenu(evnt) : ouvre le sous-menu
    fermerMenu(evnt) : ferme le menu
    changeBackground(objTD) : change l'image background d'une rubrique de sous-menu
    hideAll() : masque tous les sous-menus
    calculateSumOffset(offsetName) : calcule l'emplacement d'un sous-menu
--------------------------------------------------------
Fonctions disponibles a l'usage :
    Menu(idMenu, classe, libelle) : constructeur du menu
    afficherMenu() : affiche le menu (pas le sous-menu
    creerSSMenu(classe, width, height, background, backgroundRoll, pos_rel_top, pos_rel_left) : cree le sous-menu
    ajouterSSMenu(lien, libelle, classe) : ajoute une rubrique dans le sous-menu
    fermerSSMenu() : ferme le sous-menu
--------------------------------------------------------
Code en situation :
<script language="JavaScript" src="/js/top_menu_un_niveau.js"></script>
<script>
    var menu1 = new Menu('menu1', 'nom de la classe', 'titre du menu', 'lien');
    menu1.creerSSMenu('nom de la classe', width , height, 'url du background-image', 'url du background-image roll', deplacement en Y, deplacement en X);
        menu1.ajouterSSMenu('url 1', 'rubrique 1');
        menu1.ajouterSSMenu('url 2', 'rubrique 2');
    menu1.fermerSSMenu();
</script>

<body>
<script>menu1.afficherMenu();</script>
</body>
--------------------------------------------------------
*/

/**************************************************************************/
/*          Objet general pour toutes les proprietes de la page           */
/**************************************************************************/
var menu_a_fermer = new Object;

function Menu(idMenu, type, libelle, lien, classe, imageRoll, width, heightTD) {
    this.idMenu = ((idMenu) ? idMenu : 'menu1');
    this.type = ((type) ? type : '');
    this.lien = ((lien) ? lien : 'javascript:void(0)');
    this.classe = ((classe) ? classe : '');
    this.imageRoll = ((imageRoll) ? imageRoll : '');
    if (type == 'image') {
        if (this.imageRoll) {
            this.libelle = '<img name="img_'+this.idMenu+'" onmouseout="return _roll_off(this);" onmouseover="return _roll_on(this, \''+this.imageRoll+'\');" border="0" src="'+libelle+'">';
        } else {
            this.libelle = '<img border="0" src="'+libelle+'">';
        }
    }else if (type == 'text'){
    		this.libelle = libelle;
    	}
    this.width = ((width) ? width : '');
    this.heightTD = ((heightTD) ? heightTD : '');
    this.effets = '';
    this.time = 0;
    this.lienTD = 1;
    this.police = '';
    this.policeRoll = '';
    this.bgColor = '';
    this.bgColorRoll = '';
    this.SSbgColor = '';
    this.SSbgColorRoll = '';
    this.bgNb = 0;
    this.bgSSNb = 0;
    this.policeNb = 0;
    this.bgImgNb = 0;
    this.bgImage = '';
    this.bgImageRoll = '';
    this.decalage_top = 0;
    this.decalage_left = 0;
    this.ss_decalage_top = 0;
    this.ss_decalage_left = 0;
    this.heightPremierMenu = 0;
    this.preMenu = new Array;
    this.preSSMenu = new Array;
    this.Rubrique= new Array;
    this.nbRubrique = 0;
    this.nbSSRubrique = 0;
    this.attendre = 0;
    this.SSClasse = '';
    this.opacite = 100;
}

/**************************************************************************/
/*               Methodes pour faire des roll sur des images              */
/**************************************************************************/
function _roll_on(nom_image, source_nouv_image) {
    if (nom_image.src_nouv == null) {
       nom_image.src_nouv = new String;
    }
    var nom_image_temp = nom_image.src;
    nom_image.src = source_nouv_image;
    nom_image.src_nouv = nom_image_temp;
    return true;
}
function _roll_off(nom_image) {
    var nom_image_temp = nom_image.src;
    nom_image.src = nom_image.src_nouv;
    nom_image.src_nouv = nom_image_temp;
    return true;
}

/**************************************************************************/
/*        Methodes de l'objet Menu pour ajouter des effets au menu        */
/**************************************************************************/
Menu.prototype.ajouterEffet = function(effet) {
    this.effets = 'filter:progid:DXImageTransform.Microsoft.'+effet;
}
Menu.prototype.ajouterOpacite = function(opacite) {
    this.opacite = parseInt(opacite);
}
Menu.prototype.ajouterTimer = function(duree) { this.time = duree; }
Menu.prototype.ajouterLienTD = function() { this.lienTD = 1; }
Menu.prototype.supprimerLienTD = function() { this.lienTD = 0; }

/**************************************************************************/
/*     Methodes de l'objet Menu pour gérer le changement de background    */
/**************************************************************************/
Menu.prototype.changerBgColor = function(couleur, couleurRoll) {
    this.bgColor = ((couleur) ? couleur : '');
    this.bgColorRoll = ((couleurRoll) ? couleurRoll : '');
}
Menu.prototype.changerSSBgColor = function(couleur, couleurRoll) {
    this.SSbgColor = ((couleur) ? couleur : '');
    this.SSbgColorRoll = ((couleurRoll) ? couleurRoll : '');
}
Menu.prototype._changeBgColor = function(objTD) {
    if (this.bgColorRoll) {
        objTD.style.backgroundColor = ((this.bgNb) ? this.bgColor : this.bgColorRoll);
        this.bgNb = 1 - this.bgNb;
    }
    return true;
}
Menu.prototype._changeSSBgColor = function(objTD) {
    objTD.style.backgroundColor = ((this.bgSSNb) ? this.SSbgColor : this.SSbgColorRoll);
    this.bgSSNb = 1 - this.bgSSNb;
    return true;
}
Menu.prototype.changerBgImage = function(image, imageRoll) {
    this.bgImage = ((image) ? image : '');
    this.bgImageRoll = ((imageRoll) ? imageRoll : '');
}
Menu.prototype._changeBgImage = function(objTD) {
	if (this.bgImageRoll) {
    	objTD.style.backgroundImage = ((this.bgImgNb) ? 'url(\''+this.bgImage+'\')' : 'url(\''+this.bgImageRoll+'\')');
    	this.bgImgNb = 1 - this.bgImgNb;
    }
    return true;
}
Menu.prototype.changerSSClasse = function(classe) {
    this.SSClasse = ((classe) ? classe : this.classe);
}
Menu.prototype.changerClasse = function(classe) {
    this.classe = ((classe) ? classe : this.classe);
}
Menu.prototype._changeOpacite = function(objTD, opacite) {
    if (!document.all && document.getElementById) {
        objTD.style.MozOpacity = (opacite/100);
    } else if (document.all) {
        objTD.filters.alpha.opacity = opacite;
    }
    return true;
}
Menu.prototype.changerPolice = function(police, policeRoll) {
    this.police = ((police) ? police : '');
    this.policeRoll = ((policeRoll) ? policeRoll : '');
}
Menu.prototype._changePolice = function(lien) {
    if (this.police) {
        document.getElementById(lien).style.color = ((this.policeNb) ? this.police : this.policeRoll);
        this.policeNb = 1 - this.policeNb;
    }
    return true;
}

/**************************************************************************/
/*   Methode de l'objet Menu pour calculer l'emplacement d'un sous-menu   */
/**************************************************************************/
Menu.prototype._calculateSumOffset = function(offsetName) {
    var totalOffset = 0;
    var item = eval('document.getElementById(this.idMenu)');
	do {
        totalOffset += eval('item.'+offsetName);
        item = eval('item.offsetParent');
    } while (item != null);
    return totalOffset;
}

/**************************************************************************/
/*            Methode de l'objet Menu pour décaler un sous-menu             */
/**************************************************************************/
Menu.prototype.decalageMenu = function(decalage_top, decalage_left) {
    this.decalage_top = ((decalage_top) ? decalage_top : 0);
    this.decalage_left = ((decalage_left) ? decalage_left : 0);
}
Menu.prototype.decalageSSMenu = function(decalage_top, decalage_left) {
    this.ss_decalage_top = ((decalage_top) ? decalage_top : 0);
    this.ss_decalage_left = ((decalage_left) ? decalage_left : 0);
}

/**************************************************************************/
/*      Methodes de l'objet Menu pour ajouter des fioritures au menu      */
/**************************************************************************/
Menu.prototype.ajouterCadreMenu = function(lieu, srcImage, width, height, classe, colspan, align, valign, bgColor) {
    var preMenu = new Array;
    preMenu[0] = srcImage; preMenu[1] = width; preMenu[2] = height;
    preMenu[3] = classe; preMenu[4] = colspan; preMenu[5] = align;
    preMenu[6] = valign; preMenu[7] = bgColor;
    this.preMenu[lieu] = preMenu;
    this.heightPremierMenu = ((this.heightPremierMenu) ? this.heightPremierMenu : parseInt(height));
}
Menu.prototype.supprimerCadreSSMenu = function(lieu) {
    var preSSMenu = new Array;
    preSSMenu[0] = 'delete';
    this.preSSMenu[lieu] = preSSMenu;
    if (lieu == 1) { this.heightPremierMenu = 0; }
}
Menu.prototype.modifierCadreSSMenu = function(lieu, srcImage, width, height, classe, colspan, align, valign, bgColor) {
    var preSSMenu = new Array;
    preSSMenu[0] = srcImage; preSSMenu[1] = width; preSSMenu[2] = height;
    preSSMenu[3] = classe; preSSMenu[4] = colspan; preSSMenu[5] = align;
    preSSMenu[6] = valign; preSSMenu[7] = bgColor;
    this.preSSMenu[lieu] = preSSMenu;
    this.heightPremierMenu = ((this.heightPremierMenu && (lieu == 1)) ? this.heightPremierMenu : parseInt(height));
}

/**************************************************************************/
/*             Methode de l'objet Menu pour afficher un menu              */
/**************************************************************************/
Menu.prototype.afficherMenu = function() {
    var str = '<div onmouseout="return '+this.idMenu+'._fermerMenu(event, 2);" id="'+this.idMenu+'">';
    str += '<a onmouseover="return '+this.idMenu+'._ouvrirMenu(event);" id="lien_'+this.idMenu+'" href="'+this.lien+'"'+((this.classe) ? ' class="'+this.classe+'"' : '')+'>';
    str += this.libelle+'</a></div>';
    document.write(str);
}

/**************************************************************************/
/*    Methode de l'objet Menu pour ajouter une rubrique ou ss-rubrique    */
/**************************************************************************/
Menu.prototype.ajouterRubrique = function(type, libelle, lien, classe, imageRoll, texteAvant, texteApres, bgColor, height, bgImage) {
    var rubrique = new Array; rubrique[0] = 'ss_'+this.idMenu+this.nbRubrique; rubrique[1] = type;
    rubrique[2] = libelle; rubrique[3] = lien; rubrique[4] = classe; rubrique[5] = imageRoll;
    rubrique[6] = ((texteAvant && texteAvant.match('/')) ? '<img border="0" id="imgR_'+rubrique[0]+'" src="'+texteAvant+'">' : '');
    rubrique[7] = texteApres; rubrique[8] = bgColor; rubrique[9] = height;  rubrique[20] = bgImage;
    this.Rubrique[this.nbRubrique++] = rubrique;
    this.nbSSRubrique = 0;
}
Menu.prototype.ajouterSSRubrique = function(type, libelle, lien, classe, imageRoll, texteAvant, texteApres, bgColor) {
    var ss_rubrique = new Array; ss_rubrique[0] = 'ss_ss_'+this.idMenu+(this.nbRubrique-1)+this.nbSSRubrique;
    ss_rubrique[1] = type; ss_rubrique[2] = libelle; ss_rubrique[3] = lien; ss_rubrique[4] = classe;
    ss_rubrique[5] = imageRoll; ss_rubrique[6] = texteAvant; ss_rubrique[7] = texteApres; ss_rubrique[8] = bgColor;
    if (!this.Rubrique[this.nbRubrique-1][10]) {
        this.Rubrique[this.nbRubrique-1][10] = new Array;
    }
    this.Rubrique[this.nbRubrique-1][10][this.nbSSRubrique++] = ss_rubrique;
}
Menu.prototype.ajouterSeparation = function(height, bgImage) {
    var rubrique = new Array; rubrique[0] = 'ss_'+this.idMenu+this.nbRubrique;
    rubrique[1] = 'image'; rubrique[2] = ''; rubrique[9] = height;  rubrique[20] = bgImage;
    this.Rubrique[this.nbRubrique++] = rubrique;
    this.nbSSRubrique = 0;
}

/**************************************************************************/
/*         Methode de l'objet Menu pour fermer un menu ou ss-menu         */
/**************************************************************************/
Menu.prototype._fermerMenu = function(evnt, timeout) {
    var fermer_menu = 0;
    if (timeout >= 1) {
        if (evnt.toElement && document.all && (!(evnt.toElement.id.match('ss_'+this.idMenu)))) {
            fermer_menu = 1;
        } else if (evnt.relatedTarget && !document.all && document.getElementById && (!(evnt.relatedTarget.id && evnt.relatedTarget.id.match('ss_menu')))) {
            if (typeof evnt.relatedTarget.id == 'string') { fermer_menu = 1; }
            if ((navigator.userAgent.indexOf("Gecko") != -1) && (parseInt(navigator.productSub) >= 20030312)) { fermer_menu = 1; }
        }
        if (fermer_menu) {
            this._fermerSSMenu(evnt, 1);
            if (this.time) { this.idTimeOut = setTimeout("_fermerMenuDefinitif()", this.time); this.attendre = 1;
            } else { _fermerMenuDefinitif(); }
        }
    } else { _fermerMenuDefinitif(); }
    return true;
}
Menu.prototype._fermerSSMenu = function(evnt, nbRubrique) {
    if (document.getElementById('ss_ss_'+this.idMenu+nbRubrique)) {
        if (evnt.toElement && document.all && !(evnt.toElement.id.match('ss_ss_'+this.idMenu+nbRubrique))) {
            document.getElementById('ss_ss_'+this.idMenu+nbRubrique).style.visibility = 'hidden';
        } else if  (evnt.relatedTarget && !document.all && document.getElementById && !(evnt.relatedTarget.id && evnt.relatedTarget.id.match('ss_ss_'+this.idMenu+nbRubrique))) {
            if (typeof evnt.relatedTarget.id == 'string') {
                document.getElementById('ss_ss_'+this.idMenu+nbRubrique).style.visibility = 'hidden';
            }
            if ((navigator.userAgent.indexOf("Gecko") != -1) && (parseInt(navigator.productSub) >= 20030312)) {
                document.getElementById('ss_ss_'+this.idMenu+nbRubrique).style.visibility = 'hidden';
            }
        }
    }
    return true;
}
function _fermerMenuDefinitif() {
    clearTimeout(menu_a_fermer.idTimeOut);
    if (menu_a_fermer.effets && (document.all && navigator.appVersion.indexOf("MSIE 6.0") > 0)) {
        document.getElementById('ss_'+menu_a_fermer.idMenu).filters[0].Apply();
        document.getElementById('ss_'+menu_a_fermer.idMenu).style.visibility = 'hidden';
        document.getElementById('ss_'+menu_a_fermer.idMenu).filters[0].Play();
    } else {
        document.getElementById('ss_'+menu_a_fermer.idMenu).style.visibility = 'hidden';
    }
    return false;
}

/**************************************************************************/
/*         Methode de l'objet Menu pour ouvrir un menu ou ss-menu         */
/**************************************************************************/
Menu.prototype._ouvrirMenu = function(evnt) {
    var faire_effet = 0;
    if (menu_a_fermer.idMenu) {
        menu_a_fermer.attendre = 0;
        menu_a_fermer._fermerMenu(evnt, 0);
    }
    document.getElementById('ss_'+this.idMenu).style.top = parseInt(this._calculateSumOffset('offsetTop')) + parseInt(this.decalage_top) + 'px';
    document.getElementById('ss_'+this.idMenu).style.left = parseInt(this._calculateSumOffset('offsetLeft')) + parseInt(this.decalage_left) + 'px';
    if (this.effets && (document.all) && (menu_a_fermer.idMenu != this.idMenu)) {
        if (navigator.appVersion.indexOf("MSIE 6.0") > 0) { faire_effet = 1;
        } else if (navigator.appVersion.indexOf("MSIE 5.0") > 0) {
            if (this.effets.match('Fade')) { faire_effet = 1; }
        }
    }
    if (faire_effet) {
        document.getElementById('ss_'+this.idMenu).filters[0].Apply();
        document.getElementById('ss_'+this.idMenu).style.visibility = 'visible';
        document.getElementById('ss_'+this.idMenu).filters[0].Play();
    } else { document.getElementById('ss_'+this.idMenu).style.visibility = 'visible'; }
    menu_a_fermer = this;
    return true;
}
Menu.prototype._ouvrirSSMenu = function(nbRubrique) {
    if (this.attendre == 0) {
        var left = this._calculateSumOffset('offsetLeft') + this.width;
        var top = this._calculateSumOffset('offsetTop') + this.heightPremierMenu + (nbRubrique * this.heightTD);
        if (document.getElementById('ss_ss_'+this.idMenu+nbRubrique)) {
            document.getElementById('ss_ss_'+this.idMenu+nbRubrique).style.top = parseInt(top) + parseInt(this.ss_decalage_top) + parseInt(this.decalage_top) + 'px';
            document.getElementById('ss_ss_'+this.idMenu+nbRubrique).style.left = parseInt(left) + parseInt(this.ss_decalage_left) + parseInt(this.decalage_left) + 'px';
            document.getElementById('ss_ss_'+this.idMenu+nbRubrique).style.visibility = 'visible';
        }
    }
    return true;
}

/**************************************************************************/
/*         Methode de l'objet Menu pour fermer un menu ou ss-menu         */
/**************************************************************************/
Menu.prototype.creerMenu = function() {
    var str = '<div onmouseout="return '+this.idMenu+'._fermerMenu(event, 2);" id="ss_'+this.idMenu+'" ';
    str += 'style="position:absolute;top:0;left:0;z-index:100;visibility:hidden;width:'+this.width+';'+((this.effets) ? this.effets : '')+'">';
    if (this.preMenu[1]) {
        str += '<table id="table_pre1_ss_'+this.idMenu+'" border="0" cellspacing="0" cellpadding="0" width="100%"><tr>';
        str += '<td id="td_pre1_ss_'+this.idMenu+'" height="'+this.preMenu[1][2]+'" '+((this.preMenu[1][5]) ? 'align="'+this.preMenu[1][5]+'" ' : '');
        str += ((this.preMenu[1][6]) ? 'valign="'+this.preMenu[1][6]+'" ' : '')+((this.preMenu[1][7]) ? 'bgcolor="'+this.preMenu[1][7]+'" ' : '');
        str += 'colspan="'+((this.preMenu[1][4]) ? this.preMenu[1][4] : 1)+'"><img id="pre1_ss_'+this.idMenu+'" width="'+this.preMenu[1][1];
        str += '" height="'+this.preMenu[1][2]+'" src="'+this.preMenu[1][0]+'" class="'+this.preMenu[1][3]+'"></td>'+'</tr><tr>';
        if (this.preMenu[2]) {
            str += '<td id="td_pre2_ss_'+this.idMenu+'" height="'+this.preMenu[2][2]+'" '+((this.preMenu[2][5]) ? 'align="'+this.preMenu[2][5]+'" ' : '');
            str += ((this.preMenu[2][6]) ? 'valign="'+this.preMenu[2][6]+'" ' : '')+((this.preMenu[2][7]) ? 'bgcolor="'+this.preMenu[2][7]+'" ' : '');
            str += 'colspan="'+((this.preMenu[2][4]) ? this.preMenu[2][4] : 1)+'"><img id="pre2_ss_'+this.idMenu+'" width="'+this.preMenu[2][1];
            str += '" height="'+this.preMenu[2][2]+'" src="'+this.preMenu[2][0]+'" class="'+this.preMenu[2][3]+'"></td>';
        }
        str += '<td'+((this.preMenu[1][1]) ? ' width="'+this.preMenu[1][1]+'">' : '>');
    }
    str += '<table id="table_ss_'+this.idMenu+'" border="0" '+((this.classe) ? ' class="'+this.classe+'"' : '')+' cellpadding="0" cellspacing="0"'+((this.width) ? ' width="'+this.width+'"' : 'width="100"')+'>';
    for (var i = 0; i < this.Rubrique.length; i++) {
        str += '<tr>';
        str += '<td ';
        if (this.bgColor) {
            str += ' bgColor="'+this.bgColor+'" onmouseout="return '+this.idMenu+'._changeOpacite(this, '+this.opacite+') && '+this.idMenu+'._fermerSSMenu(event, '+i+') && '+this.idMenu+'._changePolice('+'\''+'lien_'+this.Rubrique[i][0]+'\''+') && '+this.idMenu+'._changeBgColor(this);" onmouseover="return '+this.idMenu+'._changeOpacite(this, 100) && '+this.idMenu+'._ouvrirSSMenu('+i+') && '+this.idMenu+'._changePolice('+'\''+'lien_'+this.Rubrique[i][0]+'\''+') && '+this.idMenu+'._changeBgColor(this);"';
        } else if (this.bgImage) {
            str += ' background="'+this.bgImage+'" onmouseout="return '+this.idMenu+'._changeOpacite(this, '+this.opacite+') && '+this.idMenu+'._fermerSSMenu(event, '+i+') && '+this.idMenu+'._changePolice('+'\''+'lien_'+this.Rubrique[i][0]+'\''+') && '+this.idMenu+'._changeBgImage(this);" onmouseover="return '+this.idMenu+'._changeOpacite(this, 100) && '+this.idMenu+'._ouvrirSSMenu('+i+') && '+this.idMenu+'._changePolice('+'\''+'lien_'+this.Rubrique[i][0]+'\''+') && '+this.idMenu+'._changeBgImage(this);"';
        } else {
            if (this.Rubrique[i][8]) { str += ' bgColor="'+this.Rubrique[i][8]+'" '; }
            str += ' onmouseout="return '+this.idMenu+'._changeOpacite(this, '+this.opacite+') && '+this.idMenu+'._fermerSSMenu(event, '+i+');" onmouseover="return '+this.idMenu+'._changeOpacite(this, 100) && '+this.idMenu+'._ouvrirSSMenu('+i+');"';
        }
        str += ' style="'+((this.lienTD) ? 'cursor:pointer;cursor:hand;' : '')+'-moz-opacity:'+(this.opacite/100)+';filter:Alpha(opacity='+this.opacite+');" ';
        if (this.lienTD) { str += ' onclick="document.location.href=\''+this.Rubrique[i][3]+'\';" '; }
        str += ((this.Rubrique[i][20]) ? ' background="'+this.Rubrique[i][20]+'"' : '') + ' nowrap'+((this.heightTD) ? ' height="'+((this.Rubrique[i][9]) ? this.Rubrique[i][9] : this.heightTD)+'"' : '')+' width="100%" id="'+this.Rubrique[i][0]+'"';
        str += '>';
        str += ((this.Rubrique[i][6]) ? this.Rubrique[i][6] : ((this.Rubrique[i][1] != 'image') ? '&nbsp;&nbsp;' : ''));
        if ((this.Rubrique[i][1] == 'image') && this.Rubrique[i][5]) {
            var lib_img = '<img id="img_'+this.Rubrique[i][0]+'" border="0" class="'+this.Rubrique[i][4]+'" ';
            lib_img += 'onmouseout="return _roll_off(this);" onmouseover="return _roll_on(this, \''+this.Rubrique[i][5]+'\');" ';
            lib_img += 'src="'+this.Rubrique[i][2]+'">';
            this.Rubrique[i][2] = lib_img;
        }
        if (this.Rubrique[i][3]) {
            str += '<a onmouseover="return '+this.idMenu+'._fermerSSMenu(event, '+(i-1)+') && '+this.idMenu+'._fermerSSMenu(event, '+(i+1)+');" id="lien_'+this.Rubrique[i][0]+'" href="'+this.Rubrique[i][3]+'"'+((this.Rubrique[i][4]) ? ' class="'+this.Rubrique[i][4]+'"' : '')+'>'+this.Rubrique[i][2]+'</a>';
        } else if (this.Rubrique[i][1] != 'image') {
            str += '<span'+((this.Rubrique[i][4]) ? ' class="'+this.Rubrique[i][4]+'"' : '')+' id="span_'+this.Rubrique[i][0]+'">'+this.Rubrique[i][2]+'</span>';
        } else {
            str += this.Rubrique[i][2];
        }
        if (this.Rubrique[i][1] != 'image') {
            str += ((this.Rubrique[i][7]) ? this.Rubrique[i][7] : '&nbsp;&nbsp;');
        }
        str += '</td></tr>';
    }
    if (this.preMenu[1]) {
        str += '</table></td>';
        if (this.preMenu[3]) {
            str += '<td id="td_pre3_ss_'+this.idMenu+'" width="'+this.preMenu[3][1]+'" height="'+this.preMenu[3][2]+'" '+((this.preMenu[3][5]) ? 'align="'+this.preMenu[3][5]+'" ' : '');
            str += ((this.preMenu[3][6]) ? 'valign="'+this.preMenu[3][6]+'" ' : '')+((this.preMenu[3][7]) ? 'bgcolor="'+this.preMenu[3][7]+'" ' : '');
            str += 'colspan="'+((this.preMenu[3][4]) ? this.preMenu[3][4] : 1)+'"><img id="pre3_ss_'+this.idMenu+'" width="'+this.preMenu[3][1];
            str += '" height="'+this.preMenu[3][2]+'" src="'+this.preMenu[3][0]+'" class="'+this.preMenu[3][3]+'"></td>';
        }
        str += '</tr>';
    }
    if (this.preMenu[4]) {
        str += '<tr><td id="td_pre4_ss_'+this.idMenu+'" height="'+this.preMenu[4][2]+'" '+((this.preMenu[4][5]) ? 'align="'+this.preMenu[4][5]+'" ' : '');
        str += ((this.preMenu[4][6]) ? 'valign="'+this.preMenu[4][6]+'" ' : '')+((this.preMenu[4][7]) ? 'bgcolor="'+this.preMenu[4][7]+'" ' : '');
        str += 'colspan="'+((this.preMenu[4][4]) ? this.preMenu[4][4] : 1)+'"><img id="pre4_ss_'+this.idMenu+'" width="'+this.preMenu[4][1];
        str += '" height="'+this.preMenu[4][2]+'" src="'+this.preMenu[4][0]+'" class="'+this.preMenu[4][3]+'"></td></tr>';
    }
    str += '</table></div>';
    for (var i = 0; i < this.Rubrique.length; i++) {
        if (this.Rubrique[i][10]) {
            str += "\n\n"+'<div onmouseout="return '+this.idMenu+'._fermerSSMenu(event, '+i+') && '+this.idMenu+'._fermerMenu(event, 2)" id="ss_'+this.Rubrique[i][0]+'" style="position:absolute;top:0;left:0;z-index:200;visibility:hidden;">';
            if (!this.preSSMenu[1] || (this.preSSMenu[1] && (this.preSSMenu[1][0] != 'delete'))) {
                if (!this.preSSMenu[1]) { this.preSSMenu[1] = this.preMenu[1]; }
                if (this.preSSMenu[1]) {
                    str += "\n"+'<table id="table_pre1_ss_'+this.Rubrique[i][0]+'" width="'+this.preSSMenu[1][1]+'" border="0" cellspacing="0" cellpadding="0">'+"\n"+'<tr>';
                    str += "\n"+'<td id="td_pre1_ss_'+this.Rubrique[i][0]+'" height="'+this.preSSMenu[1][2]+'" '+((this.preSSMenu[1][5]) ? 'align="'+this.preSSMenu[1][5]+'" ' : '');
                    str += ((this.preSSMenu[1][6]) ? 'valign="'+this.preSSMenu[1][6]+'" ' : '')+((this.preSSMenu[1][7]) ? 'bgcolor="'+this.preSSMenu[1][7]+'" ' : '');
                    str += 'colspan="'+((this.preSSMenu[1][4]) ? this.preSSMenu[1][4] : 1)+'"><img id="pre1_ss_'+this.Rubrique[i][0]+'" width="'+this.preSSMenu[1][1];
                    str += '" height="'+this.preSSMenu[1][2]+'" src="'+this.preSSMenu[1][0]+'" class="'+this.preSSMenu[1][3]+'"></td>'+"\n"+'</tr>'+"\n"+'<tr>';
                    if (!this.preSSMenu[2] || (this.preSSMenu[2] && (this.preSSMenu[2][0] != 'delete'))) {
                        if (!this.preSSMenu[2]) { this.preSSMenu[2] = this.preMenu[2]; }
                        if (this.preSSMenu[2]) {
                            str += '<td id="td_pre2_ss_'+this.Rubrique[i][0]+'" height="'+this.preSSMenu[2][2]+'" '+((this.preSSMenu[2][5]) ? 'align="'+this.preSSMenu[2][5]+'" ' : '');
                            str += ((this.preSSMenu[2][6]) ? 'valign="'+this.preSSMenu[2][6]+'" ' : '')+((this.preSSMenu[2][7]) ? 'bgcolor="'+this.preSSMenu[2][7]+'" ' : '');
                            str += 'colspan="'+((this.preSSMenu[2][4]) ? this.preSSMenu[2][4] : 1)+'"><img id="pre2_ss_'+this.Rubrique[i][0]+'" width="'+this.preSSMenu[2][1];
                            str += '" height="'+this.preSSMenu[2][2]+'" src="'+this.preSSMenu[2][0]+'" class="'+this.preSSMenu[2][3]+'"></td>';
                        }
                    }
                    str += "\n"+'<td'+((this.preSSMenu[1][1]) ? ' width="'+this.preSSMenu[1][1]+'">' : '>');
                }
            }
            str += "\n"+'<table border="0" '+((this.classe) ? ' class="'+((this.SSClasse) ? this.SSClasse : this.classe)+'"' : '')+' id="table_ss_'+this.Rubrique[i][0]+'" cellspacing="0" cellpadding="0" width="100%">';
            for (var j = 0; j < this.Rubrique[i][10].length; j++) {
                str += "\n"+'<tr>'+"\n"+'<td style="filter:Alpha(opacity='+this.opacite+');-moz-opacity:'+(this.opacite/100)+';" ';
                if (this.SSbgColor) {
                    str += ' bgColor="'+this.SSbgColor+'" onmouseout="return '+this.idMenu+'._changeOpacite(this, '+this.opacite+') && '+this.idMenu+'._changeSSBgColor(this);" onmouseover="return '+this.idMenu+'._changeOpacite(this, 100) && '+this.idMenu+'._changeSSBgColor(this);"';
                } else if (this.bgColor) {
                    str += ' bgColor="'+this.bgColor+'" onmouseout="return '+this.idMenu+'._changeOpacite(this, '+this.opacite+') && '+this.idMenu+'._changeBgColor(this);" onmouseover="return '+this.idMenu+'._changeOpacite(this, 100) && '+this.idMenu+'._changeBgColor(this);"';
                } else if (this.bgImage) {
                    str += ' background="'+this.bgImage+'" onmouseout="return '+this.idMenu+'._changeOpacite(this, '+this.opacite+') && '+this.idMenu+'._changeBgImage(this);" onmouseover="return '+this.idMenu+'._changeOpacite(this, 100) && '+this.idMenu+'._changeBgImage(this);"';
                } else {
                    if (this.Rubrique[i][10][j][8]) { str += ' bgColor="'+this.Rubrique[i][10][j][8]+'" '; }
                    str += ' onmouseout="return '+this.idMenu+'._changeOpacite(this, '+this.opacite+');" onmouseover="return '+this.idMenu+'._changeOpacite(this, 100);"';
                }
                if (this.lienTD) { str += ' style="cursor:hand;" onclick="document.location.href=\''+this.Rubrique[i][10][j][3]+'\';" '; }
                str += 'nowrap'+((this.heightTD) ? ' height="'+this.heightTD+'"' : '')+' width="100%" id="'+this.Rubrique[i][10][j][0]+'"';
                str += '>'+"\n";
                str += ((this.Rubrique[i][10][j][6]) ? this.Rubrique[i][10][j][6] : ((this.Rubrique[i][10][j][1] != 'image') ? '&nbsp;&nbsp;' : ''));
                if (this.Rubrique[i][10][j][1] == 'image') {
                    var lib_img = '<img id="img_'+this.Rubrique[i][10][j][0]+'" border="0" class="'+this.Rubrique[i][10][j][4]+'" ';
                    lib_img += 'onmouseout="return _roll_off(this);" onmouseover="return _roll_on(this, \''+this.Rubrique[i][10][j][5]+'\');" ';
                    lib_img += 'src="'+this.Rubrique[i][10][j][2]+'">';
                    this.Rubrique[i][10][j][2] = lib_img;
                }
                if (this.Rubrique[i][10][j][3]) {
                    str += '<a id="lien_'+this.Rubrique[i][10][j][0]+'" href="'+this.Rubrique[i][10][j][3]+'"'+((this.Rubrique[i][10][j][4]) ? ' class="'+this.Rubrique[i][10][j][4]+'"' : '')+'>'+this.Rubrique[i][10][j][2]+'</a>';
                } else {
                    str += '<span'+((this.Rubrique[i][10][j][4]) ? ' style="'+this.Rubrique[i][10][j][4]+'"' : '')+' id="span_'+this.Rubrique[i][10][j][0]+'">'+this.Rubrique[i][10][j][2]+'</span>';
                }
                str += ((this.Rubrique[i][10][j][7]) ? this.Rubrique[i][10][j][7] : '&nbsp;&nbsp;');
                str += '</td></tr>';
            }
            if (!this.preSSMenu[1] || (this.preSSMenu[1] && (this.preSSMenu[1][0] != 'delete'))) {
                if (!this.preSSMenu[1]) { this.preSSMenu[1] = this.preMenu[1]; }
                if (this.preSSMenu[1]) {
                    str += '</table></td>';
                    if (!this.preSSMenu[3] || (this.preSSMenu[3] && (this.preSSMenu[3][0] != 'delete'))) {
                        if (!this.preSSMenu[3]) { this.preSSMenu[3] = this.preMenu[3]; }
                        if (this.preSSMenu[3]) {
                            str += '<td id="td_pre3_ss_'+this.Rubrique[i][0]+'" width="'+this.preSSMenu[3][1]+'" height="'+this.preSSMenu[3][2]+'" '+((this.preSSMenu[3][5]) ? 'align="'+this.preSSMenu[3][5]+'" ' : '');
                            str += ((this.preSSMenu[3][6]) ? 'valign="'+this.preSSMenu[3][6]+'" ' : '')+((this.preSSMenu[3][7]) ? 'bgcolor="'+this.preSSMenu[3][7]+'" ' : '');
                            str += 'colspan="'+((this.preSSMenu[3][4]) ? this.preSSMenu[3][4] : 1)+'"><img id="pre3_ss_'+this.Rubrique[i][0]+'" width="'+this.preSSMenu[3][1];
                            str += '" height="'+this.preSSMenu[3][2]+'" src="'+this.preSSMenu[3][0]+'" class="'+this.preSSMenu[3][3]+'"></td>';
                        }
                    }
                    str += '</tr>';
                }
            }
            if (!this.preSSMenu[4] || (this.preSSMenu[4] && (this.preSSMenu[4][0] != 'delete'))) {
                if (!this.preSSMenu[4]) { this.preSSMenu[4] = this.preMenu[4]; }
                if (this.preSSMenu[4]) {
                    str += '<tr><td id="td_pre4_ss_'+this.Rubrique[i][0]+'" height="'+this.preSSMenu[4][2]+'" '+((this.preSSMenu[4][5]) ? 'align="'+this.preSSMenu[4][5]+'" ' : '');
                    str += ((this.preSSMenu[4][6]) ? 'valign="'+this.preSSMenu[4][6]+'" ' : '')+((this.preSSMenu[4][7]) ? 'bgcolor="'+this.preSSMenu[4][7]+'" ' : '');
                    str += 'colspan="'+((this.preSSMenu[4][4]) ? this.preSSMenu[4][4] : 1)+'"><img id="pre4_ss_'+this.Rubrique[i][0]+'" width="'+this.preSSMenu[4][1];
                    str += '" height="'+this.preSSMenu[4][2]+'" src="'+this.preSSMenu[4][0]+'" class="'+this.preSSMenu[4][3]+'"></td></tr>';
                }
            }
            str += '</table></div>';
        }
    }
    document.write(str);
    return false;
}

