// auto clearing of fields on click
function ResetField(FieldObj, DefaultText) {
  if (FieldObj.value == "") 
    FieldObj.value = DefaultText;
}
function ClearField(FieldObj, DefaultText) {
	if (FieldObj.value == DefaultText)
	    FieldObj.value='';	
}

var MenuTimerID = 0;
var MenuNames = Array('', 'bottom_menu', 'bottom_menu_about', 'bottom_menu_contact');

var SelectedMenuNum = 0; // this is set in a page to the menu that should be open when no other menu is
var CurOpenMenuNum = 0; // this is the menu currently visible

var ServicesMenuNum = 1;
var AboutMenuNum = 2;
var ContactMenuNum = 3;

window.onload = HideAllSubmenus; 
window.onunload = function(){}; /* fix so onload will be not ignored on back in FF*/

function ShowSubMenu(Num)
{			
	clearTimeout(MenuTimerID);

	// return if menu already open
	if (Num == CurOpenMenuNum)	
		return;

	// hide other menu if open
	if (CurOpenMenuNum > 0)
	{
		//Debug("in ShowSubMenu("+Num+") calling PerformHideSubMenu("+CurOpenMenuNum+", true)");
		PerformHideSubMenu(CurOpenMenuNum, true);
	}
	
	// show submenu
	Submenu = GetElement(MenuNames[Num]);		
	Submenu.style.display = "block";	
	
	CurOpenMenuNum = Num;
}

// this function closes all menus (except one that should stay open)
// to deal with back button issue with FireFox leaving previous menu open!
// SHOULD ONLY BE CALLED BY window.onload
function HideAllSubmenus()
{
	for (i=1; i<=MenuTimerID.length; i++)
	{
		// don't hide the open menu
		if (i != SelectedMenuNum)
			PerformHideSubMenu(i);
	}
}

function HideSubMenu(Num)
{
	// don't hide the open menu
	if (Num == SelectedMenuNum)
		return;
			
	clearTimeout(MenuTimerID);
	MenuTimerID = setTimeout('PerformHideSubMenu('+Num+')', 750);	
}

function PerformHideSubMenu(Num, HideOpenMenuToo)
{	
	// nothing to do if that submenu numder doesn't actually have a submenu
//	if (MenuTimerID[Num] == null && Num != CurOpenMenuNum)
//		return; 

	clearTimeout(MenuTimerID);

	HideOpenMenuToo = (HideOpenMenuToo == undefined) ? false : HideOpenMenuToo;
//Debug("Inside PerformHideSubMenu("+Num+", "+HideOpenMenuToo+")");

	Submenu = GetElement(MenuNames[Num]);
		
	Submenu.style.display = "none";	
	
	if (CurOpenMenuNum == Num)
	{
		CurOpenMenuNum = 0;

		// if no other menu is now open, display the open menu (if set)
		if (SelectedMenuNum > 0 && ! HideOpenMenuToo)
		{
			ShowSubMenu(SelectedMenuNum, false);
		}
	}
}

function GetElement(ElemId)
{
	if( document.getElementById ) // this is the way the standards work
    Elem = document.getElementById( ElemId );
  else if( document.all ) // this is the way old msie versions work
    Elem = document.all[ElemId];		
	
	return Elem;
}

// Debugging functions
function Debug(_Msg)
{
//return;
        var Debug = document.getElementById('debug_console');
        if (Debug == undefined)
                AddDebugConsole();

        var Debug = document.getElementById('debug_console');

        Time = new Date();
        //_Msg = Time.getMinutes()+Time.getSeconds()+": "+ _Msg;
        _Msg = ": "+ _Msg;

        Debug.innerHTML = _Msg+"<br>"+Debug.innerHTML;
}
function AddDebugConsole()
{
        // add debug div
        var DebugConsole = document.createElement('div');
        DebugConsole.id = "debug_console";
        DebugConsole.style.position = "absolute";
        DebugConsole.style.top = 0;
        DebugConsole.style.left = 0;
        DebugConsole.style.width = "300px";
        DebugConsole.style.height = "600px";

        // add debug window to top left of browser
        document.body.insertBefore(DebugConsole, document.body.firstChild);
}
