﻿// JScript File

//reloads the window if Nav4 resized
function MM_reloadPage(init) {  
    if (init==true) with (navigator) {
        if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
            document.MM_pgW=innerWidth; 
            document.MM_pgH=innerHeight; 
            onresize=MM_reloadPage; 
        }
    } else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) {
        location.reload();
    }
}
        
MM_reloadPage(true);

//v3.0
function MM_preloadImages() { 
    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];
            }
        }
    }
}

//v4.01
function MM_findObj(n, d) { 
    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);
    }
    if (!x && d.getElementById) {
        x=d.getElementById(n);
    } 
    return x;
}

//v6.0
function MM_nbGroup(event, grpName) { 
    var i,img,nbArr,args=MM_nbGroup.arguments;
    if (event == "init" && args.length > 2) {
        if ((img = MM_findObj(args[2])) != null && !img.MM_init) {
            img.MM_init = true; 
            img.MM_up = args[3]; 
            img.MM_dn = img.src;
            if ((nbArr = document[grpName]) == null) {
                nbArr = document[grpName] = new Array();
            }
            nbArr[nbArr.length] = img;
            for (i=4; i < args.length-1; i+=2) {
                if ((img = MM_findObj(args[i])) != null) {
                    if (!img.MM_up) {
                        img.MM_up = img.src;
                    }
                    img.src = img.MM_dn = args[i+1];
                    nbArr[nbArr.length] = img;
                } 
            }
        }
    } else if (event == "over") {
        document.MM_nbOver = nbArr = new Array();
        for (i=1; i < args.length-1; i+=3) {
            if ((img = MM_findObj(args[i])) != null) {
                if (!img.MM_up) {
                    img.MM_up = img.src;
                }
                img.src = (img.MM_dn && args[i+2]) ? args[i+2] : 
                    ((args[i+1])? args[i+1] : img.MM_up);
                nbArr[nbArr.length] = img;
            }
        }
    } else if (event == "out" ) {
        for (i=0; i < document.MM_nbOver.length; i++) {
            img = document.MM_nbOver[i]; img.src = (img.MM_dn) ? img.MM_dn : 
                img.MM_up; 
        }
    } else if (event == "down") {
        nbArr = document[grpName];
        if (nbArr) {
            for (i=0; i < nbArr.length; i++) { 
                img=nbArr[i]; 
                img.src = img.MM_up; 
                img.MM_dn = 0; 
            }
        }
        document[grpName] = nbArr = new Array();
        for (i=2; i < args.length-1; i+=2) {
            if ((img = MM_findObj(args[i])) != null) {
                if (!img.MM_up) {
                    img.MM_up = img.src;
                }
                img.src = img.MM_dn = (args[i+1])? args[i+1] : img.MM_up;
                nbArr[nbArr.length] = img;
            } 
        }
    }
}

//v6.0
function MM_showHideLayers() { 
    var i,p,v,obj,args=MM_showHideLayers.arguments;
    for (i=0; i<(args.length-2); i+=3) {
        if ((obj=MM_findObj(args[i]))!=null) { 
            v=args[i+2];
            if (obj.style) { 
                obj=obj.style; 
                v=(v=='show')?'visible':(v=='hide')?'hidden':v; 
            }
            obj.visibility=v; 
        }
    }
}

/* set up variables used to init clock in BODY's onLoad handler;
   should be done as early as possible */
var clockLocalStartTime = new Date();

/* stub functions for older browsers;
   will be overridden by next JavaScript1.2 block */
function clockInit() {
}

function simpleFindObj(name, inLayer) {
	return document[name] || (document.all && document.all[name])
		|| (document.getElementById && document.getElementById(name))
		|| (document.layers && inLayer && document.layers[inLayer].document[name]);
}

var clockIncrementMillis = 1000;
var localTime;
var clockOffset;
var clockExpirationLocal;
var clockShowsSeconds = true;
var clockTimerID = null;

