function upperTextoNome(e, numero) {
	var ret = false;

	if (document.all) {// Internet Explorer
		var tecla = event.keyCode;
	}
	else if(document.layers) {// Nestcape
		var tecla = e.which;
	}

	ret = this.upperTexto(e, numero);

	if (tecla == 46) { // Ponto
		return false;
	} else if (tecla == 45) { // Traço
		return false;
	} else if (tecla == 64) { // Arroba
		return false;
	} else if (tecla == 95) { // Sublinhado
		return false;
	} else {
		return ret; // Alfabeto maiusculo
	}
}

function upperTexto(e, numero) {
	if (document.all) {// Internet Explorer
		var tecla = event.keyCode;
	}
	else if(document.layers) {// Nestcape
		var tecla = e.which;
	}

	if (tecla > 96 && tecla < 123 && numero < 2) { // Letras minusculas
		event.keyCode = tecla - 32;
	} else if (tecla > 64 && tecla < 91 && numero == 2) {
		event.keyCode = tecla + 32;
	} else if (tecla > 64 && tecla < 91 && numero < 2) { // Letras maiusculas
		return true;
	} else if (tecla > 96 && tecla < 123 && numero == 2) { // Letras maiusculas
		return true;
	} else if (numero >= 1 && tecla > 47 && tecla < 58) { // Números
		return true;
	} else if (tecla == 64) { // Arroba
		return true;
	} else if (tecla == 45) { // Traço
		return true;
	} else if (tecla == 46) { // Ponto
		return true;
	} else if (tecla == 95) { // Sublinhado
		return true;
	} else if (tecla == 32) { // Espaço
		return true;
	} else {
		return false;
	}
}

function formatarCep(campo){ // Formata o CEP
	var key = event.keyCode;
	var cep = campo.value;
	var cepOrigem = cep;
	var set = 0;
	cepOrigem = replace(cepOrigem, " ", "");
	cepOrigem = replace(cepOrigem, ".", "");
	cepOrigem = replace(cepOrigem, "-", "");

	if(cepOrigem.length == 8){
		cep = cepOrigem.substring(0, 5) + "-" + cepOrigem.substring(5, 8);
		set = 1;
	}
	else {
		if (cep.length == 5 && cep.substring(5, 6) != "-") {
			cep += "-";
		}
	}
	
	/* Descricao dos keyCodes
	* 8 = backspace
	* 35 = end
	* 36 = home
	* 37 = seta esqueda
	* 39 = seta direita
	* 45 = insert
	* 48 - 57 = numeros no teclado alfabetico
	*/
	if ((key != 8 && key != 37 && key != 39 && key != 35 && key != 36 && key != 45 && key >= 48 && key <= 57) || set == 1) {
		eval("document.all."+campo.name+".value = '"+cep+"'");
		return true;
	}
	else{
		return false;
	}
}

function formatarCampoNumerico(){ // Deixa escrever apenas números
	var key = event.keyCode;
	/* Descricao dos keyCodes
	* 8 = backspace
	* 35 = end
	* 36 = home
	* 37 = seta esqueda
	* 39 = seta direita
	* 45 = insert
	* 48 - 57 = numeros no teclado alfabetico
	*/
	if ((key >= 48 && key <= 57)|| 
		(key == 8  || key == 37 || 
		 key == 39 || key == 35 ||
		 key == 36 || key == 45)) {

		return true;
	}
	else{
		return false;
	}
}


function formatarCpf(campo){ // Formata o CPF
	var key = event.keyCode;
	var cpf = campo.value;
	var cpfOrigem = cpf;
	var set = 0;

	cpfOrigem = replace(cpfOrigem, " ", "");
	cpfOrigem = replace(cpfOrigem, ".", "");
	cpfOrigem = replace(cpfOrigem, "-", "");

	if (cpfOrigem.length == 11) {
		cpf = cpfOrigem.substring(0, 3) + "." + cpfOrigem.substring(3, 6) + "." + cpfOrigem.substring(6, 9) + "-" + cpfOrigem.substring(9,11);
		set = 1;
	}
	else {
		if (cpfOrigem.length == 3 && cpf.substring(3, 4) != ".") {
			cpf += ".";
		}
		else if (cpfOrigem.length == 6 && cpf.substring(7, 8) != ".") {
			cpf += ".";
		}
		else if (cpfOrigem.length == 9 && cpf.substring(11, 12) != "-") {
			cpf += "-";
		}
	}

	/* Descricao dos keyCodes
	* 8 = backspace
	* 35 = end
	* 36 = home
	* 37 = seta esqueda
	* 39 = seta direita
	* 45 = insert
	* 48 - 57 = numeros no teclado alfabetico
	*/
	if ((key != 8 && key != 37 && key != 39 && key != 35 && key != 36 && key != 45 && key >= 48 && key <= 57) || set == 1) {
		eval("document.all."+campo.name+".value = '"+cpf+"'");		
		return true;
	}
	else {
		return false;
	}
}


