var MainMenu;
var menulevel;
var submenulevel;
var browserType;

function InitMenu() {
  MainMenu = new Array();
  menulevel = -1;
  submenulevel = -1;

//  Examples of Menu Items
//  ----------------------
//  AddItem("main", "Programs", "programs.html");
//    AddItem("menu", "Special Events", "");
//      AddItem("sub", "Baptisms", "baptism.html");

  AddItem("main", "Home", "/index.html");

  AddItem("main", "Staff", "/staff.html");

  AddItem("main", "Calendar", "/calendar.html");

  AddItem("main", "Map / Directions", "/directions.html");

  AddItem("main", "Commissions", "/commissions.html");
	  
	  
	 
	 
	  

  AddItem("main", "Congregations", "/congregations.html");
	  
	AddItem("main", "Mission Communities", "/mclist.html");
	AddItem("menu", "Greater Athens M/C", "/Gr Athens.html");
	   AddItem("menu", "Greater Augusta M/C", "/Gr Augusta MC.html");
      AddItem("menu", "Mountain Area M/C", "/Mountain MC.html");
      AddItem("menu", "North Central M/C", "/No Central MC.html");      
      AddItem("menu", "South Central M/C", "/So Central MC.html"); 
	
	AddItem("main", "Council", "/council.html");
	
  AddItem("main", "Links", "/links.html");

  AddItem("main", "Teams &amp; Committees", "/Ministry teams.html");
  AddItem("menu", "Committee on Ministry", "/ministry.html");
	  
    
     
    
     
   
 AddItem("menu", "Communications", "/CommLinks.html");
 AddItem("menu", "Congregational Dev.", "/congregationaldevelopment.html");
 	 
      
     
	 
      
      
AddItem("menu", "Leadership Development", "/leadershipdevelopment.html");
	  
	  AddItem("sub", "Jubilee Adult Ministries", "/jam.html");
	  
   	  

AddItem("menu", "Preparation for Ministry", "/ministrypreparation.html");
    
AddItem("menu", "Spiritual Formation", "/spiritualformation.html");
AddItem("main", "Minister Directory", "/mindir.html");	  
   AddItem("main", "Resources", "/resources.html");
	  AddItem("menu", "Resource lookup", "/RQM/index.asp");

	AddItem("main", "Other Presby. Groups", "/other groups.html");
	    
  AddItem("main", "Youth Ministry", "/youthministry.html");
  AddItem("main", "Older Adult Min. (JAM)", "/jam.html");	
	AddItem("main", "Children's Ministry", "/childrensministry.html");
	AddItem("main", "College Ministry", "/collegeministry.html");
  DrawMenu();
}

function MainMenuItem(txt, lnk) {
  this.text = txt;
  this.link = lnk;
  this.menu = new Array();
}

function MenuItem(txt, lnk) {
  this.text = txt;
  this.link = lnk;
  this.submenu = new Array();
	this.hidetimer = null;
	this.showtimer = null;
}

function SubMenuItem(txt, lnk) {
  this.text = txt;
  this.link = lnk;
	this.hidetimer = null;
	this.showtimer = null;
}

function AddMainMenuItem(txt, lnk) {
  var which = MainMenu.length;

  MainMenu[which] = new MainMenuItem(txt, lnk);

  return which;
}

function AddMenuItem(lvl, txt, lnk) {
  var which = MainMenu[lvl].menu.length;

  MainMenu[lvl].menu[which] = new MenuItem(txt, lnk);

  return which;
}

function AddSubMenuItem(lvl, sublvl, txt, lnk) {
  var which = MainMenu[lvl].menu[sublvl].submenu.length;

  MainMenu[lvl].menu[sublvl].submenu[which] = new SubMenuItem(txt, lnk);

  return which;
}


function AddItem(type, txt, lnk) {
  if (type == "main") {
    menulevel = AddMainMenuItem(txt, lnk);
    submenulevel = -1;
  }
  else if (type == "menu") {
    if (menulevel < 0) {
      alert("You must add a 'main' menu item first before adding a 'menu' item.");
      return;
    }
    submenulevel = AddMenuItem(menulevel, txt, lnk);
  } else if (type == "sub") {
    if (submenulevel < 0) {
      alert("You must add a 'menu' item before adding a 'sub' menu item.");
      return;
    }
    AddSubMenuItem(menulevel, submenulevel, txt, lnk);
  } else {
    alert("Menu type must be 'main', 'menu', or 'sub'.");
    return;
  }
}

