function setRule(name, selector, style)
{
    var e = $('dynamic_rules');
    var index = dynamic_rules_index[name];
    var rule =  selector + '{' + style + '}';
    var sheet = e.sheet ? e.sheet : e.styleSheet;

    sheet.deleteRule ? sheet.deleteRule(index) : sheet.removeRule(index);
    sheet.insertRule ? sheet.insertRule(rule, index) : sheet.addRule(selector, style, index);
}

function setEmail(id, user, domain)
{
    var e = $(id);
    var email = user + '@' + domain;
    e.innerHTML = '<a href="mailto:' + email + '">' + email + '</a>';
}

function showMainman(id)
{
    location.href = "https://www.bitvisor.org/mailman/listinfo/" + id;
}

function getCookie(key)
{
    var cookies = document.cookie.split(";");
    for (var i = 0; i < cookies.length; i++) {
        var kv = cookies[i].split("=");
        if (kv[0].strip() == key)
	    return kv[1];
    }
    return undefined;
}

function setCookie (key, value)
{
    document.cookie = key + '=' + value + '; expires="Tue, 31-Dec-2030 23:59:59"';
    return value;
}

function delCookies (keys)
{
    keys.each( function (key, index) {
	document.cookie = key + '=; expires="Mon, 01-Jan-2001 00:00:00"';
    });
}

function config (key, value, default_value)
{
    if (key != 'remember' && getCookie('remember') == 'false')
	return value == undefined ? default_value : value;
    value = (value == undefined) ? getCookie(key) : setCookie(key, value);
    if (value == undefined)
	return default_value;
    return value;
}

function setFont (size)
{
    size = config('font', size, '12pt');
    $('font').value = size;
    setRule('font', 'body', 'font-size:' + size);
}

function setLang (lang)
{
    lang = config('lang', lang, 'en');
    $('lang').value = lang;
    var hide_lang = lang == 'en' ? 'ja' : 'en';
    setRule('lang', '* [lang="' + hide_lang + '"]', 'display: none;');
}

function setPage (page, subpage)
{
    page = config('page_id', page, 'Home');
    subpage = page + '-' + config('subpage_id', subpage, 'Home');
    setRule('page', '#' + page + ',#' + subpage, 'display:inherit;');
}

function setRemember (checked)
{
    if (checked != undefined)
	checked = checked ? 'true' : 'false';
    var remember = config('remember', checked, 'true');
    $('remember').checked = (remember == 'true');
    if (remember == 'false')
	delCookies(['font', 'lang', 'page_id', 'subpage_id']);
}