function formatarData(campo){ // Formata o campo data
	var key = event.keyCode;
	var data = campo.value;
	var dataOrigem = data;
	var set = 0;
	dataOrigem = replace(dataOrigem, " ", "");
	dataOrigem = replace(dataOrigem, "/", "");

	if(dataOrigem.length == 8){
		data = dataOrigem.substring(0, 2) + "/" + dataOrigem.substring(2, 4) + "/" + dataOrigem.substring(4, 8);
		set = 1;
	}
	else {
		if (data.length == 2 && data.substring(2, 3) != "/") {
			data += "/";
		}
		else if (data.length == 5 && data.substring(4, 5) != "/") {
			data += "/";
		}
	}
	
	/* Descricao dos keyCodes
	* 8 = backspace
	* 35 = end
	* 36 = home
	* 37 = seta esqueda
	* 39 = seta direita
	* 45 = insert
	* 48 - 57 = numeros no teclado alfabetico
	*/
	if ((key != 8 && key != 37 && key != 39 && key != 35 && key != 36 && key != 45 && key >= 48 && key <= 57) || set == 1) {
		eval("document.all."+campo.name+".value = '"+data+"'");
		return true;
	}
	else{
		return false;
	}
}

function formatarHora(campo){ // Formata o campo Hora
	var key = event.keyCode;
	var hora = campo.value;
	var horaOrigem = hora;
	var set = 0;
	horaOrigem = replace(horaOrigem, " ", "");
	horaOrigem = replace(horaOrigem, ":", "");

	if(horaOrigem.length == 5){
		hora = horaOrigem.substring(0, 2) + ":" + horaOrigem.substring(3, 5);
		set = 1;
	}
	else {
		if (hora.length == 2 && hora.substring(2, 3) != ":") {
			hora += ":";
		}
	}
	
	/* Descricao dos keyCodes
	* 8 = backspace
	* 35 = end
	* 36 = home
	* 37 = seta esqueda
	* 39 = seta direita
	* 45 = insert
	* 48 - 57 = numeros no teclado alfabetico
	*/
	if ((key != 8 && key != 37 && key != 39 && key != 35 && key != 36 && key != 45 && key >= 48 && key <= 57) || set == 1) {
		eval("document.all."+campo.name+".value = '"+hora+"'");
		return true;
	}
	else{
		return false;
	}
}


/****
<input type='text' OnKeyUp='return formatarMoeda(this)' onKeyPress='return formatarCampoNumerico()'>
*****/
function formatarMoeda(campo){ // Formata o Moeda
	var key = event.keyCode;
	var valor = campo.value;
	var valorOrigem = valor;
	var set = 0;

	valorOrigem = replace(valorOrigem, " ", "");
	valorOrigem = replace(valorOrigem, ".", "");
	valorOrigem = replace(valorOrigem, ",", "");
	if (valorOrigem.length > 2) {
		tam = valorOrigem.length;
		valor = valorOrigem.substring(0, tam-2) + "," + valorOrigem.substring(tam-2, tam);
		set = 1;
	}
	if (valorOrigem.length > 5) {
		tam = valorOrigem.length;
		valor = valorOrigem.substring(0, tam-5) + "." + valorOrigem.substring(tam-5, tam-2) + "," + valorOrigem.substring(tam-2, tam);
	}
	if (valorOrigem.length > 8) {
		tam = valorOrigem.length;
		valor = valorOrigem.substring(0, tam-8) + "." + valorOrigem.substring(tam-8, tam-5) + "." + valorOrigem.substring(tam-5, tam-2) + "," + valorOrigem.substring(tam-2, tam);
	}
	if (valorOrigem.length > 11) {
		tam = valorOrigem.length;
		valor = valorOrigem.substring(0, tam-11) + "." + valorOrigem.substring(tam-11, tam-8) + "." + valorOrigem.substring(tam-8, tam-5) + "." + valorOrigem.substring(tam-5, tam-2) + "," + valorOrigem.substring(tam-2, tam);
	}
	if (valorOrigem.length > 13) {
		return false;
	} else {
		eval("document.all." + campo.name + ".value = '" + valor + "'");
		return true;	
	}
}