function clockInit(localDateObject, serverDateObject) {
    var origRemoteClock = parseInt(clockGetCookieData("remoteClock"));
    var origLocalClock = parseInt(clockGetCookieData("localClock"));
    var newRemoteClock = serverDateObject.getTime();
    // May be stale (WinIE); will check against cookie later
    // Can't use the millisec. ctor here because of client inconsistencies.
    var newLocalClock = localDateObject.getTime();
    var maxClockAge = 60 * 60 * 1000;   // get new time from server every 1hr

    if (newRemoteClock != origRemoteClock) {
        // new clocks are up-to-date (newer than any cookies)
        document.cookie = "remoteClock=" + newRemoteClock;
        document.cookie = "localClock=" + newLocalClock;
        clockOffset = newRemoteClock - newLocalClock;
        clockExpirationLocal = newLocalClock + maxClockAge;
        localTime = newLocalClock;  // to keep clockUpdate() happy
    }
    else if (origLocalClock != origLocalClock) {
        // error; localClock cookie is invalid (parsed as NaN)
        clockOffset = null;
        clockExpirationLocal = null;
    }
    else {
        // fall back to clocks in cookies
        clockOffset = origRemoteClock - origLocalClock;
        clockExpirationLocal = origLocalClock + maxClockAge;
        localTime = origLocalClock;
        // so clockUpdate() will reload if newLocalClock
        // is earlier (clock was reset)
    }
    /* Reload page at server midnight to display the new date,
       by expiring the clock then */
    var nextDayLocal = (new Date(serverDateObject.getFullYear(),
            serverDateObject.getMonth(),
            serverDateObject.getDate() + 1)).getTime() - clockOffset;
    if (nextDayLocal < clockExpirationLocal) {
        clockExpirationLocal = nextDayLocal;
    }
}

function clockOnLoad() {
    clockUpdate();
}

function clockOnUnload() {
    clockClearTimeout();
}

function clockClearTimeout() {
    if (clockTimerID) {
        clearTimeout(clockTimerID);
        clockTimerID = null;
    }
}

function clockTimeString(inHours, inMinutes, inSeconds) {
    return inHours == null ? "-:--" : ((inHours == 0
                   ? "12" : (inHours <= 12 ? inHours : inHours - 12))
                + (inMinutes < 10 ? ":0" : ":") + inMinutes
                + (clockShowsSeconds
                   ? ((inSeconds < 10 ? ":0" : ":") + inSeconds) : "")
                + (inHours < 12 ? " AM" : " PM"));
}

// APS 6/29/00
function clockWriteToDiv(divName, newValue)  {
    var divObject = simpleFindObj(divName);
    newValue = '<p>' + newValue + '<' + '/p>';
    if (divObject && divObject.innerHTML) 
	{
        divObject.innerHTML = newValue;
    }
    else if (divObject && divObject.document) 
	{
        divObject.document.writeln(newValue);
        divObject.document.close();
    }
    // else divObject wasn't found; it's only a clock, so don't bother complaining
}

function clockGetCookieData(label) {
    var c = document.cookie;
    if (c) {
        var labelLen = label.length, cEnd = c.length;
        while (cEnd > 0) {
            var cStart = c.lastIndexOf(';',cEnd-1) + 1;
            while (cStart < cEnd && c.charAt(cStart)==" ") cStart++;
            if (cStart + labelLen <= cEnd && c.substr(cStart,labelLen) == label) {
                if (cStart + labelLen == cEnd) {                
                    return ""; // empty cookie value, no "="
                }
                else if (c.charAt(cStart+labelLen) == "=") {
                    // has "=" after label
                    return unescape(c.substring(cStart + labelLen + 1,cEnd));
                }
            }
            cEnd = cStart - 1;  // skip semicolon
        }
    }
    return null;
}

function clockUpdate() {
    var lastLocalTime = localTime;
    localTime = (new Date()).getTime();
    
    if (clockOffset == null) {
        clockDisplayTime(null, null, null);
    }
    else if (localTime < lastLocalTime || clockExpirationLocal < localTime) {
        document.cookie = 'remoteClock=-';
        document.cookie = 'localClock=-';
        location.reload();      // will refresh time values in cookies
    }
    else {
        // Compute what time would be on server 
        var serverTime = new Date(localTime + clockOffset);
        clockDisplayTime(serverTime.getHours(), serverTime.getMinutes(),
            serverTime.getSeconds());
        
        // Reschedule this func to run on next even clockIncrementMillis boundary
        clockTimerID = setTimeout("clockUpdate()",
            clockIncrementMillis - (serverTime.getTime() % clockIncrementMillis));
    }
}