function textboxFocus(input, maskValue) {
    (d = (p = input.parentNode.parentNode).parentNode).className = d.className.replace('error', '');
     p.className += ' focus';

     if (maskValue && (input.value == maskValue))
         input.value = '';
}

function textboxBlur(input, maskValue) {
    (p = input.parentNode.parentNode).className = p.className.replace('focus', '');

    if (maskValue && (input.value.replace(/(^\s+|\s+$)/, '') == ''))
         input.value = maskValue;
}

function showModalWindow(id) {
    var modal = document.getElementById(id);
    if (modal.parentNode.nodeName != 'BODY')
        modal = document.body.appendChild(modal.parentNode.removeChild(modal));

    //modal.style.visibility = 'hidden';
    modal.style.display = 'block';
    //modal.style.marginLeft = '-' + (modal.scrollWidth / 20) + 'em';
    //modal.style.visibility = 'visible';
    modal.focus();

    var onmousedown = document.onmousedown;
    document.onmousedown = function(e) {
        var p = e ? e.target : window.event.srcElement;
        do {
            if (p == modal)
                return;
        } while (p = p.parentNode);

        modal.style.display = 'none';

        var uls = modal.getElementsByTagName('UL');
        for (var i = 0; i < uls.length; i++)
            if (uls[i].className.indexOf('errors') != -1)
                uls[i].parentNode.removeChild(uls[i]);

        var divs = modal.getElementsByTagName('DIV');
        for (var i = 0; i < divs.length; i++)
            if (divs[i].className.indexOf('error') != -1)
                divs[i].className = divs[i].className.replace('error', '');

        var inputs = modal.getElementsByTagName('INPUT');
        for (var i = 0; i < inputs.length; i++)
            if (!inputs[i].onkeypress)
                continue;
            else
            if (typeof(inputs[i].onkeypress().dflt) != 'undefined') {
                if ((inputs[i].type == 'text') || (inputs[i].type == 'password')) {
                    inputs[i].value = inputs[i].onkeypress().dflt;
                } else
                if ((inputs[i].type == 'radio') || (inputs[i].type == 'checkbox')) {
                    inputs[i].checked = inputs[i].onkeypress().dflt ? true : false;
                }
            }

        document.onmousedown = onmousedown;
    }
}

function addOnloadHandler(f) {
    var onload = window.onload;
    if (onload)
        window.onload = function() {
            onload();
            f();
        }
    else
        window.onload = f;
}