/*
   Author:   Ann Airey
   Date:     May 21, 2010

   Filename: wpsf_popup.js


   Function List:

   addEvent(object, evName, fnName, cap)
      Adds an event hander to object where evName is the name of the event,
      fnName is the function assigned to the event, and cap indicates whether
      event handler occurs during the capture phase (true) or bubbling
      phase (false)

	setUp()
		Creates arrays of the dropdowns for menu items and adds mouseover event

   showDescrip()
      Opens a menu after closing any previously opened one

   closeOldPopUp()
      Closes the active menu

   -------------------------------------------------------------
   Global Variable List:

   activePopUp
      An object variable pointing to the currently active and open PopUp
   
*/

/*  variables used   */

activePopUp = null;

function addEvent(object, evName, fnName, cap) {
   if (object.attachEvent)
       object.attachEvent("on" + evName, fnName);
   else if (object.addEventListener)
       object.addEventListener(evName, fnName, cap);
}

addEvent(window, "load", setUp, false);

function setUp()   {

	/*  set up arrays of dropdown menus and changeable images  */

	var popups = new Array();
	var allElems = document.getElementsByTagName("*");

	/*  put all upper level menu items in an array  */

	for (var i = 0; i < allElems.length; i++)  {
		if (allElems[i].className == "popup" || allElems[i].className == "popup1")
			popups.push(allElems[i]);
	}

	for (var i = 0; i < popups.length; i++)  {

		/*  using object detection, isolate text of initiative title.
			determine length of string, set width so only text triggers popup  */

		var initTitle = popups[i].innerText || popups[i].textContent;
		var stringLength = initTitle.length;
		var aObject = document.getElementById(popups[i].id);
		popups[i].style.offsetWidth = stringLength + "px";

		/* add Events to mouseover for menu items */

		popups[i].onmouseover = showDescrip;
		popups[i].onmouseout = closeOldPopUp;
	}

	/*  if user clicks anywhere else, close any open menu  */

/*  addEvent(document.getElementById("header"), "mouseover", closeOldMenu, false);
	addEvent(document.getElementById("header"), "onclick", closeOldMenu, false);
	addEvent(document.getElementById("content"), "mouseover", closeOldMenu, false);
	addEvent(document.getElementById("content"), "onclick", closeOldMenu, false);

	document.getElementById("header").onmouseover = closeOldMenu;
	document.getElementById("header").onclick = closeOldMenu;
	document.getElementById("announce").onmouseover = closeOldMenu;
	document.getElementById("announce").onclick = closeOldMenu;
	document.getElementById("extras").onmouseover = closeOldMenu;
	document.getElementById("extras").onclick = closeOldMenu;    
	document.getElementById("content").onmouseover = closeOldMenu;
	document.getElementById("content").onclick = closeOldMenu;      */

}


function showDescrip()  {

	// this function moves the pull-down menu from one title to another

	if (activePopUp)  
		closeOldPopUp();

	/*  get this initiative's description  */

	activePopUp = document.getElementById(this.id + "_descr");

	/*  change to unhide  */

	activePopUp.style.display = "block";

}

function closeOldPopUp()  {

	if (activePopUp) {
		activePopUp.style.display = "none";
		activePopUp = null;
	}
}


