// 02-05-02 Nav table class added to give blue bkgd while nav image loads
// 27-01-03 doCount() mods to add document.referrer, delete screen.availables
//          and logging detail set by fullLog variable

// global vars
// nav mainmenu links and link text separated with '|' in order of display ...

var fullLog = false; //true to send full browser log details

var mainmenu = new Array();
    mainmenu[0]  = 'index.html|home';
    mainmenu[1]  = 'about.htm|about the CFPS';
    mainmenu[2]  = 'cfpsmainline.htm|CFPS mainline';
    mainmenu[3]  = 'gen.htm|gen';
    mainmenu[4]  = 'sales.htm|sales';
    mainmenu[5]  = 'news.htm|society news';
    mainmenu[6]  = 'contacts.htm|contacts';
    mainmenu[7]  = 'membership.htm|membership';
    mainmenu[8]  = 'whistler.htm|magazine';
    mainmenu[9]  = 'preservation.htm|preserved 40\'s';
    mainmenu[10]  = '40story1.htm|reference';
    mainmenu[11]  = 'links.htm|links';
    mainmenu[12]  = 'photogalleries.htm|photo galleries';

// nav submenu parent, link and link text separated with '|' in order of display ...
// text approx 16 chars max for Netscape
var fullsubmenu = new Array();
    fullsubmenu[0] = '||';
    fullsubmenu[1] = 'about.htm|about40135.htm|40135 (D335)';
    fullsubmenu[2] = 'about.htm|about40145.htm|40145 (D345)';
    fullsubmenu[3] = '40story1.htm|40story1.htm|the 40 story pt1';
    fullsubmenu[4] = '40story1.htm|40story2.htm|the 40 story pt2';
    fullsubmenu[5] = '40story1.htm|40story3.htm|the 40 story pt3';
    fullsubmenu[6] = 'membership.htm|donations.htm|donations';
    fullsubmenu[7] = 'cfpsmainline.htm|cfpsmainline_rt.htm|railtours';
    fullsubmenu[8] = 'cfpsmainline.htm|cfpsmainline_news.htm|mainline news';
    fullsubmenu[9] = 'cfpsmainline.htm|cfpsmainline_archive1.htm|mainline archive 1';
    fullsubmenu[10] = 'cfpsmainline.htm|cfpsmainline_archive2.htm|mainline archive 2';
    fullsubmenu[11] = 'cfpsmainline.htm|cfpsmainline_archive3.htm|mainline archive 3';
    fullsubmenu[12] = 'cfpsmainline.htm|cfpsmainline_archive4.htm|mainline archive 4';
    fullsubmenu[13] = 'cfpsmainline.htm|cfpsmainline_pr.htm|press releases';
    fullsubmenu[14] = 'cfpsmainline.htm|cfpsmainline_prep.htm|preparation work';
    fullsubmenu[15] = 'preservation.htm|40122.htm|D200 / 40122';
    fullsubmenu[16] = 'preservation.htm|40012.htm|D212 / 40012';
    fullsubmenu[17] = 'preservation.htm|40013.htm|D213 / 40013';
    fullsubmenu[18] = 'preservation.htm|40106.htm|D306 / 40106';
    fullsubmenu[19] = 'preservation.htm|40118.htm|D318 / 40118';
    fullsubmenu[20] = 'preservation.htm|about40135.htm|D335 / 40135';
    fullsubmenu[21] = 'preservation.htm|about40145.htm|D345 / 40145';
    fullsubmenu[22] = 'photogalleries.htm|photogallery.htm?0|vintage mainline'; 
    fullsubmenu[23] = 'photogalleries.htm|photogallery.htm?1|vintage railtours';
    fullsubmenu[24] = 'photogalleries.htm|photogallery.htm?2|mainline 2002';    
    fullsubmenu[25] = 'photogalleries.htm|photogallery.htm?3|mainline 2003';    
    fullsubmenu[26] = 'photogalleries.htm|photogallery.htm?5|mainline 2004';    
    fullsubmenu[27] = 'photogalleries.htm|photogallery.htm?7|mainline 2005';    
    fullsubmenu[28] = 'photogalleries.htm|photogallery.htm?4|preservation 1';     
    fullsubmenu[29] = 'photogalleries.htm|photogallery.htm?6|preservation 2';     
    fullsubmenu[30] = 'links.htm|links.htm|main links';                         
    fullsubmenu[31] = 'links.htm|links_40.htm|Class 40 links';                  
    fullsubmenu[32] = 'news.htm|cfpsmainline_news.htm|mainline news'; 
    fullsubmenu[33] = 'news.htm|newsarchive1.htm|news archive 1';     
    fullsubmenu[34] = 'news.htm|newsarchive2.htm|news archive 2';     
    fullsubmenu[35] = 'news.htm|newsarchive3.htm|news archive 3';     
    fullsubmenu[36] = 'news.htm|newsarchive4.htm|news archive 4';     

