var FloatingDiv = (function() {
	var ns = (navigator.appName.indexOf("Netscape") != -1);
    var d = document;
    var cont = false;
	
	function getScrollingPosition() {
        var position = [0, 0];
        if (typeof window.pageYOffset != 'undefined') {
			position = [
			window.pageXOffset,
			window.pageYOffset
			];
        } else if (typeof document.documentElement.scrollTop != 'undefined' && document.documentElement.scrollTop > 0) {
			position = [
			document.documentElement.scrollLeft,
			document.documentElement.scrollTop
			];
        } else if (typeof document.body.scrollTop != 'undefined') {
			position = [
			document.body.scrollLeft,
			document.body.scrollTop
			];
        }
        return position;
    }
	
	return {
    	JSFX_FloatDiv : function(id, sx, sy) {
			var el=d.getElementById?d.getElementById(id):d.all?d.all[id]:d.layers[id];
			var px = document.layers ? "" : "px";
			window[id + "_obj"] = el;
			if(d.layers)el.style=el;
			el.cx = el.sx = sx;el.cy = el.sy = sy;
			el.sP=function(x,y){this.style.left=x+px;this.style.top=y+px;};
		
			el.floatIt = function() {
				var scrollpos = getScrollingPosition();
				if (scrollpos[1] > this.sy || cont) {	
					var pX, pY;
					pX = (this.sx >= 0) ? 0 : ns ? innerWidth : 
					document.documentElement && document.documentElement.clientWidth ? 
					document.documentElement.clientWidth : document.body.clientWidth;
					pY = ns ? pageYOffset : document.documentElement && document.documentElement.scrollTop ? 
					document.documentElement.scrollTop : document.body.scrollTop;
					if(this.sy<0) 
					pY += ns ? innerHeight : document.documentElement && document.documentElement.clientHeight ? 
					document.documentElement.clientHeight : document.body.clientHeight;
					
					pY -= this.sy;
					this.cx += (pX + this.sx - this.cx)/8;this.cy += (pY + this.sy - this.cy)/8;
					this.sP(this.cx, this.cy);
					
					cont = (this.cy  > this.sy + 70) ? true : false;
				}
				setTimeout(this.id + "_obj.floatIt()", 20);
			}
			return el;
		}	
    }
})();