function FormataData(campo, teclapres) {
    var tecla = teclapres.keyCode;
    vr = document.form1[campo].value;
    vr = vr.replace( ".", "" );
    vr = vr.replace( "/", "" );
    vr = vr.replace( "/", "" );
    tam = vr.length + 1;

    if ( tecla != 9 && tecla != 8 ){
        if ( tam > 2 && tam < 5 )
            document.form1[campo].value = vr.substr( 0, tam - 2  ) + '/' + vr.substr( tam - 2, tam );
        if ( tam >= 5 && tam <= 10 )
            document.form1[campo].value = vr.substr( 0, 2 ) + '/' + vr.substr( 2, 2 ) + '/' + vr.substr( 4, 4 );
    }
}

function isNotNumberNatural( p_valor ) {
    var numVal = parseInt( p_valor );
    if (isNaN( numVal ))
        return( true );
    else
        if ( numVal < 0 )
            return( true );
        else
            return( false );
}

function isNotPositiveNumber( p_valor ) {
    var numVal = parseDouble( p_valor );
    if ( numVal < 0 )
        return( true );
    else
        return( false );
}



function isInvalidDate( fld ) {
    var testMo, testDay, testYr, inpMo, inpDay, inpYr, msg;
    var inp = fld;
    // Converte a data entrada para o padrão americano (trocando o dia pelo mes)
    var inpToAmerican = inp.substring(3, 5)+"/"+inp.substring(0, 2)+"/"+inp.substring(6, 10);

    /*
    alert("par original:   " + inp);
    alert("par toAmerican: " + inpToAmerican);
    */

    // tenta criar um objeto Data a partir do parametro
    var testDate = new Date(inpToAmerican);

    // extrai pedaços da objeto Date
    testDay = testDate.getDate();
    testMo = testDate.getMonth() + 1;
    testYr = testDate.getFullYear();

    /*
    alert("testDay: "+testDay);
    alert("testMo: "+testMo);
    alert("testYr: "+testYr);
    */

    // extrai componentes da entrada
    inpDay = parseInt(inp.substring(0, 2), 10);
    inpMo = parseInt(inp.substring(3, 5), 10);
    inpYr = parseInt(inp.substring(6, 10), 10);

    /*
    alert("dia: "+inpDay);
    alert("mes: "+inpMo);
    alert("ano: "+inpYr);
    */

    // verifica se parseInt() obteve sucesso nos componentes de entrada
    if (isNaN(inpMo) || isNaN(inpDay) || isNaN(inpYr)) {
        alert("Há elementos não-númericos na data entrada");
        return( true );
    }
    // verifica se a conversão do objeto Date obteve sucesso
    if (isNaN(testMo) || isNaN(testDay) || isNaN(testYr)) {
        alert("Não pode converter data entrada para uma data válida");
        return( true );
    }
    // Verifica se valores batem
    if (testMo != inpMo || testDay != inpDay || testYr != inpYr) {
        alert("Cheque os valores de cada componente da data entrada");
        return( true );
    }

    // Chegando aqui é porque o parâmetro está válido como data
    return( false );
}

function isZeroOrNullValue( p_valor ) {
    if (p_valor == null || p_valor == "" || p_valor == "0")
        return( true );
    else
        return( false );
}

function isNotDateAfter( dtInicio, dtTermino ) {

    dtInAm = dtInicio.substring( 3, 5) + "/" + dtInicio.substring( 0, 2) + "/" + dtInicio.substring( 6, 10);
    dtTeAm = dtTermino.substring(3, 5) + "/" + dtTermino.substring(0, 2) + "/" + dtTermino.substring(6, 10);

    var testDtIn = new Date( dtInAm );
    var testDtTe = new Date( dtTeAm );

//    alert("testDtIn: " + testDtIn);
//    alert("testDtTe: " + testDtTe);

    if (testDtIn > testDtTe)
        return( true );
    else
        return( false );
}



