// Popup Window
// James Barberousse

var popUpWindowDelay = null;
var openWindow = null;

function initPopUpWindows()
{
	if (!document.getElementById || !document.getElementsByTagName) return false;
	if (!document.getElementById("utacalendar")) return false;

	var anchorTags = document.getElementById("utacalendar").getElementsByTagName("a");
	var linkObj, windowObj, closeObj;

	for (var i = 0; i < anchorTags.length; i++)
	{
		linkObj = anchorTags[i];
		if (linkObj.className == "popuplinknojs") // linkObj.getAttribte("class", "popuplink") doesn't work in IE
		{
			linkObj.className = "popuplink";

			linkObj.onmouseover = openPopUpWindow;
			linkObj.onmouseout = setDelay;

			windowObj = document.getElementById("popupwindow" + linkObj.id.substring(9, linkObj.id.length));
			windowObj.onmouseover = clearDelay;
			windowObj.onmouseout = setDelay;
		}
	}
}

function openPopUpWindow()
{
	if (openWindow != null)
		closePopUpWindow();

	var linkObj = document.getElementById("popuplink" + this.id.substring(9, this.id.length));
	var windowObj = document.getElementById("popupwindow" + this.id.substring(9, this.id.length));

	windowObj.style.zIndex = "1000";
	windowObj.style.visibility = "visible";
	openWindow = windowObj;
}

function closePopUpWindow()
{
	clearDelay();
	openWindow.style.visibility = "hidden";
	openWindow = null;
}

function setDelay()
{
	popUpWindowDelay = setTimeout("closePopUpWindow();", 250);
}

function clearDelay()
{
	clearTimeout(popUpWindowDelay);
}



// expand_contract.js
// by Daniel Evilsizor
// modified by James Barberousse to use in place images
//
// Summary: perform simple hide/show toggle for elements in an unordered (<ul>) list.
// When a list-item (<li>) is clicked, content hidden in a child <div> tag is then displayed, and
// the expand '+' indicator is swapped for the '-' contract indicator.

function initToggle()
{
	if (!document.getElementById || !document.getElementsByTagName) return false;
	if (!document.getElementById("expert")) return false;

	var topics = document.getElementById("expert").getElementsByTagName("img");
	for (i = 0; i < topics.length; i++)
	{
		topics[i].onclick = toggle; // set toggle event handler
		topics[i].style.cursor = "pointer"; // set mouse cursor to indicate the image is clickable
		topics[i].style.visibility = "visible"; // make the images visible since JavaScript is available
		var div = nextObject(nextObject(topics[i])); // get the div that contains <p> tags with subcontent
		div.style.display = "none"; // set the style here, so we can modify if later with the toggle
	}
}
	
function toggle()
{
	var img = this;
	var div = nextObject(nextObject(img));

	if (div.style.display == "none")
	{
		img.src = "/public-affairs/_images/elements/contract.gif";
		div.style.display = "block";
	}
	else
	{
		img.src = "/public-affairs/_images/elements/expand.gif";
		div.style.display = "none";
	}
}



// Open External Window
// James Barberousse

function initExternalLink()
{
	
	if (!document.getElementsByTagName) return false;

	var links = document.getElementsByTagName("a");
	for (var i = 0; i < links.length; i++)
	{
		if (links[i].className == "newwindow")
		{
			links[i].onclick = openExternalWindow;
		}
	}
}

function openExternalWindow()
{
	var nw = window.open(this.getAttribute("href"), "", "left=200,top=200,width=800,height=600,resizable=yes,scrollbars=yes,menubar=yes,toobar=yes,location=yes,status=yes");
	if (nw)
	{
		nw.focus();
		return false;
	}
	else
	{
		return true;
	}
}



// Panel Switcher
// James Barberousse

function initPanels()
{
	if (!document.getElementsByTagName) return false;

	var anchorTags = document.getElementsByTagName("a");
	var linkObj;

	for (var i=0; i < anchorTags.length; i++)
	{
		linkObj = anchorTags[i];
		if (linkObj.className == "panelselected" || linkObj.className == "panelnotselected") // linkObj.getAttribte("class", "popuplink") doesn't work in IE
		{
			linkObj.onclick = changePanelDisplay;
		}
	}
}

