	function isIE(){

		return (window.navigator.appName).indexOf('Explorer') > 0;
	}
	
	function somenteNumeros(event) {	
		if(isIE()){
			if (!(event.keyCode >= 48 && event.keyCode <= 57)) {
	  			return false;
	  		}
		}else{
		
			if (event.which == 8) {
				return true;
			}
			
			if (!(event.which >= 48 && event.which <= 57)) {
	  			return false;
	  		}
		}
    }
    
		function mascara_data(dataField){ 
            
              dataField.maxLength=10;
              var mydata = dataField.value; 
              
              if (mydata.length >= 2 && mydata.length < 5){
                  mydata = mydata.substring(0,2) + '/' + mydata.substring(3, mydata.length);
                  dataField.value = mydata; 
              } else if (mydata.length >= 5 && mydata.length < 10){ 
                  mydata = mydata.substring(0,2) + '/' + mydata.substring(3,5) + '/' + mydata.substring(6, mydata.length);
                  dataField.value = mydata; 
              }else if (mydata.length == 10){ 
              	  dataField.value = mydata.substring(0,2) + '/' + mydata.substring(3,5) + '/' + mydata.substring(6,10);	  
                  verifica_data(dataField); 
              } 
        } 
          
        function limpa_data (dataField) {
          	
          	if(dataField.value.length < 10)
          		dataField.value = '';
          	
          }
           
        function verifica_data (dataField) { 

            dia = (dataField.value.substring(0,2)); 
            mes = (dataField.value.substring(3,5)); 
            ano = (dataField.value.substring(6,10)); 

			dataValida = true;            

			// verifica se os campos sao numericos e se possui 10 digitos
			if(isNaN(dia) || isNaN(mes) || isNaN(ano) || dataField.value.length < 10) {
				dataValida = false;
			}
			// verifica range da data
            else if ((dia < 1)||(dia < 1 || dia > 30) && (mes == 4 || mes == 6 || mes == 9 || mes == 11 ) || dia > 31) { 
                dataValida = false;
            } 
            // verifica se o mes e valido 
            else if (mes < 1 || mes > 12 ) { 
                dataValida = false;
            } 
            // verifica se e ano bissexto 
            else if (mes == 2 && ( dia < 1 || dia > 29 || ( dia > 28 && (parseInt(ano / 4) != ano / 4)))) { 
                dataValida = false;
            }
    
            if (!dataValida) { 
                data_invalida(dataField); 
            } 
            
		}
          
        function data_invalida (dataField) {  
          
          	alert("Data inválida!"); 
          	dataField.value = "";
          	
        }
        
        
		function formata_dinheiro(objTextBox, SeparadorMilesimo, SeparadorDecimal, e, maxlenght){
			
			if (objTextBox.value.length >= maxlenght) {
//				objTextBox.value = objTextBox.value.substring(0, maxlimit);
				return;
			}
			
		    var sep = 0;
		    var key = '';
		    var i = j = 0;
		    var len = len2 = 0;
		    var strCheck = '0123456789';
		    var aux = aux2 = '';
		    var whichCode = (window.Event) ? e.which : e.keyCode;
		    if ((whichCode == 13) || (whichCode == 0) || (whichCode == 8))  {
		    	return true;
		    }
			
		    key = String.fromCharCode(whichCode); // Valor para o código da Chave
		    if (strCheck.indexOf(key) == -1) return false; // Chave inválida
		    len = objTextBox.value.length;
		    for(i = 0; i < len; i++)
		        if ((objTextBox.value.charAt(i) != '0') && (objTextBox.value.charAt(i) != SeparadorDecimal)) break;
		    aux = '';
		    for(; i < len; i++)
		        if (strCheck.indexOf(objTextBox.value.charAt(i))!=-1) aux += objTextBox.value.charAt(i);
		    aux += key;
		    len = aux.length;
		    if (len == 0) objTextBox.value = '';
		    if (len == 1) objTextBox.value = '0'+ SeparadorDecimal + '0' + aux;
		    if (len == 2) objTextBox.value = '0'+ SeparadorDecimal + aux;
		    if (len > 2) {
		        aux2 = '';
		        for (j = 0, i = len - 3; i >= 0; i--) {
		            if (j == 3) {
		                aux2 += SeparadorMilesimo;
		                j = 0;
		            }
		            aux2 += aux.charAt(i);
		            j++;
		        }
		        objTextBox.value = '';
		        len2 = aux2.length;
		        for (i = len2 - 1; i >= 0; i--)
		        objTextBox.value += aux2.charAt(i);
		        objTextBox.value += SeparadorDecimal + aux.substr(len - 2, len);
		    }
		    return false;
		}
		
		
		
