function attachWindowLoadEvent(onLoadListener) {
    if (typeof window.onload == 'function') {
        var oldListener = window.onload;
        window.onload = function () {
            oldListener();
            onLoadListener();
        }
    } else {
        window.onload = onLoadListener;
    }
}

function attachPageLoadEvent(onLoadListener) {
    if (typeof pageLoad == 'function') {
        var oldListener = pageLoad;
        pageLoad = function () {
            pageLoad();
            onLoadListener();
        }
    } else {
        pageLoad = onLoadListener;
    }
}

function $(elementName) {
    return document.getElementById(elementName);
}

var Cookie = {
    set: function (name, value, days) {
        var time = new Date();
        time.setTime(time.getTime() + days * 24 * 60 * 60 * 1000);
        document.cookie = name + '=' + value + '; '
            + 'expires=' + time.toGMTString() + '; '
            + 'path=/';
    }
    , get: function (name) {
        name = name + '=';
        var pairs = document.cookie.split(';');
        for (var i = 0; i < pairs.length; i++) {
            var index = pairs[i].indexOf(name);
            if (index != -1) {
                return pairs[i].substring(index + name.length, pair[i].length)
            }
        } 
    }
    , remove: function (name) {
        Cookie.set(name, '', 0);
    }
}

function Panel(panel, content, open, close, control) {
    $(panel).style.display = 'block';
    $(content).style.display = 'block';
    
    $(open).onclick = function() {
        $(panel).style.display = 'block';
    }

    $(close).onclick = function() {
        $(panel).style.display = 'none';
    }
    
    $(control).onclick = function() {
        $(content).style.display = ($(content).style.display == 'block') ? 'none' : 'block';
    }
}