/* ####################################################
Programador : Rafael Mann
Data: 29/10/2004
########################################################*/
function fncCheckRadioPreenchido(str_NameForm, str_NomeCampo, str_Mensagem) {
	var obj_Input = document.getElementsByTagName("input");
	var int_IndiceArr = 0;
	var bln_CheckboxSelecionado = false;

	for (int_IndiceArr = 0; int_IndiceArr < obj_Input.length; int_IndiceArr++) {		
		if (obj_Input[int_IndiceArr].name == str_NameForm) {
			if (obj_Input[int_IndiceArr].checked == true) {
				bln_CheckboxSelecionado = true;
			}
		}
	}
	
	if (bln_CheckboxSelecionado == false) {	
		alert(str_Mensagem + " " + str_NomeCampo + "");
		return(false);
	}
	else {
		return(true);
	}
}

function fncCheckboxPreenchido(str_NameForm, str_NomeCampo, str_Mensagem) {
	var conta = 0;
	if (typeof(str_NameForm.length)!="undefined"){
		for (var i=0; i<str_NameForm.length; i++) {
			if (str_NameForm[i].checked) {
				if (str_NameForm[i].value != '') {conta++}
			}
		}
	}else{
		if (str_NameForm.checked) {conta++;}
	}
	if (conta == 0) {
		alert(str_Mensagem);
		return false;		
	} else {
		return true;
	}
}

function ValidaVazio(campo,txt) {
	if ((campo.value=="") || (campo.value.length==0) || (campo.value=="Null")) {
		alert('Você esqueceu de preencher o campo '+txt+'!');
		campo.focus();
		return false;
	} else return true;
}

function ValidaComboBox(campo,txt) {
	if ((campo[campo.selectedIndex].value == "") || (campo[campo.selectedIndex].value == "0"))  {
		alert('Você esqueceu de selecionar o campo '+txt+'!');
		campo.focus();
		return false;	
		} else return true;
}

function ValidaMax(campo,txt,limite) {
	if (campo.value.length > limite) {
		alert('Você excedeu o tamanho do campo '+txt+'!');
		campo.focus();
		return false;
	} else return true;
}

function ValidaSelect(elemento, texto, tipo) {
// o Tipo define o que não é esperado
	
	if (elemento.value == tipo){
		alert(texto);
		elemento.focus();
		return false;
	}
  return true;
}

function testaCheck(campo, mensagem){	
	var conta = 0;
	if (typeof(campo.length)!="undefined"){
		for (var i=0; i<campo.length; i++) {
			if (campo[i].checked) {
				if (campo[i].value != '') {conta++}
			}
		}
	}else{
		if (campo.checked) {conta++;}
	}
	if (conta == 0) {
		//jalert(mensagem);
		return false;		
	} else {
		return true;
	}
}

function testaEmail(txtInput) {
	email = txtInput.value;
	if (email == "") {
		return true;x
	} else {
  		if ((email.indexOf('@') == email.lastIndexOf('@')) &&	// só tem um @
  			(email.indexOf('@') > 0) &&							// existe @ e não é prim
  			(email.charAt(email.length-1) != '@') &&			// @ não é o último
  			(email.indexOf(' ') == -1) &&						// não existe espaços
  			(email.lastIndexOf('.') > email.indexOf('@')) &&	// existe . após @
  			(email.charAt(email.indexOf('@') + 1) != '.') &&	// sem . logo após @
  			(email.charAt(email.indexOf('@') - 1) != '.') &&	// sem . logo antes @
  			(email.indexOf('.') > 0) &&							// existe . e não é prim
			(email.charAt(email.length-1) != '.')) {			// . não é o último
				
			// verifica se não há pontos seguidos
			sub = email.substring(email.indexOf('.')+1, email.length);
			while (sub.indexOf('.') != -1) {
				if (sub.charAt(0) == '.') {
					alert("Formato de e-mail incorreto!");
					txtInput.focus();
					return false;
				} else {
					sub = sub.substring(sub.indexOf('.')+1, sub.length);
				}
			}
			return true;
			
		} else {
			alert("Formato de e-mail incorreto!");
			txtInput.focus();
			return false;
		}
	}
}

// #############################
// ##### VALIDAÇÃO DE DATA #####
// #############################
var diasMes = new Array(12);
diasMes[1] = 31;
diasMes[2] = 29;
diasMes[3] = 31;
diasMes[4] = 30;
diasMes[5] = 31;
diasMes[6] = 30;
diasMes[7] = 31;
diasMes[8] = 31;
diasMes[9] = 30;
diasMes[10] = 31;
diasMes[11] = 30;
diasMes[12] = 31;