// set vars for problem Browser versions :-o
// N6.2.1 reports as version 5.0
var warnStr = new String('');
var ver = parseFloat(navigator.appVersion);
var isNav6 = (navigator.appName.indexOf('Netscape')> -1 && ver >= 5.0 && ver < 6.0);
var isNav4 = (navigator.appName.indexOf('Netscape')> -1 && ver >= 4.0 && ver < 5.0);
var sepHeight = (isNav6)? 2 : 3;//N6 needs smaller shim between lines
var isOnline = (window.location.protocol.indexOf('http') > -1);

if (ver < 4.0)
{
    warnStr =  'Your browser is reporting as version '+ver;
    warnStr += '\n\nThis site uses styles and JavaScript supported by \nInternet Explorer version 4 or later, and Netscape version 4 or later.\n\nYou may experience some display problems on this page, sorry.';
    alert(warnStr);
}

// set linknav style for browser - N4 needs heavier weight
var styleStr = new String('.linknav \{ font-family: Arial, Helvetica, sans-serif; font-size: 8pt; color: #FFEE55; text-decoration: none; ');
styleStr += (isNav4) ? ' font-weight: 900\}' :  ' font-weight: 700\}';
window.document.writeln ('<style><!--\n ' +styleStr +'\n--></style>');

// Macromedia rollover functions
function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) {
	x.src=x.oSrc;
	}
}

function MM_findObj(n, d) { //v3.0
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array;
 for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}
////////////////////////////////

// Cache nav images
MM_preloadImages('images/yepointer.gif', 'images/yeblob.gif');


// get current page filename
function getPage()
{
    var page = window.document.location.pathname;

    // trap for default page without filename

    if (page.indexOf(".htm") < 0) page = "index.html";

    else
    {
        // location check must use "\\" for IE local HDD but "/" live
        delChar = (page.indexOf(":\\") > -1) ? "\\" : "/";
        page = page.substring(page.lastIndexOf(delChar)+1);
    }

    return page;
}

////////////////////////////////


