function formNotEmpty(elem) 
{
    var field = elem.value;
    if (field.length == 0)
    {
        return 0;
    }
    else 
    {
        return -1;
    }
}

function formIsEmail(elem)
{
    var field = elem.value;
    var regex = /^[-_.a-z0-9]+@([-_a-z0-9]+\.)+([A-Za-z][A-Za-z]|[A-Za-z][A-Za-z][A-Za-z])|(([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5]))$/i;
    if(regex.test(field))
        return -1;
    else
        return 1;
}

function formIsInteger(elem)
{
    var field = elem.value;
    var regex = /(^-?\d\d*$)/;
    if(regex.test(field))
        return -1;
    else
        return 2;
}
function formIsFloat(elem)
{
    var field = elem.value;
    // Accept 1.1, 1. ,.1,
    var regex = /^((\d+(\.\d*)?)|((\d*\.)?\d+))$/;
    if(regex.test(field))
        return -1;
    else
        return 3;
}

function formValidator(frm)
{
    
    var j = 0;
    var fields = new Array();
    var checks = new Array();
    
    //Build array
    for(i=0;i<frm.length;i++)
    {   
        
        var elementid = frm[i].id;              
        
        if(elementid != "")
        {
            arr = elementid.split("_");
            if(parseInt(arr.length) > 1)
            {
                eval("fields[j]=" + "frm." + frm[i].id + ";");          
//              fields[j] = frm[i].id;              
                checks[j] = arr[arr.length-1];
                j++;
            }
        }
    }

    for (i=0; i<fields.length; i++)
    {       
        var fieldValue = fields[i]; 
        switch (checks[i])
        {
            case 'isValue':         
            result = formNotEmpty(fieldValue);
            break;
            case 'isEmail':
            result = formIsEmail(fieldValue);
            break;
            case 'isInteger':
            result = formIsInteger(fieldValue);         
            break;          
            case 'isFloat':
            result = formIsFloat(fieldValue);           
            break;                      
        }
        if (result != -1)
        {
            alert(fieldValue.title);
            fieldValue.focus();
            return false;
        }
    }
    return true;
}