function center(element) {
    try {
        element = $(element);
    } catch(e) {
        return;
    }

    var my_width  = 0;
    var my_height = 0;

    if (typeof(window.innerWidth) == 'number') {
        my_width  = window.innerWidth;
        my_height = window.innerHeight;
    } else if (document.documentElement &&
              (document.documentElement.clientWidth ||
               document.documentElement.clientHeight))
    {
        my_width  = document.documentElement.clientWidth;
        my_height = document.documentElement.clientHeight;
    } else if (document.body &&
              (document.body.clientWidth ||
               document.body.clientHeight))
    {
        my_width  = document.body.clientWidth;
        my_height = document.body.clientHeight;
    }

    element.style.position = 'absolute';
    element.style.zIndex   = 99;

    var scrollY = 0;

    if (document.documentElement && document.documentElement.scrollTop) {
        scrollY = document.documentElement.scrollTop;
    } else if (document.body && document.body.scrollTop) {
        scrollY = document.body.scrollTop;
    } else if (window.pageYOffset) {
        scrollY = window.pageYOffset;
    } else if (window.scrollY) {
        scrollY = window.scrollY;
    }

    var elementDimensions = Element.getDimensions(element);

    var setX = (my_width - elementDimensions.width) / 2;
    var setY = (my_height - elementDimensions.height) / 2 + scrollY;

    setX = (setX < 0) ? 0 : setX;
    setY = (setY < 0) ? 0 : setY;

    element.style.left = setX + "px";
    element.style.top  = setY + "px";

    element.style.display = 'block';
}

function show_overlay()
{
    var overlay = $('overlay');
    if (typeof(overlay) == "undefined") {
        overlay = document.createElement('div');
        overlay.setAttribute('id', 'overlay');

        var my_body = document.getElementsByTagName('body')[0];
        my_body.appendChild(overlay);
    }
    Element.hide('overlay');
    Effect.Appear('overlay', {duration: 0.5, from: 0.0, to: 0.7});
}

function hide_overlay()
{
    Effect.Fade('overlay', {duration: 0.5, from: 0.7, to: 0.0});
}

function post_var(action, varname, varvalue)
{
    hidden = document.createElement("input");
    hidden.setAttribute('type', 'hidden');
    hidden.setAttribute('name', varname);
    hidden.setAttribute('value', varvalue);

    form = document.createElement("form");
    form.setAttribute('method', 'post');
    form.setAttribute('action', action);
    form.appendChild(hidden);

    body = document.getElementsByTagName('body')[0];
    body.appendChild(form);

    form.submit();
}
