//------------------------------------------------------------

function getTecla(event){
	if(navigator.appName.indexOf("Netscape")!= -1) {
		return event.which;
	}
	else {
		return event.keyCode;
	}
}

function getChar(event){
	if(navigator.appName.indexOf("Netscape")!= -1) {
		return String.fromCharCode(event.which);
	}
	else {
		return String.fromCharCode(event.keyCode);
	}
}

function valida_tecla(campo, event) {
	var BACKSPACE = 8;
	var key;
	var tecla;
	CheckTAB=true;
	if(navigator.appName.indexOf("Netscape")!= -1) {
		tecla = event.which;
	}
	else {
		tecla = event.keyCode;
	}
	key = String.fromCharCode(tecla);
	if (tecla == 13) {
		return false;
	}
	if (tecla == BACKSPACE) {
		return true;
	}
	return (isNum(key));
}

function isNum( caractere ) { 
	var strValidos = '0123456789'; 
	if (strValidos.indexOf(caractere) == -1) {
		return false; 
	}
	return true; 
}

//------------------------------------------------------------

function mascara_hora(el) {
	var myhour = '';
	myhour = myhour + el.value; 
	if (myhour.length == 2) {
		myhour = myhour + ':'; 
		el.value = myhour; 
	}
	/*
	if(myhour.length == 5) {
		if(!verifica_hora(myhour)) {
			el.value='';
		}
	}
	*/
}

function verifica_hora(hour) {
	situacao = 1;
	hora = (hour.substring(0,2)); 
	minutos = (hour.substring(3,5)); 
	ponto = (hour.substring(2,3));
	if(hora>24) {
		situacao = 0;
		if(minutos>60) {
			situacao = 0;
			if(ponto != ':') {
				situacao = 0;
				if(situacao==0) {
					alert('Hora inválida! Exemplo de hora válida: 09:30');
					hour.value='';
					return false;
				}
				return true;
			}
		}
	}
}

//------------------------------------------------------------

function mascara_data(el, event) {
	var mydata = el.value;

	if (mydata.length == 2 && getTecla(event) != 8) { //só colocar a / se nao foi backspace
		mydata = mydata + '/';
		el.value = mydata;
	}
	if (mydata.length == 5 && getTecla(event) != 8) {
		mydata = mydata + '/';
		el.value = mydata;
	}
	
	//o usuario pode ter digitado backspace e depois inserir um número... entao temos que colocar a barra
	var iBarras = 0;
	for(var i = 0; i < mydata.length; i++){
		if(mydata.charAt(i) == '/'){
			iBarras ++;
		}
	}
	
	if(mydata.length == 3 && iBarras == 0){
		mydata = mydata.substring(0,2) + '/' + mydata.substring(2);
		el.value = mydata;
	}
	if(mydata.length == 6 && iBarras == 1){
		mydata = mydata.substring(0,5) + '/' + mydata.substring(5);
		el.value = mydata;
	}	

	if (mydata.length == 10) {
		if(!verifica_data(mydata)) {
			el.value='';
		}
	}
}

function verifica_data(data) {
	var situacao = '';

	if (data.length == 0) {
		return true;
	}

	if (data.length != 10) {
		situacao = 'falsa';
	}
	else {
		mes = (data.substring(3,5));
	
		// verifica se o mes e valido
		if (mes < 1 || mes > 12 ) {
			situacao = 'falsa';
		}
		else {
			dia = (data.substring(0,2));

			// Verifica se o dia é válido para cada mês, exceto fevereiro.
			if (dia < 1 || dia > 31 || (dia > 30 && (mes == 4 || mes == 6 || mes == 9 || mes == 11))) {
				situacao = 'falsa';
			}
		
			// Verifica se o dia é válido para o mês de fevereiro.
			if (mes == 2 && (dia < 1 || dia > 29 || (dia > 28 && (parseInt(ano/4) != ano/4)))) {
				situacao = 'falsa';
			}
		}
	}

	if (situacao == 'falsa') {
		alert('Data inválida!');
		return false;
	}

	return true;
}

//------------------------------------------------------------

function mascara_cpf(el) {
	var mydata = '';
	mydata = mydata + el.value;
	if (mydata.length == 3) {
		mydata = mydata + '.';
		el.value = mydata;
	}
	if (mydata.length == 7) {
		mydata = mydata + '.';
		el.value = mydata;
	}
	if (mydata.length == 11) {
		mydata = mydata + '-';
		el.value = mydata;
	}
}

//------------------------------------------------------------

function mascara_cep(el) {
	var mydata = '';
	mydata = mydata + el.value;
	if (mydata.length == 5) {
		mydata = mydata + '-';
		el.value = mydata;
	}
}

//------------------------------------------------------------

