var bMenuShowing = new Array();
var MenuToClose = new Array();
var bSubMenuShowing = new Array();
var sMenuClicked = null;
var oActiveMenu = null;
var sActiveMenuKey = '';
var iScroll = 0;

var bFollowedLoad = false;
var bFollowedTopics = false;

var bMenuDialogVisible = false; // set to true to force the menu to stay open while true

function ExpandMenu(menuKey, bDynamicPosition, bAbove, bInClipmark, bNested, sNestedKey) {
	var oButton = document.getElementById('aButton_' + menuKey);
	var oMenu = document.getElementById('dvMenu_' + menuKey);
	var lShorten = 0;

	if (!!oMenu && !!GetAttribute(oMenu, 'shorten', '0')) {
		lShorten = parseInt(GetAttribute(oMenu, 'shorten', '0'));
	}

	sMenuClicked = menuKey;

	if (bNested) { 
		oMenu = document.getElementById(sNestedKey);
		KeepMenuOpen(menuKey);
	} else {
		if (!!oActiveMenu) { 
			if (oActiveMenu == oMenu) {
				CollapseMenu(sActiveMenuKey);
				return;
			}
			CollapseMenu(sActiveMenuKey);
		}
		HideScrollbars();
	}

	if (oMenu) {
		//oMenu.style.height = '';
		oMenu.style.display = 'block';
		if (bDynamicPosition && oButton) {
			oMenu.style.left = oButton.offsetLeft + 'px';
			if (bAbove) {
				if (bInClipmark && dvClipmark && !document.all) {
					iScroll = dvClipmark.scrollTop;
				} else if (document.all) {
					// set slight offset for IE
					iScroll = -7;
				}				
				oMenu.style.top = (oButton.offsetTop - oMenu.offsetHeight - iScroll) + 'px';
			} else {
				oMenu.style.top = (oButton.offsetTop + oButton.offsetHeight) + 'px';
			}
		} 
		
		if (bAbove && bInClipmark) {
			if (is_ie) {
				oMenu.style.marginTop = ((oMenu.offsetHeight * -1)) + 'px';
				oMenu.style.marginLeft = '-92px';
			} else {
				oMenu.style.marginTop = ((oMenu.offsetHeight * -1) - 20) + 'px';
			}
		}

		

		if ((menuKey == 'SortMy' || menuKey == 'SortMine') && lShorten == 0) {
			lShorten = 50;
		}
		
		//alert(lShorten);
		
		if (GetAttribute(oMenu, 'fixed', 'none') != 'height' && ((oMenu.offsetTop + oMenu.offsetHeight + lShorten) > document.body.clientHeight || (menuKey == 'RightColl' || menuKey == 'RightClippers' || menuKey == 'CVMyClippersEX' || menuKey == 'MyFavoritesEX'))) {

			if (menuKey == 'RightTags' || menuKey == 'RightColl' || menuKey == 'RightClippers') { 
				var sK = 'dvItems_' + menuKey;
				if (!!document.getElementById(sK)) {
					document.getElementById(sK).style.overflow =  'auto';
					document.getElementById(sK).style.height = (document.body.clientHeight - (oMenu.offsetTop + 116)) + 'px';
				} else {
					oMenu.style.overflow = 'auto';
				}

				oMenu.style.height = (document.body.clientHeight - (oMenu.offsetTop + 84 + lShorten)) + 'px';

			} else {
				oMenu.style.overflow = 'auto';
				oMenu.style.height = (document.body.clientHeight - (oMenu.offsetTop  + 80 + lShorten)) + 'px';
			
			}
		}
	}

	/*if (is_mac && (sMenukey == '' || sMenuKey == '')) {
	}*/
	
	bMenuShowing[menuKey] = true;
	sActiveMenuKey = menuKey;
	oActiveMenu = oMenu;
}

function CollapseMenu(sMenuKey, bNested, sNestedId) {
	var oMenu = document.getElementById('dvMenu_' + sMenuKey);
	bMenuShowing[sMenuKey] = false;
	oActiveMenu = null;
	if (oMenu) {
		oMenu.style.display = 'none';
	}

	if (bNested && !!document.getElementById(sNestedId)) {
		if (sNestedId == 'dvMenu_MyClippers') { 
			HideSubMenu('MyClippers');
			HideSubMenu('CVMyClippersEX');
		} else if (sNestedId == 'dvMenu_MyTags') {
			HideSubMenu('MyTags');
			HideSubMenu('CVMyTags');
		}
	}

	ShowScrollbars();

	if (MenuToClose[sMenuKey]) { 
		clearTimeout(MenuToClose[sMenuKey]);
		MenuToClose[sMenuKey] = null;
	}
	
	if (bInClipcast) {
		MacMenu(sMenuKey);
	}

}

