
/*
*	File: js/navDropdownMenuGenerator.js
*	Top nav dropdown menu content generator
*	Issue/Request #17447 - New Top Nav Test including Personal Loan
*	Author: jhunvanich
*	Date: 06.07.2005
*/

/************************************
INSERTS "MORE CATAGORIES" TO NAVBAR ARRAY
************************************/
function addMoreCatItem() {
    var moreCatItem = [["/misc/sitemap/index.jsp", "catagories", "Catagories", "109", "15", [
			["", "", ""]
		]
	]];

    // Append "More Catagories" to the end of the array
    navBar.tabsArray = navBar.tabsArray.concat(moreCatItem);
}


/************************************
INSERTS DEBT PERSONAL LOANS SUBMENU TO NAVBAR ARRAY
************************************/
function addDebtPersonalLoans() {
    var debtPersonalLoans = [["/dpl/index.jsp?trackingId=HOME_RD_PAGE~top_nav~1850~1336",
        "Personal Loan", "dpl"]];

    // Insert "Debt Personal Loans" to the end of the sub array
    navBar.tabsArray[2][5] =
        navBar.tabsArray[2][5].concat(debtPersonalLoans);
}


/************************************
INSERTS AUTO LOANS SUBMENU TO NAVBAR ARRAY
************************************/
function addAutoLoans() {
    var autoLoans = [["/lau/index.jsp?trackingId=HOME_RD_PAGE~side_nav~1850~1336",
        "Automobile Loan", "lau"]];

    // Insert "Auto Loans" to the end of the sub array
    navBar.tabsArray[2][5] =
        navBar.tabsArray[2][5].concat(autoLoans);
}


/************************************
RESORTS LOANS SUBMENU
************************************/
function getSortPosition(i) {
    switch(i) {
        case(0): return 0;
        case(1): return 1;
        case(2): return 2;
        case(3): return 3;
        case(4): return 4;
        case(5): return 5;
        case(6): return 6;
    }
}


/************************************
CACHE ON AND OFF PARENT MENU IMAGES
************************************/
if(document.images) {
    var imagesOff = new Object(); // initiate imageOff array
    var imagesOn = new Object(); // initiate imageOn array
}

function cacheImages() {
    if(document.images) {
        var parentMenuName = "";
        var imgWidth = 0;
        var imgHeight = 0;
        for(var i=0; i < navBar.tabsArray.length; i++){
            parentMenuName = navBar.tabsArray[i][1];

            /*Set dimensions only if they are valid numbers*/
            imgWidth = isNaN(navBar.tabsArray[i][3]) ? 30 : parseInt(navBar.tabsArray[i][3]);
            imgHeight = isNaN(navBar.tabsArray[i][4]) ? 12 : parseInt(navBar.tabsArray[i][4]);

            /*Create image object place holders*/
            imagesOff["img_" + parentMenuName] = new Image(imgWidth,imgHeight);
            imagesOn["img_" + parentMenuName] = new Image(imgWidth,imgHeight);

            /*Cache images*/
            imagesOff["img_" + parentMenuName].src = navBar.resourcePath + "/images/topnav/17204/" +parentMenuName + "_off.gif";
            imagesOn["img_" + parentMenuName].src = navBar.resourcePath + "/images/topnav/17204/" +parentMenuName + "_on.gif";
        }// end for
    } // end if
}// end function


/*Overrides non-menu images*/
function overrideNavBarObjects() {
    // set contact us image
    navBar.contactusImageSrc1 = navBar.resourcePath + "/images/topnav/17204/icon_phone.gif";
    navBar.contactusImageWidth1=15;
    navBar.contactusImageHeight1=13;
    navBar.contactusImageSrc2 = navBar.resourcePath ;
    navBar.contactusImageWidth2=60;
    navBar.contactusImageHeight2=10;
    navBar.contactusImageLink = "/misc/company/com_general_0.jsp?content=contact_0";
    navBar.contactusImageTitle="Contact Us";
}


