// Script tooltip
var xtooltip = {
        tooltip_id: null
        ,_x:null        // x y positions courantes
        ,_y:null
        ,_x_mouse:null
        ,_y_mouse:null
        ,_x_next:null
        ,_y_next:null
        ,_width:0
        ,_height:0
        ,
        init: function() {
		document.body.appendChild(document.createElement('div'));
		document.body.lastChild.setAttribute('id','xtooltipId');
                        // le title est recopié dans un ''faux'' attribut
                        // au chargement de la page, puis supprimé
                        // afin d'éviter l'affichage du tooltip standard
				var links=document.getElementById('menu').getElementsByTagName('a');
                for(i=0; i<links.length; i++){
                        title = links[i].getAttribute('title');
                        if(title && title.length) {
                                links[i].setAttribute("xtitle", title);
                                links[i].removeAttribute("title");
                        }  
				if(links[i].addEventListener)
					{
					links[i].addEventListener('mouseover', xtooltip.show, false);
					links[i].addEventListener('mouseout', xtooltip.hide, false);
					}
				else if(links[i].attachEvent)
					{
					links[i].attachEvent('onmouseover', xtooltip.show, false);
					links[i].attachEvent('onmouseout', xtooltip.hide, false);
					}
                }
        },
                /* proto pour afficher xtooltip */
        show: function(e) {
			if(e.currentTarget)
				{
				var me=e.currentTarget;
				}
			else
				{
				var me=window.event.srcElement;
				}
				
                        // récupère l'objet xtooltip par son ID
                if(xtooltip.tooltip_id = (document.getElementById)
                        ? document.getElementById('xtooltipId')
                                : ((document.all) ? document.all['xtooltipId'] : false)) {
                        if(title = me.getAttribute("xtitle")) {
                                        // recopie le title du lien dans xtooltip
                                xtooltip.tooltip_id.innerHTML=title;
                                        // force l'affichage invisible en début de script
                                        // pour récupérer plus loin la hauteur correcte du xtooltip
                                if(xtooltip.tooltip_id.style.display!="block") {
                                        xtooltip.tooltip_id.style.visibility="hidden";
                                }
                                if(xtooltip.tooltip_id.style.display!="block") {
                                        xtooltip.tooltip_id.style.display="block";
                                }
                                xtooltip._width = xtooltip.tooltip_id.clientWidth;
                                xtooltip._height = xtooltip.tooltip_id.offsetHeight;
                                        // calcule les coordonnées de xtooltip
                                xtooltip._x_next =
                                    xtooltip.getOffsetPosition(me, "Left");// + (me.offsetWidth / 2);
                                xtooltip._y_next =
                                    xtooltip.getOffsetPosition(me, "Top") + me.offsetHeight;
                                        /*/ corrige les coordonnées si nécessaire
                                if((xtooltip._x_next + xtooltip._width) > document.body.clientWidth) {
                                        // si trop loin à droite de l'écran, aligne sur bord droit
                                        xtooltip._x_next =
                                            (document.body.clientWidth - xtooltip._width - (me.offsetWidth / 2));
                                }*/
                                if((xtooltip._y_next + xtooltip._height) > document.body.offsetHeight) {
                                        // si trop loin en bas de l'écran, aligne sur bord inférieur
                                        // A noter: le margin de l'objet qui est ignoré
                                        xtooltip._y_next =
                                            (document.body.offsetHeight - xtooltip._height - me.offsetHeight);
                                }
                                        // positionne xtooltip
                                if(xtooltip._x != xtooltip._x_next) {
                                        xtooltip._x = xtooltip._x_next;
                                        xtooltip.tooltip_id.style.left=(xtooltip._x)+"px";
                                }
                                if(xtooltip._y != xtooltip._y_next) {
                                        xtooltip._y = xtooltip._y_next;
                                        xtooltip.tooltip_id.style.top=(xtooltip._y)+"px";
                                }
                                        // affiche l'objet
                                if(xtooltip.tooltip_id.style.visibility!="visible") {
                                        xtooltip.tooltip_id.style.visibility="visible";
                                }
                        }
                }
        },
                /* proto pour cacher le xtooltip */
        hide: function() {
                if(xtooltip.tooltip_id) {
                        xtooltip.tooltip_id.style.display = "none";
                        xtooltip.tooltip_id = null;
                }
        },
                /* récupère le position absolue d'un objet */
        getOffsetPosition: function(objet, position) {
                var value = 0;
                var position = 'objet.offset' + position;
                while (objet && objet.tagName != 'BODY') {
                        value += eval(position);
                        objet = objet.offsetParent;
                }
                return(value);
        }
}

function initTooltips()
	{
	xtooltip.init();
	};

// appelle lors du chargement de la page
// pour initialiser les title
if(window.addEventListener)
	window.addEventListener('load', initTooltips, false);
else if(window.attachEvent)
	window.attachEvent('onload', initTooltips, false);
	
// Préchargement des images du menu lors du survol
i1 = new Image();
i1.src = "images/menu_vote_hover.png";
i2 = new Image();
i2.src = "images/menu_top_30_hover.png";
i3 = new Image();
i3.src = "images/menu_galerie_hover.png";
i4 = new Image();
i4.src = "images/menu_creation_hover.png";
