

YAHOO.example.OverlayManager = new YAHOO.widget.OverlayManager();

// Data used to built product category submenus

var g_aYProducts = {

    about: [
    	{ text: "About Our Founder", url: "/genesis/about/joe_carucci/jc.php" },
        { text: "Board of Trustees", url: "/genesis/about/board_of_trustees/bot.php" },
        { text: "Genesis Core Group Members", url: "/genesis/committees/members.php" },
        { text: "Make a Contribution",url: "/paypal/" },
        { text: "Quarterly Newsletter", url: "/genesis/about/recent_accomplishments/accomplishments.php" },
        { text: "Economic and Community Studies", url: "/genesis/about/economic_community_studies/ecs.php" },
/*
        { text: "Regional Blueprint - \"MOHAWK VALLEY MATTERS\"", url: "/genesis/docs/pdf.php?doc=2008MattersJune12" }      
        { text: "Regional Action Plan", url: "/genesis/about/regional_action_plan/rap.php" },
		{ text: "   Phase I", url: "/genesis/docs/pdf.php?doc=Phase1" },
        { text: "   Phase II", url: "/genesis/docs/pdf.php?doc=Phase2" },
        { text: "   Phase III", url: "/genesis/docs/pdf.php?doc=Phase3" },
*/
         { text: "Points of Interest", url: "/genesis/points_of_interest/" },
		 { text: "Brochure", url: "/genesis/docs/pdf.php?doc=2011GenesisBrochure" },
		 { text: "Regional Partners", url: "/genesis/about/regional_partners/rp.php" }
    ],

    committees: [

        { text: "GYP", url: "/gyp.php" },
        { text: "Education", url: "/genesis/committees/education.php" },
        { text: "Technology", url: "/genesis/committees/technology.php" },
        { text: "Economic and Workforce Dev.", url: "/genesis/committees/economic.php" },
        { text: "Community Connections", url: "/genesis/committees/community.php" },
        { text: "Community Events", url: "/genesis/committees/events.php" },
        { text: "Healthcare", url: "/genesis/committees/healthcare.php" },
        { text: "Regional Golf Tournament", url: "/genesis/committees/golftour.php" }

    ]
};

var g_nTimeoutId;


// "mouseover" event handler for the root menu

function onMenuBarMouseOver(p_sType, p_aArguments, p_oMenu) {

    if(g_nTimeoutId) {

        window.clearTimeout(g_nTimeoutId);

    }

}

// "mouseover" event handler for each submenu

function onSubmenuMouseOver(p_sType, p_aArguments, p_oMenu) {

    if(g_nTimeoutId) {

        window.clearTimeout(g_nTimeoutId);

    }

}


// "mouseout" event handler for each submenu

function onSubmenuMouseOut(p_sType, p_aArguments, p_oMenu) {

    function hideMenu() {

        p_oMenu.hide();

    }


    if(g_nTimeoutId) {

        window.clearTimeout(g_nTimeoutId);

    }

    g_nTimeoutId = window.setTimeout(hideMenu, 750);

}


// "mousedown" handler for the document

function onDocumentMouseDown(p_oEvent) {

    YAHOO.example.OverlayManager.hideAll();

}


// "mouseover" handler for each item in the menu bar

function onMenuBarItemMouseOver(p_sType, p_aArguments, p_oMenuItem) {

    var oActiveItem = this.parent.activeItem;


    // Hide any other submenus that might be visible

    if(oActiveItem && oActiveItem != this) {

        this.parent.clearActiveItem();

    }


    // Select and focus the current MenuItem instance

    this.cfg.setProperty("selected", true);
    this.focus();


    // Show the submenu for this instance

    var oSubmenu = this.cfg.getProperty("submenu");

    if(oSubmenu) {

        oSubmenu.show();

    }

};


// "mouseout" handler for each item in the menu bar

function onMenuBarItemMouseOut(p_sType, p_aArguments, p_oMenuItem) {

    this.cfg.setProperty("selected", false);


    var oSubmenu = this.cfg.getProperty("submenu");

    if(oSubmenu) {

        var oEvent = p_aArguments[0],
            oRelatedTarget = YAHOO.util.Event.getRelatedTarget(oEvent);

        if(
            !(
                oRelatedTarget == oSubmenu.element || 
                this._oDom.isAncestor(oSubmenu.element, oRelatedTarget)
            )
        ) {

            oSubmenu.hide();

        }

    }

};




// "load" handler for the window

function onWindowLoad() {

    var oMenuBar = new YAHOO.widget.MenuBar("ymenu");

    var i = oMenuBar.getItemGroups()[0].length - 1,
        oMenuItem,
        oSubmenu,               
        aSubmenuItems,
        nSubmenuItems;


    do {

        oMenuItem = oMenuBar.getItem(i);
        
        aSubmenuItems = g_aYProducts[oMenuItem.element.id];

        if(aSubmenuItems) {
        
            // Create a submenu

            oSubmenu = new YAHOO.widget.Menu(
                            (oMenuItem.element.id + "menu")
                        );

            // Add a "mouseover" event handler to the submenu

            oSubmenu.mouseOverEvent.subscribe(
                    onSubmenuMouseOver, 
                    oSubmenu, 
                    true
                );


            // Add a "mouseout" event handler to the submenu

            oSubmenu.mouseOutEvent.subscribe(
                    onSubmenuMouseOut,
                    oSubmenu, 
                    true
                );


            // Add items to the submenu

            nSubmenuItems = aSubmenuItems.length;

            for(var n=0; n<nSubmenuItems; n++) {

                oSubmenu.addItem(
                    new YAHOO.widget.MenuItem(
                        aSubmenuItems[n].text, 
                        { url: aSubmenuItems[n].url}
                        )
                    );

            }


            // Add the submenu to its parent item in the main menu

            oMenuItem.cfg.setProperty("submenu", oSubmenu);

            YAHOO.example.OverlayManager.register(oSubmenu);
            
        }
    
    }
    while(i--);


    // Render the menubar and corresponding submenus
    
    oMenuBar.render();


    /*
        Add a "mouseover" and "mouseout" event handler each item 
        in the menu bar 
    */               

    var aMenuBarItems = oMenuBar.getItemGroups()[0],
        i = aMenuBarItems.length - 1;

    do {

        aMenuBarItems[i].mouseOverEvent.subscribe(
            onMenuBarItemMouseOver, 
            this
        );

        aMenuBarItems[i].mouseOutEvent.subscribe(
            onMenuBarItemMouseOut, 
            this
        );
    
    }
    while(i--);


    // Add a "mouseover" handler to the menubar

    oMenuBar.mouseOverEvent.subscribe(
            onMenuBarMouseOver, 
            oMenuBar, 
            true
        );


    // Add a "mousedown" handler to the document

    YAHOO.util.Event.addListener(
            document, 
            "mousedown", 
            onDocumentMouseDown
        );

}


// Add a "load" handler for the window

YAHOO.util.Event.addListener(window, "load", onWindowLoad);
