//1 form per page...
//dep: prototype

String.prototype.trim = function()
{
    return this.replace(/\t| /g, '');
}

function formInit()
{
    var elem = getElementsByClassName('validate', document, 'form')[0];
    Event.observe(elem, 'submit', formValidate.bindAsEventListener(elem));
}

function formValidate(ev)
{
    var elem = eventTarget(ev),
        fields = $A(getElementsByClassName('required', elem, 'input')),
        valid = true;
        
    fields.each(function(field){
        var fieldValid = field.value.trim().length > 0;
        if(fieldValid)
        {
            field.style.backgroundColor = "white";
        }
        else
        {
            field.style.backgroundColor = "#FFA";
        }
        valid &= fieldValid;
    });
    
    if(!valid)
    {
        Event.stop(ev);
        $A(getElementsByClassName('error_msg', document)).each(function(p){
            p.style.visibility = 'visible';
        })
    }
    
}

function eventTarget(ev)
{
    // get event element from different event object models
    if(typeof ev.target != 'undefined') return ev.target;
    if(typeof ev.srcElement != 'undefined') return ev.srcElement;
    return {};
}

Event.observe(window, 'load', formInit);