var ValidationType = new Object();
ValidationType.NOME = "nome";
ValidationType.EMAIL = "email";

var Validation = new Object();
Validation.fields = [];

Validation.addField = function(id, type, args)
{
   var field = new Object();
   field.id = id;
   field.type = type;
   field.args = args;
   
   Validation.fields.push(field);
}

Validation.clearFields = function()
{
    Validation.fields = [];
}

Validation.validate = function()
{
    var _return = true;
    
    for(i = 0 ; i < Validation.fields.length ; i++)
    {
        var field = Validation.fields[i];
        if(!validateField(field.id, field.type, field.args)) _return = false;
    }
    
    Validation.clearFields();
    return _return;
}

function validateField(id, type, args)
{
    var field = $(id);
    
    switch(type)
    {
        case "email":
            if(field.val().match(/\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/)==null)
            {
                markAsInvalid(field);
                return false;
            }
            else
            {
                markAsValid(field);
                return true;
            }
            
        break;
        
        case "nome":            
            if(field.val().length <= 2)
            {
                markAsInvalid(field);
                return false;    
            }
            else
            {
                markAsValid(field);
                return true;
            }
        break;
    }
}

function markAsValid(field)
{
    field.removeClass("invalid");
}

function markAsInvalid(field)
{
    field.addClass("invalid");
    field.focus();
}