Glider.holder = [];
function Glider(id,x,y,w,h,d,ac) {
    this.glideDur = d || 1000; this.origX = x; this.origY = y; this.ac = -ac || 0;
	this.baseObj = dynObj;
	this.baseObj(id,x,y,w,h);
    Glider.holder[Glider.holder.length] = this;
    if (!Glider.winHt) Glider.winHt = getWinHeight();
}

Glider.prototype = new dynObj;
Glider.prototype.onGlideInit = function () {}

Glider.prototype.checkGlider = function() {
    var destY = getScrollY() + this.origY;
    if (destY != this.y) {
        if (destY != this.dy) {
            this.dy = destY;
            this.glideInit();
            this.onGlideInit();
		} 
		this.glide();
	}
}

Glider.prototype.glideInit = function() {
	this.gt = new Date().getTime();
	var distY = this.dy - this.y;
	if ( Math.abs(distY) > Glider.winHt ) {
		this.gsy = (distY > 0)? this.dy - Glider.winHt: this.dy + Glider.winHt;
	}
	else this.gsy = this.y;
    this.g_yc1 = this.gsy + ( (1+this.ac) * (this.dy - this.gsy)/3 );
	this.g_yc2 = this.gsy + ( (2+this.ac) * (this.dy - this.gsy)/3 );
}

Glider.prototype.glide = function() {
    var elapsed = new Date().getTime() - this.gt;
    if (elapsed < this.glideDur) {
        var y = dw_Bezier.getValue( elapsed/this.glideDur, this.gsy, this.dy, this.g_yc1, this.g_yc2 );
        this.shiftTo(null,y);
    }
    else this.shiftTo(null,this.dy);
}

Glider.control = function() {
  for (var i=0; Glider.holder[i]; i++) {
    var curObj = Glider.holder[i];
    if (curObj) curObj.checkGlider();
  }
}

dw_Animation.add(Glider.control);

function getWinHeight() {
    var winHt = 0;
	if (window.innerHeight) winHt = window.innerHeight-18;
	else if (document.documentElement && document.documentElement.clientHeight) 
	winHt = document.documentElement.clientHeight;
	else if (document.body && document.body.clientHeight) 
	winHt = document.body.clientHeight;
	return winHt;
}	

function getScrollY() {
    var sy = 0;
	if (document.documentElement && document.documentElement.scrollTop)
    sy = document.documentElement.scrollTop;
	else if (document.body && document.body.scrollTop) 
    sy = document.body.scrollTop; 
	else if (window.pageYOffset)
    sy = window.pageYOffset;
	else if (window.scrollY)
    sy = window.scrollY;
	return sy;
}

if (window.addEventListener)
window.addEventListener("resize", function(){ Glider.winHt = getWinHeight(); }, "false");
else if (window.attachEvent)
window.attachEvent("onresize", function(){ Glider.winHt = getWinHeight(); } );
