//-------------------------------------------------------------
//  Nom Document : GFBULLE.JS
//-------------------------------------------------------------
//  Mise à Jour  : 29.05.2006
//  Objet        : Compatibilité IE6 et DOCTYPE
//  -----------------------------------------------------------
var DOM = (document.getElementById ? true : false);
var IE  = (document.all && !DOM ? true : false);
var NS4 = (document.layers ? true : false);
var NAV_OK   = ( DOM || IE || NS4);
var NETSCAPE = (navigator.appName == "Netscape");
var Mouse_X;        // Position X en Cours de la Mouse
var Mouse_Y;        // Position Y en Cours de la Mouse
var TopIndex = 1;   // Z-Index interne
var Decal_X  = -35;   // Décalage X entre Pointeur Mouse et Bulle
var Decal_Y  = 35;   // Décalage Y entre Pointeur Mouse et Bulle
var bBulle= false;  // Flag Affichage de la Bulle
//---------------------
// Position d'un événement souris
function eventPosition(e) {
	return {
		x: e.pageX || (e.clientX + (document.body.scrollLeft || document.documentElement.scrollLeft)),
		y: e.pageY || (e.clientY + (document.body.scrollTop  || document.documentElement.scrollTop ))
	};
}

function GetObjet(div_){
  if( DOM) return document.getElementById(div_);
  if( IE)  return document.all[div_];
  if( NS4) return document.layers[div_];
}
//---------------------
function GetStyle(div_){
  return (NS4 ? GetObjet(div_) : GetObjet(div_).style);
}
//---------------------
function ObjHide( div_){
  var Obj = null;
  if( div_){
    Obj = GetStyle( div_);
    if( Obj){
      Obj.visibility= "hidden";
    }
  }
  return(true);
}
//-------------------------
function ObjShow( div_, z_){
  var Obj = null;
  if( div_){
    Obj = GetStyle( div_);
    if( Obj){
      Obj.visibility = "visible";
      if( arguments[1] != null)
        Obj.zIndex = z_;
      else
        Obj.zIndex = TopIndex++;
    }
  }
  return(true);
}
//-----------------------------
function ObjWrite( div_, html_){
  var Obj;
  Obj = GetObjet( div_);
  if( Obj) with( Obj){
    if( !NS4){
      innerHTML = html_;
    }
    else{
      document.open();
      document.write( html_);
      document.close();
    }
  }
}
//-------------------------------
function ObjMoveTo( div_, x_, y_){
  var Obj = null;
  var Arg = arguments;
  if( div_){
    Obj = GetStyle( div_);
    if( Obj){
      if( Arg[1] != null) Obj.left = x_ +"px";
      if( Arg[2] != null) Obj.top  = y_ +"px";
    }
  }
}
//------------------------------------
//  Mise à Jour  : 29.05.2006
//------------------------------------
function ObjShowAll( div_, x_, y_, z_){
  var Obj = GetObjet( div_);
  var DocRef;
  var MaxX, MaxY;
  var Top,  Left;
  var Haut, Larg;
  var SavY = y_;

  if( Obj){
    //-- Récup. dimension fenêtre et DIV
	Left = window.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft;
	Top = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop;
	MaxX = Left + (window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth);
	MaxY = Top + (window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight);
	Larg = Obj.offsetWidth || Obj.scrollWidth;
	Haut = Obj.offsetHeight || Obj.scrollHeight;
	/* 
    if( NETSCAPE){
      with( window){
        Left = pageXOffset;
        Top  = pageYOffset;
        MaxX = innerWidth;
        MaxY = innerHeight;
        if( MaxX > document.width)  MaxX = document.width;
        if( MaxY > document.height) MaxY = document.height;
        MaxX += Left;
        MaxY += Top;
      }
      if( NS4){
        Larg = Obj.clip.width;
        Haut = Obj.clip.height;
      }
      else{
        Larg = Obj.offsetWidth;
        Haut = Obj.offsetHeight;
      }
    }
    else{
      if( document.documentElement && document.documentElement.clientWidth)
        DocRef = document.documentElement;
      else
        DocRef = document.body;

      with( DocRef){
        Left = scrollLeft;
        Top  = scrollTop;
        MaxX = Left + clientWidth;
        MaxY = Top  + clientHeight;
      }

      Larg = Obj.scrollWidth;
      Haut = Obj.scrollHeight;
    }
	*/
		//-- Réajuste dimension fenêtre
    MaxX -= Larg;
    MaxY -= Haut;

    //-- Application Bornage
    if( x_ + 10 > MaxX) x_ = MaxX - 20;
    if( x_ < Left) x_ = Left;
    if( y_ > MaxY) y_ = MaxY;
    if( y_ < Top)  y_ = Top;

    //-- si en bas On réajuste
    //-- pour que la bulle ne prenne pas le focus
    if( y_== MaxY){
      var DeltaY = MaxY -SavY;
      y_ = MaxY - DeltaY -Haut -2*Decal_Y;
    }

    //-- On place la Bulle
    ObjMoveTo( div_, x_, y_);
    ObjShow( div_, z_);
  }
}
//------------------------
function BulleWrite( txt_){
 var Obj;
 var Html;
 Obj = GetObjet( 'Bulle');
 if( Obj){
    Html  = "<TABLE BORDER=0 CELLSPACING=0><TR><TD BGCOLOR='#004080'><TABLE BORDER=0 CELLSPACING=0 CELLPADDING=4 BGCOLOR='#FFFFFF'>";
    Html += "<TR><TD class='Bulle' NOWRAP ALIGN='LEFT'>";
    Html += txt_;

    //-- Rajout pour la démo
    
  ObjWrite  ('Bulle', Html);
  ObjShowAll('Bulle', Mouse_X +Decal_X, Mouse_Y +Decal_Y, 1000);
  bBulle= true;
  return( true);
 }
 return(false);
}
function BulleWrite2(txt,title){
 /*var Obj;
 var Html;
 Obj = GetObjet('Bulle');
 if(Obj)
 {
    Html  = "<TABLE BORDER=0 CELLSPACING=0><TR><TD BGCOLOR='#004080'><TABLE BORDER=0 CELLSPACING=0 CELLPADDING=4 BGCOLOR='#FFFFFF'>";
	Html += "<TR><TD class='titrebulle' ALIGN='LEFT'>";
	Html += title;
    Html += "</TD></TR><TR><TD class='Bulle' NOWRAP ALIGN='LEFT'>";
    Html += txt;

    //-- Rajout pour la démo
    
  ObjWrite  ('Bulle', Html);
  ObjShowAll('Bulle', Mouse_X +Decal_X, Mouse_Y +Decal_Y, 1000);
  bBulle= true;
  return( true);
 }
 return(false);*/
 BulleWrite3(txt);
}
function line(variable)
{
	variable=variable.split("\n").join();
	variable=variable.split("\r").join();
	return(variable);
}
function BulleWrite3(txt){
 var Obj;
 var Html;
 Obj = GetObjet('Bulle');
 if(Obj)
 {
	// Pour WebKit
	Html  = '<div style="max-width: 400px;">';
	Html += '<table style="border-collapse: collapse;border-spacing: 0; border:0; max-width: 400px;" CELLSPACING="0" cellpadding="0">';
	Html += '<tr height="10"><td width="10" style="background-image: url(/js/bulle/haut_gauche.png); background-repeat: no-repeat;"></td><td style="background-image: url(/js/bulle/haut.png); background-repeat: repeat-x;">';
	Html += '</td><td width="10" style="background-image: url(/js/bulle/haut_droite.png); background-repeat: no-repeat;"></td></tr>';
	Html += '<tr><td style="background-image: url(/js/bulle/gauche.png); background-repeat: repeat-y;"></td><td style="background-image: url(/js/bulle/centre.png); background-repeat: repeat; color: white;font-weight: bold; font-family: Verdana,sans-serif; font-size: x-small;">';
   // txt = line(txt);
	Html += line(txt);
	Html += '</td><td style="background-image: url(/js/bulle/droite.png); background-repeat: repeat-y;"></td></tr>';
	Html += '<tr height="10"><td style="background-image: url(/js/bulle/bas_gauche.png); background-repeat: no-repeat;"></td><td style="background-image: url(/js/bulle/bas.png); background-repeat: repeat-x;"></td><td style="background-image: url(/js/bulle/bas_droite.png); background-repeat: no-repeat;"></td></tr>';
	Html += '</table>';
	Html += '</div>';
	// test div
	/*Html += "<div style='border-collapse: collapse;border-spacing: 0; border:0; max-width: 400px;'>";
	Html += "<div style='clear:both;'><div style='min-width: 10px; float: left; min-height: 10px; background-image: url(./js/bulle/haut_gauche.png); background-repeat: no-repeat;'></div>";
	Html += "<div style='min-height: 10px; float: left; background-image: url(./js/bulle/haut.png); background-repeat: x;'></div>";
	Html += "<div style='min-width: 10px; min-height: 10px; background-image: url(./js/bulle/haut_droite.png); background-repeat: no-repeat;'></div></div>";
	
	Html += "<div style='clear:both;'><div style='min-width: 10px; float: left; background-image: url(./js/bulle/gauche.png); background-repeat: y;></div>";
	Html += "<div style='float: left; background-image: url(./js/bulle/centre.png); background-repeat: repeat; color: white; font-family: Verdana,sans-serif; font-size: x-small;'>"+line(txt)+"</div>";
	Html += "<div style='min-width: 10px; background-image: url(./js/bulle/droite.png); background-repeat: y;></div></div>";

	Html += "<div style='clear:both;'><div style='float: left; min-width: 10px; min-height: 10px; background-image: url(./js/bulle/bas_gauche.png); background-repeat: no-repeat;'></div>";
	Html += "<div style='float: left; min-height: 10px; background-image: url(./js/bulle/bas.png); background-repeat: no-repeat;'></div>";
	Html += "<div style='min-width: 10px; min-height: 10px; background-image: url(./js/bulle/bas_droite.png); background-repeat: no-repeat;'></div></div>";
	Html += "</div>";*/
	ObjWrite  ('Bulle', Html);
	ObjShowAll('Bulle', Mouse_X +Decal_X, Mouse_Y +Decal_Y, 1000);
	bBulle= true;
	return( true);
 }
 return(false);
}
function BulleWriteDouble(txt,txt2){
 var Obj;
 var Html;
 Obj = GetObjet('Bulle');
 if(Obj)
 {
	 // Pour webKit
	Html  = '<div style="max-width: 800px;">';
	Html += "<table style='border-collapse: collapse;border-spacing: 0; border:0; max-width: 800px;' CELLSPACING='0' cellpadding='0'>";
	Html += "<tr height='10'><td width='10' style='background-image: url(./js/bulle/haut_gauche.png); background-repeat: no-repeat;'></td><td style='background-image: url(./js/bulle/haut.png); background-repeat: repeat-x;'></td><td width='10' style='background-image: url(./js/bulle/haut_droite.png); background-repeat: no-repeat;'></td><td width='10' style='background-image: url(./js/bulle/haut_gauche.png); background-repeat: no-repeat;'></td><td style='background-image: url(./js/bulle/haut.png); background-repeat: repeat-x;'></td><td width='10' style='background-image: url(./js/bulle/haut_droite.png); background-repeat: no-repeat;'></td></tr>";
	Html += "<tr><td style='background-image: url(./js/bulle/gauche.png); background-repeat: repeat-y;'></td><td style='background-image: url(./js/bulle/centre.png); background-repeat: repeat; color: white;font-weight: bold; font-family: Verdana,sans-serif; font-size: x-small; max-width: 400px;'>";
    Html += txt;
	Html += "</td><td style='background-image: url(./js/bulle/droite.png); background-repeat: repeat-y;'></td><td style='background-image: url(./js/bulle/gauche.png); background-repeat: repeat-y;'></td><td style='background-image: url(./js/bulle/centre.png); background-repeat: repeat; color: white;font-weight: bold; font-family: Verdana,sans-serif; font-size: x-small; max-width: 400px;'>";
	Html += "<font color=orange><i>";
	if (arguments[2]) {
		Html += arguments[2];
	} else {
		Html += 'Actuellement &eacute;quip&eacute;';
	}
	Html += "</i></font><br/>"+txt2+"</td><td style='background-image: url(./js/bulle/droite.png); background-repeat: repeat-y;'></td></tr>";
	Html += "<tr height='10'><td style='background-image: url(./js/bulle/bas_gauche.png); background-repeat: no-repeat;'></td><td style='background-image: url(./js/bulle/bas.png); background-repeat: repeat-x;'></td><td style='background-image: url(./js/bulle/bas_droite.png); background-repeat: no-repeat;'></td><td style='background-image: url(./js/bulle/bas_gauche.png); background-repeat: no-repeat;'></td><td style='background-image: url(./js/bulle/bas.png); background-repeat: repeat-x;'></td><td style='background-image: url(./js/bulle/bas_droite.png); background-repeat: no-repeat;'></td></tr>";
	Html += "</table>";
	Html += '</div>';
	ObjWrite  ('Bulle', Html);
	ObjShowAll('Bulle', Mouse_X +Decal_X, Mouse_Y +Decal_Y, 1000);
	bBulle= true;
	return( true);
 }
 return(false);
}
function BulleWriteAdmin(txt){
 var Obj;
 var Html;
 Obj = GetObjet('Bulle');
 if(Obj)
 {
	// Pour WebKit
	Html  = '<div style="max-width: 400px;">';
	Html += "<table style='border-collapse: collapse;border-spacing: 0; border:0; max-width: 400px;' CELLSPACING='0' cellpadding='0'>";
	Html += "<tr height='10'><td width='10' style='background-image: url(../js/bulle/haut_gauche.png); background-repeat: no-repeat;'></td><td style='background-image: url(../js/bulle/haut.png); background-repeat: repeat-x;'></td><td width='10' style='background-image: url(../js/bulle/haut_droite.png); background-repeat: no-repeat;'></td></tr>";
	Html += "<tr><td style='background-image: url(../js/bulle/gauche.png); background-repeat: repeat-y;'></td><td style='background-image: url(../js/bulle/centre.png); background-repeat: repeat; color: white;font-weight: bold; font-family: Verdana,sans-serif; font-size: x-small;'>";
    Html += txt;
	Html += "</td><td style='background-image: url(../js/bulle/droite.png); background-repeat: repeat-y;'></td></tr>";
	Html += "<tr height='10'><td style='background-image: url(../js/bulle/bas_gauche.png); background-repeat: no-repeat;'></td><td style='background-image: url(../js/bulle/bas.png); background-repeat: repeat-x;'></td><td style='background-image: url(../js/bulle/bas_droite.png); background-repeat: no-repeat;'></td></tr>";
	Html += "</table>";
	Html += '</div>';
	ObjWrite  ('Bulle', Html);
	ObjShowAll('Bulle', Mouse_X +Decal_X, Mouse_Y +Decal_Y, 1000);
	bBulle= true;
	return( true);
 }
 return(false);
}
//------------------
function BulleHide(){
  ObjWrite ('Bulle', "&nbsp;");
  ObjHide  ('Bulle');
  ObjMoveTo('Bulle', 0, 0);
  bBulle= false;
  return(true);
}

