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;
var Mouse_Y;
var TopIndex = 1;
var Decal_X  = 7;
var Decal_Y  = 1;
var bBulle= false;

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";
    }
  }
}

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){
    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;

    if( x_ > MaxX) x_ = MaxX;
    if( x_ < Left) x_ = Left;
    if( y_ > MaxY) y_ = MaxY;
    if( y_ < Top)  y_ = Top;

    if( y_== MaxY){
      var DeltaY = MaxY -SavY;
      y_ = MaxY - DeltaY -Haut -2*Decal_Y;
    }

    ObjMoveTo( div_, x_, y_);
    ObjShow( div_, z_);
  }
}

function WCalculBool(frame_,bool_){
  var t;
  var s;
  s=frame_.charAt(bool_);
  if(s==" "){s=frame_.charAt(bool_+1);};
  if(s==" "){s="0"};
  if(s==""){s="0"};
  if(s=="-"){s="0"};
  if(s=="X"){s="10"};
  if(s=="/"){s=10-WCalculBool(frame_,bool_-1)};
  t=parseInt(s);
  return(t);
}

function WCalcul(frame_,framendx_){
  var t;
  var st;
  var s;
  var ss;
  var bool;
  bool=framendx_*2;
  t=WCalculBool(frame_,bool);
  if(framendx_==9){
    t+=WCalculBool(frame_,bool+1);
    t+=WCalculBool(frame_,bool+2);
  }else
  {
    if(t==10)
    {
      t+=WCalculBool(frame_,bool+2);
      t+=WCalculBool(frame_,bool+3);
    }
    else
    {
        ss=frame_.charAt(bool+1);
        if(ss==" "){ss="0"};
        if(ss=="-"){ss="0"};
        if((ss=="/")||(t+parseInt(ss)>=10))
        {
          t=10;
          t+=WCalculBool(frame_,bool+2);
        }else
        {
          t+=parseInt(ss);
        };
    };
  };
  return(t);
}

function WFrame( frame_){
  var html;
  var t;
  html='<span class="bdf"><table class="df" border="0" cellspacing="0" cellpadding="0"><tr>';    
  for( var i=1; i<10; i++){html+="<td>"+i+"</td>";};
  html+='<td style="width:29">'+i+"</td>";
  html+="</tr></table>";    
  html+='<table class="sf" border="0" cellspacing="0" cellpadding="0"><tr>';
  for(var i=0; i<21; i++){html+="<td>"+frame_.charAt(i)+"</td>";};
  html+="</tr></table>";    
  t=0;
  html+='<table class="df" border="0" cellspacing="0" cellpadding="0"><tr>';    
  for( var i=0; i<9; i++){
    t+=WCalcul(frame_,i);
    html+="<td>"+t+"</td>";
  };
  t+=WCalcul(frame_,9);
  html+='<td style="width:29">'+t+"</td>";
  html+="</tr></table></span>";
 return(html);
}
function WFrameDocument( frame_){
  document.write(WFrame(frame_));    
}

function WBF( frame_){
 var Obj;
 var Html;
 Obj = GetObjet( 'Bulle');
 if( Obj){
   Html=WFrame(frame_);
   ObjWrite  ('Bulle', Html);
   ObjShowAll('Bulle', Mouse_X +Decal_X, Mouse_Y +Decal_Y, 1000);
   bBulle= true;
   return( true);
 }
 return(false);
}

function HBF(){
  ObjWrite ('Bulle', "&nbsp;");
  ObjHide  ('Bulle');
  ObjMoveTo('Bulle', 0, 0);
  bBulle= false;
  return(true);
}

function WhereMouse(e){
  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;
  }
  if( bBulle)
    ObjShowAll('Bulle', Mouse_X +Decal_X, Mouse_Y +Decal_Y, 1000);
}

if(NETSCAPE) window.captureEvents( Event.MOUSEMOVE);
document.onmousemove = WhereMouse;
if(!NS4){document.write('<div id="Bulle" style="position:absolute; left:auto; top:auto; width:auto; height:auto; z-index:0; visibility:hidden"></div>');}
