var menuItems = new Array;
var submenuItems = new Array;
var m = 0; var sm = 0;


// ************** CARES MENU ITEMS *****************************
   addMainItem("About", "http://cares.missouri.edu/about/Default.aspx");

    addSubmenuItem("Message from the Directors", "http://cares.missouri.edu/about/message.aspx");
    addSubmenuItem("People", "http://cares.missouri.edu/about/people.aspx");
    addSubmenuItem("News", "http://cares.missouri.edu/about/news/default.aspx");
    addSubmenuItem("Facility", "http://cares.missouri.edu/about/facility.aspx");
    addSubmenuItem("Programs", "http://cares.missouri.edu/about/programs.aspx");
    addSubmenuItem("Affiliated Centers", "http://cares.missouri.edu/About/affiliatedcenters.aspx");
    addSubmenuItem("Organization", "http://cares.missouri.edu/about/organization.aspx");
    addSubmenuItem("Links", "http://cares.missouri.edu/about/links/default.aspx");
    addSubmenuItem("Presentations", "http://cares.missouri.edu/about/presentations/default.aspx");
    addSubmenuItem("Location", "http://cares.missouri.edu/about/location.aspx");
    addSubmenuItem("Logos", "http://cares.missouri.edu/about/logo.aspx");

   addMainItem("Projects", "http://cares.missouri.edu/projects/");

    addSubmenuItem("Current Projects", "http://cares.missouri.edu/projects/current/default.aspx");
    addSubmenuItem("Completed Projects", "http://cares.missouri.edu/projects/completed/default.aspx");
    addSubmenuItem("Initiatives", "http://cares.missouri.edu/projects/initiatives/default.aspx");
    addSubmenuItem("Project Web Sites", "http://projects.cares.missouri.edu/");

   addMainItem("Map Room", "http://ims.missouri.edu/moims2008");

    addSubmenuItem("Missouri Interactive Maps", "http://ims.missouri.edu/moims2008/step1AOI.aspx");
    addSubmenuItem("Missouri Watershed Tool", "http://ims.missouri.edu/website/watershedtool/");
    addSubmenuItem("U.S. Interactive Maps", "http://ims2.missouri.edu/step1.AOI/statelist.asp");
    addSubmenuItem("More Internet Mapping Projects", "http://ims.missouri.edu/otherapps.html");
    addSubmenuItem("Animated Maps", "http://maproom.missouri.edu/animation/index.html");
    addSubmenuItem("Assessment Tools", "http://maproom.missouri.edu/assessment.html");
    addSubmenuItem("Atlas Maps", "http://maproom.missouri.edu/atlas.html");

  addMainItem("Community Issues Management", "http://www.cim-network.org");
	
  addMainItem("Contacts", "http://cares.missouri.edu/about/contact.aspx");

//*********************** FUNCTIONS ********************************************

function addMainItem(ma,mb){
	menuItems[m] = new Array(ma,mb);
	m++;
	sm = 0;
	submenuItems[m-1] = new Array;
}

function addSubmenuItem(sma,smb){
	submenuItems[m-1][sm] = new Array(sma,smb);
	sm++;
}

//Write the menu listing
function writeMenu(){

    var htmStr = '<ul id="Menu">';
    for(var i=0; i<menuItems.length; i++){
    	htmStr += '<li><a ';
    	if(submenuItems[i] != null)
    		htmStr += 'class="hasChildren" ';
    	htmStr += 'href="' + menuItems[i][1] + '">' + menuItems[i][0] + '</a>';

    	//Submenu
    	if(submenuItems[i].length > 0){
    		htmStr += '<ul>';
    		for(var j=0; j<submenuItems[i].length; j++){
    			htmStr += '<li><a href="' + submenuItems[i][j][1] + '">' + submenuItems[i][j][0] + '</a></li>';
    		}
    		htmStr += '</ul>';
    	}

    	htmStr += '</li>';
    }

	document.getElementById("MenuContainer").innerHTML = htmStr;
	initMenu();
}

function initMenu()
{
    if ( browser.isDOM1 
    && !( browser.isMac && browser.isIE ) 
    && !( browser.Opera && browser.versionMajor < 7 )
    && !( browser.isIE && browser.versionMajor < 5 ) )
    {
        // get some element
        var menu = document.getElementById('Menu');
        var lis = menu.getElementsByTagName('li');
        
        // change the style of the menu
        menu.className="menu";
        
        // i am searching for ul element in li element
        for ( var i=0; i<lis.length; i++ )
        {            
            // is there a ul element ?
            if ( lis.item(i).getElementsByTagName('ul')[0] )
            {
                // improve keyboard navigation with IE
                if ( browser.isIE )
                {
                    addAnEvent(lis.item(i),'keyup',visible);
                }
                
                // apply the method to DOM compliant browsers
                addAnEvent(lis.item(i),'mouseover',visible);
                addAnEvent(lis.item(i),'mouseout',hidden);
                addAnEvent(lis.item(i),'blur',hidden);
                addAnEvent(lis.item(i),'focus',visible);
            }
        }
    }
}

function addAnEvent( target, eventName, functionName )
{
    // apply the method to IE
    if ( browser.isIE )
    {
        //target.attachEvent( 'on'+eventName, functionName ); // dont work properly with this
        eval('target.on'+eventName+'=functionName');
    }
    // apply the method to DOM compliant browsers
    else
    {
        target.addEventListener( eventName , functionName , true ); // true is important for Opera7
    }
}
    
/* hide the first ul element of the current element */
function hidden()
{
    /* setAttribute dont work correctly with IE */
    this.getElementsByTagName('ul')[0].style.visibility = "hidden";
}

/* show the first ul element of the current element */
function visible()
{
    this.getElementsByTagName('ul')[0].style.visibility = "visible";
}
    
/* used to improve keyboard navigation with IE */
function hiddenUl( ul )
{
    if ( browser.isIE )
    {
        var uls = ul.getElementsByTagName('ul');
        for ( var i=0; i<uls.length; i++ )
        {
            uls.item(i).style.visibility = "hidden";
        }
        ul.style.visibility = "hidden";
    }
} 
    
// the function can be run in the HTML for faster display
window.onload=writeMenu;

