var LOGIN_COOKIE = "eLevUidses";
var LOGIN_IDENTIFIER = "li";
var LOGIN_MESSAGE = "Log In";
var LOGIN_URL = "/subscribe.asp?screen=li1";
var LOGOUT_MESSAGE = "Log Out";
var LOGOUT_URL = "/subscribe.asp?screen=li1&regopt=logout";
var LOGIN_IMAGE = "Variety-Subscribe-Notlogged.jpg";
var LOGIN_IMAGE_URL = "/index.asp?layout=subscription&promocode=I08DEF0";
var LOGIN_IMAGE_ALT = "Subscribe to Variety";
var LOGOUT_IMAGE = "Variety-MyAccount-Logged.jpg";
var LOGOUT_IMAGE_URL = "/subscribe.asp?screen=pi5";
var LOGOUT_IMAGE_ALT = "My Account";

function getCookie(c_name) {
    if (document.cookie.length > 0) {
        c_start = document.cookie.indexOf(c_name + "=");
        if (c_start != -1) {
            c_start = c_start + c_name.length + 1;
            c_end = document.cookie.indexOf(";", c_start);
            if (c_end == -1) c_end = document.cookie.length;
            return unescape(document.cookie.substring(c_start, c_end));
        }
    }
    return "";
}

/* Text Handling */

String.prototype.toArray = function() {
    var oResult = {};

    var aQueryString = this.split("&");

    for (var i = 0; i < aQueryString.length - 1; i++) {
        var aTemp = aQueryString[i].split("=");
        if (aTemp != null && aTemp[1].length > 0) {
            oResult[aTemp[0]] = unescape(aTemp[1]);
        }
    }
    return oResult;
}

String.prototype.format = function() {
    var pattern = /\{\d+\}/g;
    var args = arguments;
    return this.replace(pattern, function(capture) { return args[capture.match(/\d+/)]; });
}

/* URI Helpers */

// parseUri 1.2.2
// (c) Steven Levithan <stevenlevithan.com>
// MIT License

String.prototype.parseUri = function() {

    var o = parseUri.options,
		m = o.parser[o.strictMode ? "strict" : "loose"].exec(this),
		uri = {},
		i = 14;

    while (i--) uri[o.key[i]] = m[i] || "";

    uri[o.q.name] = {};
    uri[o.key[12]].replace(o.q.parser, function($0, $1, $2) {
        if ($1) uri[o.q.name][$1] = $2;
    });

    return uri;
};

String.prototype.parseUri.options = {
    strictMode: false,
    key: ["source", "protocol", "authority", "userInfo", "user", "password", "host", "port", "relative", "path", "directory", "file", "query", "anchor"],
    q: {
        name: "queryKey",
        parser: /(?:^|&)([^&=]*)=?([^&]*)/g
    },
    parser: {
        strict: /^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/,
        loose: /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/
    }
};

function setLoginImage() {
    //setCookie (LOGIN_COOKIE, "x=1000;y=2000;c=3000;li=1;v=2323;", "0");
    var cookie = getCookie(LOGIN_COOKIE);
    var login = cookie.toArray()[LOGIN_IDENTIFIER];

    if ((cookie == null || cookie == "") || login == undefined || login=="0") {
		account_image = LOGIN_IMAGE;
		account_url = LOGIN_IMAGE_URL;
		account_alt = LOGIN_IMAGE_ALT;
    }
    else {
		account_image = LOGOUT_IMAGE;
		account_url = LOGOUT_IMAGE_URL;
		account_alt = LOGOUT_IMAGE_ALT;
    }
	document.writeln('<a href="' + account_url + '" title="' + account_alt + '"><img src="/graphics/variety/' + account_image + '" border="0" alt="' + account_alt + '" /></a>');
}

function setLoginLabel(target) {
    //setCookie (LOGIN_COOKIE, "x=1000;y=2000;c=3000;li=1;v=2323;", "0");
    var cookie = getCookie(LOGIN_COOKIE);

    var login = cookie.toArray()[LOGIN_IDENTIFIER];

    if ((cookie == null || cookie == "") || login == undefined || login=="0") {
        target.attr("href", LOGIN_URL);
        target.text(LOGIN_MESSAGE);
    }
    else {
        target.attr("href", LOGOUT_URL);
        target.text(LOGOUT_MESSAGE);
    }
}

$(document).ready(function() {
    setLoginLabel($("a#loginTarget"));
});