////////////////////////////////
// Display menu & submenu table HTML
function navTable()
{
    var sep1, sep2, menuTotal;
    var smIndex = -1;// index of matching submenu item
    var mmIndex = -1;// index of matching mainmenu item
    var page = getPage();
    var delChar= new String("");
    var bgName = new String("");
    var mainmenuName = new String("");
    var submenuName = new String("");
    var tempName = new String("");
    var mainmenuLink = true;
    var submenu = new Array();
    var navLine = new String("");
    var item, i, j = 0;
    var padHeight = 30; // default pixel height to shim 15 menu items


    //check for page match in submenu and get its parent main menu item
    for (item=0; item<fullsubmenu.length; item++)
    {
        sep1 = fullsubmenu[item].indexOf('|');
        sep2 = fullsubmenu[item].lastIndexOf('|');

        submenuName = fullsubmenu[item].substring(sep1 + 1, sep2);

        if (submenuName == page)
        {
            smIndex = item;
            mainmenuName = fullsubmenu[item].substring(0, sep1);

            // check if there's no parent main menu page, just a submenu
            // by checking submenu items for this main menu name matching submenu page name
            mainmenuLink = true;// default: submenu has a main menu page
            for (j=0; j<fullsubmenu.length; j++)
            {
                sep1 = fullsubmenu[j].indexOf('|');
                sep2 = fullsubmenu[j].lastIndexOf('|');
                if (fullsubmenu[j].substring(0, sep1) == mainmenuName
                    && fullsubmenu[j].substring(0, sep1) == fullsubmenu[j].substring(sep1+1, sep2))
                {
                    mainmenuLink = false;
                    break; //j loop
                }
            }

            submenu = buildSubmenu(mainmenuName, submenuName);
            break;
        }
    }

    if (smIndex == -1) // no submenu match so try main menu
    {

        for (item=0; item<mainmenu.length; item++)
        {
            sep1 = mainmenu[item].indexOf('|');
            tempName = mainmenu[item].substring(0, sep1);

            if (tempName == page)
            {
                mmIndex = item;
                mainmenuName = tempName;
                submenu = buildSubmenu (mainmenuName, "");
                break;
            }
        }

    }

    // Now build menu

    // choose table bg image for no. of menu items
    // and derive padding height to ensure no bkgnd image clip or tile
    menuTotal = mainmenu.length + submenu.length

    if (menuTotal > 20)
    {
        bgName = "navbar25";
        padHeight += (25 - menuTotal)*17;
    }
    else    if (menuTotal > 15)
            {
                bgName = "navbar20";
                padHeight += (20 - menuTotal)*17;
            }
            else
            {
                bgName = "navbar15";
                padHeight += (15 - menuTotal)*17;
            }

    with (window.document)
    {
        writeln('<TABLE CLASS="navTable" WIDTH="136" BORDER="0" CELLSPACING="0" CELLPADDING="0" BACKGROUND="images/' +bgName +'.jpg">');
        writeln('<TR VALIGN="TOP"><TD CLASS="linknav"><IMG SRC="images/shim.gif" WIDTH="1" HEIGHT="10"><BR CLEAR="LEFT">');
        writeln('<IMG BORDER="0" SRC="images/shim.gif" WIDTH="6" HEIGHT="5" ALIGN="ABSMIDDLE" HSPACE="3">');
        writeln('Site menus -<IMG SRC="images/shim.gif" WIDTH="1" HEIGHT="1" align="LEFT"><BR CLEAR="LEFT">');

        for (i=0; i<mainmenu.length; i++)
        {
            // separate link HREF from text
            sep1 = mainmenu[i].indexOf('|');

            if ( i == mmIndex)
            // mainmenu match - display main menu item marker and link
            {
                navLine = '<A HREF="' +mainmenu[i].substring(0, sep1) +'" CLASS="linknav">&nbsp;';
                navLine += '<IMG BORDER="0" SRC="images/bupointer.gif" WIDTH="6" HEIGHT="14" ALIGN="ABSMIDDLE" HSPACE="3" ALT="Your current location">';
                navLine += mainmenu[i].substring(sep1 +1) +'&nbsp;</A>\n<IMG SRC="images/shim.gif" WIDTH="1" HEIGHT="' +sepHeight +'" align="LEFT"><BR CLEAR="LEFT">';
                writeln (navLine);
                if (mainmenu[i].substring(0, sep1) == mainmenuName) showSubmenu(submenu);
            }

            else
            {

                if (mainmenu[i].substring(0, sep1) == mainmenuName)
                // there's a submenu here...
                {
                    if (mainmenuLink == false)
                    {
                        // display main menu item as plain text
                        navLine = '&nbsp;<IMG BORDER="0" SRC="images/shim.gif" WIDTH="6" HEIGHT="14" ALIGN="ABSMIDDLE" HSPACE="3">';
                        navLine += mainmenu[i].substring(sep1 +1) +'&nbsp;\n<IMG SRC="images/shim.gif" WIDTH="1" HEIGHT="' +sepHeight +'" align="LEFT"><BR CLEAR="LEFT">';
                        writeln (navLine);
                    }

                    else
                    {
                        // display main menu rollover and link
                        navLine = '<A HREF="' +mainmenu[i].substring(0, sep1) +'" CLASS="linknav" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage(\'leftnav' +i +'\',\'\',\'images/yepointer.gif\',1)">';
                        navLine += '&nbsp;<IMG NAME="leftnav' +i +'" BORDER="0" SRC="images/shim.gif" WIDTH="6" HEIGHT="14" ALIGN="ABSMIDDLE" HSPACE="3">';
                        navLine += mainmenu[i].substring(sep1 +1) +'&nbsp;</A>\n<IMG SRC="images/shim.gif" WIDTH="1" HEIGHT="' +sepHeight +'" align="LEFT"><BR CLEAR="LEFT">';
                        writeln (navLine);
                    }

                    showSubmenu(submenu);
                }

                else
                // normal main menu link, no submenu
                {
                    // display main menu rollover and link
                    navLine = '<A HREF="' +mainmenu[i].substring(0, sep1) +'" CLASS="linknav" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage(\'leftnav' +i +'\',\'\',\'images/yepointer.gif\',1)">';
                    navLine += '&nbsp;<IMG NAME="leftnav' +i +'" BORDER="0" SRC="images/shim.gif" WIDTH="6" HEIGHT="14" ALIGN="ABSMIDDLE" HSPACE="3">';
                    navLine += mainmenu[i].substring(sep1 +1) +'&nbsp;</A>\n<IMG SRC="images/shim.gif" WIDTH="1" HEIGHT="' +sepHeight +'" align="LEFT"><BR CLEAR="LEFT">';
                    writeln (navLine);
                }
            }
        }

        // complete table
        write('<IMG SRC="images/shim.gif" WIDTH="10" HEIGHT="' +padHeight +'">\n</TD></TR></TABLE>');
    } // end with

}

