﻿///////
// Boite à outils JS InterPC
//////

var XMousePos = -1;
var YMousePos = -1;
var XMousePos2 = -1;
var YMousePos2 = -1;
var windowInnerHeight = -1;
var windowInnerWidth = -1;
var TooltipsDelays = new Array();
var TooltipsTimeouts = new Array();

var isIE = document.all ? true : false;

function getMouseXY(e) {
  if (isIE) { // grab the x-y pos.s if browser is IE
    Yscrollvalue = document.documentElement.scrollTop > document.body.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop; 
    Xscrollvalue = document.documentElement.scrollLeft > document.body.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft; 
    XMousePos = event.clientX + Xscrollvalue;
    YMousePos = event.clientY + Yscrollvalue;
    XMousePos2 = event.clientX;
    YMousePos2 = event.clientY;
  } else {  // grab the x-y pos.s if browser is NS
    XMousePos = e.pageX;
    YMousePos = e.pageY;
    XMousePos2 = e.pageX - window.pageXOffset;
    YMousePos2 = e.pageY - window.pageYOffset;
  }  
  // catch possible negative values in NS4
  if (XMousePos < 0){XMousePos = 0}
  if (YMousePos < 0){YMousePos = 0}  
  
  return true
}


function RegisterToolTipTool(css_class, key, delay) {
    document.write("<div class=\""+css_class+"\" id=\"interpc_tooltiptool_"+key+"\" style=\"position:absolute; visibility:hidden;\"></div>");
    if (!isIE) document.captureEvents(Event.MOUSEMOVE);
    document.onmousemove = getMouseXY;
    if (delay == null)
        delay = 500; 
    TooltipsDelays[key] = delay;
}

function ShowToolTip(key, owner_obj, delay) {
    
    // get tooltip and set text
    tooltip_div = document.getElementById("interpc_tooltiptool_"+key);
    // Delay ?
    if (delay != null && delay > 0) {   
        TooltipsTimeouts[key] = setTimeout("ShowToolTip('"+key+"', '" + owner_obj +"', 0);", delay);
        return;
    }
    tooltip_html = document.getElementById(owner_obj).innerHTML;
    
    
    tooltip_div.innerHTML = tooltip_html;
    tooltip_div.style.left = XMousePos + 7 + "px";
    tooltip_div.style.top = YMousePos + "px";
    //tooltip_div.style.visibility = "visible";
    
    // up or down ?
    GetWindowInnerSize();
    
    
    //switch to up position ?
    up = (YMousePos2 + 5 + tooltip_div.clientHeight) >= windowInnerHeight;
    if (up) {
        ypos = YMousePos - tooltip_div.clientHeight - 10;
        tooltip_div.style.top = ypos + "px";
    }
   tooltip_div.style.visibility = "visible";

}

function GetWindowInnerSize() {
  var myWidth = 0, myHeight = 0;
  if( typeof( window.innerWidth ) == 'number' ) {
    //Non-IE
    myWidth = window.innerWidth;
    myHeight = window.innerHeight;
  } else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
    //IE 6+ in 'standards compliant mode'
    myWidth = document.documentElement.clientWidth;
    myHeight = document.documentElement.clientHeight;
  } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
    //IE 4 compatible
    myWidth = document.body.clientWidth;
    myHeight = document.body.clientHeight;
  }
  windowInnerHeight = myHeight;
  windowInnerWidth = myWidth;
}

function HideToolTip(key) {
    tooltip_div = document.getElementById("interpc_tooltiptool_"+key);
    tooltip_div.style.visibility = "hidden";
    clearTimeout(TooltipsTimeouts[key]);
}

function RegisterToolTip(key, obj_id, contentowner_id) {

    obj = document.getElementById(obj_id);
    obj.onmouseover = function(){ ShowToolTip(key,contentowner_id, TooltipsDelays[key]); }
    obj.onmouseout = function(){ HideToolTip(key); }

}