// Dropdown menus for the BWRC header.

//
// Menus are positioned absolutely.  But we set a special anchor (<a ...>)
// named "menuAnchor", and we can get its position here and use it as the
// top menu position.  That way, the menus can be put wherever we like in
// the HTML content.
//

var DEFAULT_LEFT_MARGIN_MENU_LEFT = 7;
var DEFAULT_LEFT_MARGIN_MENU_TOP = 105;

function findPos(obj) {
    var curleft = curtop = 0;
    if (obj.offsetParent) {
        curleft = obj.offsetLeft;
        curtop = obj.offsetTop;
        while (obj = obj.offsetParent) {
                curleft += obj.offsetLeft;
                curtop += obj.offsetTop;
        }
    }
    return [curleft,curtop];
}

function realizeMenu(menuName, menuItems) {
    var menu = new COOLjsMenu(menuName, menuItems);
}

var MENU_HEADER_STYLE = {
    border: 0,
    shadow: 0,
    color: {
        bgON: "transparent",
        bgOVER: "transparent"
    },
    css: {
        ON: "clsMenuOn",
        OVER: "clsMenuOver"
    }
};

var MENU_HR_STYLE = {
    border: 0,
    shadow: 0,
    color: {
        bgON: "transparent",
        bgOVER: "transparent"
    },
    css: {
        ON: "clsMenuOn",
        OVER: "clsMenuOn"
    }
};

var MENU_ITEM_STYLE = {
    border: 0,
    shadow: 0,
    // backgroundColor: "#666",
    color: {
        bgON: "#666",
        bgOVER: "#666"
    },
    css: {
        ON: "clsItemOn",
        OVER: "clsItemOver"
    }
};

var PROJECTS_ITEM_STYLE = {
    border: 0,
    shadow: 0,
    // backgroundColor: "#006",
    color: {
        bgON: "#006",
        bgOVER: "#006"
    },
    css: {
        ON: "clsProjectsItemOn",
        OVER: "clsProjectsItemOver"
    }
};

// Static size & offsets can be initialized here, but positions
// must be set in realizeMenus(), which is invoked just before the
// closing </BODY> tag.

var leftMarginMenuLeft;
var leftMarginMenuTop;

var homeX;
var homeY;
var homeWidth = 50;

var hr1X;
var hr1Y;
var hr1Width = 115;

var hr2X;
var hr2Y;
var hr2Width = 115;

var aboutX;
var aboutY;
var aboutWidth = 100;
var aboutMenuXOffset = aboutWidth;
var aboutItemWidth = 135;

var researchX;
var researchY;
var researchWidth = 100;
var researchMenuXOffset = researchWidth;
var researchItemWidth = 120;

var retreatsX;
var retreatsY;
var retreatsWidth = 100;
var retreatsMenuXOffset = retreatsWidth;
var retreatsItemWidth = 80;

var peopleX;
var peopleY;
var peopleWidth = 100;
var peopleMenuXOffset = peopleWidth;
var peopleItemWidth = 80;

var visitorInfoX;
var visitorInfoY;
var visitorInfoWidth = 100;

var employmentX;
var employmentY;
var employmentWidth = 100;
var employmentMenuXOffset = employmentWidth;
var employmentItemWidth = 175;

var localX;
var localY;
var localWidth = 100;

var menuHeight = 20;
var menuYOffset = 0;
var dropdownVOffset = 25;
var menuItemHeight = 19;

var HOME_MENU_ITEMS;
var ABOUT_MENU_ITEMS;
var RESEARCH_MENU_ITEMS;
var RETREATS_MENU_ITEMS;
var PEOPLE_MENU_ITEMS;
var EMPLOYMENT_MENU_ITEMS;
var VISITOR_INFO_MENU_ITEMS;
var LOCAL_MENU_ITEMS;

/**
 * This instantiates the menus.  It has to wait until body load time
 * (the <BODY> onload attribute) to be invoked, because menuAnchor has to
 * have its position known.
 */
