function currentYPosition() {
    if (self.pageYOffset)
        return self.pageYOffset;
    if (document.documentElement && document.documentElement.scrollTop)
        return document.documentElement.scrollTop;
    if (document.body.scrollTop)
        return document.body.scrollTop;
    return 0;
}
function elmYPosition(eID) {
    var elm = document.getElementById(eID);
    var y = elm.offsetTop;
    var node = elm;
    while (node.offsetParent && node.offsetParent != document.body) {
        node = node.offsetParent;
        y += node.offsetTop;
    } return y;
}
function smoothScroll(eID) {
    var startY = currentYPosition();
    var stopY = elmYPosition(eID);
    var distance = stopY > startY ? stopY - startY : startY - stopY;
    if (distance < 100) {
        scrollTo(0, stopY); return;
    }
    var speed = Math.round(distance / 50);
    var step = Math.round(distance / 25);
    var leapY = stopY > startY ? startY + step : startY - step;
    var timer = 0;
    if (stopY > startY) {
        for (var i = startY; i < stopY; i += step) {
            setTimeout("window.scrollTo(0, " + leapY + ")", timer * speed);
            leapY += step; if (leapY > stopY) leapY = stopY; timer++;
        } return;
    }
    for (var i = startY; i > stopY; i -= step) {
        setTimeout("window.scrollTo(0, " + leapY + ")", timer * speed);
        leapY -= step; if (leapY < stopY) leapY = stopY; timer++;
    }
}
function Over(me, theimg) {
    me.src = theimg;
}
function Out(me, theimg) {
    me.src = theimg;
}
function FormText(me) {
    me.value = '';
}
function EnableSearchBox() {
    searchbox.designMode = 'on';
}
function ClearBox(meTxt) {
    meTxt.innerText = '';
    meTxt.focus()
}
function Gosearch() {
    alert(searchbox.innerText)
}

// Search Site

var NS4 = (document.layers);    // Which browser?
var IE4 = (document.all);

var win = window;    // window to search.
var n = 0;

function findInPage(str) {
    searchbox.innerText = '';
    var txt, i, found;

    if (str == "")
        return false;

    // Find next occurance of the given string on the page, wrap around to the
    // start of the page if necessary.

    if (NS4) {

        // Look for match starting at the current point. If not found, rewind
        // back to the first match.

        if (!win.find(str))
            while (win.find(str, false, true))
            n++;
        else
            n++;

        // If not found in either direction, give message.

        if (n == 0)
            searchbox.innerHTML = '<span class=nomatch>No match</span>'
    }

    if (IE4) {
        txt = win.document.body.createTextRange();

        // Find the nth match from the top of the page.

        for (i = 0; i <= n && (found = txt.findText(str)) != false; i++) {
            txt.moveStart("character", 1);
            txt.moveEnd("textedit");
        }

        // If found, mark it and scroll it into view.

        if (found) {
            txt.moveStart("character", -1);
            txt.findText(str);
            txt.select();
            txt.scrollIntoView();
            n++;
        }

        // Otherwise, start over at the top of the page and find first match.

        else {
            if (n > 0) {
                n = 0;
                findInPage(str);
            }

            // Not found anywhere, give message.

            else
                searchbox.innerHTML = '<span class=nomatch>No match</span>'
        }
    }

    return false;
}
	  