<!--  
/* Script by: www.jtricks.com 
 * Version: 20071210 
 * Latest version: 
 * www.jtricks.com/javascript/navigation/floating.html 
 */  
var floatingMenuId = 'floatdiv';  
var floatingMenu = 
{  
	targetX: 0,  
	targetY: 0,  
  
	hasInner: typeof(window.innerWidth) == 'number',  
	hasElement: document.documentElement && document.documentElement.clientWidth,  

	wharrgarbl: "banana",
  
	menu:  
		document.getElementById  
		? document.getElementById(floatingMenuId)  
		: (document.all  
		  ? document.all[floatingMenuId]  
		  : document.layers[floatingMenuId])
};  

floatingMenu.move = function ()  
{  
	//if (window.console) { console.log("floatingMenu.nextY", floatingMenu.nextY); }

	if (document.layers)  
	{  
		floatingMenu.menu.left = floatingMenu.nextX;  
		floatingMenu.menu.top = floatingMenu.nextY;  
	}  
	else  
	{  
		floatingMenu.menu.style.left = floatingMenu.nextX + 'px';  
		floatingMenu.menu.style.top = floatingMenu.nextY + 'px';  
	}  
}  

floatingMenu.computeShifts = function ()  
{  
	var de = document.documentElement;  
  
	floatingMenu.shiftX =  
		floatingMenu.hasInner  
		? pageXOffset  
		: floatingMenu.hasElement  
		  ? de.scrollLeft  
		  : document.body.scrollLeft;  
	if (floatingMenu.targetX < 0)  
	{  
		if (floatingMenu.hasElement && floatingMenu.hasInner)  
		{  
			// Handle Opera 8 problems  
			floatingMenu.shiftX +=  
				de.clientWidth > window.innerWidth  
				? window.innerWidth  
				: de.clientWidth  
		}  
		else  
		{  
			floatingMenu.shiftX +=  
				floatingMenu.hasElement  
				? de.clientWidth  
				: floatingMenu.hasInner  
				  ? window.innerWidth  
				  : document.body.clientWidth;  
		}  
	}  
  
	floatingMenu.shiftY =   
		floatingMenu.hasInner  
		? pageYOffset  
		: floatingMenu.hasElement  
		  ? de.scrollTop  
		  : document.body.scrollTop;  
	if (floatingMenu.targetY < 0)  
	{  
		if (floatingMenu.hasElement && floatingMenu.hasInner)  
		{  
			// Handle Opera 8 problems  
			floatingMenu.shiftY +=  
				de.clientHeight > window.innerHeight  
				? window.innerHeight  
				: de.clientHeight  
		}  
		else  
		{  
			floatingMenu.shiftY +=  
				floatingMenu.hasElement  
				? document.documentElement.clientHeight  
				: floatingMenu.hasInner  
				  ? window.innerHeight  
				  : document.body.clientHeight;  
		}  
	}  
}  
  
floatingMenu.doFloat = function()  
{  
	var stepX, stepY;  
  
	floatingMenu.computeShifts();  
	
	//console.log(floatingMenu.shiftY, floatingMenu.targetY, floatingMenu.nextY);
  
	stepX = (floatingMenu.shiftX + floatingMenu.targetX - floatingMenu.nextX) * .07;  
	if (Math.abs(stepX) < .5)  
	{  
		stepX = floatingMenu.shiftX + floatingMenu.targetX - floatingMenu.nextX;  
	}  
  
	stepY = (floatingMenu.shiftY + floatingMenu.targetY - floatingMenu.nextY) * .07;

	//if (window.console && stepY != 0) { console.log("floatingMenu.stepY", Math.abs(stepY)); }

	//if (Math.abs(stepY) < .05)
	if (Math.abs(Math.abs(floatingMenu.nextY) - Math.abs(floatingMenu.shiftY)) < 1) 
	{  
		stepY = floatingMenu.shiftY + floatingMenu.targetY - floatingMenu.nextY;  
	}
	
	if (!resetScrollingToDifferentSection) { resetScrollingToDifferentSection = false; }
	if (!scrollingToDifferentSection) { scrollingToDifferentSection = false; }
	
	if (!resetScrollingToDifferentSection && stepY > 0) {
		resetScrollingToDifferentSection = true;
	}
	
	if (resetScrollingToDifferentSection && stepY == 0) {
		scrollingToDifferentSection = false;
		resetScrollingToDifferentSection = false;
	}
  
	if (Math.abs(stepX) > 0 || Math.abs(stepY) > 0)  
	{  
		floatingMenu.nextX += stepX;  
		floatingMenu.nextY += stepY;  
		floatingMenu.move();  
	}  
  
	setTimeout('floatingMenu.doFloat()', 20);  
};  
  
// addEvent designed by Aaron Moore  
floatingMenu.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']++;  
};  
  

floatingMenu.init = function()  
{  
	floatingMenu.initSecondary();  
	floatingMenu.doFloat();  
};  
  

// Some browsers init scrollbars only after  
// full document load.  
floatingMenu.initSecondary = function()  
{  
	floatingMenu.computeShifts();  
	floatingMenu.nextX = floatingMenu.shiftX + floatingMenu.targetX;  
	floatingMenu.nextY = floatingMenu.shiftY + floatingMenu.targetY;  
	floatingMenu.move();  
}  
  
if (document.layers) {
	floatingMenu.addEvent(window, 'onload', floatingMenu.init);  
}
else  
{  
	floatingMenu.init();  
	floatingMenu.addEvent(window, 'onload', floatingMenu.initSecondary);  
}  



