/* $Id: init.js,v 1.3 2003/07/17 17:37:45 cducker Exp $

Description:
	Library of functions for initialization of DHTML menus and their 
	respective event handlers
		
Dependencies:
	pint_common.js
	pint_cleanupinit.js
			
Usage:
	In pint_initcleanup.js
	function init()
		{
		PINT_MenuInit( "TriggerName1", "TargetName1", "MenuName1" );
		PINT_MenuInit( "TriggerName2", "TargetName2", "MenuName2" );
		}

	In referencing HTML document
	<html>
	<head>
	...
	<script src="../../../br/scripts/menus/scripts/pint_menus.js" language="JavaScript" type="text/javascript"></script>		
	...
	</head>
	...
	<!-- ** Just before ending <body> tag -->
	<script src="../../../br/scripts/menus/scripts/menus/HM_Loader.js" language="JavaScript" type="text/javascript"></script>		
	</body>
	</html>
*/	

// PRIVATE DATA STRUCTURES
var PINT_MenuCapableFlag = true;			// assume this browser is menu capable, unless it proves otherwise.
var PINT_MenuTriggers = new Array();
var PINT_MenuTargets = new Array();
var PINT_MenuTargetMenus = new Array();
if ((typeof PINT_MenuTriggers) != 'object') PINT_MenuCapableFlag = false;


// PUBLIC METHODS 
/**
 * PINT_MenuInit()
 * Initializes menu trigger handlers.
 * 
 * @return          True if successfull, false if not.
 *
 */
function PINT_MenuInit()
	{
	if (!(PINT_MenuCapableFlag)) return false;			
	if (PINT_MenuInit.arguments.length < 1 ) return true;        //if no arguments
	if ((PINT_MenuInit.arguments.length % 2) != 1) return false; //must be odd number of arguments

	if( document.getElementById )
		{
		var trigger = document.getElementById( PINT_MenuInit.arguments[0] );

		if( trigger )
			{
			if (!(PINT_MenuTriggers[trigger.id])) PINT_MenuTriggers[trigger.id] = new Array(); 

			var target, targetMenu;
			target     = document.getElementById( PINT_MenuInit.arguments[1] );
			targetMenu = PINT_MenuInit.arguments[2];
			
			PINT_MenuTriggers[trigger.id] = targetMenu;

			trigger.onmouseover = PINT_OnMouseOverHandler;		
			trigger.onmouseout  = PINT_OnMouseOutHandler;
			}
		}
	return true;
	}


// PRIVATE METHODS 
/**
 * PINT_MenuPopUp()
 * Forwards event and which menu to menu pop up method
 * 
 * @return          True if successfull, false if not.
 *
 */
function PINT_MenuPopUp(e)
	{
	if (!PINT_MenuCapableFlag) return false;
	var eventsource = PINT_GetEventSource(e);	
	if (!eventsource) return (PINT_MenuCapableFlag = false); 
	HM_f_PopUp( PINT_MenuTriggers[eventsource.id], e);
	return true;
	}

/**
 * PINT_MenuPopDown()
 * Forwards event and which menu to menu pop down method
 * 
 * @return          True if successfull, false if not.
 *
 */	
function PINT_MenuPopDown(e)
	{
	if (!PINT_MenuCapableFlag) return false;
	var eventsource = PINT_GetEventSource(e);
	if (!eventsource) return (PINT_MenuCapableFlag = false); 
	HM_f_PopDown( PINT_MenuTriggers[eventsource.id] );
	return true;
	}	

// include menu display configuration
document.write("<scr" + "ipt language='JavaScript1.2' src='" + rootDirectory + "/scripts/menus/config.js' type='text/javascript'><\/scr" + "ipt>");	

