// Script qui fait bouger un element en fonction de la scrollbar vertical
// USAGE
// SetTargetElement ( "Id de l'élément à déplacer" );
// MovePosition ( );

/* DEBUT */
var D1;
var TopPos;

/* 
	Donne la position verticale de la scrollbar
*/
function GetScrollTop ( )
{
	var pos = 0;
	/* 
		Position de la barre de scroll
		en fonction du navigateur
	*/
	if (window.innerHeight)
	{
		pos = window.pageYOffset
	}
	else if (document.documentElement && document.documentElement.scrollTop)
	{
		pos = document.documentElement.scrollTop
	}
	else if (document.body)
	{
		pos = document.body.scrollTop
	}
	return pos;
}
function getStyle(Element)
{
  if (document.getElementById)
  {
	return Element.style;
  }
  else if (document.all)
  {
	return document.all[Element.id].style;
  }
  else if (document.layers)
  {
   	return document.layers[Element.id];
  }
}
/*
	Fonction qui déplace l'élément selon un intervalle de temps défini
*/
function CheckUIElements ( )
{
		var yMenu1From, yMenu1To, yOffset, timeoutNextCheck , scollPos , curTop;
		
		var style= getStyle(D1);
		
		curTop = parseInt (style.top , 10);
		if( curTop == undefined) curTop = 0;
		else if( isNaN(curTop) ) curTop = 0;
		
		scrollPos 		= parseInt (GetScrollTop() , 10);
		yMenu1From   	= parseInt (curTop, 10);
		yMenu1To     	= parseInt (scrollPos + TopPos , 10);
		
		timeoutNextCheck = 500;
		
		if ( yMenu1From != yMenu1To )
		{
			yOffset = Math.ceil( Math.abs( yMenu1To - yMenu1From ) / 20 );
			if ( yMenu1To < yMenu1From ){ yOffset = -yOffset; }
			
			style.top = (parseInt (curTop, 10) + yOffset)+"";
			timeoutNextCheck = 5;
		}   
		
		setTimeout ("CheckUIElements()", timeoutNextCheck);
}

function MovePosition ( )
{
		var scrollPos = GetScrollTop();
		D1.style.top = ( scrollPos + TopPos );
		D1.style.visibility = "visible";
		// initializing UI update timer
		CheckUIElements();
		return true;
}

function SetTargetElement ( Id , TopPosition )
{
	D1 		= document.getElementById( Id );
	TopPos 	= parseInt( TopPosition ,10 );
}