function diasFevereiro (ano) {  
    return ( ((ano % 4 == 0) && ( (!(ano % 100 == 0)) || (ano % 400 == 0) ) ) ? 29 : 28 );
}

function dataValida(data) {
  var i;  
  if ((barra1 = data.value.indexOf('/')) < 1) {
	data.focus();
	alert('Data invalida');
  	return false;
  }
  if ((barra2 = data.value.substring(barra1+1, data.value.length).indexOf('/')) < 1) {
	data.focus();
	alert('Data invalida');
  	return false;
  }
  if (barra2+barra1+1 != data.value.lastIndexOf('/')) {
	data.focus();
	alert('Data invalida');
  	return false;
  }
  dia = data.value.substring(0,barra1);
  mes = data.value.substring(barra1+1, barra2+barra1+1);
  ano = data.value.substring(barra2+barra1+2, data.value.length);
  var dataTemp = dia + mes + ano;
  for (i = 0; i < dataTemp.length; i++) {   
        var ch = dataTemp.charAt(i);
        if ((ch < "0" || ch > "9")) {
			data.focus();
			alert('Data invalida');
		  	return false;
		}
  }
  if ((mes == 2) && (dia > diasFevereiro(ano))) {
	data.focus();
	alert('Data invalida');
  	return false;
  }
  if ((dia>diasMes[parseFloat(mes)]) || (dia<1) || (mes<1) || (mes>12) || (ano<1900) || (ano>2078)) {
	data.focus();
	alert('Data invalida');
  	return false;
  }
  return true;
}

function ValidaNumero(campo,msg) {
	//Função para verificar se o um valor digitado é número ou não
	numero = campo.value
	var i;
	var letra = 0; //integer para verificar quantas letras achou
	for (i = 0; i < numero.length; i++) {   
		var ch = numero.charAt(i);
		if ((ch < "0" || ch > "9")) {
			letra = letra + 1;
		}
	}
	if (letra == 0 ) {
		return true;
	} else {
		alert(msg);
		campo.focus();
		return false;
	}
}

function testaCPF(cpf, cpf2, campo){
	valorTotal = 0;
	digitos = "";
	for(i = 0; i < 9; i++){
		valorTotal += parseInt(cpf.substring(i, i+1))*(10-i);
	}	
	valorTotal = valorTotal%11;
	if(valorTotal < 2)
		valorTotal = 0;
	else
		valorTotal = 11 - valorTotal;
	digitos += valorTotal.toString();
	valorTotal = 0;
	cpfInc = cpf+digitos;
	for(i = 0; i < 10; i++){
		valorTotal += parseInt(cpfInc.substring(i, i+1))*(11-i);
	}	
	valorTotal = valorTotal%11;
	if(valorTotal < 2)
		valorTotal = 0;
	else
		valorTotal = 11 - valorTotal;

	digitos += valorTotal.toString();
	if(digitos == cpf2) {
		return true;
	} else {
		alert("CPF Invalido!");
		campo.value="";
		return false;
	}
}


