if (navigator.appName.indexOf('Microsoft') != -1){
    clientNavigator = "IE";
}else{
    clientNavigator = "Other";
}

function validatorsReset(){
    Prado.Validation.reset("grupo1");
}

//Funcao permite digitacao de numeros
function bloqueiaCaracteres(evnt){
    if (clientNavigator == "IE"){
       if (evnt.keyCode < 48 || evnt.keyCode > 57){
           return false
       }
    }else{
       if ((evnt.charCode < 48 || evnt.charCode > 57) && evnt.keyCode == 0){
           return false
       }
    }
}

//Funcao permite digitacao de numeros e de virgula
function bloqueiaCaracteresComVirgula(evnt){
    if (clientNavigator == "IE"){
       if (evnt.keyCode != 44){
           if ( (evnt.keyCode < 48 || evnt.keyCode > 57) ){
               return false
           }
        }
    }else{
       if (evnt.charCode != 44){
           if ((evnt.charCode < 48 || evnt.charCode > 57) && evnt.keyCode == 0){
               return false
           }
       }
    }
}

// funcao complementar da funcao formataValor
function filtraCampo(campo){
    var s = "";
    var cp = "";
    vr = campo.value;
    tam = vr.length;
    for (i = 0; i < tam ; i++) {
        if (vr.substring(i,i + 1) != "/" && vr.substring(i,i + 1) != "-" && vr.substring(i,i + 1) != "."  && vr.substring(i,i + 1) != "," ){
            s = s + vr.substring(i,i + 1);}
    }
    campo.value = s;
    return cp = campo.value
}

// Funcao utilizada para formatacao para apresentacao de valores em real
function formataValor(campo) {
    campo.value = filtraCampo(campo);
    vr = campo.value;
    tam = vr.length;

    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 <= 18) ) {
        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 ) ;
    }
}

// Funcao utilizada para formatacao para apresentacao de valores em real
function formataValorToneladas(campo) {
    campo.value = filtraCampo(campo);
    vr = campo.value;
    tam = vr.length;

    if ( tam <= 2 ) {
        campo.value = vr ;
    }
    if ( (tam > 2) && (tam <= 6) ) {
        campo.value = vr.substr( 0, tam - 3 ) + ',' + vr.substr( tam - 3, tam ) ;
    }
    if ( (tam >= 6) && (tam <= 9) ) {
        campo.value = vr.substr( 0, tam - 6 ) + '.' + vr.substr( tam - 6, 3 ) + ',' + vr.substr( tam - 3, tam ) ;
    }
    if ( (tam >= 9) && (tam <= 12) ) {
        campo.value = vr.substr( 0, tam - 9 ) + '.' + vr.substr( tam - 9, 3 ) + '.' + vr.substr( tam - 6, 3 ) + ',' + vr.substr( tam - 3, tam ) ;
    }
    if ( (tam >= 12) && (tam <= 15) ) {
        campo.value = vr.substr( 0, tam - 12 ) + '.' + vr.substr( tam - 12, 3 ) + '.' + vr.substr( tam - 9, 3 ) + '.' + vr.substr( tam - 6, 3 ) + ',' + vr.substr( tam - 3, tam ) ;
    }
    if ( (tam >= 15) && (tam <= 19) ) {
        campo.value = vr.substr( 0, tam - 15 ) + '.' + vr.substr( tam - 15, 3 ) + '.' + vr.substr( tam - 12, 3 ) + '.' + vr.substr( tam - 9, 3 ) + '.' + vr.substr( tam - 6, 3 ) + ',' + vr.substr( tam - 3, tam ) ;
    }
}