/************************************
OUTPUTS TOPNAV
************************************/
function drawDropDownTopNav(){
    // Initiate MainMenuObject and SubMenuObjects
    var mmObj = [];
    var smObj = [];

    //Draw the Main-Menu Container
    mmObj[mmObj.length] = '<div class="topnavigationcontainer" id="topnavigationcontainer"><center>';
    mmObj[mmObj.length] = '<table class="topmaintable" id="topmaintable" cellpadding="0" cellspacing="0">';
        /*1st row - Logo, Tagline, and Contact us*/
        mmObj[mmObj.length] = '<tr><td>';
        mmObj[mmObj.length] = '<table class="toplogotable" cellpadding="0" cellspacing="0">';
        mmObj[mmObj.length] = '<tr>';
        mmObj[mmObj.length] = '<td class="lmblogo"><a href="'+navBar.leftLogoLink+'">'
                                                +'<img src="'+navBar.leftLogoSrc+'" width='+navBar.leftLogoWidth+' height='+navBar.leftLogoHeight+'>'
                                                +'</a></td>';
        mmObj[mmObj.length] = '<td class="lmbtagline"><img src="'+navBar.topTaglineSrc+'" width='+navBar.topTaglineWidth+' height='+navBar.topTaglineHeight+'></td>';

        mmObj[mmObj.length] = '</tr>';
        mmObj[mmObj.length] = '</table>';
        mmObj[mmObj.length] = '</tr></td>';

        /*2nd row - Main menu verticals*/
        mmObj[mmObj.length] = '<tr><td>';
        mmObj[mmObj.length] = '<table class="menucontainertable" cellpadding="0" cellspacing="0">';
        mmObj[mmObj.length] = '<tr>';

        /*Loop through main menu items*/
        var parentMenuName = "";
        var parentMenuLinkUrl = "";
        var parentMenuImgSrc="";
        var imgWidth = 0;
        var imgMode = "on";
        for(var i=0; i < navBar.tabsArray.length; i++){
            parentMenuName = navBar.tabsArray[i][1];
            parentMenuLinkUrl = navBar.tabsArray[i][0];

            /*Set dimensions only if they are valid numbers.  14 is added to account for the 7px side borders*/
            imgWidth = isNaN(navBar.tabsArray[i][3]) ? 30 : parseInt(navBar.tabsArray[i][3]) + 14;

            if(parentMenuName == navBar.activeTab)
                imgMode = "on";
            else
                imgMode = "off";

            parentMenuImgSrc = navBar.resourcePath + "/images/topnav/17204/" +parentMenuName + "_"+imgMode+".gif";
            mmObj[mmObj.length] = '<td class="m'+parentMenuName+'">'
                                                    +'<div class="menucontainer" style="width: '+imgWidth+'px;">'
                                                    +'<a href="'+parentMenuLinkUrl+'">'
                                                    +'<img id="img_'+parentMenuName+'" name="img_'+parentMenuName+'" src="'+parentMenuImgSrc+'" ';
            /*Do not set action handlers for Catagories*/
            if(parentMenuName != "catagories")
                mmObj[mmObj.length] = 'onmouseover="return handleParentMenuToggle(event, this, \'on\')" '
                                                        +'onmouseout="return handleParentMenuToggle(event, this, \'off\')">';
            else
                mmObj[mmObj.length] = '>';

            mmObj[mmObj.length] = '</a></div></td>';
        }// end for

        mmObj[mmObj.length] = '</tr>';
        mmObj[mmObj.length] = '</table>';
        mmObj[mmObj.length] = '</tr></td>';
        mmObj[mmObj.length] = '</table>';
        mmObj[mmObj.length] = '</center></div>';

    //Draw the sub-menu DIV containers
    var subMenuId = "";
    var subMenuLabel = "";
    var subMenuLinkUrl = "";

    /*Do not include "More Catagories", which is the last item in the tabsArray*/
    for(var i=0; i < navBar.tabsArray.length - 1; i++){
        parentMenuName = navBar.tabsArray[i][1];
        smObj[smObj.length] = '<div class="sm_'+parentMenuName+'" id="sm_'+parentMenuName+'" name="sm_'+parentMenuName+'" '
                                            +'onmouseover="return handleSubMenuItemHLToggle(event, this, \'on\')" '
                                            +'onmouseout="return handleSubMenuItemHLToggle(event, this, \'off\')">';
        //draw submenu items
        var sortPosition = 0;
        for(var j=0; j < navBar.tabsArray[i][5].length; j++) {

            //this sorts the loans submenu according to business rules
            sortPosition = (i == 2) ? getSortPosition(j) : j;

            subMenuId = navBar.tabsArray[i][5][sortPosition][2];
            subMenuLabel = navBar.tabsArray[i][5][sortPosition][1];
            subMenuLinkUrl = navBar.tabsArray[i][5][sortPosition][0];

            smObj[smObj.length] = '<a class="smlink" id="'+subMenuId+'" name="'+subMenuId+'" href="'+subMenuLinkUrl+'">'+subMenuLabel+'</a>';
            /*Do not place a div separator on the last submenu item*/
            if(j != (navBar.tabsArray[i][5].length - 1))
                smObj[smObj.length] = '<div></div>';
        } //end inner for

        smObj[smObj.length] = '</div>';
    }//end outter for

    // Draw entire top nav
    for(var i=0; i < mmObj.length; i++)
        document.write(mmObj[i]);

    // Draw sub menus
    for(var i=0; i < smObj.length; i++)
        document.write(smObj[i]);

}// end function: drawDropDownTopNav()


/************************************
ENABLE ACTIVE MENU
************************************/
var activeParentMenuElement =  undefined;
/*Styles on the active main menu item*/
function enableActiveMenu() {
    if(navBar.activeTab.length != 0)
        activeParentMenuElement = document.getElementById("img_"+navBar.activeTab);
    if(activeParentMenuElement != undefined)
        toggleParentMenuStyle("on", activeParentMenuElement);
}

/************************************
INITIALIZES TOPNAV
************************************/
function initDropDownTopNav() {
    //add More Cataories to navBar array
    addMoreCatItem();

    //add Debt Personal Loans Menu Subitem
    //addDebtPersonalLoans();

    // add Auto Loans Menu Subitem
    //addAutoLoans();

    // cache toggled images
    cacheImages();

    // Override navbar objects
    overrideNavBarObjects();

    // DRAW TOP NAV
    drawDropDownTopNav();

    // enable active menu item
    enableActiveMenu();
}