function KeepMenuOpen(menuKey) {
	clearTimeout(MenuToClose[menuKey]);
	MenuToClose[menuKey] = null;
}

function CollapseMenuTimeout(menuKey, bNested, sNestedId) {
	if (menuKey == 'AddToCollection') {
		return;
	}
	if (bMenuDialogVisible) {
		if (bNested) {
			setTimeout('CollapseMenuTimeout(\'' + menuKey + '\', true, \'' + sNestedId + '\')', 500);
		} else {
			setTimeout('CollapseMenuTimeout(\'' + menuKey + '\')', 500);
		}
	} else if (!MenuToClose[menuKey]) { 
		if (bNested) { 
			MenuToClose[menuKey] = setTimeout('CollapseMenu(\'' + menuKey + '\', true, \'' + sNestedId + '\')', 750);
		} else {
			MenuToClose[menuKey] = setTimeout('CollapseMenu(\'' + menuKey + '\')', 750);
		}
	}
}

function HideOpenMenus(bForce) {
	if (sMenuClicked) { 
		var oClicked = document.getElementById('dvMenu_' + sMenuClicked);
		if (oActiveMenu == oClicked && !bForce) { return; }
	}
	if (oActiveMenu) {
		if (oActiveMenu.style.display == 'block') {
			CollapseMenu(sActiveMenuKey);
		}
	}
	return;
}

// for header mouseovers
var oHdMenuOpen = null;
var bHdActive = false;

function StartHdMenu(sMenuKey) {
	bHdActive = true;
	oHdMenuOpen = setTimeout('StartHdMenuGo(\'' + sMenuKey + '\')', 800);
}

function StartHdMenuGo(sMenuKey) {
	if (bMenuShowing[sActiveMenuKey]) {
		CollapseMenu(sActiveMenuKey);
	}

	if (bHdActive) { 
		ExpandMenu(sMenuKey, true, false, false); 
		sMenuClicked = sMenuKey;
	}
}


function HideHdMenu(sMenuKey) {
	bHdActive = false;

	if (sMenuKey == 'SortMy') {
		CollapseMenuTimeout('SortMy', true, 'dvMenu_MyClippers');
		if (!!document.getElementById('spn_MyClippers')) { 
			document.getElementById('spn_MyClippers').innerHTML = 'view my clippers';
		}
		bSubMenuShowing['MyClippers'] = false;
	} else if (sMenuKey == 'SortMine') {
		CollapseMenuTimeout('SortMine', true, 'dvMenu_MyTags');
		if (!!document.getElementById('spn_MyTags')) {
			document.getElementById('spn_MyTags').innerHTML = 'view my topics';
		}
		bSubMenuShowing['MyTags'] = false;
	} else {
		CollapseMenuTimeout(sMenuKey);
	}
}

function ClickHdMenu(sMenuKey) {
	clearTimeout(oHdMenuOpen);
	oHdMenuOpen = null;
	if (bMenuShowing[sMenuKey]) {
		CollapseMenu(sMenuKey);
	} else {
		ExpandMenu(sMenuKey, true, false, false);
		if (bInClipcast) {
			MacMenu(sMenuKey);
		}
	}
}

function OpenSubMenu(sSubKey, sParent) {
	var sNoun = 'clippers';
	if (!sParent) {
		sParent = (sSubKey == 'CVMyClippersEX' ? 'CVMyClippers' : 'SortMy');
	}
	
	if (sSubKey == 'MyTags' || sSubKey == 'CVMyTags') { sNoun = 'topics'; sParent = (sSubKey == 'CVMyTags' ? 'ChooseTopic' : 'SortMine'); }
	if (bSubMenuShowing[sSubKey]) {
		document.getElementById('dvMenu_' + sSubKey).style.display = 'none';
		if (!!document.getElementById('spn_' + sSubKey)) {
			document.getElementById('spn_' + sSubKey).innerHTML = 'view my ' + sNoun;
		}
		bSubMenuShowing[sSubKey] = false;
	} else {
		ExpandMenu(sParent, true, false, false, true, 'dvMenu_' + sSubKey);
		if (!!document.getElementById('spn_' + sSubKey)) {
			document.getElementById('spn_' + sSubKey).innerHTML = 'hide my ' + sNoun;
		}
		bSubMenuShowing[sSubKey] = true;
	}
}

function HideSubMenu(sSubKey) {
	var sNoun = 'clippers';
	if (sSubKey == 'MyTags' || sSubKey == 'CVMyTags') { sNoun = 'topics'; }
	if (!!document.getElementById('dvMenu_' + sSubKey)) {
		document.getElementById('dvMenu_' + sSubKey).style.display = 'none';
		if (!!document.getElementById('spn_' + sSubKey)) {
			document.getElementById('spn_' + sSubKey).innerHTML = 'view my ' + sNoun;
		}
		bSubMenuShowing[sSubKey] = false;
	}
}
