var floatingAdId = 'floatdiv';   
var floatingAd =   
{   
    targetX: 780,
    targetY: 0,  
    minimumX: 780,
	 minimumY: 160,   
  
    hasInner: typeof(window.innerWidth) == 'number',   
    hasElement: document.documentElement   
        && document.documentElement.clientWidth,   
  
    menu:   
        document.getElementById   
        ? document.getElementById(floatingAdId)   
        : document.all   
          ? document.all[floatingAdId]   
          : document.layers[floatingAdId]   
};   
  
floatingAd.move = function ()   
{   
    if (document.layers)   
    {   
        floatingAd.menu.left = floatingAd.nextX;   
        floatingAd.menu.top = floatingAd.nextY;   
    }   
    else  
    {   
        floatingAd.menu.style.left = floatingAd.nextX + 'px';   
        floatingAd.menu.style.top = floatingAd.nextY + 'px';   
    }
}   
  
floatingAd.computeShifts = function ()   
{   
    var de = document.documentElement;   
  
    floatingAd.shiftX =   
        floatingAd.hasInner   
        ? pageXOffset   
        : floatingAd.hasElement   
          ? de.scrollLeft   
          : document.body.scrollLeft;   
    if (floatingAd.targetX < 0)   
    {   
        if (floatingAd.hasElement && floatingAd.hasInner)   
        {   
            // Handle Opera 8 problems   
            floatingAd.shiftX +=   
                de.clientWidth > window.innerWidth   
                ? window.innerWidth   
                : de.clientWidth   
        }   
        else  
        {   
            floatingAd.shiftX +=   
                floatingAd.hasElement   
                ? de.clientWidth   
                : floatingAd.hasInner   
                  ? window.innerWidth   
                  : document.body.clientWidth;   
        }   
    }   
  
    floatingAd.shiftY =    
        floatingAd.hasInner   
        ? pageYOffset   
        : floatingAd.hasElement   
          ? de.scrollTop   
          : document.body.scrollTop;   
    if (floatingAd.targetY < 0)   
    {   
        if (floatingAd.hasElement && floatingAd.hasInner)   
        {   
            // Handle Opera 8 problems   
            floatingAd.shiftY +=   
                de.clientHeight > window.innerHeight   
                ? window.innerHeight   
                : de.clientHeight   
        }   
        else  
        {   
            floatingAd.shiftY +=   
                floatingAd.hasElement   
                ? document.documentElement.clientHeight   
                : floatingAd.hasInner   
                  ? window.innerHeight   
                  : document.body.clientHeight;   
        }   
    }   
}   
  
floatingAd.doFloat = function()   
{   
    var stepX, stepY;   
  
    floatingAd.computeShifts();   
  
    stepX = (floatingAd.shiftX +    
        floatingAd.targetX - floatingAd.nextX) * .07;   
    if (Math.abs(stepX) < .5)   
    {   
        stepX = floatingAd.shiftX +   
            floatingAd.targetX - floatingAd.nextX;   
    }   
  
    stepY = (floatingAd.shiftY +    
        floatingAd.targetY - floatingAd.nextY) * .07;   
    if (Math.abs(stepY) < .5)   
    {   
        stepY = floatingAd.shiftY +    
            floatingAd.targetY - floatingAd.nextY;   
    }   
  
    if (Math.abs(stepX) > 0 ||   
        Math.abs(stepY) > 0)   
    {   
        floatingAd.nextX += stepX;   
		  if (floatingAd.nextX < floatingAd.minimumX) {
		  	floatingAd.nextX = floatingAd.minimumX;
		  }  
        floatingAd.nextY += stepY; 
		  if (floatingAd.nextY < floatingAd.minimumY) {
		  	floatingAd.nextY = floatingAd.minimumY;
		  }  
        floatingAd.move();   
    }   
  
    setTimeout('floatingAd.doFloat()', 20);   
};   
  
// addEvent designed by Aaron Moore   
floatingAd.addEvent = function(element, listener, handler)   
{   
    if(typeof element[listener] != 'function' ||    

       typeof element[listener + '_num'] == 'undefined')   
    {   
        element[listener + '_num'] = 0;   
        if (typeof element[listener] == 'function')   
        {   
            element[listener + 0] = element[listener];   
            element[listener + '_num']++;   
        }   
        element[listener] = function(e)   
        {   
            var r = true;   
            e = (e) ? e : window.event;   
            for(var i = element[listener + '_num'] -1; i >= 0; i--)   
            {   
                if(element[listener + i](e) == false)   
                    r = false;   
            }   
            return r;   
        }   
    }   
  
    //if handler is not already stored, assign it   
    for(var i = 0; i < element[listener + '_num']; i++)   
        if(element[listener + i] == handler)   
            return;   
    element[listener + element[listener + '_num']] = handler;   
    element[listener + '_num']++;   
};   
  
floatingAd.init = function()   
{   
    floatingAd.initSecondary();   
    floatingAd.doFloat();   
};   
  
// Some browsers init scrollbars only after   
// full document load.   
floatingAd.initSecondary = function()   
{   
    floatingAd.computeShifts();   
    floatingAd.nextX = floatingAd.shiftX +   
        floatingAd.minimumX;   
    floatingAd.nextY = floatingAd.shiftY +   
        floatingAd.minimumY;   
    floatingAd.move();   
}   
  
if (document.layers)   
    floatingAd.addEvent(window, 'onload', floatingAd.init);   
else  
{   
    floatingAd.init();   
    floatingAd.addEvent(window, 'onload',   
        floatingAd.initSecondary);   
}