// The functions 'getMenu', 'cleanUp', 'retainMenu' and 'closeMenu' are used for the Main Navigations expandable submenu's.
var holder = "m1";
var holderMain = "m1Main";
var selected = "0";
var overMenu = false;	//set initial values

function getMenu(mm, sel) {
	selected=[sel];	//set id of (possible) selected nav item 
	
	// hide possible opened sub navigation
	/* Start changed by Efrayim Altuntas */
	// document.getElementById([holder]).style.visibility = "hidden";
	var subMenu = document.getElementById([holder]);	
	subMenu.style.visibility = "hidden";
	// subMenu.style.display = "none";
	closeShim(subMenu);	
	/* End */	
	
	if(selected !=0) {	// set nav item's bgcolor
		document.getElementById([holderMain]).className = "MainMenuItemSelect";
	} else {
		document.getElementById([holderMain]).className = "MainMenuItem";
	}
	holder=[mm];
	holderMain=[mm]+"Main";

	document.getElementById([holderMain]).className = "MainMenuItemActive"; //change main nav item style to retain active bgcolor
	overMenu = true;
	
	// open submenu
	/* Start changed by Efrayim Altuntas */
	// document.getElementById([holder]).style.visibility = "visible";
	var menu = document.getElementById([holder]);	
	menu.style.visibility = "visible";
	// menu.style.display = "block";
	openShim(menu);	
	/* End */
}

function cleanUp() {
	overMenu = false; // allow the closeMenu function to hide current submenu
	setTimeout("closeMenu()", 500); // delay the closeMenu function to execute
}

function retainMenu() {
	overMenu = true; // prevent the closeMenu function from hiding current submenu
	closeMenu();
}

function closeMenu() {
	if(!overMenu)
	{
		// close open submenu
		/* Start changed by Efrayim Altuntas */
		// document.getElementById([holder]).style.visibility = "hidden"; 
		var menu = document.getElementById([holder]);	
		menu.style.visibility = "hidden";
		// menu.style.display = "none";
		closeShim(menu);	
		/* End */
				
		if(selected !=0) {
			document.getElementById([holderMain]).className = "MainMenuItemSelect";
		} else {
			document.getElementById([holderMain]).className = "MainMenuItem";
		}
	}
}

//Closes the shim associated with the menu
function closeShim(menu)
{
    if (menu==null) return;
    var shim = getShim(menu);
    if (shim!=null) shim.style.display = "none";
}
    
//Creates an id for the shim based on the menu id
function getShimId(menu)
{
    if (menu.id==null) return "__shim";
    return "__shim"+menu.id;
}

//Returns the shim for a specific menu
function getShim(menu)
{
    return document.getElementById(getShimId(menu));
}

//Opens a shim, if no shim exists for the menu, one is created
function openShim(menu)
{
    if (menu==null) return;
    var shim = getShim(menu);
    if (shim==null) shim = createMenuShim(menu,getShimId(menu));
    
    //Change menu zIndex so shim can work with it
    menu.style.zIndex = 100;
    
    var width = menu.offsetWidth;
	if (width == 0 && typeof(menu.renderedWidth) != "undefined") {
		width = menu.renderedWidth;
	}
    
	var height = menu.offsetHeight;
	if (height == 0 && typeof(menu.renderedHeight) != "undefined") {
		var menus = getMenuItemCount(menu);
		height = menu.renderedHeight * menus;
	}

    var menuPos = findPos(menu);
    
    shim.style.width = width;
    shim.style.height = height;
    shim.style.top = menuPos.top;
    shim.style.left = menuPos.left;    
    shim.style.zIndex = menu.style.zIndex - 1;
    shim.style.position = "absolute";
    shim.style.display = "block";
}

//Creates a new shim for the menu
function createMenuShim(menu)
{
    if (menu==null) return null;

    var shim = document.createElement("<iframe src='javascript:false;' scrolling='no' frameborder='0' style='position:absolute; top:0px; left:0px; display:none'></iframe>"); 
    shim.name = getShimId(menu);
    shim.id = getShimId(menu);
    //Unremark this line if you need your menus to be transparent for some reason
    shim.style.filter="progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=0)";

    if (menu.offsetParent==null || menu.offsetParent.id=="") 
    {
        window.document.body.appendChild(shim);
    }
    else 
    {
        menu.offsetParent.appendChild(shim); 
    }

    return shim;
}

// function to find the position of the selected element
function findPos(obj) {
	var point = new Object();
	point.left = 0;
	point.top = 0;

	if (obj.offsetParent) 
	{
		while (obj.offsetParent) 
		{
			point.top += obj.offsetTop;
			point.left += obj.offsetLeft;
			obj = obj.offsetParent;
		}
	}
	else 
	{
		if (obj.x)
			point.left += obj.x;

		if (obj.y)
			point.top += obj.y;
	}
	return point;
}


