/*
 *
 * classe elementos e função Contato
 * confere os campos antes do envio de email, filtro básico
 *
 * @autor: Tiago Carmo
 * @email: contato@tiagocarmo.net
 * @site: http://www.tiagocarmo.net/
 *
 */

var elementos = {
    /*
     * retorna objeto da id
     */
    getID: function(id)
    {
        return document.getElementById(id)
    },

    /*
     * retorna valor do objeto
     */
    getVal: function(id)
    {
        return elementos.getID(id).value
    },

    /*
     * retorna tamanho do valor
     */
    getLen: function(id)
    {
        return elementos.getVal(id).length
    },

    /*
     * foco na id
     */
    setFocus: function(id)
    {
        elementos.getID(id).focus()
    }
}

/*
 * RegExp para validação email
 * baseada na função de charlesschaefer
 * http://forum.imasters.uol.com.br/index.php?showtopic=201090
 */
function checkMail(mail)
{
    /*
     * RegExp para validação
     */
    var er = new RegExp(/^[A-Za-z0-9_\-\.]+@[A-Za-z0-9_\-\.]{2,}\.[A-Za-z0-9]{2,}(\.[A-Za-z0-9])?/);

    /*
     * faz a conferencia se for string
     */
    if(typeof(mail) == "string")
    {
        if(er.test(mail))
        {
            return true
        }
        else
        {
            return false
        }
    }
    /*
     * confere se for objeto
     */
    else if(typeof(mail) == "object")
    {
        if(er.test(mail.value))
        {
            return true
        }
        else
        {
            return false
        }
    }
    /*
     * retorna falso se não for string nem objeto
     */
    else
    {
        return false
    }
}

/*
 * nome, email e mensagem são obrigatórios
 */
function Contato() {
    /*
     * validação basica, campo a campo
     */
    if(elementos.getVal("para") == '0')
    {
        alert("Selecione um contato!")
        elementos.setFocus("para")
        return false
    }
    /*
     * nome
     */
    else if(elementos.getVal("nome") == '')
    {
        alert("O campo Nome é obrigatório!")
        elementos.setFocus("nome")
        return false
    }
    /*
     * confere se email vasio, ou menor que 5 digitos
     */
    else if(elementos.getLen("email") < 5)
    {
        alert("O campo E-mail é obrigatório!\nDigite um E-mail válido.")
        elementos.setFocus("email")
        return false
    }
    /*
     * confere email por RegExp (mais seguro)
     */
    else if (!checkMail(elementos.getVal("email")))
    {
        alert("O campo E-mail é obrigatório!\nDigite um E-mail válido.")
        elementos.setFocus("email")
        return false
    }
    /*
     * confere se mensagem vasia
     */
    else if (elementos.getVal("msg") == '')
    {
        alert("Digite sua mensagem!")
        elementos.setFocus("msg")
        return false
    }
    /*
     * passou na validação
     */
    else
    {
        return true
    }
}