// ====== HEADER NAV DATA ======

var headData = new Array();
headData[0] = new Array();
headData[0][0] = "index.html|Home";
headData[0][1] = "index.html|Welcome";
headData[0][2] = "sitemap.html|Site Map";
headData[1] = new Array();
headData[1][0] = "software.html|Software";
headData[1][1] = "se.html|STEW-Q! Search Portal";
headData[1][2] = "java.html|Open Source Java";
headData[1][3] = "meyersbriggs.html|Meyers-Briggs Personality Test";
headData[1][4] = "neuralnetwork.html|Neural Networks";
headData[2] = new Array();
headData[2][0] = "arts.html|The Arts";
headData[2][1] = "artgallery.html|Buddhist Art Gallery";
headData[2][2] = "cave.html|Plato&#146;s &#147;Allegory of the Cave&#148;";
headData[3] = new Array();
headData[3][0] = "psychology.html|Psychology";
headData[3][1] = "mindfulness.html|Mindfulness Meditation Study";
headData[3][2] = "meyersbriggs.html|Meyers-Briggs Personality Test";
headData[3][3] = "neuralnetwork.html|Neural Networks";
headData[4] = new Array();
headData[4][0] = "philosophy.html|Philosophy";
headData[4][1] = "deityyoga.html|Tantric Buddhism";
headData[4][2] = "mmk.html|Mulamadhyamikakarika";
headData[4][3] = "cave.html|Plato&#146;s &#147;Allegory of the Cave&#148;";

// ====== GENERATE EMAIL ME LINK ======

var emailAddress = "&#119;&#101;&#98;&#48;&#54;&#64;&#105;&#104;&#97;&#102;&#101;&#114;&#46;&#99;&#111;&#109;";
var emailSubject = "Your Website";
var emailRollover = "Email Me";

function getEmailLink(body) {
    var emailUrl = "mailto:" + emailAddress + "?Subject=" + emailSubject;
    return "<a href=\"" + emailUrl + "\" onMouseOver=\"self.status = '" + emailRollover + "'; return true;\" onMouseOut=\"self.status = ''; return true;\">" + body + "</a>";
}

function printEmailLink(body) {
    document.write(getEmailLink(body));
}

// ====== HEADER NAV CODE ======

function buildNav1(a, b) {
    var ret = "\r\n&nbsp;&#172;";
    var divId = buildDivId(a, b);
    for (var i = 0; i < headData.length; i++) {
        var cellData = headData[i][0].split("|");
        ret += "\r\n<a id=\"" + buildDivId(i, 0) + "\" class=\"" + ((a == i) ? "thisnavlink" : "navlink") + "\" href=\"" + cellData[0] + "\" onmouseover=\"changeHead(" + i + ", 0);\">" + cellData[1] + "</a>" + ((i < headData.length - 1) ? " |" : "");
    }
    ret += "\r\n";
    return ret;
}

function buildNav2(a, b) {
    var ret = "\r\n&nbsp;&nbsp;&nbsp;&nbsp;&#172;";
    var divId = buildDivId(a, b);
    for (var i = 1; i < headData[a].length; i++) {
        var cellData = headData[a][i].split("|");
        ret += "\r\n<a id=\"" + buildDivId(a, i) + "\" class=\"" + (((b == i) || ((a == 0) && (b == 0) && (i == 1))) ? "thisnavlink" : "navlink") + "\" href=\"" + cellData[0] + "\" onmouseover=\"changeHead(" + a + ", " + i + ");\">" + cellData[1] + "</a>" + ((i < headData[a].length - 1) ? " |" : "");
    }
    ret += "\r\n";
    return ret;
}

function buildDivId(a, b) {
    return "h:" + a + ":" + b;
}

// ====== HEADER ROLLOVER CODE ======

var userAgent = navigator.userAgent.toLowerCase();
var ieFlag = ((userAgent.indexOf('msie') > -1) && (userAgent.indexOf('opera') == -1));

var initArea = new Array(2);
var lastArea = new Array(2);
var headChangedFlag;
var nav1HtmlInit;
var nav2HtmlInit;

function initHead(page) {
    var found = false;
    for (var i = 0; !found && i < headData.length; i++) {
        for (var j = 0; !found && j < headData[i].length; j++) {
            if (headData[i][j].split("|")[0] == page) {
                var a = i;
                var b = j;
                found = true;
            }
        }
    }
    if (!found) {
        alert("Header nav entry not found: " + page);
        var a = 0;
        var b = 0;
    }
    initArea[0] = a;
    initArea[1] = b;
    lastArea[0] = a;
    lastArea[1] = b;
    headChangedFlag = false
    nav1HtmlInit = buildNav1(a, b);
    nav2HtmlInit = buildNav2(a, b);
    document.getElementById("nav1").innerHTML = nav1HtmlInit;
    document.getElementById("nav2").innerHTML = nav2HtmlInit;
    if (ieFlag) {
        document.onmousemove = handleMouseMove;
    }
    else {
        document.captureEvents(Event.MOUSEMOVE);
        document.onmousemove = handleMouseMove;
    }
}

function changeHead(a, b) {
    if (isLastArea(a, b)) {
        return;
    }
    lastArea[0] = a;
    lastArea[1] = b;
    headChangedFlag = true;
    document.getElementById("nav1").innerHTML = buildNav1(a, b);
    document.getElementById("nav2").innerHTML = buildNav2(a, b);
}

function resetHead() {
    lastArea[0] = initArea[0];
    lastArea[1] = initArea[1];
    headChangedFlag = false;
    document.getElementById("nav1").innerHTML = nav1HtmlInit;
    document.getElementById("nav2").innerHTML = nav2HtmlInit;
}

function isLastArea(a, b) {
    return ((lastArea[0] == a) && (lastArea[1] == b));
}

// ====== MOUSE DETECT CODE ======

function handleMouseMove(e) {
    if (headChangedFlag) {
        var inNavFlag;
        if (ieFlag) {
            inNavFlag = (isInNav(event.clientX, event.clientY));
        }
        else {
            inNavFlag = (isInNav(e.pageX, e.pageY));
        }
        if (!inNavFlag) {
            resetHead();
        }
    }
}

function isInNav(x, y) {
    return (isInRegion(x, y, 10, 550, 75, 30));
}

function isInRegion(x, y, top, right, bottom, left) {
    return ((x > left) && (x < right) && (y > top) && (y < bottom));
}

// ====== DEBUG CODE ======
/*
function debug(msg) {
    //<div id="debug" style="color: red; font-weight: bold; position: absolute; left: 0px; top: 75px;"></div>
    if (document.getElementById("debug") != null) {
        var now = new Date();
        document.getElementById("debug").innerHTML = zeroPad(now.getHours(), 2) + ":" + zeroPad(now.getMinutes(), 2) + ":" + zeroPad(now.getSeconds(), 2) + "." + zeroPad(now.getMilliseconds(), 3) + ": " + msg + "<br>" + document.getElementById("debug").innerHTML;
    }
}

function zeroPad(x, length) {
    x = x.toString();
    while (x.length < length) {
        x = "0" + x;
    }
    return x;
}
*/