
var initialHeight;
var listMenu;

Event.observe(window, 'load', function ()
{

});





function initializeFSMenu()
{
	// Initialize FSMenu
	listMenu = new FSMenu('listMenu', true, 'display', 'block', 'none');
	listMenu.switchDelay = 0;
	listMenu.showDelay = 0;
	listMenu.hideDelay = 0;
	listMenu.cssLitClass = 'highlighted';
	var arrow = null;

	if (document.createElement && document.documentElement)
	{
		arrow = document.createElement('span');
		arrow.appendChild(document.createTextNode(''));
		arrow.className = 'subind';
	}

	// Activate FSMenu
	listMenu.activateMenu("listMenuRoot", arrow);

	// Check FSMenu out of window and repositionate
	page.winW = function()
	{
		with (this) return Math.max(minW, MS?win.document[db].clientWidth:win.innerWidth)
	};

	page.winH = function()
	{
		with (this) return Math.max(minH, MS?win.document[db].clientHeight:win.innerHeight)
	};

	page.scrollX = function()
	{
		with (this) return MS?win.document[db].scrollLeft:win.pageXOffset
	};

	page.scrollY = function()
	{
		with (this) return MS?win.document[db].scrollTop:win.pageYOffset
	};

	function repositionMenus(mN) {
		with (this)
		{
			var menu = this.menus[mN].lyr;

			// Showing before measuring corrects MSIE bug.
			menu.sty.display = 'block';
			// Reset to and/or store original margins.
			if (!menu._fsm_origML) menu._fsm_origML = menu.ref.currentStyle ?  menu.ref.currentStyle.marginLeft : (menu.sty.marginLeft || 'auto');
			if (!menu._fsm_origMT) menu._fsm_origMT = menu.ref.currentStyle ?  menu.ref.currentStyle.marginTop : (menu.sty.marginTop || 'auto');
			//menu.sty.marginLeft = menu._fsm_origML;
			menu.sty.marginTop = menu._fsm_origMT;

			// Calculate absolute position within document.
			var menuX = 0, menuY = 0, menuW = menu.ref.offsetWidth, menuH = menu.ref.offsetHeight, vpL = page.scrollX(), vpR = vpL + page.winW() - 16,  vpT = page.scrollY(), vpB = vpT + page.winH() - 16;
			var tmp = menu.ref;
			while (tmp)
			{
				//menuX += tmp.offsetLeft;
				menuY += tmp.offsetTop;
				tmp = tmp.offsetParent;
			}

			// Compare position to viewport, reposition accordingly.
			var mgL = 0, mgT = 0;
			if (menuX + menuW > vpR) mgL = vpR - menuX - menuW;
			if (menuX + mgL < vpL) mgL = vpL - menuX;
			if (menuY + menuH > vpB) mgT = vpB - menuY - menuH;
			if (menuY + mgT < vpT) mgT = vpT - menuY;

			if (mgL) menu.sty.marginLeft = mgL + 'px';
			if (mgT) menu.sty.marginTop = mgT + 'px';
		}
	};

	// Set this to process menu show events for a given object.
	addEvent(listMenu, 'show', repositionMenus, true);
	addEvent(listMenu, 'show', function() { this.toggleElements(0) }, 1);
	addEvent(listMenu, 'hide', function() { this.toggleElements(1) }, 1);
}