// pesantemente pasticciato per farlo andare d'accordo con i margini negativi
var ToolTip = {
    toolTipElem: null,
    
    show: function(e, elemId) {
        var target      = ( e.target ) ? e.target : e.srcElement;
        var toolTipElem = document.getElementById(elemId);
        
        if( e.type == 'mouseover' )
        {
            target.onmousemove = ToolTip.move;
        }
        
        ToolTip.setPosition(e, toolTipElem);
        toolTipElem.style.display = 'block';
		toolTipElem.style.zIndex = 500;
        toolTipElem.displayed     = true;
        target.toolTipElem = toolTipElem;
    },
    
    hide: function(e) {
        var target = ( e.target ) ? e.target : e.srcElement;
        var toElem = ( e.relatedTarget ) ? e.relatedTarget : e.toElement;
        
        if( arguments.length > 1 )
        {
            var elemId = arguments[1];
            var toolTipElem = document.getElementById(elemId);
            var test = false;
            
            if( toolTipElem != null && toolTipElem != toElem )
            {// toElem != null rajouté ŕ cause d'IE 5.01 (??)
                while( toElem != null && toElem.nodeType != 9 )
                {
                    if( toolTipElem == toElem )
                    {
                        test = true;
                        break;
                    }
                    
                    toElem = toElem.parentNode;
                }
                
                if( test == false )
                {
                    toolTipElem.style.display = 'none';
                }
            }
        }
        else if( typeof(target.toolTipElem) != 'undefined' && target.toolTipElem.displayed == true && toolTipElem != toElem )
        {
            target.toolTipElem.style.display = 'none';
            target.toolTipElem.displayed = false;
            target.onmousemove = null;
        }
    },
    
    move: function(e) {
        if( !e ) e = window.event;
        var target = ( e.target ) ? e.target : e.srcElement;
        
        if( target.toolTipElem.displayed == false )
        {
            return;
        }
        
        ToolTip.setPosition(e, target.toolTipElem);
    },
    
    setPosition: function(e, toolTipElem) {
        var posX = 0, posY = 0;
        
        if( typeof(e.pageX) != 'undefined' )
        {
            posX = e.pageX;
            posY = e.pageY;
        }
        else
        {
            if( typeof(document.documentElement) != 'undefined' 
                && (document.documentElement.scrollLeft != 0 || document.documentElement.scrollTop != 0 ) )
            {
                //posX = (e.clientX + document.documentElement.scrollLeft);
                //posY = (e.clientY + document.documentElement.scrollTop);
				posX = (e.clientX + document.documentElement.scrollLeft);
                posY = (e.clientY + document.documentElement.scrollTop);
            }
            else
            {
				//posX = (e.clientX + document.body.scrollLeft);
               // posY = (e.clientY + document.body.scrollTop);
                posX = (e.clientX + document.body.scrollLeft);
                posY = (e.clientY + document.body.scrollTop);
				
            }
        }
        
        var computedWidth = 60;
        var ecart = -5;
        if( e.type != 'click' )
        {
            if( typeof(window.getComputedStyle) != 'undefined' )
            {
                computedWidth = window.getComputedStyle(toolTipElem, null).getPropertyValue('width');
            }
            else
            {
                computedWidth = toolTipElem.offsetWidth;
            }
            
            computedWidth = (parseInt(computedWidth)/2);
			computedWidth = 0;
            ecart = 10;
        }
		// pesantemente pasticciato per farlo andare d'accordo con i margini negativi
        myxoff = pageWidth()/2;
		myyoff = pageHeight()/2;
		var imprevX = (getAbsoluteLeft('bigMenu')-400);
		var imprevY = (getAbsoluteTop('bigMenu')-200);

        toolTipElem.style.left = (posX-imprevX-380) + 'px';
        toolTipElem.style.top  = (posY-imprevY-200) + 'px';
		toolTipElem.style.zIndex = 1500;
    }
};

function pageWidth() {
	return window.innerWidth != null? window.innerWidth : document.documentElement && document.documentElement.clientWidth ?document.documentElement.clientWidth : document.body != null ? document.body.clientWidth : null;
} 

function pageHeight() {return  window.innerHeight != null? window.innerHeight : document.documentElement && document.documentElement.clientHeight ?  document.documentElement.clientHeight : document.body != null? document.body.clientHeight : null;} 

function getAbsoluteLeft(objectId) {
	// Get an object left position from the upper left viewport corner
	// Tested with relative and nested objects
	o = document.getElementById(objectId)
	oLeft = o.offsetLeft            // Get left position from the parent object
	while(o.offsetParent!=null) {   // Parse the parent hierarchy up to the document element
		oParent = o.offsetParent    // Get parent object reference
		oLeft += oParent.offsetLeft // Add parent left position
		o = oParent
	}
	// Return left postion
	return oLeft
}

function getAbsoluteTop(objectId) {
	// Get an object top position from the upper left viewport corner
	// Tested with relative and nested objects
	o = document.getElementById(objectId)
	oTop = o.offsetTop            // Get top position from the parent object
	while(o.offsetParent!=null) { // Parse the parent hierarchy up to the document element
		oParent = o.offsetParent  // Get parent object reference
		oTop += oParent.offsetTop // Add parent top position
		o = oParent
	}
	// Return top position
	return oTop
}

function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}