/**
* Formata números de conta
*
*/
function formataConta(campo){
	//Verifica se o campo já está formatado
	var isFormatado = false;
	for(i = 0 ; i < campo.value.length ; i++){
		if(getTipo(campo.value.substr(i,1)) != 1){
			isFormatado = true;
		}
	}
	var limiteCampo = (isFormatado? 11 : 8);
	if(campo.value.length > limiteCampo){
		return aplicarMascara(campo,'999.999.999-9');
	}else{
		var retorno = aplicarMascara(campo,'9.999.999-9');
		campo.maxLength=12;
		return retorno;
	}
}

function formataTelefone(campo){

	campo.value = campo.value.replace('-','');
	if(campo.value.length > 7){
		return aplicarMascara(campo,'9999-9999');
	}else{
		var retorno = aplicarMascara(campo,'999-9999');
		campo.maxLength = 9; //permite a dgitação do 8o digito do telefone
		return retorno;
	}
}
		
/**
* Formata campos do tipo CNPJ/CPF
*
*/
function formataCNPJCPF(campo){
	//Verifica se o campo já está formatado
	var isFormatado = false;
	for(i = 0 ; i < campo.value.length ; i++){
		if(getTipo(campo.value.substr(i,1)) != 1){
			isFormatado = true;
		}
	}
	var limiteCampo = (isFormatado? 14 : 13);
	if(campo.value.length > limiteCampo){
		return aplicarMascara(campo,'99.999.999/9999-99');
	}else{
		// Correcoes do script aplicar mascara. A Mascara do CPF
		// não contem /, portanto devemos retirá-la antes.
		campo.value = campo.value.replace('http://10.40.15.39:7110/','');
		var retorno = aplicarMascara(campo,'999.999.999-99');
		// Corrige o tamanho maximo do campo para 15
		// para poder haver a conversao para cnpj
		campo.maxLength=15;
		return retorno;
	}
}

function formataCPF(campo){
	return aplicarMascara(campo,'999.999.999-99');
}

function formataCNPJ(campo){
	return aplicarMascara(campo,'99.999.999/9999-99');
}

/**
* Aplica a mascara para o campo desejado.
* Detalhe : O formato da mascara e de livre escolha.
* 		A mascara deve ser composta pelo número 9 para desiginar algarismos numericos
* 		A mascara deve ser composta pela letra X para desiginar algarismos alfanumericos
* Exemplos: 9999-X,(99)9999-9999,999.999.999-99,XXXX-XXX
* Uso: no evento onkeyup="aplicarMascara(this,'9999-X')"
* Desev: Daniel Reghin
*/
function aplicarMascara(campo, mascara) {
	campo.maxLength = mascara.length;
	mascara = mascara.toUpperCase()
	var valor = campo.value;
	var resultado = "";
	// Remove todo caractere que nao seja numero e letras
	for(i = 0 ; i < mascara.length ; i++){
		if(mascara.substr(i,1) != 'X' && mascara.substr(i,1) != '9'){
			valor = valor.replace(mascara.substr(i,1),'');
		}
	}
	// Valor contem os dados em branco
	var iValor = 0;
	for(i = 0 ; i < mascara.length; i++){
		var itemMascara = mascara.substr(i,1);
		var itemValor = valor.substr(iValor,1);
		if(itemValor != ''){
			if(itemMascara != 'X' && itemMascara != '9'){
				// Se a mascara nao disser que e numero ou letra
				// Atualiza com o conteudo da mascara
				resultado = resultado + itemMascara;
				iValor--;
			}
			if(itemMascara == 'X'  && getTipo(itemValor)  == 2){
				// Codigo correto para o campo
				// Atualiza no resultado
				resultado = resultado + itemValor
				
			}else if(itemMascara == '9' && getTipo(itemValor) == 1){
				// Codigo correto para numero
				// Atualiza
				resultado = resultado + itemValor;
				//iValor++;
			}
			iValor++;
		}

	}
	if(campo.length < mascara.length){
		campoCompleto = false;
	}else{
		campoCompleto = true;
	}
	campo.value = resultado;
	return false;
}		

/**
* Qualifica uma string seguindo as seguintes regras abaixo
* Detalhe:   Retorna 1 para algarismos numericos
*		 Retorna 2 para algarismos alfanumericos
*		 Retorna 3 para caracteres de controel
*		 Retorna 0 para outros caracteres
* Será analisado a primeira posicao da string.
* Uso: funcao auxiliar para outras funcoes do projeto
* Desev: Daniel Reghin
*/
function getTipo(valor){	
	var codigo = valor.charCodeAt(0);
	// codigos numeros
	if(codigo >= 48 && codigo <= 57){
		return 1;
	}
	// Codigos alfanumericos
	if((codigo >= 97 && codigo <= 122) || (codigo >= 65 && codigo <= 90)){
		return 2;
	}
	// Codigos de controle
	if (codigo >= 0 && codigo < 48){
		return 3;
	}
	return 0;
}