
function isNumerico(iCampo, iNomeCampo) {
    if (isNaN(iCampo.value) == true) {
        //alert('Utilize apenas números para ' + iNomeCampo);
        return false;
    }
}

function isEmail(iCampo) {
    var str = iCampo.value;
    var r1 = new RegExp("(@.*@)|(\\.\\.)|(@\\.)|(^\\.)");
    var r2 = new RegExp("^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$");
    if ((!r1.test(str) && r2.test(str))) { return true; }
    else { return false; }
    return true;
}

function EhIgual(campo) { /* Verifica se todos os valores são iguais */
    var i = 0
    var j = 1
    var igual = true;
    /* Todos os caracteres devem ser diferentes */
    while (i < campo.length - 1 && igual == true) {
        while (j < campo.length && igual == true) {
            if (campo.charAt(i) != campo.charAt(j)) {
                igual = false;
            }
            else j++;
        }
        i++;
    }
    return igual;
}

function isVazio(iCampo, iNomeCampo) {
    if (iCampo.value == false) {
        //alert(iNomeCampo + ' é obrigatório.');
        //iCampo.focus();
        return false;
    }
    return true;
}

function isCPF(source, args) {
    var iCampo = document.getElementById(source.controltovalidate);

    //if (isNumerico(iCampo, iNomeCampo) == false) { args.IsValid = false; };
    if (EhIgual(iCampo.value) == true) {
        /* iCampo.focus(); */
        //alert(iNomeCampo + ' é inválido.');
        args.IsValid = false;
        return args.IsValid;
    }
    
    x = 0;
    soma = 0;
    dig1 = 0;
    dig2 = 0;
    texto = "";
    iCampo1 = "";
    len = iCampo.value.length;
    x = len - 1;

    for (var i = 0; i <= len - 3; i++) {
        y = iCampo.value.substring(i, i + 1);
        soma = soma + (y * x);
        x = x - 1;
        texto = texto + y;
    }

    dig1 = 11 - (soma % 11);
    if (dig1 == 10) dig1 = 0;
    if (dig1 == 11) dig1 = 0;
    
    iCampo1 = iCampo.value.substring(0, len - 2) + dig1;
    x = 11; soma = 0;

    for (var i = 0; i <= len - 2; i++) {
        soma = soma + (iCampo1.substring(i, i + 1) * x);
        x = x - 1;
    }
    
    dig2 = 11 - (soma % 11);
    if (dig2 == 10) dig2 = 0;
    if (dig2 == 11) dig2 = 0;
    
    if ((dig1 + "" + dig2) == iCampo.value.substring(len, len - 2)) {
        args.IsValid = true;
    }
    else {
        args.IsValid = false;
    }
    /* iCampo.focus(); */
    //alert(iNomeCampo + ' é inválido.');
}

function isCNPJ(source, args) {
    var iCampo = document.getElementById(source.controltovalidate);

    if (EhIgual(iCampo.value) == true) {
        //iCampo.focus();
        //alert(iNomeCampo + ' é inválido.');
        args.IsValid = false;
        return args.IsValid;
    }

    dac1 = 0;
    dac2 = 0;
    dac = "";
    dact = "";
    sum = 0;
    iCampo1 = "";
    dac = iCampo.value.substring(iCampo.value.length - 2, iCampo.value.length);
    iCampo1 = iCampo.value.substring(0, iCampo.value.length - 2);

    for (i = iCampo1.length - 1, j = 2; i >= 0; i--, j++) {
        j = (j == 10) ? 2 : j;
        sum += (iCampo1.substring(i, i + 1) * j);
    }
    
    dac1 = ((sum * 10) % 11);
    dac1 = (dac1 == 10) ? 0 : dac1;
    sum = 0;

    for (i = iCampo1.length - 1, j = 3; i >= 0; i--, j++) {
        j = (j == 10) ? 2 : j;
        sum += (iCampo1.substring(i, i + 1) * j);
    }
    
    sum += (dac1 * 2);
    dac2 = ((sum * 10) % 11);
    dac2 = (dac2 == 10) ? 0 : dac2;
    dact = dac1 + "" + dac2;

    if (dact == dac) {
        args.IsValid = true;
    }
    else {
        //iCampo.focus();
        //alert(iNomeCampo + ' é inválido.');
        args.IsValid = false;
    }
}

function isData(dataObj) {
    var exprData = new RegExp("(0[1-9]|[12][0-9]|3[01])/(0[1-9]|1[012])/(19|20)[0-9]{2}", "gi");

    var strData = dataObj.value;

    ret = exprData.exec(strData);

    if (strData == '' || ret == null) { return false; }
    else {
        arrData = strData.split('/');
        testData = new Date(arrData[2], arrData[1] - 1, arrData[0], 0, 0, 0, 0);

        if ((testData.getDate() == arrData[0]) &&
			 ((testData.getMonth()) == (arrData[1] - 1)) &&
				(testData.getFullYear() == arrData[2])) {
        } else { return false; }
    }
}