function insRow(tabela, campo, texto, posicao, campo1, campo2, campo3) {
	/*
	campo1 = Curso
	campo2 = Instituição
	campo3 = Ano
	*/
	
	var adiciona;
	var boolAdiciona = false;
	switch (texto) {
		case "Idiomas":
			if (contaIdiomas+1 <= 3) {
				campo.value = ++contaIdiomas;
				boolAdiciona = true;
				adiciona = 	'<table width="385" border="0" align="center" cellpadding="0" cellspacing="0" class="TextoPreto10">' +
							'        <tr><td>&nbsp;</td><td align="right" width="68">Outro:</td><td>&nbsp;</td>' +
							'          <td><input name="Idiomas_Outro' + contaIdiomas + '" type="text" class="CamposText" size="15" maxlength="60" value="' + campo1 + '">' +
							'                  <select name="Idiomas_Nivel' + contaIdiomas + '" class="CamposText">' +
							'                    <option value="">selecione</option>' +
							'                    <option value="Nivel Básico">Nivel Básico</option>' +
							'                    <option value="Nivel Intermediário">Nivel Intermediário</option>' +
							'                    <option value="Nivel Técnico">Nivel Técnico</option>' +
							'                    <option value="Nivel Avançado">Nivel Avançado</option></td></tr>' +
							'        <tr><td colspan="4"><img src="img/1_pix.gif" width="10" height="5"></td></tr></table>'
			} else {
				alert("Máximo 3 idiomas!")
			}
			break;
		case "CursoAperfeic":
			contaCursoAperfeic = campo.value;
			if (parseInt(contaCursoAperfeic)+1 <= 3) {
				campo.value = ++contaCursoAperfeic;
				boolAdiciona = true;
				adiciona = 	'<table width="100%" border="0" align="center" cellpadding="0" cellspacing="0" class="TextoPreto10">' +
							'  <tr valign="top"><td colspan="6"><img src="img/1_pix.gif" width="10" height="5"></td></tr>' +
							'  <tr valign="top"><td>&nbsp;</td><td width="122" align="left">Curso:<br><input name="Curso' + contaCursoAperfeic + '" type="text" class="CamposText" size="21" maxlength="50" value="' + campo1 + '"></td>' +
							'  <td>&nbsp;</td><td width="122" align="left">Instituição:<br><input name="Instituicao' + contaCursoAperfeic + '" type="text" class="CamposText" size="21" maxlength="50" value="' + campo2 + '"></td>' +
							'  <td>&nbsp;</td><td width="122" align="left">Período: <br><input name="Periodo' + contaCursoAperfeic + '"  value="' + campo3 + '" type="text" class="CamposText" size="21" maxlength="50"></td></tr>' +
							'  <tr valign="top"><td colspan="6"><img src="img/1_pix.gif" width="10" height="10"></td></tr></table>'
			} else {
				alert("Máximo 3 cursos de aperfeiçoamento!")
			}
			break;
		
		case "EnsinoSuperior":
			contaFormacaoAcademica = campo.value;
			campo3 = replaceAll(campo3, "##", "'")
			campo3 = replaceAll(campo3, "@@@", parseInt(contaFormacaoAcademica) + 1)
			if (parseInt(contaFormacaoAcademica) +1 <= 3) {
				campo.value = ++contaFormacaoAcademica;
				boolAdiciona = true;
				adiciona =	'<table width="100%" border="0" align="left" cellpadding="0" cellspacing="0" class="TextoPreto10">' +
							'  <tr valign="top"><td>&nbsp;</td><td width="122" align="right">Situação:</td><td>&nbsp;</td>' +
							'    <td><select name="FormacaoAcademica_Escolaridade' + contaFormacaoAcademica + '" class="CamposText">' +
							'    <option>Selecione........................</option>' +
							'    <option value="Completo">Completo</option>' +
							'    <option value="Cursando">Cursando</option>' +
							'    <option value="Incompleto">Incompleto</option>' +
							'    </select></td></tr>' +
							'  <tr valign="top"><td colspan="4"><img src="img/1_pix.gif" width="10" height="5"></td></tr>' +
							'  <tr valign="top"><td>&nbsp;</td><td width="122" align="right">Curso:</td><td>&nbsp;</td><td>' + campo3 + '<br>' +
							'  <tr valign="top"><td colspan="4"><img src="img/1_pix.gif" width="10" height="5"></td></tr>' +
							'  <tr valign="top"><td>&nbsp;</td><td width="122" align="right">Institui&ccedil;&atilde;o:</td><td>&nbsp;</td><td><input name="FormacaoAcademica_Instituicao' + contaFormacaoAcademica + '"  value="' + campo2 + '" type="text" class="CamposText" size="50" maxlength="70"></td></tr>' +
							'  <tr valign="top"><td colspan="4"><img src="img/1_pix.gif" width="10" height="5"></td></tr>' +
							'  <tr valign="top"><td>&nbsp;</td><td align="right">Ano de conclus&atilde;o: </td><td>&nbsp;</td><td><input name="FormacaoAcademica_Ano' + contaFormacaoAcademica + '"  type="text" class="CamposText" size="10" maxlength="4"></td></tr>' +
							'  <tr valign="top"><td colspan="4"><img src="img/1_pix.gif" width="10" height="10"></td></tr></table>'
			} else {
				alert("Máximo 3 cursos de graduação!")
			}
			break;
		
		case "PosGraduacao":
			contaPosGraduacao = campo.value;
			if (parseInt(contaPosGraduacao) +1 <= 3) {
				campo.value = ++contaPosGraduacao;
				boolAdiciona = true;
				adiciona =	'<table width="100%" border="0" align="left" cellpadding="0" cellspacing="0" class="TextoPreto10">' +
							'  <tr valign="top"><td>&nbsp;</td><td width="122" align="right">Situação:</td><td>&nbsp;</td>' +
							'    <td><select name="PosGraduacao_Escolaridade' + contaPosGraduacao + '" class="CamposText">' +
							'    <option>Selecione........................</option>' +
							'    <option value="Completo">Completo</option>' +
							'    <option value="Cursando">Cursando</option>' +
							'    <option value="Incompleto">Incompleto</option>' +
							'    </select></td></tr>' +
							'  <tr valign="top"><td colspan="4"><img src="img/1_pix.gif" width="10" height="5"></td></tr>' +
							'  <tr valign="top"><td>&nbsp;</td><td width="122" align="right">Curso:</td><td>&nbsp;</td><td><input name="PosGraduacao_Curso' + contaPosGraduacao + '"  value="' + campo1 + '" type="text" class="CamposText" size="50" maxlength="70"></td></tr>' +
							'  <tr valign="top"><td colspan="4"><img src="img/1_pix.gif" width="10" height="5"></td></tr>' +
							'  <tr valign="top"><td>&nbsp;</td><td width="122" align="right">Institui&ccedil;&atilde;o:</td><td>&nbsp;</td><td><input name="PosGraduacao_Instituicao' + contaPosGraduacao + '"  value="' + campo2 + '" type="text" class="CamposText" size="50" maxlength="70"></td></tr>' +
							'  <tr valign="top"><td colspan="4"><img src="img/1_pix.gif" width="10" height="5"></td></tr>' +
							'  <tr valign="top"><td>&nbsp;</td><td align="right">Ano de conclus&atilde;o: </td><td>&nbsp;</td><td><input name="PosGraduacao_Ano' + contaPosGraduacao + '"  value="' + campo3 + '" type="text" class="CamposText" size="10" maxlength="4"></td></tr>' +
							'  <tr valign="top"><td colspan="4"><img src="img/1_pix.gif" width="10" height="10"></td></tr></table>'
			} else {
				alert("Máximo 3 cursos de Pós-Graduação!")
			}
			break;
			
		case "Mestrado":
			contaMestrado = campo.value;
			if (parseInt(contaMestrado)+1 <= 3) {
				campo.value = ++contaMestrado;
				boolAdiciona = true;
				adiciona =	'<table width="100%" border="0" align="left" cellpadding="0" cellspacing="0" class="TextoPreto10">' +
							'  <tr valign="top"><td>&nbsp;</td><td width="122" align="right">Situação:</td><td>&nbsp;</td>' +
							'    <td><select name="Mestrado_Escolaridade' + contaMestrado + '" class="CamposText">' +
							'    <option>Selecione........................</option>' +
							'    <option value="Completo">Completo</option>' +
							'    <option value="Cursando">Cursando</option>' +
							'    <option value="Incompleto">Incompleto</option>' +
							'    </select></td></tr>' +
							'  <tr valign="top"><td colspan="4"><img src="img/1_pix.gif" width="10" height="5"></td></tr>' +
							'  <tr valign="top"><td>&nbsp;</td><td width="122" align="right">Curso:</td><td>&nbsp;</td><td><input name="Mestrado_Curso' + contaMestrado + '"  value="' + campo1 + '" type="text" class="CamposText" size="50" maxlength="70"></td></tr>' +
							'  <tr valign="top"><td colspan="4"><img src="img/1_pix.gif" width="10" height="5"></td></tr>' +
							'  <tr valign="top"><td>&nbsp;</td><td width="122" align="right">Institui&ccedil;&atilde;o:</td><td>&nbsp;</td><td><input name="Mestrado_Instituicao' + contaMestrado + '"  value="' + campo2 + '" type="text" class="CamposText" size="50" maxlength="70"></td></tr>' +
							'  <tr valign="top"><td colspan="4"><img src="img/1_pix.gif" width="10" height="5"></td></tr>' +
							'  <tr valign="top"><td>&nbsp;</td><td align="right">Ano de conclus&atilde;o: </td><td>&nbsp;</td><td><input name="Mestrado_Ano' + contaMestrado + '"  value="' + campo3 + '" type="text" class="CamposText" size="10" maxlength="4"></td></tr>' +
							'  <tr valign="top"><td colspan="4"><img src="img/1_pix.gif" width="10" height="10"></td></tr></table>'
			} else {
				alert("Máximo 3 cursos de Mestrado!")
			}
			break;
			
		case "Doutorado":
			contaDoutorado = campo.value;
			if (parseInt(contaDoutorado)+1 <= 3) {
				campo.value = ++contaDoutorado;
				boolAdiciona = true;
				adiciona =	'<table width="100%" border="0" align="left" cellpadding="0" cellspacing="0" class="TextoPreto10">' +
							'  <tr valign="top"><td>&nbsp;</td><td width="122" align="right">Situação:</td><td>&nbsp;</td>' +
							'    <td><select name="Doutorado_Escolaridade' + contaDoutorado + '" class="CamposText">' +
							'    <option>Selecione........................</option>' +
							'    <option value="Completo">Completo</option>' +
							'    <option value="Cursando">Cursando</option>' +
							'    <option value="Incompleto">Incompleto</option>' +
							'    </select></td></tr>' +
							'  <tr valign="top"><td colspan="4"><img src="img/1_pix.gif" width="10" height="5"></td></tr>' +
							'  <tr valign="top"><td>&nbsp;</td><td width="122" align="right">Curso:</td><td>&nbsp;</td><td><input name="Doutorado_Curso' + contaDoutorado + '"  value="' + campo1 + '" type="text" class="CamposText" size="50" maxlength="70"></td></tr>' +
							'  <tr valign="top"><td colspan="4"><img src="img/1_pix.gif" width="10" height="5"></td></tr>' +
							'  <tr valign="top"><td>&nbsp;</td><td width="122" align="right">Institui&ccedil;&atilde;o:</td><td>&nbsp;</td><td><input name="Doutorado_Instituicao' + contaDoutorado + '"  value="' + campo2 + '" type="text" class="CamposText" size="50" maxlength="70"></td></tr>' +
							'  <tr valign="top"><td colspan="4"><img src="img/1_pix.gif" width="10" height="5"></td></tr>' +
							'  <tr valign="top"><td>&nbsp;</td><td align="right">Ano de conclus&atilde;o: </td><td>&nbsp;</td><td><input name="Doutorado_Ano' + contaDoutorado + '"  value="' + campo3 + '" type="text" class="CamposText" size="10" maxlength="4"></td></tr>' +
							'  <tr valign="top"><td colspan="4"><img src="img/1_pix.gif" width="10" height="10"></td></tr></table>'
			} else {
				alert("Máximo 3 cursos de Doutorado!")
			}
			break;
	}
	if (boolAdiciona) {
		//alert(campo.value);	
		var x = tabela.insertRow(parseInt(campo.value) + 1);
		var y = x.insertCell(0);
		y.innerHTML = adiciona;
	}
}

