﻿/// JAVASCRIPT CODE USED IN /UserControls/SiteNavigationTabs.ascx ///

// My Subscription vars
var objTimeoutID = null;
var objShowMenuTimeoutID = null;
var bOverMySubscriptionsDiv = false;
var bOverMySubscriptionsLink = false;

// My Briefcase vars
var objMyBriefcaseTimeoutID = null;
var objShowMyBriefcaseMenuTimeoutID = null;
var bOverMyBriefcaseDiv = false;
var bOverMyBriefcaseLink = false;

// My Briefcase > Admin Menu vars
var objMyBriefcaseAdminMenuTimeoutID = null;
var objShowMyBriefcaseAdminMenuMenuTimeoutID = null;
var bOverMyBriefcaseAdminMenuDiv = false;
var bOverMyBriefcaseAdminMenuLink = false;

// MY SUBSCRIPTIONS DIV METHODS
function showMySubscriptions ()
{
	// Create a 250ms delay before showing the My Subscriptions blowout menu
	if (bOverMySubscriptionsLink == false)
	{
		bOverMySubscriptionsLink = true;
		objShowMenuTimeoutID = self.setTimeout("showMySubscriptions()", 250);        
		return;
	}

	var divMySubs = document.getElementById("divMySubscriptions");

	var iTopOfMySubsDiv = document.getElementById("divPageTitle").offsetTop - 1;
	divMySubs.style.top = iTopOfMySubsDiv + "px";

	self.clearTimeout(objTimeoutID);

	if (divMySubs != null && divMySubs.style.visibility == "hidden") {
		setMySubscriptionsDivHeight();

		ChangeSelectBoxVisibility("hidden");
		SetDivOpacity("divMySubscriptions", 0);
		divMySubs.style.visibility = "visible";
		FadeMenu("divMySubscriptions", true);
	}
}

function setMySubscriptionsDivHeight() {
	var divMySubs = document.getElementById("divMySubscriptions");
	var iDivHeight = divMySubs.offsetHeight;
	var iDivScrollHeight = divMySubs.scrollHeight + 5; // Add 5 so vertical scrollbar doesn't show up

	// Don't allow max height to go below 150 pixels high
	var iMaxHeightAllowed = Math.max(document.body.clientHeight - 100, 150);

	if (iDivHeight > iMaxHeightAllowed || iDivScrollHeight > iMaxHeightAllowed) {
		divMySubs.style.height = iMaxHeightAllowed.toString() + "px";
	}
	
	else if (iDivScrollHeight < iMaxHeightAllowed) {
		divMySubs.style.height = iDivScrollHeight.toString() + "px";
	}
}

function hideMySubscriptions ()
{
	self.clearTimeout(objShowMenuTimeoutID);
	bOverMySubscriptionsLink = false;

	objTimeoutID = self.setTimeout("hideMySubscriptions_Delayed()", 500);
}

function hideMySubscriptions_Delayed ()
{
	var divMySubs = document.getElementById("divMySubscriptions");

	if (!bOverMySubscriptionsDiv)
	{
		if (divMySubs != null)
		{
			ChangeSelectBoxVisibility("visible");
			divMySubs.style.visibility = "hidden";
			divMySubs.style.top = "-1500px";
		}
	}
}

function MySubscriptionsDiv_onMouseOver ()
{
	bOverMySubscriptionsDiv = true;
	self.clearTimeout(objTimeoutID);
}

function MySubscriptionsDiv_onMouseOut ()
{
	bOverMySubscriptionsDiv=false;
	hideMySubscriptions();
}

// MY BRIEFCASE DIV METHODS
function showMyBriefcase ()
{
	// Create a 250ms delay before showing the My Briefcase blowout menu
	if (bOverMyBriefcaseLink == false) {
		bOverMyBriefcaseLink = true;
		objShowMyBriefcaseMenuTimeoutID = self.setTimeout("showMyBriefcase()", 250);        
		return;
	}

	var divMyBriefcase = document.getElementById("divMyBriefcase");

	self.clearTimeout(objMyBriefcaseTimeoutID);

	if (divMyBriefcase != null && divMyBriefcase.style.visibility == "hidden") {
		var iDivHeight = divMyBriefcase.offsetHeight;

		var iMaxHeightAllowed = document.body.clientHeight - 80 - 100;

		if (iDivHeight > iMaxHeightAllowed)
		{
			divMyBriefcase.style.height = iMaxHeightAllowed.toString() + "px";
		}

		ChangeSelectBoxVisibility("hidden");

		SetDivOpacity("divMyBriefcase", 0);
		divMyBriefcase.style.visibility = "visible";
		FadeMenu("divMyBriefcase", true);
	}
}

