//
// Gestion des popup d'aide contextuelle (IE6+ position:absolute compatible)
// (c) JL.ATX 14-AUG-2010
//

function initPopup() {
 document.onmousemove=getMouseOverlay;
 i=document.cookie.indexOf("contextHelp=");
 if(i!=-1) {
  i+=12;
  j=document.cookie.indexOf(";",i);
  if(j==-1) j=document.cookie.length;
  document.forms[0].elements[0].checked=((document.cookie.substring(i,j)=='true')?true:false); }
 else
  document.forms[0].elements[0].checked=true;
 locatePopup(16,80); }

function showPopup() {
 if((showPopup.arguments.length==0)||(!document.forms[0].elements[0].checked)) return;
 var e="<table cellpadding='1' cellspacing='1' border='0' bgcolor='#7F7F7F'>";

 for(i=0;i<showPopup.arguments.length;i++)
  e+="<tr><td class='help_"+
    (((showPopup.arguments.length>1)&&(i==0))?'head':(((i%2)==0)?'odd':'even'))+
    "' style='text-align:center;white-space:nowrap;'>"+showPopup.arguments[i]+"<\/td><\/tr>";

 e+="<\/table>";
 document.getElementById("popupHelp").innerHTML=e;
 document.getElementById("popupHelp").style.opacity="0.85";
 document.getElementById("popupHelp").style.visibility="visible"; }

function getObjectXY(o) {
 var x=0;
 var y=0;
 var border;
 var padding;
 if(o.offsetParent) {
  do {
   if(getStyle(o,'position')!='absolute') {
    if(border=getStyle(o,'border-top-width')) y+=parseInt(border);
    if(border=getStyle(o,'border-left-width')) x+=parseInt(border);

    if(padding=getStyle(o,'padding-top')) y+=parseInt(padding);
    if(padding=getStyle(o,'padding-left')) x+=parseInt(padding);
   }
   x+=o.offsetLeft;
   y+=o.offsetTop;
  } while(o=o.offsetParent) }
  else if(o.x) {
   x+=o.x;
   y+=o.y; }
  return {'x':x,'y':y}; }

function getStyle(o,styleProp) {
 if(o.currentStyle)
  return o.currentStyle[styleProp];
 else if(window.getComputedStyle)
  return document.defaultView.getComputedStyle(o,null).getPropertyValue(styleProp); }

//function getMouseOverlay(e) {
// e=e||window.event;
// var t=e.target||e.srcElement;
// if(document.getElementById("popupHelp").style.visibility=="visible") {
//  var c=getObjectXY(t); alert(c.x+" "+c.y);
//  locatePopup(c.x,c.y);
// }
//}

function getMouseOverlay(e) {
 var x=0;
 var y=0;
 var fx=false;
 var fy=false;
 e=e||window.event;
 var t=e.target||e.srcElement;
// if(t.type==3) t=t.parentNode; // defeat Safari bug
 if(document.getElementById("popupHelp").style.visibility=="visible") {
  if(window.event && (navigator.userAgent.toLowerCase().indexOf("safari") == -1)) {
   while(1) {
    x+=t.offsetLeft;
    y+=t.offsetTop;
    if(!t.offsetParent) break;
    t=t.offsetParent; }
   fx=(Math.max(window.event.x,x)==x);
   fy=(Math.max(window.event.y,y)==y); }
  x=(window.event)?Math.max(window.event.x,x)+(fx?window.event.x:0):e.pageX;
  y=(window.event)?Math.max(window.event.y,y)+(fy?window.event.y:0):e.pageY;
  locatePopup(x,y); } }

function locatePopup(x,y) {
 var e=document.getElementById("popupHelp");
 var w=(e.clientWidth>0)?e.clientWidth:e.offsetWidth;
 var h=(e.clientHeight>0)?e.clientHeight:e.offsetHeight;
 var x=x-w/2;
 var y=y+16;

 var wh=0;
 var ww=0;

 if(typeof(window.innerHeight)=='number') wh=window.innerHeight;
 else if(document.documentElement&&document.documentElement.clientHeight) wh=document.documentElement.clientHeight;
 else if(document.body&&document.body.clientHeight) wh=document.body.clientHeight;

 if(typeof(window.innerWidth)=='number') ww=window.innerWidth;
 else if(document.documentElement&&document.documentElement.clientWidth) ww=document.documentElement.clientWidth;
 else if(document.body&&document.body.clientWidth) ww=document.body.clientWidth;

 if(((h+32)<y)&&((y+h)>wh)) y-=h+32;
 n=navigator.appVersion;
 if((n.indexOf("MSIE")>0)||
    ((n.indexOf("Safari")>0)&&((n.indexOf("Version/3")>0)||(n.indexOf("Version/4")>0)||(n.indexOf("Version/5")>0)))
   ) {
  x+=document.body.scrollLeft;
  y+=document.body.scrollTop; }
 document.getElementById("popupHelp").style.left=""+Math.max(Math.min(x,ww-w-16),16)+"px";
 document.getElementById("popupHelp").style.top=""+Math.max(y,0)+"px"; }

function hidePopup() {
 document.getElementById("popupHelp").style.visibility="hidden";
// document.getElementById("popupHelp").style.left=""+16+"px";
}

function togglePopup() {
 e=document.forms[0].elements[0].checked;
 t=new Date();
 t=new Date(t.valueOf()+2592000000);
 document.cookie="contextHelp="+escape(e)+"; expires="+t.toGMTString()+"; path=/"; }

function disablePopup() {
 document.forms[0].elements[0].checked=false; }