// Funcao utilizada para formatacao para apresentacao de valores em real
function formataValorKilograma(campo) {
    campo.value = filtraCampo(campo);
    vr = campo.value;
    tam = vr.length;
    if ( tam <= 2 ) {
        campo.value = vr ;
    }
    if ( (tam > 3) && (tam <= 6) ) {
        campo.value = vr.substr( 0, tam - 3 ) + '.' + vr.substr( tam - 3, tam ) ;
    }
    if ( (tam >= 7) && (tam <= 9) ) {
        campo.value = vr.substr( 0, tam - 6 ) + '.' + vr.substr( tam - 6, 3 ) + '.' + vr.substr( tam - 3, tam ) ;
    }
    if ( (tam >= 10) && (tam <= 12) ) {
        campo.value = vr.substr( 0, tam - 9 ) + '.' + vr.substr( tam - 9, 3 ) + '.' + vr.substr( tam - 6, 3 ) + '.' + vr.substr( tam - 3, tam ) ;
    }
    if ( (tam >= 13) && (tam <= 15) ) {
        campo.value = vr.substr( 0, tam - 12 ) + '.' + vr.substr( tam - 12, 3 ) + '.' + vr.substr( tam - 9, 3 ) + '.' + vr.substr( tam - 6, 3 ) + '.' + vr.substr( tam - 3, tam ) ;
    }
    if ( (tam >= 16) && (tam <= 19) ) {
        campo.value = vr.substr( 0, tam - 15 ) + '.' + vr.substr( tam - 15, 3 ) + '.' + vr.substr( tam - 12, 3 ) + '.' + vr.substr( tam - 9, 3 ) + '.' + vr.substr( tam - 6, 3 ) + '.' + vr.substr( tam - 3, tam ) ;
    }
}



//Ajusta mascara de Data e so permite digitacao de numeros
function ajustaData(input, evnt){
    if (input.value.length == 2 || input.value.length == 5){
        if(clientNavigator == "IE"){
            input.value += "/";
        }else{
            if(evnt.keyCode == 0){
                input.value += "/";
            }
        }
    }
    return bloqueiaCaracteres(evnt);
 }

function foco(el){
    document.getElementById(el).focus();
}


/**
 * Função para aplicar máscara em campos de texto
 * Copyright (c) 2008, Dirceu Bimonti Ivo - http://www.bimonti.net
 * All rights reserved.
 * @constructor
 */

/* Version 0.27 */

/**
  * Função Principal
  * @param w - O elemento que será aplicado (normalmente this).
  * @param e - O evento para capturar a tecla e cancelar o backspace.
  * @param m - A máscara a ser aplicada.
  * @param r - Se a máscara deve ser aplicada da direita para a esquerda. Veja Exemplos.
  * @param a -
  * @returns null
  */