function formatarMoeda2(campo,teclapres) {
	var tecla  = teclapres.keyCode;
	var tammax = 17;
	vr = campo.value;
	vr = vr.replace( "/", "" );
	vr = vr.replace( "/", "" );
	vr = vr.replace( ",", "" );
	vr = vr.replace( ".", "" );
	vr = vr.replace( ".", "" );
	vr = vr.replace( ".", "" );
	vr = vr.replace( ".", "" );
	tam = vr.length;

	if (tam < tammax && tecla != 8){ tam = vr.length + 1 ; }

	if (tecla == 8 ){	tam = tam - 1 ; }
		
	if ( tecla == 8 || tecla >= 48 && tecla <= 57 || tecla >= 96 && tecla <= 105 ){
		if ( tam <= 2 ){ 
	 		campo.value = vr ; }
	 	if ( (tam > 2) && (tam <= 5) ){
	 		campo.value = vr.substr( 0, tam - 2 ) + ',' + vr.substr( tam - 2, tam ) ; }
	 	if ( (tam >= 6) && (tam <= 8) ){
	 		campo.value = vr.substr( 0, tam - 5 ) + '.' + vr.substr( tam - 5, 3 ) + ',' + vr.substr( tam - 2, tam ) ; }
	 	if ( (tam >= 9) && (tam <= 11) ){
	 		campo.value = vr.substr( 0, tam - 8 ) + '.' + vr.substr( tam - 8, 3 ) + '.' + vr.substr( tam - 5, 3 ) + ',' + vr.substr( tam - 2, tam ) ; }
	 	if ( (tam >= 12) && (tam <= 14) ){
	 		campo.value = vr.substr( 0, tam - 11 ) + '.' + vr.substr( tam - 11, 3 ) + '.' + vr.substr( tam - 8, 3 ) + '.' + vr.substr( tam - 5, 3 ) + ',' + vr.substr( tam - 2, tam ) ; }
	 	if ( (tam >= 15) && (tam <= 17) ){
	 		campo.value = vr.substr( 0, tam - 14 ) + '.' + vr.substr( tam - 14, 3 ) + '.' + vr.substr( tam - 11, 3 ) + '.' + vr.substr( tam - 8, 3 ) + '.' + vr.substr( tam - 5, 3 ) + ',' + vr.substr( tam - 2, tam ) ;}
	}
}

function Mascara(campo,mascara,event) {
	var BACKSPACE= 8; 
	var key; 
	var tecla; 
	CheckTAB=true; 
	var tamanho=campo.value.length;
 
	if(navigator.appName.indexOf("Netscape")!= -1) 
	    tecla= event.which; 
 		else 
		tecla= event.keyCode; 
	key = String.fromCharCode(tecla); 

	if(mascara.charAt(tamanho)==9){
	    var numValidos="0123456789";
		if(numValidos.indexOf(key)==-1)
		    return false;
		campo.value=campo.value+key;
	}else if(mascara.charAt(tamanho)=='A'){
	    var numValidos="0123456789,:.-/\\";
		if(numValidos.indexOf(key)>-1)
		    return false;
		campo.value=campo.value+key;
	}else if(mascara.charAt(tamanho)=='X'){
		campo.value=campo.value+key;
	}else{
	    if(mascara.charAt(tamanho)==key)
		    campo.value=campo.value+key;  
	}
	var simValidos=":,.-/\\() ";
	var simbolo=mascara.charAt(tamanho+1);
	if(simValidos.indexOf(simbolo)==-1)
	    return false;
	campo.value=campo.value+simbolo;
	
	if ( tecla == 13 ) 
 		return false; 
	if ( tecla == BACKSPACE ) 
		return true; 

	return false; 
}

/**
 * formata o telefone com ddd
 * onkeypress="return formataTelefoneComDDD(this, event)"
 */
