//FUNCTIONS-----------------------------------------------------------

function hasValue(variable) {
    if (!variable || variable == "undefined" || variable == "") {
        return(false);
    }
    else {
        return(true);
    }
}

function getURLpart(url, part) {
    var parts = new Array();
    parts = url.split("?");
    if (part == "address") {
        return parts[0];
    }
    else if (part == "query") {
        return parts[1];
    }
}

function setQueryVariable(url, name, value) {
    if (url.indexOf("?") > -1) {
        url += "&";
    }
    else {
        url += "?";
    }
    url += name + "=" + value;
    return url;
}

function isIn(array,string) {
    var x;
    var isIn = false;
    for (x = 0; x <= array.length - 1; x++) {
        if (array[x] == string) {
            isIn = true;
        }
    }
    return(isIn);
}

function integer(num) {
    num = eval("\"" + num + "\"");
    var parts = new Array;
    parts = num.split(".");
    num = parts[0] - 1 + 1;
    return(num);
}

function replaceText(string,oldText,newText) {
    var start = string.indexOf(oldText);
    var end = start + oldText.length;
    if (start > -1) {
        var beginning = string.substring(0,start);
        var ending = string.substring(end,string.length);
        if (ending.indexOf(oldText) > -1) {
            ending = replaceText(ending,oldText,newText);
        }
        string = beginning + newText + ending;
    }
    return(string);
}

function changeImage(image,newImage) {
    var imageElement = document.getElementById(image);
    imageElement.src = eval(newImage + ".src");
}

function playSound(newSound) {
    var bgSoundElement = document.getElementById("sound");
    bgSoundElement.src = eval(newSound + ".src");
}

function setDivVisibility(div,vis) {
    var divElement = document.getElementById(div);
    divElement.style.visibility = vis;
}

function moveDiv(div,left,top) {
    var divElement = document.getElementById(div);
    if (left == 0) {
        left = "0";
    }
    else if (left == "same") {
        left = getDivPosition(div,"left");
    }
    if (top == 0) {
        top = "0";
    }
    else if (top == "same") {
        top = getDivPosition(div,"top");
    }
    div.position = "absolute";
    if (left != "") {
        divElement.style.left = left;
    }
    if (top != "") {
        divElement.style.top = top;
    }
}

function getDivPosition(div,direction) {
    var divElement = document.getElementById(div);
    return(replaceText(eval("divElement.style." + direction),"px","") - 1 + 1);
}

function getDivSize(div,demension) {
    var divElement = document.getElementById(div);
    return(replaceText(eval("divElement.style." + demension),"px","") - 1 + 1);
}

function getDivVisibility(div) {
    var divElement = document.getElementById(div);
    return(divElement.style.visibility);
}

function centerDiv(div,parentDiv,direction) {
    if (direction == "vertical") {
        moveDiv(div , "same" , (getDivSize(parentDiv,"height") - getDivSize(div,"height")) / 2);
    }
    else {
        moveDiv(div , (getDivSize(parentDiv,"width") - getDivSize(div,"width")) / 2 , "same");
    }
}

function setInnerHTML(object,html) {
    var objectElement = document.getElementById(object);
    objectElement.innerHTML = html;
}

function getInnerHTML(object) {
    object = document.getElementById(object);
    return(object.innerHTML);
}

function type(div,text,delay,charNumber) {
    if (!delay) {
        delay = 200;
    }
    if (!charNumber) {
        charNumber = 0;
    }
    var divElement = document.getElementById(div);
    if (charNumber < text.length) {
        charNumber++;
        var html = divElement.innerHTML;
        if (charNumber > 1) {
            html = html.substring(0,html.length - 1);
        }
        var newText = text.charAt(charNumber - 1) + "|";
        divElement.innerHTML = html + newText;
        var rand = Math.round(Math.random() * delay);
        setTimeout("type('" + div + "','" + text + "'," + (delay) + "," + (charNumber) + ")",rand);
    }
    else if (charNumber == text.length) {
        charNumber++;
        setTimeout("type('" + div + "','" + text + "'," + (delay) + "," + (charNumber) + ")",500);
    }
    else if (charNumber == text.length + 1) {
        var html = divElement.innerHTML;
        html = html.substring(0,html.length - 1);
        divElement.innerHTML = html;
        charNumber = 0;
    }
}