//------------------------------------
//  Mise à Jour  : 29.05.2006
//------------------------------------
function WhereMouse(e){
	var pos = eventPosition(e);
	Mouse_X = pos.x;
	Mouse_Y = pos.y;
  /*var DocRef;

  if( NETSCAPE){
    Mouse_X = e.pageX;
    Mouse_Y = e.pageY;
  }
  else{
    if( document.documentElement && document.documentElement.clientWidth)
      DocRef = document.documentElement;
    else
      DocRef = document.body;

    Mouse_X = event.clientX +DocRef.scrollLeft;
    Mouse_Y = event.clientY +DocRef.scrollTop;
  }*/
  //-- La bulle est affichée on la MOVE
  if( bBulle)
    ObjShowAll('Bulle', Mouse_X +Decal_X, Mouse_Y +Decal_Y, 1000);
}
//== INITIALISATION ==================================
//-- Capture Souris events ---------------------------
if( NETSCAPE)
  window.captureEvents( Event.MOUSEMOVE);
document.onmousemove = WhereMouse;

//-- Création STYLE Bulle et DIV----------------------
// Nota : pour NS4 le DIV doit faire parti du document
var Html;
  //-- On met du style pour la bulle
  Html  = '<STYLE TYPE="text/css">';
  Html += '.Bulle{color:#004080;font-size:12px;font-family:Trebuchet MS;}';
  Html += '</STYLE>';
  document.write( Html);

  //-- Création du DIV Bulle
  if( !NS4){
    Html ='<div id="Bulle" style="position:absolute; left:auto; top:auto; width:auto; height:auto; z-index:0; visibility:hidden"></div>';
    document.write( Html);
  }
//-- EOF ------------------------------------------------------