function delRow(tabela, campo, texto, posicao, qtde) {
	
	if ((tabela.rows.length)>qtde) {
		var i=0;
		switch (texto) {
			case "Idiomas":
				contaIdiomas--;
				campo.value = contaIdiomas;
				break;
			case "CursoAperfeic":
				contaCursoAperfeic = campo.value;
				if (parseInt(contaCursoAperfeic) > 1) {
					contaCursoAperfeic--;
					campo.value = contaCursoAperfeic;
				} else {
					i=1;
				}
				break;
			case "EnsinoSuperior":
				contaFormacaoAcademica = campo.value;
				if (parseInt(contaFormacaoAcademica) > 1) {
					contaFormacaoAcademica--;
					campo.value = contaFormacaoAcademica;
				} else {
					i=1;
				}
				break;
			case "PosGraduacao":
				contaPosGraduacao = campo.value;
				if (parseInt(contaPosGraduacao) > 1) {
					contaPosGraduacao--;
					campo.value = contaPosGraduacao;
				} else {
					i=1;
				}
				break;
			case "Mestrado":
				contaMestrado = campo.value;
				if (parseInt(contaMestrado) > 1) {
					contaMestrado--;
					campo.value = contaMestrado;
				} else {
					i=1;
				}
				break;
			case "Doutorado":
				contaDoutorado = campo.value;
				if (parseInt(contaDoutorado) > 1) {
					contaDoutorado--;
					campo.value = contaDoutorado;
				} else {
					i=1;
				}
				break;
		}
		if (i!=1) {
			tabela.deleteRow(parseInt(campo.value) + 2);
		}
	}
}