function changePanelDisplay()
{
	// Find current and related panels from the ID of the clicked panel link
	var currentPanel = this.id.substring(9, this.id.length);
	switch (currentPanel)
	{
		case "a" : 
		{
			relatedPanel1 = "b";
			relatedPanel2 = "c";
			break;
		}
		case "b" : 
		{
			relatedPanel1 = "a";
			relatedPanel2 = "c";
			break;
		}
		case "c" : 
		{
			relatedPanel1 = "a";
			relatedPanel2 = "b";
			break;
		}
		case "d" : 
		{
			relatedPanel1 = "e";
			relatedPanel2 = "f";
			break;
		}
		case "e" : 
		{
			relatedPanel1 = "d";
			relatedPanel2 = "f";
			break;
		}
		case "f" : 
		{
			relatedPanel1 = "d";
			relatedPanel2 = "e";
			break;
		}
		case "g" : 
		{
			relatedPanel1 = "h";
			relatedPanel2 = "i";
			break;
		}
		case "h" : 
		{
			relatedPanel1 = "g";
			relatedPanel2 = "i";
			break;
		}
		case "i" : 
		{
			relatedPanel1 = "g";
			relatedPanel2 = "h";
			break;
		}
		case "j" : 
		{
			relatedPanel1 = "k";
			relatedPanel2 = "l";
			break;
		}
		case "k" : 
		{
			relatedPanel1 = "j";
			relatedPanel2 = "l";
			break;
		}
		case "l" : 
		{
			relatedPanel1 = "j";
			relatedPanel2 = "k";
			break;
		}
		case "m" : 
		{
			relatedPanel1 = "n";
			relatedPanel2 = "o";
			break;
		}
		case "n" : 
		{
			relatedPanel1 = "m";
			relatedPanel2 = "o";
			break;
		}
		case "o" : 
		{
			relatedPanel1 = "m";
			relatedPanel2 = "n";
			break;
		}
		case "p" : 
		{
			relatedPanel1 = "q";
			relatedPanel2 = "r";
			break;
		}
		case "q" : 
		{
			relatedPanel1 = "p";
			relatedPanel2 = "r";
			break;
		}
		case "r" : 
		{
			relatedPanel1 = "p";
			relatedPanel2 = "q";
			break;
		}
	}

	var currentLinkObj = document.getElementById("panellink" + currentPanel);
	var relatedLink1Obj = document.getElementById("panellink" + relatedPanel1);
	var relatedLink2Obj = document.getElementById("panellink" + relatedPanel2);

	var currentPanelObj = document.getElementById("panel" + currentPanel);
	var relatedPanel1Obj = document.getElementById("panel" + relatedPanel1);
	var relatedPanel2Obj = document.getElementById("panel" + relatedPanel2);

	if (currentLinkObj.className == "panelnotselected")
	{
		currentLinkObj.className = "panelselected";
		relatedLink1Obj.className = "panelnotselected";
		relatedLink2Obj.className = "panelnotselected";
		currentPanelObj.style.display = "block";
		relatedPanel1Obj.style.display = "none";
		relatedPanel2Obj.style.display = "none";
	}

	currentLinkObj.blur();

	return false;
}



// Miscellaneous functions

function nextObject(obj)
{
	var n = obj;
	do
		n = n.nextSibling;
	while (n && n.nodeType != 1);
	return n;
}
 
function previousObject(obj)
{
	var p = obj;
	do
		p = p.previousSibling;
	while (p && p.nodeType != 1);
	return p;
}



// Load Event Manager
// Simon Willison

function addLoadEvent(func)
{
	var oldonload = window.onload;
	if (typeof window.onload != 'function')
	{
		window.onload = func;
	}
	else
	{
		window.onload = function()
		{
			oldonload();
			func();
		}
	}
}

// Add onload events

addLoadEvent(initPopUpWindows);
addLoadEvent(initToggle);
addLoadEvent(initExternalLink);
addLoadEvent(initPanels);