function mascara_cnpj(el) {
	var mydata = '';
	mydata = mydata + el.value;
	if (mydata.length == 3) {
		mydata = mydata + '.';
		el.value = mydata;
	}
	if (mydata.length == 7) {
		mydata = mydata + '.';
		el.value = mydata;
	}
	if (mydata.length == 11) {
		mydata = mydata + '/';
		el.value = mydata;
	}
	if (mydata.length == 16) {
		mydata = mydata + '-';
		el.value = mydata;
	}
}

function formata_cnpj (numCICEl) {
	numCIC = String(ApenasNum(numCICEl.value));
	switch (numCIC.length) {
		case 15 :
			numCICEl.value = numCIC.substring(0,3) + "." + numCIC.substring(3,6) + "." + numCIC.substring(6,9) + "/" + numCIC.substring(9,13) + "-" + numCIC.substring(13,15);
			return;
		case 0:
			return;
		default : 
			alert("Tamanho incorreto do CNPJ. O CNPJ deve conter 15 dígitos");
			numCICEl.focus();
			return;
	}
}

//------------------------------------------------------------

function mascara_float(campo, teclapres) {
	var tecla = 0;
    if(navigator.appName.indexOf("Netscape")!= -1) {
   		tecla= teclapres.which;
   	}
    else {
		tecla = teclapres.keyCode;
	}
	/*
	if(tecla == 190 || tecla == 110) {
		//alert(tecla);
		campo.value = campo.value + ',';
		return false;
	}
	*/

	// Falta o caractere ',' (vírgula) do teclado numérico.
	if (  (tecla == 109 && campo.value == '') || (tecla == 189 && campo.value == '') // tecla '-' (só é possivel se for a primeira posicao)
			|| (tecla >= 48 && tecla <= 57) || (tecla >= 96 && tecla <= 105)
	 		|| tecla == 110 || tecla == 188 || tecla == 190
	  		|| tecla == 8 || tecla == 9 || tecla == 13
	    	|| tecla == 37 || tecla == 39
	    	|| tecla == 45 || tecla == 46 || tecla == 35 || tecla == 36
		    || (tecla == 67 || tecla == 86 && teclapres.ctrlKey)) {
		if(tecla == 188){// não pode inserir duas virgulas (TODO colocar a condicao da virgula do teclado numerico)
			return campo.value.indexOf(',') < 0;
		}
		return true;
	}

	return false; 
}

//------------------------------------------------------------

function mascara_inscricaoestadual(el) {
	var mydata = '';
	mydata = mydata + el.value;
	if (mydata.length == 13) {
		mydata = mydata + '-';
		el.value = mydata;
	}
}
//------------------------------------------------------------

function mascara_integer(campo, teclapres) {
	var tecla = 0;
    if(navigator.appName.indexOf("Netscape")!= -1) {
   		tecla= teclapres.which;
   	}
    else {
		tecla = teclapres.keyCode;
	}

	// Falta o caractere ',' (vírgula) do teclado numérico.
	if ( (tecla == 109 && campo.value == '') || (tecla == 189 && campo.value == '') // tecla '-' (só é possivel se for a primeira posicao)
		  ||(tecla >= 48 && tecla <= 57) || (tecla >= 96 && tecla <= 105)
	      || tecla == 8 || tecla == 9 || tecla == 13
	      || tecla == 37 || tecla == 39
	      || tecla == 45 || tecla == 46 || tecla == 35 || tecla == 36
	      || ((tecla == 67 || tecla == 86) && teclapres.ctrlKey)) {
		return true; 
	}

	return false; 
}
	
//------------------------------------------------------------

function formata_money(campo, teclapres) {
	if(navigator.appName.indexOf("Netscape")!= -1) {
		var tecla= teclapres.which;
	}
    else {
		var tecla = teclapres.keyCode;
	}

	tammax = 13;
	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 (tecla == 188 || tecla == 190 || tecla == 110 || tecla == 108) {
		return false;
	}

	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) {
			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) ;}
	//	}
	}
	
	
	//verifica a tecla
	if ( (tecla == 109 && campo.value == '') || (tecla == 189 && campo.value == '') // tecla '-' (só é possivel se for a primeira posicao)
		  ||(tecla >= 48 && tecla <= 57) || (tecla >= 96 && tecla <= 105)
	      || tecla == 8 || tecla == 9 || tecla == 13
	      || tecla == 37 || tecla == 39
	      || tecla == 45 || tecla == 46 || tecla == 35 || tecla == 36
	      || ((tecla == 67 || tecla == 86) && teclapres.ctrlKey)) {
		return true; 
	}

	return false; 
}

//------------------------------------------------------------

function mascara_telefone(el) {
	var mydata = '';
	mydata = mydata + el.value;
	if (mydata.length == 1) {
		mydata = '(' + mydata;
		el.value = mydata;
	}
	if (mydata.length == 3) {
		mydata = mydata+') ';
		el.value = mydata;
	}
	if (mydata.length == 9) {
		mydata =  mydata + '-';
		el.value = mydata;
	}
}

//------------------------------------------------------------
