var g_Elements =
{
    "bodybg"   : "body,background-color",
    "bodyfg"   : "body,color",
    "mainbg"   : ".main,background-color",
    "mainfg"   : ".main,color",
    "headerbg" : "#header,background-color",
    "headerfg" : "#header,color",
    "footerbg" : "#footer,background-color",
    "footerfg" : "#footer,color"
}

function applyColors()
{
    for (var id in g_Elements)
    {
        var v = g_Elements[id].split(",");
        setColor(id, getColor(id));
    }
}

function deleteColors()
{
    for (var id in g_Elements)
    {
        var v = g_Elements[id].split(",");
        deleteCookie(v[0] + "," + v[1]);
    }
}

function getColor(id)
{
    var v = g_Elements[id].split(",");
    return getColorInt(v[0], v[1]);
}

function getColorInt(selector, item)
{
    return getCookie(selector + "," + item);
}

function setColor(id, color)
{
    if (!isValidColor(color))
        return;

    var v = g_Elements[id].split(",");
    setColorInt(v[0], v[1], color);
}

function setColorInt(selector, item, color)
{
    if (!isValidColor(color))
        return;

    document.styleSheets[0].addRule(selector, item + ": " + color);
    setCookie(selector + "," + item, color);
}

function isValidColor(color)
{
    if (color == null || !(color.length == 3 || color.length == 6))
        return false;

    for (var i = 0; i < color.length; ++i)
        if ("0123456789abcdefABCDEF".indexOf(color.charAt(i)) == -1)
            return false;

    return true;
}