function formataTelefoneComDDD(campo, event) {
    var key = window.event ? event.keyCode : event.which;
    var retorno = false;
    var valor = "";
    var teste = campo.value;
    
    
    /* Descricao dos keyCodes
    * 0 = Tab
    * 8 = backspace
    * 35 = end
    * 36 = home
    * 37 = seta esqueda
    * 39 = seta direita
    * 45 = insert
    * 48 - 57 = numeros no teclado alfabetico
    */
    if (key == 0){
        return true;
    }
    if ((key != 8 && key != 37 && key != 39 && key != 35 && key != 36 && key != 45 && key >= 48 && key <= 57)) {
        retorno = true;
    }
    else{
        retorno = false;
    }
    
    var teste2 = "";
    
    //tratando o backspace.
    var tamanho = teste.length;
    
    for (var i = 0; i < tamanho; i++) {
        if (!isNaN(teste.charAt(i)) && teste.charAt(i) != " ") {
            teste2 += teste.charAt(i);
        }
    }
    
    if (key == 8 && teste2.length > 0){
        teste2 = teste2.substring(0, teste2.length -1);
    }

    // obtendo o tamanho do texto
    var t1 = teste2.length;
    
    if (t1 <= 1) {
      valor = '(' + teste2;
    } else if (t1 > 1 && t1 <= 5) {
        valor = '(' + teste2.substring(0, 2) + ') ' +  teste2.substring(2);
    } else if (t1 > 5 && t1 <= 9) {
        valor = '(' + teste2.substring(0, 2) + ') ' +  teste2.substring(2, teste2.length - 3) + '-' + teste2.substring(teste2.length - 3);
    } else {
        return false;
    } 
            
    campo.value = valor;
    
    return retorno;
}


/*
*  Funcao para fazer formatacao de Cnpj : 99.999.999/9999.99
*                     99 999 999 999 99         
*  Utilizar da seguinte forma: 
*  onkeypress="return formataCnpj(this);"
*/
function formataCnpj(campo, e) {
	
    car = window.event ? e.keyCode : e.which;
    key = car;
    
    if (key == 0 || key == 8  || key == 9 || key == 37 || 
         key == 39 || key == 35 ||
         key == 36 || key == 45) {

        return true;
    }
    
    if ((key < 48 || key > 57) && (key < 96 || key > 105) && (key != 46)){
        return false;
    }

    switch(campo.value.length){
        case 2:
            campo.value+='.';
            break;
        case 6:
            campo.value+='.';
            break;
        case 10:
            campo.value+='/';
            break;
        case 15:
            campo.value+='-';
            break;
        case 18:
           return false;
    }

    return true;
}

function formataData(campo, e) {
	
    car = window.event ? e.keyCode : e.which;
    key = car;
    
    if (key == 0 || key == 8  || key == 9 || key == 37 || 
         key == 39 || key == 35 ||
         key == 36 || key == 45) {

        return true;
    }
    
    if ((key < 48 || key > 57) && (key < 96 || key > 105) && (key != 46)){
        return false;
    }

    switch(campo.value.length){
        case 2:
            campo.value+='/';
            break;
        case 5:
            campo.value+='/';
            break;
        case 10:
           return false;
    }

    return true;
}

function formataCpf(campo, e) {
	
    car = window.event ? e.keyCode : e.which;
    key = car;
    
    if (key == 0 || key == 8  || key == 9 || key == 37 || 
         key == 39 || key == 35 ||
         key == 36 || key == 45) {

        return true;
    }
    
    if ((key < 48 || key > 57) && (key < 96 || key > 105) && (key != 46)){
        return false;
    }

    switch(campo.value.length){
        case 3:
            campo.value+='.';
            break;
        case 7:
            campo.value+='.';
            break;
        case 11:
            campo.value+='-';
            break;
        case 14:
           return false;
    }

    return true;
}

/**
 * Formata um campo cep durante a digitação do usuário.
 * Essa função deve ser utilizada da seguinte maneira:
 * onkeypress="return formatarCep(this, event);"
 */
function formataCep(campo, e) {
    car = window.event ? e.keyCode : e.which;
    key = car;
    
    if (key == 0 || key == 8  || key == 9 || key == 37 || 
         key == 39 || key == 35 ||
         key == 36 || key == 45) {

        return true;
    }
    
    if ((key < 48 || key > 57) && (key < 96 || key > 105) && (key != 46)){
        return false;
    }

    switch(campo.value.length){
        case 5:
            campo.value+='-';
            break;
        case 9:
           return false;
    }

    return true;
}