
// ALPHA_NUMERIC_DIGITS.length = 34
var ALPHA_NUMERIC_DIGITS = ["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","J","K","L","M","N","P","Q","R","S","T","U","V","W","X","Y","Z"];

function binaryToDecimal(binaryNum)
{
    var dec = 0;
    for (var i = binaryNum.length - 1; i >= 0; i--) {
        if (binaryNum.charAt(i) == "1") dec += (Math.pow(2, binaryNum.length - i - 1) * 10);
    }
    return Math.floor(dec / 10);
}

function decimalToBinary(decimalNum, numDigits)
{
    var dec = decimalNum;
    var len = Math.ceil(Math.LOG2E * Math.log(dec));
    if (numDigits != null && numDigits > len) len = numDigits;
    var val = new Array(len);
    for (var i = 0; i < val.length; i++) val[i] = "0";
    
    for (var i = val.length-1; dec > 0; i--) {
        if (dec % 2 > 0) val[i] = "1";
        dec = Math.floor(dec / 2);
    }
    
    return val.join("");
}

function decimalToAlphaNumeric(decimalNum)
{
    var hex = "";
    var cur = (typeof decimalNum == "string") ? parseInt(decimalNum) : decimalNum;
    while (cur > ALPHA_NUMERIC_DIGITS.length) {
        hex = ALPHA_NUMERIC_DIGITS[cur % ALPHA_NUMERIC_DIGITS.length] + hex;
        cur = Math.floor(cur / ALPHA_NUMERIC_DIGITS.length);
    }
    return ALPHA_NUMERIC_DIGITS[cur] + hex;
}

function binaryToAlphaNumeric(binaryNum, numDigits)
{
    var val = decimalToAlphaNumeric(binaryToDecimal(binaryNum));
    if (val.length >= numDigits) return val;
    for (var i = val.length; i < numDigits; i++) val = "0" + val;
    return val;
}

function alphaNumericToDecimal(alphaNum)
{
    var dec = 0;
    for (var i = alphaNum.length - 1; i >= 0; i--) {
        var x = 0;
        for (var j = 0; j < ALPHA_NUMERIC_DIGITS.length; j++) {
            if (ALPHA_NUMERIC_DIGITS[j] == alphaNum.charAt(i)) {
                x = j;
                break;
            }
        }
        if (x > 0) dec += x * Math.pow(ALPHA_NUMERIC_DIGITS.length, alphaNum.length - i - 1);
    }
    return dec;
}

function alphaNumericToBinary(alphaNum, numDigits)
{
    var val = alphaNumericToDecimal(alphaNum).toString(2);
    if (val.length >= numDigits) return val;
    for (var i = val.length; i < numDigits; i++) val = "0" + val;
    return val;
}

var zArguments = null;

function zParseArguments()
{
    var args = unescape(location.search.substring(1, location.search.length));

    if (args != null && args.length > 0) {
        args = args.split("&");

        if (args != null && args.length > 0) {
            zArguments = new Object();
            for (var i = 0; i < args.length; i++) {
                var pos = args[i].indexOf("=");
                if (pos != -1) {
                    var name = args[i].slice(0, pos);
                    var value = args[i].slice(pos + 1);
                    zArguments[name] = value;
                }
            }
        }
    }
}

function getSelectionsFromCookie(name)
{
    var arg = name + "=";
    var alen = arg.length;
    var clen = document.cookie.length;
    var i = 0;
    while (i < clen) {
        var j = i + alen;
        if (document.cookie.substring(i, j) == arg) {
            var endstr = document.cookie.indexOf(";", j);
            if (endstr == -1) endstr = document.cookie.length;
            return unescape(document.cookie.substring(j, endstr));
        }
        i = document.cookie.indexOf(" ", i) + 1;
        if (i == 0) break;
    }

    return null;
}

function Browser()
{
    this.isIE = false;  // Internet Explorer
    this.isNS = false;  // Netscape
    this.isOP = false;  // Opera
    this.version = null;

    var agent = navigator.userAgent;

    var pos = agent.indexOf("Opera");
    if (pos >= 0) {
        this.isOP = true;
        this.version = parseFloat(agent.substr(pos + ("Opera").length));
        return;
    }

    var pos = agent.indexOf("MSIE");
    if (pos >= 0) {
        this.isIE = true;
        this.version = parseFloat(agent.substr(pos + ("MSIE").length));
        return;
    }

    pos = agent.indexOf("Netscape/");
    if (pos >= 0) {
        this.isNS = true;
        this.version = parseFloat(agent.substr(pos + ("Netscape/").length));
        return;
    }

    pos = agent.indexOf("Netscape6/");
    if (pos >= 0) {
        this.isNS = true;
        this.version = parseFloat(agent.substr(pos + ("Netscape6/").length));
        return;
    }

    if (navigator.appName == "Netscape") {
        this.isNS = true;
        this.version = parseFloat(navigator.appVersion);
    }
}
var browser = new Browser();

var mouseOverImages = new Object();
function addMouseOverImage(name, path, width, height)
{
    var newImage = new Image(width, height);
    newImage.src = path;
    mouseOverImages[name] = newImage;
}

var mouseOverText = new Object();
function addMouseOverText(name, text)
{
    mouseOverText[name] = text;
}