function hideMyBriefcase ()
{
	self.clearTimeout(objShowMyBriefcaseMenuTimeoutID);
	bOverMyBriefcaseLink = false;

	objMyBriefcaseTimeoutID = self.setTimeout("hideMyBriefcase_Delayed()", 500);
}

function hideMyBriefcase_Delayed ()
	{
	var divMyBriefcase = document.getElementById("divMyBriefcase");

	if (!bOverMyBriefcaseDiv)
	{
		if (divMyBriefcase != null)
		{
			ChangeSelectBoxVisibility("visible");
			divMyBriefcase.style.visibility = "hidden";
		}
	}
}

function MyBriefcaseDiv_onMouseOver ()
{
	bOverMyBriefcaseDiv = true;
	self.clearTimeout(objMyBriefcaseTimeoutID);
}

function MyBriefcaseDiv_onMouseOut ()
{
	bOverMyBriefcaseDiv = false;
	hideMyBriefcase();
	bOverMyBriefcaseAdminMenuDiv = false;
	hideMyBriefcaseAdminMenu();
}

var glb_iStrangeDelayForAdminMenu = 5000;
function hideMyBriefcaseAdminMenu ()
{
	self.clearTimeout(objShowMyBriefcaseAdminMenuMenuTimeoutID);
	bOverMyBriefcaseAdminMenuLink = false;

	objMyBriefcaseAdminMenuTimeoutID = self.setTimeout("hideMyBriefcaseAdminMenu_Delayed()", glb_iStrangeDelayForAdminMenu);
}

function hideMyBriefcaseAdminMenu_Delayed ()
	{
	var divMyBriefcaseAdminMenu = document.getElementById("divMyBriefcaseAdminMenu");

	if (!bOverMyBriefcaseAdminMenuDiv)
	{
		if (divMyBriefcaseAdminMenu != null)
		{
			divMyBriefcaseAdminMenu.style.visibility = "hidden";
		}
	}
}

function MyBriefcaseAdminMenuDiv_onMouseOver ()
{
	bOverMyBriefcaseDiv = true;
	self.clearTimeout(objMyBriefcaseTimeoutID);
	bOverMyBriefcaseAdminMenuDiv = true;
	self.clearTimeout(objMyBriefcaseAdminMenuTimeoutID);
}

function MyBriefcaseAdminMenuDiv_onMouseOut ()
{
	bOverMyBriefcaseDiv = false;
	hideMyBriefcase();
	bOverMyBriefcaseAdminMenuDiv = false;
	hideMyBriefcaseAdminMenu();
}

var glb_iLeft = 0, glb_iTop = 0;
var glb_AdminMenuText = "";
function ajaxLoadAdminMenu(iUserID)
{
	glb_iLeft = event.clientX - 32;
	glb_iTop = event.clientY - 16;
	if (glb_AdminMenuText == "")
	{
		var obj = new ajax.ContentLoader("/Profile/AdministrationMenuAJAX.cfm?npc=1&ncu=" + iUserID, afterLookup_ajaxLoadAdminMenu, handleError_ajaxLoadAdminMenu, "GET");
	}
	else
	{
		// doesn't seem to like timeout -- the mouse is over the link, which confuses it into thinking it's blurred
		afterLookup_ajaxLoadAdminMenu()
	}
}

function afterLookup_ajaxLoadAdminMenu()
{
	if (glb_AdminMenuText == "")
	{
		glb_AdminMenuText = this.req.responseText;
	}
	
	var bCreate = false;
	var objX = document.getElementById("divMyBriefcaseAdminMenu");
	if (objX == null)
	{
		objX = document.createElement("DIV");
		objX.id = "divMyBriefcaseAdminMenu";
		document.body.appendChild(objX);
		bCreate = true;
	}
	objX.style.left = glb_iLeft.toString() + "px";
	objX.style.top = glb_iTop.toString() + "px";
	if (bCreate)
	{
		objX.innerHTML = glb_AdminMenuText;
		objX.style.backgroundColor = "#eeeeee";
		objX.style.position = "absolute";
		objX.style.padding = "16px";
		objX.style.height = document.body.clientHeight - glb_iTop - 40;
		objX.style.overflowY = "auto";
		objX.style.zIndex = 1000;
		objX.style.border = "solid 3px #9d9d9d";
		objX.onmouseover = MyBriefcaseAdminMenuDiv_onMouseOver;
		objX.focus();
		objX.onmouseout = MyBriefcaseAdminMenuDiv_onMouseOut;
		glb_iStrangeDelayForAdminMenu = 500;
	}
	else
	{
		SetDivOpacity("divMyBriefcaseAdminMenu", 0);
		objX.style.visibility = "visible";
		FadeMenu("divMyBriefcaseAdminMenu", true);
	}
}

function handleError_ajaxLoadAdminMenu()
{
}
