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 null;
}

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

function config(key, value, default_value)
{
    if (value)
        setCookie(key, value);
    else {
        value = getCookie(key);
	if (!value)
	    value = default_value;
    }
    return value;
}

function setSelected(selector, value)
{ 
    $$(selector).each( function(select) {
        $A(select.options).each( function(item) {
	    if (item.value == value)
                item.selected = true;
            else
                item.selected = false;
        });
    });
}

function setFontSize(size)
{
    size = config('fontsize', size, '12pt');
    document.body.style.fontSize = size;
    setSelected('select.fontsize', size);
}

function setDisplay(cond, item)
{
    cond ? item.show() : item.hide();
}

function setLang(lang)
{
    lang = config('lang', lang, 'en');
    $$('h2', 'h3', 'h4', 'h5', 'h6', 'p', 'select', 'span', 'li', 'img').each( function(item) {
        setDisplay(!item.lang || item.lang == lang, item);
    });
    setSelected('select.language', lang);
}

function setSubPage(main, sub)
{
    var subpages = new Array();
    var id = main + ':' + (sub ? sub : 'Home');
    $$('div.subpage').each( function(item) {
        if (item.id.indexOf(main, 0) != 0)
	    return;
	if (sub)
	    setDisplay(item.id == id, item);
	else if (item.visible())
	    subpages.push(item);
    });
    if (subpages.length > 1)
        subpages.each( function(item) {
	    setDisplay(item.id == id, item);
        });
}

function setPage(id)
{
    setSubPage(id);
    $$('div.page').each( function(item) {
        setDisplay(item.id == id, item);
    });
}

window.onload = function()
{
    setLang();
    setPage('Home');
    setFontSize();
}