function maskIt(w,e,m,r,a){

    // Cancela se o evento for Backspace
    if (!e) var e = window.event
    if (e.keyCode) code = e.keyCode;
    else if (e.which) code = e.which;

    // Variáveis da função
    var txt  = (!r) ? w.value.replace(/[^\d]+/gi,'') : w.value.replace(/[^\d]+/gi,'').reverse();
    var mask = (!r) ? m : m.reverse();
    var pre  = (a ) ? a.pre : "";
    var pos  = (a ) ? a.pos : "";
    var ret  = "";

    if(code == 9 || code == 8 || txt.length == mask.replace(/[^#]+/g,'').length) return false;

    // Loop na máscara para aplicar os caracteres
    for(var x=0,y=0, z=mask.length;x<z && y<txt.length;){
        if(mask.charAt(x)!='#'){
            ret += mask.charAt(x); x++;
        } else{
            ret += txt.charAt(y); y++; x++;
        }
    }

    // Retorno da função
    ret = (!r) ? ret : ret.reverse()
    w.value = pre+ret+pos;
}

// Novo método para o objeto 'String'
String.prototype.reverse = function(){
    return this.split('').reverse().join('');
};

function ValidarCPF(Objcpf){
    var cpf = Objcpf.value;
    exp = /\.|\-/g
    cpf = cpf.toString().replace( exp, "" );
    if (cpf == "00000000000" ||
		cpf == "11111111111" ||
		cpf == "22222222222" ||
		cpf == "33333333333" ||
		cpf == "44444444444" ||
		cpf == "55555555555" ||
		cpf == "66666666666" ||
		cpf == "77777777777" ||
		cpf == "88888888888" ||
		cpf == "99999999999") {

		alert('CPF Invalido!');
		return false;
	}
	var digitoDigitado = eval(cpf.charAt(9)+cpf.charAt(10));
    var soma1=0, soma2=0;
    var vlr =11;

    for(i=0;i<9;i++){
        soma1+=eval(cpf.charAt(i)*(vlr-1));
        soma2+=eval(cpf.charAt(i)*vlr);
        vlr--;
    }
    soma1 = (((soma1*10)%11)==10 ? 0:((soma1*10)%11));
    soma2=(((soma2+(2*soma1))*10)%11);

    var digitoGerado=(soma1*10)+soma2;
    if(digitoGerado!=digitoDigitado){
        alert('CPF Invalido!');
		return false;
	}

	alert('CPF valido!');
	return true;
}

//valida o CNPJ digitado
function ValidarCNPJ(ObjCnpj){
    var cnpj = ObjCnpj.value;
    var valida = new Array(6,5,4,3,2,9,8,7,6,5,4,3,2);
    var dig1= new Number;
    var dig2= new Number;

    exp = /\.|\-|\//g
    cnpj = cnpj.toString().replace( exp, "" );
    var digito = new Number(eval(cnpj.charAt(12)+cnpj.charAt(13)));

    for(i = 0; i<valida.length; i++){
        dig1 += (i>0? (cnpj.charAt(i-1)*valida[i]):0);
        dig2 += cnpj.charAt(i)*valida[i];
    }
    dig1 = (((dig1%11)<2)? 0:(11-(dig1%11)));
    dig2 = (((dig2%11)<2)? 0:(11-(dig2%11)));

    if(((dig1*10)+dig2) != digito){
		alert('CNPJ Invalido!');
		return false;
	}

	alert('CNPJ valido!');
	return true;
}

function compararDatas(data_inicial, data_final){
 	//Verifica se a data inicial ? maior que a data final
 	var data_inicial = document.getElementById(data_inicial);
 	var data_final   = document.getElementById(data_final);
    str_data_inicial = data_inicial.value;
 	str_data_final   = data_final.value;
 	dia_inicial      = data_inicial.value.substr(0,2);
 	dia_final        = data_final.value.substr(0,2);
 	mes_inicial      = data_inicial.value.substr(3,2);
 	mes_final        = data_final.value.substr(3,2);
 	ano_inicial      = data_inicial.value.substr(6,4);
 	ano_final        = data_final.value.substr(6,4);
 	if(ano_inicial > ano_final){
 		return false
 	}else{
        if(ano_inicial == ano_final){
            if(mes_inicial > mes_final){
                data_final.focus();
                return false
            }else{
                if(mes_inicial == mes_final){
                    if(dia_inicial > dia_final){
                        alert(msg);
                        data_final.focus();
                        return false
                    }
                }
            }
        }
 	}
 }

 // FUNCAO QUE NAO PERMITE A DIGITACAO DE ALGUNS CARACTERES ESPECIAIS
function semcaracteresespeciais(caracter){
	var tecla = "";
    if (document.all) // Internet Explorer
		tecla = event.keyCode;
	else if (document.layers) // Nestcape
		tecla = caracter.which;
	else if (document.getElementById) //FireFox
		tecla = caracter.which;

    //tecla == 35 -> #
	//tecla == 34 -> "
	//tecla == 39 -> '
	//tecla == 60 -> <
	//tecla == 62 -> >

	if ((tecla == 35) || (tecla == 34) || (tecla == 39) || (tecla == 60) || (tecla == 62)){
		return false;
	}
	else{
		return true;
	}
}

// funcao que retorna a tecla digitada
// onkeypress="return mostraTecla(event);
function mostraTecla(event){
    var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;
    alert (keyCode);
}