function DrawStructure() {
  document.write("Main Menu Items : " + MainMenu.length + "<br>");

  for (i = 0; i < MainMenu.length; i++) {
    document.write(i + " : " + MainMenu[i].text + ", " + MainMenu[i].link + "<br>");

    for (j = 0; j < MainMenu[i].menu.length; j++) {
      if (MainMenu[i].menu[j].divider)
        document.write(i + " : " + j + " : " + "-----" + "<br>");
      else
        document.write(i + " : " + j + " : " + MainMenu[i].menu[j].text + ", " + MainMenu[i].menu[j].link + "<br>");

      for (k = 0; k < MainMenu[i].menu[j].submenu.length; k++) {
        if (MainMenu[i].menu[j].submenu[k].divider)
          document.write(i + " : " + j + " : " + k + " : " + "-----" + "<br>");
        else
          document.write(i + " : " + j + " : " + k + " : " + MainMenu[i].menu[j].submenu[k].text + ", " + MainMenu[i].menu[j].submenu[k].link + "<br>");
      }
    }
  }
}

function getObject(objectId) {
  // cross-browser function to get an object given its id
  if(document.getElementById && document.getElementById(objectId)) {
    // W3C DOM
    return document.getElementById(objectId);
  } else if (document.all && document.all(objectId)) {
    // MSIE 4 DOM
    return document.all(objectId);
  } else {
    return false;
  }
}

function getStyleObject(objectId) {
  // cross-browser function to get an object's style object given its id
  if(document.getElementById && document.getElementById(objectId)) {
    // W3C DOM
    return document.getElementById(objectId).style;
  } else if (document.all && document.all(objectId)) {
    // MSIE 4 DOM
    return document.all(objectId).style;
  } else if (document.layers && document.layers[objectId]) {
    // NN 4 DOM.. note: this won't find nested layers
    return document.layers[objectId];
  } else {
    return false;
  }
} // getStyleObject

function ShowHideMain(which, showhide) {
	var obj = getStyleObject("menu_" + which);

	if (obj)
	  obj.visibility = showhide;
}

function ShowHideMenu(which, sub, showhide) {
  var obj = getStyleObject("menu_" + which + "_" + sub);

	if (obj)
	  obj.visibility = showhide;
}

function Main_mouseover (i) {
	var objname = "menu_" + i;
	var obj = getObject('menuCell' + i);

	obj.className = "HeaderMenuOn";

  // Show Menu
  if (getStyleObject(objname)) {
	  obj.showtimer = setTimeout("ShowHideMain(" + i + ", 'visible');", 200);
	}
}

function Main_mouseout (i) {
	var objname = "menu_" + i;
  var obj = getObject("menuCell" + i);

	obj.className = "HeaderMenu";

	// Hide Menu
  if (getStyleObject(objname)) {
	  obj.hidetimer = setTimeout("ShowHideMain(" + i + ", 'hidden');", 200);
	}
}

function Menu_mouseover (i, j) {
	var objname = "menu_" + i + "_" + j;
	var obj = getObject("menuCell" + i + '_' + j);

  obj.className = "HeaderMenuOn";

	// Cancel timer for parent
	var parentobj = getObject("menuCell" + i);
	clearTimeout(parentobj.hidetimer);

	// Show Submenu
	if (getStyleObject(objname)) {
	  obj.showtimer = setTimeout("ShowHideMenu(" + i + ", " + j + ", 'visible');", 200);
	}
}

function Menu_mouseout (i, j) {
	var objname = "menu_" + i + "_" + j;
	var obj = getObject("menuCell" + i + '_' + j);

	obj.className = "HeaderMenu";

	// Hide Self (through parent)
	var parentobj = getObject("menuCell" + i);
	parentobj.hidetimer = setTimeout("ShowHideMain(" + i + ", 'hidden');", 200);

	// Hide Sub Menu
	if (getStyleObject(objname))
	  obj.hidetimer = setTimeout("ShowHideMenu(" + i + ", " + j + ", 'hidden');", 200);
}