function allCaps(text) {
    var lowerCase = new Array("a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z");
    var capital = new Array("A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z");
    var newText = "";
    for (x = 0; x <= text.length - 1; x++) {
        var character = text.charAt(x);
        for (y = 0; y <= lowerCase.length - 1; y++) {
            if (lowerCase[y] == character) {
                character = capital[y];
            }
        }
        newText += character;
    }
    return(newText);
}

function setSrc(obj,src) {
    var objEl = document.getElementById(obj);
    objEl.src = src;
}

function getValue(string,variable,separator,equals) {
    if (!separator) {
        separator = "&";
    }
    if (!equals) {
        equals = "=";
    }
    var fields = new Array();
    fields = string.split(separator);
    var value;
    var f;
    for (f = 0; f <= fields.length - 1; f++) {
        var equalsPlace = fields[f].indexOf(equals);
        var name = fields[f].substring(0,equalsPlace);
        if (name == variable) {
            value = fields[f].substring(equalsPlace + 1);
        }
    }
    if (!hasValue(value)) {
        value = "";
    }
    return(value);
}

function hasVariable(string,variable) {
    var has = false;
    if (string) {
        if (string.indexOf("&" + variable + "=") > -1 || string.indexOf(variable + "=") == 0) {
            has = true;
        }
    }
    return(has);
}

function deleteField(string,field,separator,equals) {
    if (!separator) {
        separator = "&";
    }
    if (!equals) {
        equals = "=";
    }
    var newFields = new Array();
    var fields = new Array();
    fields = string.split(separator);
    var f;
    for (f = 0; f <= fields.length - 1; f++) {
        var equalsPlace = fields[f].indexOf(equals);
        var name = fields[f].substring(0,equalsPlace);
        if (name != field) {
            newFields[newFields.length] = fields[f];
        }
    }
    return(newFields.join(separator));
}

function getRecordQuery(variables) {
    if (!variables) {
        variables = "";
    }
    if (!hasVariable(variables,"location")) {
        variables += "&location=" + escape(window.top.location);
    }
    if (!hasVariable(variables,"referer") && document.referrer) {
        variables += "&referer=" + escape(document.referrer);
    }
    if (!hasVariable(variables,"navigator_appName")) {
        variables += "&navigator_appName=" + navigator.appName;
    }
    var referer = getValue(variables,"referer");
    var isHit = getValue(variables,"is_hit");
    var redirectTo = getValue(variables,"redirect_to");
    if (hasValue(redirectTo) && !hasVariable(getURLpart(unescape(redirectTo), "query"), "r")) {
        redirectTo = escape(setQueryVariable(unescape(redirectTo), "r", escape(window.top.location)));
    }
    variables = deleteField(variables,"referer");
    variables = deleteField(variables,"is_hit");
    variables = deleteField(variables,"redirect_to");
    variables += "&document.referrer=" + escape(document.referrer) + "&window.top.location=" + escape(window.top.location);
    return("is_hit=" + isHit + "&referer=" + referer + "&redirect_to=" + redirectTo + "&to_record=" + escape(variables));
}

function record(variables) {
    var recordQuery = getRecordQuery(variables);
    if (hasValue(getValue(recordQuery,"redirect_to"))) {
        window.top.location.replace(redirectFile + "?" + recordQuery);
    }
    else {
        setSrc("recordFrame",recordFile + "?" + recordQuery);
    }
}

function goCGI(extension) {
    if (URL.indexOf("/p.cgi?") == -1 && URL.indexOf(".") > -1) {
        var path = URL.substring(URL.indexOf("symmetriczebras.com/") + 20);
        parts = new Array;
        parts = path.split(".");
        parts[parts.length - 1] = "";
        path = parts.join("");
        if (hasValue(extension)) {
            path += extension;
        }
        window.top.location.replace("http://www.thesymmetriczebras.com/p.cgi?p=" + escape(path));
    }
}

function bounce() {
    window.top.location.replace("/bounce.html?p=" + escape(URL));
}

function getRecordFrame(variables) {
    var recordQuery = getRecordQuery(variables);
    return("<iframe src=\"/records/record.cgi?" + recordQuery + "\" id=\"recordFrame\" frameborder=\"0\" style=\"visibility:hidden;position:absolute;left:-10;top:-10;width:0;height:0\"></iframe>");
}