function limpaNome(v) {
	if (v.value == 'Nome do amigo') v.value='';
}

function limpaMail(v) {
	if (v.value == 'E-mail do amigo') v.value='';
}

function Mascara(tipo, campo, teclaPress) {
	if (window.event)
	{
		var tecla = teclaPress.keyCode;
	} else {
		tecla = teclaPress.which;
	}
 
	var s = new String(campo.value);
	// Remove todos os caracteres à seguir: ( ) / - . e espaço, para tratar a string denovo.
	s = s.replace(/(\.|\(|\)|\/|\-| )+/g,'');
 
	tam = s.length + 1;
 
	if ( tecla != 9 && tecla != 8 ) {
		switch (tipo)
		{
		case 'CPF' :
			if (tam > 3 && tam < 7)
				campo.value = s.substr(0,3) + '.' + s.substr(3, tam);
			if (tam >= 7 && tam < 10)
				campo.value = s.substr(0,3) + '.' + s.substr(3,3) + '.' + s.substr(6,tam-6);
			if (tam >= 10 && tam < 12)
				campo.value = s.substr(0,3) + '.' + s.substr(3,3) + '.' + s.substr(6,3) + '-' + s.substr(9,tam-9);
		break;
 
		case 'CNPJ' :
 
			if (tam > 2 && tam < 6)
				campo.value = s.substr(0,2) + '.' + s.substr(2, tam);
			if (tam >= 6 && tam < 9)
				campo.value = s.substr(0,2) + '.' + s.substr(2,3) + '.' + s.substr(5,tam-5);
			if (tam >= 9 && tam < 13)
				campo.value = s.substr(0,2) + '.' + s.substr(2,3) + '.' + s.substr(5,3) + '/' + s.substr(8,tam-8);
			if (tam >= 13 && tam < 15)
				campo.value = s.substr(0,2) + '.' + s.substr(2,3) + '.' + s.substr(5,3) + '/' + s.substr(8,4)+ '-' + s.substr(12,tam-12);
		break;
 
		case 'TEL' :
			if (tam > 2 && tam < 4)
				campo.value = '(' + s.substr(0,2) + ') ' + s.substr(2,tam);
			if (tam >= 7 && tam < 11)
				campo.value = '(' + s.substr(0,2) + ') ' + s.substr(2,4) + '-' + s.substr(6,tam-6);
		break;
 
		case 'DATA' :
			if (tam > 2 && tam < 4)
				campo.value = s.substr(0,2) + '/' + s.substr(2, tam);
			if (tam > 4 && tam < 11)
				campo.value = s.substr(0,2) + '/' + s.substr(2,2) + '/' + s.substr(4,tam-4);
		break;
		}
	}
}