function SubMenu_mouseover (i, j, k) {
	var obj = getObject("menuCell" + i + '_' + j + '_' + k);

	// Cancel timer on parent (Menu)
	var parentobj = getObject("menuCell" + i + '_' + j);
	clearTimeout(parentobj.hidetimer);

	// Cancel Timer on root (Main)
	var rootobj = getObject("menuCell" + i);
	clearTimeout(rootobj.hidetimer);

  obj.className = "HeaderMenuOn";
}

function SubMenu_mouseout (i, j, k) {
	var obj = getObject("menuCell" + i + '_' + j + '_' + k);

	obj.className = "HeaderMenu";

	// set hide timer for self
	var objmenuname = "menu_" + i + '_' + j;
	if (getStyleObject(objmenuname))
	  getObject("menuCell" + i + '_' + j).hidetimer = setTimeout("ShowHideMenu(" + i + ", " + j + ", 'hidden');", 200);

	// set hide timer for parent
	var parentmenuname = "menu_" + i;
  if (getStyleObject(parentmenuname))
	  getObject("menuCell" + i).hidetimer = setTimeout("ShowHideMain(" + i + ", 'hidden');", 200);
}

function EndEvents(eventObj) {
  eventObj.cancelBubble = true;

  if (eventObj.stopPropagation)
    eventObj.stopPropagation();
}

function DrawMenu() {
  var linkstring = ""

  if (MainMenu.length > 0) {
		document.write('<div style="width: 159px; padding: 0px;">');
    document.write('<table border="0" cellpadding="0" cellspacing="0" width="100%">');
    document.write('  <tr>');
    for (i = 0; i < MainMenu.length; i++) {
			if (MainMenu[i].link == "")
			  linkstring = '';
			else
        linkstring = 'onClick="EndEvents(event); document.location=\'' + MainMenu[i].link + '\'" style="cursor: hand;"';

      document.write('  <td id="menuCell' + i + '" class="HeaderMenu" onMouseOver="Main_mouseover(' + i + ');" onMouseOut="Main_mouseout(' + i + ');" ' + linkstring + ' nowrap>' + MainMenu[i].text + '</td><td style="text-align: right; vertical-align: top;">');

      if (MainMenu[i].menu.length > 0) {
        // draw div id=menu_i
        document.write('<div id="menu_' + i + '" class="menu">');
        document.write('<table border="0" cellpadding="0" cellspacing="0" width="100%">');

        for (j = 0; j < MainMenu[i].menu.length; j++) {
			    if (MainMenu[i].menu[j].link == "")
			      linkstring = '';
			    else
					  linkstring = 'onClick="EndEvents(event); document.location=\'' + MainMenu[i].menu[j].link + '\';" style="cursor: hand;"';

					document.write('  <tr><td id="menuCell' + i + '_' + j + '" class="HeaderMenu" onMouseOver="Menu_mouseover(' + i + ', ' + j + ');" onMouseOut="Menu_mouseout(' + i + ', ' + j + ')" ' + linkstring + ' nowrap>' + MainMenu[i].menu[j].text + '</td><td style="text-align: right; vertical-align: top;">');

          if (MainMenu[i].menu[j].submenu.length > 0) {
            // draw div id=menu_i_j
            document.write('<div id="menu_' + i + '_' + j + '" class="menu">');
            document.write('<table border="0" cellpadding="0" cellspacing="0" width="100%">');
            for (k = 0; k < MainMenu[i].menu[j].submenu.length; k++) {
              document.write('  <tr><td id="menuCell' + i + '_' + j + '_' + k + '" class="HeaderMenu" onMouseOver="SubMenu_mouseover(' + i + ', ' + j + ', ' + k + ')" onMouseOut="SubMenu_mouseout(' + i + ', ' + j + ', ' + k + ')" onClick="EndEvents(event); document.location=\'' + MainMenu[i].menu[j].submenu[k].link + '\';" style="cursor: hand;" nowrap>' + MainMenu[i].menu[j].submenu[k].text + '</td></tr>');
            } // end for k -- draw sub menus
            document.write('</table>');
            document.write('</div>');
          } // end if submenus exist
          document.write('  </td></tr>');
        } // end for j -- draw menus

        document.write('</table>');
        document.write('</div>');
      } // end if menus exist
			document.write('</td></tr>');
			document.write('<tr>');
    } // end for i -- draw Heading Items

    document.write('    </td>');
    document.write('  </tr>');
    document.write('</table>');
    document.write('</div>');
  } // end if Headings exist
}

InitMenu();

