function App$initialize()
{
    var state = document.readyState;

    if (document.readyState === 'complete')
    {
        var test = typeof(pageLoad);
        if ( typeof(pageLoad) === 'function')
            pageLoad(null, null);
    }
    else
    {
        setTimeout('App$initialize()', 250);
    }
}

var $get = function App$getElementById(id)
{
    return document.getElementById(id);
}

var $hide = function App$hide(id)
{
    var element = document.getElementById(id);
    if ( element !== null ) element.className = 'css-hidden';
}

function setFocus(id)
{
    var element = $get(id);

    if (element !== null)
    {
        element.focus();
    }
}

function validateRequired(elementId, messageId)
{
    var element = $get(elementId);
    var message = $get(messageId);

    var valid = (element !== null && element.value !== '');

    message.className = (valid) ? 'css-hidden' : 'css-field-warning';

    return valid; // return true if valid; otherwise false
}

function validateEqual(element1Id, element2Id, messageId)
{
    var element1 = $get(element1Id);
    var element2 = $get(element2Id);
    var message = $get(messageId);
    
    if (element1 === null || element2 === null)
        return false;

    var valid = (element1.value === element2.value);

    message.className = (valid) ? 'css-hidden' : 'css-field-warning';

    return valid; // return true if valid; otherwise false
}

function validateFormat(elementId, messageId, expression)
{
    var element = $get(elementId);
    var message = $get(messageId);

    var regex = new RegExp(expression);

    var valid = ( element !== null && regex.test(element.value) );

    message.className = (valid) ? 'css-hidden' : 'css-field-warning';

    return valid; // return true if valid; otherwise false
}

function collapse(left, right)
{
    left = $get(left);
    right = $get(right);

    if (left.className === 'css-collapsible-left-plus')
    {
       left.className = 'css-collapsible-left-minus';
       right.className = '';
    }
    else
    {
       left.className = 'css-collapsible-left-plus';
       right.className = 'css-hidden';
    }
}