function checkadata(campo){
//	window.onerror=null // for all other strange errors
	var err=0
	a=campo.value
	//if (a.length != 10) err=1
	if (a.length >= 1) {
		d = a.substring(0, 2)// day
		b = a.substring(3, 5)// month
		f = a.substring(6, 10)// year
	
		//basic error checking
		if (b<1 || b>12) err = 1
		if (d<1 || d>31) err = 1
		if (f<0 || f>9999) err = 1
		
		//advanced error checking
	
		// months with 30 days
		if (b==4 || b==6 || b==9 || b==11){
			if (d==31) err=1
		}
	
		// february, leap year
		if (b==2){
			// feb
			var g=parseInt(f/8)
			if (isNaN(g)) {
				err=1
			}
	
			if (d>29) err=1
			if (d==29 && ((f/4)!=parseInt(f/8))) err=1
		}
	}

	if (err==1){
		alert('Data invalida!');
		campo.focus();
		campo.value="";
	}
}

function somenteNumeros(evt)
{
	var key_code = evt.keyCode  ? evt.keyCode  :
				   evt.charCode ? evt.charCode :
				   evt.which    ? evt.which    : void 0;

	// Habilita teclas <DEL>, <TAB>, <ENTER>, <ESC> e <BACKSPACE>
	if (key_code == 8  ||  key_code == 9  ||  key_code == 13  ||  key_code == 27  ||  key_code == 46)
	{
		return true;
	}
	// Habilita números de 0 a 9
	else if ((key_code >= 48)  &&  (key_code <= 57))
	{
		return true
	}	

	return false;
}

function replaceAll(string, token, newtoken) {
	while (string.indexOf(token) != -1) {
 		string = string.replace(token, newtoken);
	}
	return string;
}
