var topMargin = 0;
var originalY = -1;
var slideTime = 1200;
var ns6 = (!document.all && document.getElementById);
var ie4 = (document.all);
var ns4 = (document.layers);

window.setInterval("main()", 10);

function getScrollTop() {
  if (window.pageYOffset) {
    return window.pageYOffset;
  }
  else if (document.documentElement && document.documentElement.scrollTop) {
    return document.documentElement.scrollTop;
  }
  else if (document.body) {
    return document.body.scrollTop;
  }
  return 0;
}
function getClientWidth() {
  if (window.innerWidth) {
    theWidth = window.innerWidth;
  }
  else if (document.documentElement && document.documentElement.clientWidth) {
    theWidth = document.documentElement.clientWidth;
  }
  else if (document.body) {
    theWidth = document.body.clientWidth;
  }
}
function floatObject() {
	if (ns4 || ns6) {
		findHt = getClientWidth();
	} else if(ie4) {
		findHt = getClientWidth();
	}
}
function main() {
	if (ns4) {
		this.currentY = document.floatLayer.top;
		this.scrollTop = getScrollTop();
		if (this.originalY <= 0) {
			this.originalY = getLayerY(floatLayer);
		}
		mainTrigger();
	} else if(ns6) {
		if(document.getElementById('floatLayer') == null) this.currentY = 0;
		else this.currentY = (document.getElementById('floatLayer').style.top == "" ? 0 : parseInt(document.getElementById('floatLayer').style.top));
		this.scrollTop = getScrollTop();
		if (this.originalY <= 0) {
			this.originalY = getLayerY(document.getElementById('floatLayer'));
		}
		mainTrigger();
	} else if(ie4) {
		this.currentY = floatLayer.style.pixelTop;
		this.scrollTop = getScrollTop();
		if (this.originalY <= 0) {
			this.originalY = getLayerY(floatLayer);
		}
		mainTrigger();
	}
}
function mainTrigger() {
	var newTargetY = 0;
	if (this.scrollTop > this.originalY)
		newTargetY = this.scrollTop + this.topMargin - this.originalY;
	if ( this.currentY != newTargetY ) {
		if ( newTargetY != this.targetY ) {
			this.targetY = newTargetY
			floatStart();
		}
		animator();
	}
}
function floatStart() {
	var now = new Date()
	this.A = this.targetY - this.currentY;
	this.B = Math.PI / ( 2 * this.slideTime );
	this.C = now.getTime();
	if (Math.abs(this.A) > this.findHt) {
		this.D = this.A > 0 ? this.targetY - this.findHt : this.targetY + this.findHt;
		this.A = this.A > 0 ? this.findHt : -this.findHt;
	} else {
		this.D = this.currentY;
	}
}
function animator() {
	
	var hauteurPage = document.body.clientHeight
	var positionSky = document.getElementById('floatLayer').offsetTop;
	var hauteurSky = document.getElementById('floatLayer').offsetHeight;
	//var reste = hauteurPage-positionInitialSky;
	
	
	var now = new Date();
	var newY = this.A * Math.sin( this.B * ( now.getTime() - this.C ) ) + this.D;
	newY = Math.round(newY);
	var X = positionSky+newY;
	var Y = hauteurPage+hauteurSky+100;
	/*
	if((newY%100)==0){
		alert(X+"  =>  "+Y);
	//alert("hauteurPage : "+hauteurPage+"=> newY : "+newY+" Reste : "+reste+" positionInitialSky : "+positionInitialSky+" hauteurSky : "+hauteurSky);
	}
	*/
	if(Y > hauteurPage - hauteurSky) {
		Y = hauteurPage;
	}
	
	if ((( this.A > 0 && newY > this.currentY ) || ( this.A < 0 && newY < this.currentY )) && (X<Y)) {
		if ( ie4 )floatLayer.style.pixelTop = newY;
		if ( ns4 )document.floatLayer.top = newY;
		if ( ns6 )document.getElementById('floatLayer').style.top = newY + "px";
	}
}
function getLayerY(obj) {
	var curtop = 0;
	
	if(obj == null) {
		return curtop;
	}
	
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curtop += obj.offsetTop;
			obj = obj.offsetParent;
		}
	}
	else if (obj.y)
		curtop += obj.y;
	return curtop;
}