////////////////////////////////


// Build submenu
// parameters: mainName = parent main menu page name
//             subName = submenu page name match for marker
function buildSubmenu(mainName, subName)
{
    var temp = new Array();
    var i, sep1, sep2;
    navLine="";
    var line = 0;
    tempName = "";

    for (i=0; i<fullsubmenu.length; i++)
    {
        sep1 = fullsubmenu[i].indexOf('|');
        sep2 = fullsubmenu[i].lastIndexOf('|');

        tempName = fullsubmenu[i].substring(0, sep1);

        if (tempName == mainName)
        {

            submenuName = fullsubmenu[i].substring(sep1 + 1, sep2);
            if (submenuName == subName) //build marker & link
            {
                navLine = '<A HREF="' +submenuName +'" CLASS="linknav">&nbsp;&nbsp;&nbsp;';
                navLine += '<IMG BORDER="0" SRC="images/bupointer.gif" WIDTH="6" HEIGHT="14" ALIGN="ABSMIDDLE" HSPACE="3" ALT="Your current location">';
                navLine += fullsubmenu[i].substring(sep2 +1) +'</A>\n<IMG SRC="images/shim.gif" WIDTH="1" HEIGHT="3" align="LEFT"><BR CLEAR="LEFT">';
            }
            else // build rollover & link
            {
                navLine = '<A HREF="' +submenuName +'" CLASS="linknav" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage(\'subnav' +i +'\',\'\',\'images/yepointer.gif\',1)">&nbsp;&nbsp;&nbsp;';
                navLine += '<IMG NAME="subnav' +i +'" BORDER="0" SRC="images/yeblob.gif" WIDTH="6" HEIGHT="14" ALIGN="TEXTTOP" HSPACE="3">';
                navLine += fullsubmenu[i].substring(sep2 +1) +'</A>\n<IMG SRC="images/shim.gif" WIDTH="1" HEIGHT="3" align="LEFT"><BR CLEAR="LEFT">';

            }

            temp[line]= navLine; // add to submenu array
            line++; // increment array line count
        }
    }

return temp;
}

////////////////////////////////


// Display submenu
function showSubmenu(submenu)
{
    for (var item=0; item<submenu.length; item++)
    {
        window.document.writeln (submenu[item]);
    }
}
////////////////////////////////


//call counter script in IFRAME or LAYER accordingly
function doCount()
{
    

/* ////// logging suspended


*/

}
////////////////////////////////
