var MAX_Y = 10000;
var MAX_X = 10000;

function Deplace_Doc( x_, y_){
window.scrollTo( x_, y_);
return(true);
}

function Add_Event( obj_, event_, func_, mode_){
if( obj_.addEventListener)
obj_.addEventListener( event_, func_, mode_? mode_:false);
else
obj_.attachEvent( 'on'+event_, func_);
}
//----------------------
function GetScrollPage(){
//alert(document.documentElement.scrollTop);
var Left;
var Top;
var DocRef;
if( window.innerWidth){
with( window){
Left   = pageXOffset;
Top    = pageYOffset;
}
}
else{ // Cas Explorer a part
if( document.documentElement && document.documentElement.clientWidth)
DocRef = document.documentElement;
else
DocRef = document.body;
with( DocRef){
Left   = scrollLeft;
Top    = scrollTop;
}
}
return({top:Top, left:Left});
}
//---------------------------
function ObjGetPosition(obj_){
var PosX = 0;
var PosY = 0;
//-- suivant type en parametre
if( typeof(obj_)=='object')
var Obj  = obj_;
else
var Obj  = document.getElementById( obj_);
//-- Si l'objet existe
if( Obj){
//-- Recup. Position Objet
PosX = Obj.offsetLeft;
PosY = Obj.offsetTop;
//-- Si propriete existe
if( Obj.offsetParent){
//-- Tant qu'un parent existe
while( Obj = Obj.offsetParent){
if( Obj.offsetParent){ // on ne prend pas le BODY
//-- Ajout position Parent
PosX += Obj.offsetLeft;
PosY += Obj.offsetTop;
}
}
}
}
//-- Retour des positions
return({left:PosX, top:PosY});
}
//-------------------------------------
// MENU FLOTTANT //////////////////////
//-------------------------------------
var marge = 20;
var IdTimer_1;
var IdTimer_2;
var O_DivScroll;
var Rapport = 1.0/2;  // On divise par 20
var Mini = 2* Rapport;
//-----------------------
function DIV_Scroll( id_){
var Obj = document.getElementById( id_);
this.Obj = Obj;
if( Obj){
Obj.style.position = "absolute"; // IMPERATIF
//-- Recup position de depart
var Pos   = ObjGetPosition( id_);
this.PosX = 0;
this.PosY = -245;
this.DebX = this.PosX;
this.DebY = -245;
this.NewX = 0;
this.NewY = -245;
this.Move = DIV_Deplace;
}
}
//---------------------------
function DIV_Deplace( x_, y_){
var scrollPos = document.documentElement.scrollTop + document.body.scrollTop;
if (scrollPos >= 240){
if( arguments[0] != null){
this.PosX = x_;
this.Obj.style.left = parseInt(x_) +"px";
}
if( arguments[1] != null){
this.PosY = y_ ;
this.Obj.style.top  = parseInt(y_) +"px";
}
}
else{
var j = 0;
	this.PosY = j;
	this.Obj.style.top  = parseInt(j) +"px";
}
}
//---------------------------
function DIV_Replace( x_, y_){
var scrollPos = document.documentElement.scrollTop + document.body.scrollTop;
if (scrollPos >= 240){
//-- Calcul Delta deplacement
var Delta_X = (x_ -O_DivScroll.PosX) *Rapport;
var Delta_Y = (y_ -O_DivScroll.PosY) *Rapport;
//-- Test si fin deplacement
if((( Delta_Y < Mini)&&( Delta_Y > -Mini))&&
(( Delta_X < Mini)&&( Delta_X > -Mini))){
clearInterval( IdTimer_1);
O_DivScroll.Move( x_, y_ );
}
else{
O_DivScroll.Move( O_DivScroll.PosX +Delta_X, O_DivScroll.PosY +Delta_Y);
}
}
else{
	O_DivScroll.Move( x_, 0);
}
}
//------------------------
function DIV_CheckScroll(){
var Scroll  = GetScrollPage();
//-- New position  du menu
O_DivScroll.NewX = Scroll.left +O_DivScroll.DebX;
O_DivScroll.NewY = Scroll.top  +O_DivScroll.DebY;
//-- Si pas la bonne Position
if(( O_DivScroll.PosY != O_DivScroll.NewY)||( O_DivScroll.PosX != O_DivScroll.NewX)){
//-- Clear l'encours
clearInterval( IdTimer_1);
IdTimer_1 = setInterval("DIV_Replace(0," + O_DivScroll.NewY +")", 10);
}
return( true);
}
//-----------------------
function DIV_InitScroll(){
//-- Recup position Objet
O_DivScroll  = new DIV_Scroll('DIV_MOVE');
//-- Lance inspection si existe
if( O_DivScroll.Obj)
IdTimer_2 = setInterval('DIV_CheckScroll()',100);
}
//========================================
Add_Event( window, 'load', DIV_InitScroll);