function getExtension(file) {
    var extension = "";
    if (file.indexOf(".") > -1) {
        var parts = new Array;
        parts = file.split(".");
        extension = parts[parts.length - 1];
    }
    return(extension);
}

function deleteExtension(file) {
    if (file.indexOf(".") > -1) {
        var parts = new Array;
        parts = file.split(".");
        file = "";
        for (var a = 0; a <= parts.length - 2; a++) {
            file += parts[a];
        }
    }
    return(file);
}


//VARIABLES-----------------------------------------------------------

var URL = eval("\"" + window.top.location + "\"");
var address = getURLpart(URL, "address");
var query = window.location.search.substring(1);
var path = URL.substring(URL.indexOf(".com/") + 5);

var recordFile = "/records/record.cgi";
var redirectFile = "http://www.thesymmetriczebras.com/redirect.html";

var redirectPages = new Array;

redirectPages[0] = new Array();
redirectPages[0]["extension"] = "html";
redirectPages[0]["paths"] = new Array("click_here.html",
                                      "downloadables.html",
                                      "history.html",
                                      "history/harmony_assistant.html",
                                      "instruments.html",
                                      "instruments/325jl.html",
                                      "instruments/4003bass.html",
                                      "instruments/dd-55.html",
                                      "instruments/deluxefatstrat.html",
                                      "instruments/fatstrat.html",
                                      "instruments/jtb-2b.html",
                                      "instruments/ludwigaccent.html",
                                      "instruments/pp1000.html",
                                      "instruments/psr-78.html",
                                      "instruments/sheraton.html",
                                      "instruments/wk-1300.html",
                                      "members.html",
                                      "members/alex.html",
                                      "members/arnie.html",
                                      "members/brandon.html",
                                      "members/carlo.html",
                                      "members/matty.html",
                                      "merchandise.html",
                                      "message_board/write_message.html",
                                      "music.html",
                                      "music/live.html",
                                      "music/semi-colon.html",
                                      "pictures.html",
                                      "recipes.html",
                                      "thanks.html");

redirectPages[1] = new Array();
redirectPages[1]["extension"] = "cgi";
redirectPages[1]["paths"] = new Array("message_board/messages.html");


//OTHER STUFF---------------------------------------------------------

if (address.indexOf(redirectFile) == -1) {
    var newURL = address;
    var redirectReasons = new Array;
    if (newURL.indexOf("http://") != 0) {
        redirectReasons[redirectReasons.length] = "no_http://";
        newURL = "http://" + newURL;
    }
    if (newURL.indexOf("http://www.") != 0) {
        redirectReasons[redirectReasons.length] = "no_www.";
        newURL = "http://www." + newURL.substring(7);
    }
    if (newURL.indexOf("http://www.symmetriczebras.") == 0) {
        redirectReasons[redirectReasons.length] = "no_the";
        newURL = "http://www.thesymmetriczebras." + newURL.substring(27);
    }
    var noExtension = deleteExtension(path);
    var extension = getExtension(path);
    if (noExtension.indexOf("_main") == noExtension.length - 5) {
        redirectReasons[redirectReasons.length] = "no_p.cgi";
        redirectReasons[redirectReasons.length] = "_main";
        var page = path.substring(0,noExtension.length - 5);
        if (extension != "html") {
            page += "." + extension;
        }
        newURL = newURL.substring(0,newURL.indexOf(".com/") + 5) + "p.cgi?p=" + escape(page);
    }
    for (var a = 0; a <= redirectPages.length - 1; a++) {
        if (isIn(redirectPages[a]["paths"],path)) {
            redirectReasons[redirectReasons.length] = "no_p.cgi"
            newURL = newURL.substring(0,newURL.indexOf(".com/") + 5) + "p.cgi?p=" + escape(noExtension);
            if (redirectPages[a]["extension"] != "" && redirectPages[a]["extension"] != "html") {
                newURL += escape("." + redirectPages[a]["extension"]);
            }
        }
    }
    if (getURLpart(newURL, "address") != address) {
        record("is_hit=no&action=redirect&redirect_to=" + escape(newURL) + "&redirect_reasons=" + escape(redirectReasons.join(", ")));
    }
}