function setUpMenus() {
    leftMarginMenuLeft = DEFAULT_LEFT_MARGIN_MENU_LEFT;
    leftMarginMenuTop  = DEFAULT_LEFT_MARGIN_MENU_TOP;

    var anchorObj = document.getElementById("menuAnchor");
    var pos = findPos(anchorObj);
    leftMarginMenuLeft = pos[0];
    leftMarginMenuTop  = pos[1];

    homeX = leftMarginMenuLeft;
    homeY = leftMarginMenuTop;

    hr1X = leftMarginMenuLeft;
    hr1Y = homeY + 16;

    aboutX = leftMarginMenuLeft;
    aboutY = homeY + 30;

    researchX = leftMarginMenuLeft;
    researchY = aboutY + 20;;

    retreatsX = leftMarginMenuLeft;
    retreatsY = researchY + 20;

    peopleX = leftMarginMenuLeft;
    peopleY = retreatsY + 20;

    visitorInfoX = leftMarginMenuLeft;
    visitorInfoY = peopleY + 20;

    employmentX = leftMarginMenuLeft;
    employmentY = visitorInfoY + 20;

    hr2X = leftMarginMenuLeft;
    hr2Y = employmentY + 16;

    localX = leftMarginMenuLeft;
    localY = employmentY + 30;

    HOME_MENU_ITEMS = [
        { pos: [homeX,homeY],
          itemoff:[0,0],
          leveloff:[0,0],
          style: MENU_HEADER_STYLE,
          size: [menuHeight, homeWidth]
        },
        { code: "Home",
          url: "/"
        }
    ];

    ABOUT_MENU_ITEMS = [
        { pos: [aboutX,aboutY],
          delay: 100,
          itemoff:[0,0],
          leveloff:[0,0],
          style: MENU_HEADER_STYLE,
          size: [menuHeight, aboutWidth]
        },
        { code:"About BWRC",
          sub:[
            { size:[menuItemHeight, aboutItemWidth ],
              itemoff:[menuItemHeight,0],
              leveloff:[menuYOffset, aboutMenuXOffset],
              style: MENU_ITEM_STYLE
            },
            { code:"Overview",
              url:"/Background/Overview.htm"
            },
            // { code:"Visitor Info",
            //   url:"/Background/Visitor_Info.htm"
            // },
            { code:"Contact us",
              url:"/Background/Contact_Us.htm"
            },
            { code:"Sponsors",
              url:"/sponsors.htm"
            },
            { code:"Partners",
              url:"/partners.htm"
            },
            { code:"Seminars",
              url:"/seminars/"
            },
            { code:"Special Presentations",
              url:"/php/specialpres/listwebpubs.php"
            },
            { code:"Charter",
              url:"/Background/Charter.htm"
            },
            { code:"Facilities",
              url:"/Background/Facilities.htm"
            },
            { code:"History",
              url:"/Background/History.htm"
            },
            { code:"Photo album",
              url:"/photo_album/photo_album.htm"
            }
          ]
        }
    ];

    RESEARCH_MENU_ITEMS = [
        { pos: [researchX,researchY],
          delay: 100,
          itemoff:[0,0],
          leveloff:[0,0],
          style: MENU_HEADER_STYLE,
          size: [menuHeight, researchWidth]
        },
        { code: "Research",
          sub: [
            {size:[menuItemHeight, researchItemWidth],
             itemoff:[menuItemHeight, 0],
             leveloff:[menuYOffset, researchMenuXOffset],
             style: MENU_ITEM_STYLE
            },
            { code: "Projects",
              url: "/projects.htm"
            },
            { code: "Pubs, Papers, etc.",
              url: "/php/pubs/pubs.php"
            },
            { code: "Workshops",
              url:"/php/workshops/listwebpubs.php"
            }
          ]
        }
    ];

    RETREATS_MENU_ITEMS = [
        { pos: [retreatsX,retreatsY],
          delay: 100,
          itemoff:[0,0],
          leveloff:[0,0],
          style: MENU_HEADER_STYLE,
          size: [menuHeight, retreatsWidth]
        },
        { code: "Retreats",
          url: "/retreats/pubs"
        }
    ];

    PEOPLE_MENU_ITEMS = [
        { pos: [peopleX,peopleY],
          delay: 100,
          itemoff:[0,0],
          leveloff:[0,0],
          style: MENU_HEADER_STYLE,
          size: [menuHeight, peopleWidth]
        },
        { code: "People",
          sub: [
            {size:[menuItemHeight, peopleItemWidth],
             itemoff:[menuItemHeight, 0],
             leveloff:[menuYOffset, peopleMenuXOffset],
             style: MENU_ITEM_STYLE
            },
            { code: "All",
              // url: "/People/Database/v4.directory.htm"
              url: "/People/Database/Directory.asp"
            },
            { code: "Faculty",
              url: "/People/Database/Directory.asp?show_status=faculty"
            },
            { code: "Students",
              url: "/People/Database/Directory.asp?show_status=student"
            },
            { code: "Staff",
              url: "/People/Database/Directory.asp?show_status=staff"
            },
            { code: "Alumni",
              url: "/People/Database/Directory.asp?show_status=alumni"
            },
	      //kentang added below 4/19/2010
	    { code: "Awards",
              url: "/php/awards"
            }
          ]
        }
    ];

    LOCAL_MENU_ITEMS = [
        { pos: [localX,localY],
          delay: 100,
          itemoff:[0,0],
          leveloff:[0,0],
          style: MENU_HEADER_STYLE,
          size: [menuHeight, localWidth]
        },
        { code: "Local Web<br>&nbsp<small>(login required)</small>",
          url: "https://" + location.host + "/local/"
        }
    ];

    VISITOR_INFO_MENU_ITEMS = [
        { pos: [visitorInfoX,visitorInfoY],
          itemoff:[0,0],
          leveloff:[0,0],
          style: MENU_HEADER_STYLE,
          size: [menuHeight, visitorInfoWidth]
        },
        { code:"Visitor Info",
          url:"/Background/Visitor_Info.htm"
        }
    ];

    EMPLOYMENT_MENU_ITEMS = [
        { pos: [employmentX,employmentY],
          itemoff:[0,0],
          leveloff:[0,0],
          style: MENU_HEADER_STYLE,
          size: [menuHeight, employmentWidth]
        },
        { code: "Employment",
          sub: [
            {size:[menuItemHeight, employmentItemWidth],
             itemoff:[menuItemHeight, 0],
             leveloff:[menuYOffset, employmentMenuXOffset],
             style: MENU_ITEM_STYLE
            },
            { code: "Employment Opportunities",
              url: "/internship/internship.htm"
            },
            { code: "Student Availability",
              url: "/People/Database/studentAvailability.php"
            }
          ]
        }
    ];

    HR1_MENU_ITEMS = [
        { pos: [hr1X,hr1Y],
          itemoff:[0,0],
          leveloff:[0,0],
          style: MENU_HR_STYLE,
          size: [menuHeight, hr1Width]
        },
        { code: "<hr>" }
    ];

    HR2_MENU_ITEMS = [
        { pos: [hr2X,hr2Y],
          itemoff:[0,0],
          leveloff:[0,0],
          style: MENU_HR_STYLE,
          size: [menuHeight, hr2Width]
        },
        { code: "<hr>" }
    ];

};

function realizeMenus() {
    realizeMenu("HomeMenu",       HOME_MENU_ITEMS);
    realizeMenu("hr1Menu",        HR1_MENU_ITEMS);
    realizeMenu("AboutMenu",      ABOUT_MENU_ITEMS);
    realizeMenu("ResearchMenu",   RESEARCH_MENU_ITEMS);
    realizeMenu("RetreatsMenu",   RETREATS_MENU_ITEMS);
    realizeMenu("PeopleMenu",     PEOPLE_MENU_ITEMS);
    realizeMenu("VisitorInfoMenu", VISITOR_INFO_MENU_ITEMS);
    realizeMenu("EmploymentMenu", EMPLOYMENT_MENU_ITEMS);
    realizeMenu("hr2Menu",        HR2_MENU_ITEMS);
    realizeMenu("LocalMenu",      LOCAL_MENU_ITEMS);
};

function none() {
};

