/*****************************************************************************
/* Utilização: onKeyDown="mascaraFone(this, event)"
/****************************************************************************/
function mascaraFone(objeto, tecla) {
	var validChar = "#48;#49;#50;#51;#52;#53;#54;#55;#56;#57;#96;#97;#98;#99;#100;#101;#102;#103;#104;#105;"; // Válidos
	validChar += "#8;#9;#13;#16;#27;#36;#46;"; // Controle
	/*	validChar += "#45;"; // Especiais para o campo */
	if (validChar.indexOf("#" + String(event.keyCode + ";")) == -1) {
	    event.returnValue = false;
	}
	vlrCampo = objeto.value;
	if	(tecla.keyCode != 8) {
		if 	(vlrCampo.length == 4) {
			vlrCampo += '-';
			objeto.value = vlrCampo;
		}
	}
	return true;
}

/*****************************************************************************
/* Utilização: onKeyDown="mascaraInt(this, event)"
/****************************************************************************/
function mascaraInt(objeto, tecla) {
	var validChar = "#48;#49;#50;#51;#52;#53;#54;#55;#56;#57;#96;#97;#98;#99;#100;#101;#102;#103;#104;#105;"; // Válidos
	validChar += "#8;#9;#13;#16;#27;#36;#46;"; // Controle
	/* validChar += "#45;"; // Especiais para o campo */
	if (validChar.indexOf("#" + String(event.keyCode + ";")) == -1) {
	    event.returnValue = false;
	}
	vlrCampo = objeto.value;
	return true;
}

/*****************************************************************************
/* Utilização: onKeyDown="mascaraCep(this, event)"
/****************************************************************************/
function mascaraCep(objeto, tecla) {
	var validChar = "#48;#49;#50;#51;#52;#53;#54;#55;#56;#57;#96;#97;#98;#99;#100;#101;#102;#103;#104;#105;"; // Válidos
	validChar += "#8;#9;#13;#16;#27;#36;#46;"; // Controle
	/* validChar += "#45;"; // Especiais para o campo */
	if (validChar.indexOf("#" + String(event.keyCode + ";")) == -1) {
	    event.returnValue = false;
	}
	vlrCampo = objeto.value;
	if	(tecla.keyCode != 8) {
		if 	(vlrCampo.length == 5) {
			vlrCampo += '-';
			objeto.value = vlrCampo;
		}
	}
	return true;
}

/*****************************************************************************
/* Utilização: onKeyDown="mascaraCPF(this, event)"
/****************************************************************************/
function mascaraCPF(objeto, tecla) {
	var validChar = "#48;#49;#50;#51;#52;#53;#54;#55;#56;#57;#96;#97;#98;#99;#100;#101;#102;#103;#104;#105;"; // Válidos
	validChar += "#8;#9;#13;#16;#27;#36;#46;"; // Controle
	/* validChar += "#45;"; // Especiais para o campo */
	if (validChar.indexOf("#" + String(event.keyCode + ";")) == -1) {
	    event.returnValue = false;
	}
	vlrCampo = objeto.value;
	if	(tecla.keyCode != 8) {
		if 	(vlrCampo.length == 3 || vlrCampo.length == 7) {
			vlrCampo += '.';
			objeto.value = vlrCampo;
		}
		if 	(vlrCampo.length == 11) {
			vlrCampo += '-';
			objeto.value = vlrCampo;
		}
	}
	return true;
}

/*****************************************************************************
/* Utilização: onKeyDown="mascaraCNPJ(this, event)"
/****************************************************************************/
function mascaraCNPJ(objeto, tecla) {
	var validChar =  "#48;#49;#50;#51;#52;#53;#54;#55;#56;#57;#96;#97;#98;#99;#100;#101;#102;#103;#104;#105;"; // Válidos
	validChar += "#8;#9;#13;#16;#27;#36;#46;"; // Controle
	/* validChar += "#45;"; // Especiais para o campo */
	if (validChar.indexOf("#" + String(event.keyCode + ";")) == -1) {
	    event.returnValue = false;
	}
	vlrCampo = objeto.value;
	if	(tecla.keyCode != 8) {
		if 	(vlrCampo.length == 2 || vlrCampo.length == 6) {
			vlrCampo += '.';
			objeto.value = vlrCampo;
		}
		if 	(vlrCampo.length == 10) {
			vlrCampo += '/';
			objeto.value = vlrCampo;
		}
		if 	(vlrCampo.length == 15) {
			vlrCampo += '-';
			objeto.value = vlrCampo;
		}
	}
	return true;
}

/*****************************************************************************
/* Utilização: onKeyDown="mascaraFloat(this, event)" onBlur="formataFloat(this)"
/****************************************************************************/
function mascaraFloat(objValor, tecla) {
	var ValidChar =  "#48;#49;#50;#51;#52;#53;#54;#55;#56;#57;#96;#97;#98;#99;#100;#101;#102;#103;#104;#105;#27;#13;#8;#9;";
	if (ValidChar.indexOf("#" + String(event.keyCode + ";")) == -1)
	    event.returnValue = false;
	if	(tecla.keyCode == 9 || tecla.keyCode == 13) {
		return true;
	}
	valor = objValor.value;
	if 	(valor.length == 2 && tecla.keyCode != 8) {
		valor = valor.replace(",","");
		valor = valor.replace(".","");
		valor = valor.substring(0,1)+','+valor.substring(1,2);
	}
	if 	(valor.length >= 4 && tecla.keyCode != 8) {
		valor = valor.replace(",","");
		valor = valor.substring(0,valor.length-1)+','+valor.substring(valor.length-1);
	}
	if 	(valor.length == 6 && tecla.keyCode != 8) {
		valor = valor.substring(0,1)+'.'+valor.substring(1);
	}
	if 	(valor.length >= 7 && valor.length < 10 && tecla.keyCode != 8) {
		valor = valor.replace(".","");
		valor = valor.substring(0,valor.length-5)+'.'+valor.substring(valor.length-5);
	}
	if 	(valor.length == 10 && tecla.keyCode != 8) {
		valor = valor.replace(".","");
		valor = valor.substring(0,valor.length-5)+'.'+valor.substring(valor.length-5);			
		valor = valor.substring(0,valor.length-9)+'.'+valor.substring(valor.length-9);			
	}
	if 	(valor.length > 10 && tecla.keyCode != 8) {
		valor = valor.replace(".","");
		valor = valor.replace(".","");
		valor = valor.substring(0,valor.length-5)+'.'+valor.substring(valor.length-5);			
		valor = valor.substring(0,valor.length-9)+'.'+valor.substring(valor.length-9);			
	}
	objValor.value = valor;
	return true;
}

/*****************************************************************************
/* Utilização: onKeyDown="mascaraFloat(this, event)" onBlur="formataFloat(this)"
/****************************************************************************/
function formataFloat(objValor) {
	valor = objValor.value;
	if	(valor.length == 2) {
		valor = "0,"+valor;
		objValor.value = valor;
		return true;
	}
}

function formataFloat2(valor) {
	var ret = 0;
	ret = valor.toLocaleString();
	return ret;
	/*
	valor = valor.replace(".","");
	if 	(valor.length == 2) {
		valor = valor.replace(",","");
		valor = valor.replace(".","");
		valor = valor.substring(0,1)+','+valor.substring(1,2);
	}
	if 	(valor.length >= 4) {
		valor = valor.replace(",","");
		valor = valor.substring(0,valor.length-1)+','+valor.substring(valor.length-1);
	}
	if 	(valor.length == 6) {
		valor = valor.substring(0,1)+'.'+valor.substring(1);
	}
	if 	(valor.length >= 7 && valor.length < 10) {
		valor = valor.replace(".","");
		valor = valor.substring(0,valor.length-5)+'.'+valor.substring(valor.length-5);
	}
	if 	(valor.length == 10) {
		valor = valor.replace(".","");
		valor = valor.substring(0,valor.length-5)+'.'+valor.substring(valor.length-5);			
		valor = valor.substring(0,valor.length-9)+'.'+valor.substring(valor.length-9);			
	}
	if 	(valor.length > 10) {
		valor = valor.replace(".","");
		valor = valor.replace(".","");
		valor = valor.substring(0,valor.length-5)+'.'+valor.substring(valor.length-5);			
		valor = valor.substring(0,valor.length-9)+'.'+valor.substring(valor.length-9);			
	}
	ret = valor;
	return ret;
	*/
}

/*****************************************************************************
/* Utilização: returnNumber(parameter)
/****************************************************************************/
function returnNumber(parameter) {
	var parameter = toFloat(parameter);
	var tmp = parseInt(parameter);
	if	( isNaN(tmp) ) {
		tmp = 0;
	} else {
		tmp = parseFloat(parameter);
	}
	return tmp;
}

/*****************************************************************************
/* Utilização: toFloat(parameter)
/****************************************************************************/
function toFloat(parameter) {
	var ret;
	var tmp = parameter.indexOf(",");
	var tmp2;
	if	(tmp != -1) {  // if have virgula
		tmp2 = parameter.replace('.','');
		tmp2 = tmp2.replace(',','.');
		ret = tmp2;
	} else {
		tmp = parameter.indexOf(".");
		if	(tmp != -1) {  // if have virgula
			ret = parameter;
		} else {
			if	(parameter == 0) {
				ret = 0;
			} else {
				ret = parseFloat(parameter+'.00');
			}
		}
	}
	return ret;
}

/*****************************************************************************
/* Utilização: numberToValueForm(parameter)
/****************************************************************************/
function numberToValueForm(parameter) {
	var valor = parameter.toString();
	var fponto;
	var sponto;
	var ret;
	valor = valor.replace(".",",");
	fponto = valor.indexOf(',')-4;
	sponto = valor.indexOf(',')-7;
	ret = valor.substr(0,1);
	for (i = 1; i < valor.length; i++) {
		ret = ret + valor.substr(i,1);
		if	(i == fponto || i == sponto) {
			ret = ret + '.';
		}
	}
	return ret;
}

/*****************************************************************************
/* Utilização: onKeyDown=mascaraInt()
/****************************************************************************/
function mascaraInt() {
	var validChar =  "#48;#49;#50;#51;#52;#53;#54;#55;#56;#57;#96;#97;#98;#99;#100;#101;#102;#103;#104;#105;"; // Válidos
	validChar += "#8;#9;#13;#16;#27;#36;#46;"; // Controle
	validChar += "#45;"; // Especiais para o campo
	if (validChar.indexOf("#" + String(event.keyCode + ";")) == -1) {
	    event.returnValue = false;
	} else {
		return true;
	}  
}

/*****************************************************************************
/* Utilização: onKeyDown="mascaraCNPJCPF(this, event, 'CPF' / 'CNPJ')"
/****************************************************************************/
function mascaraCNPJCPF(objeto, tecla, type) {
	var validChar =  "#48;#49;#50;#51;#52;#53;#54;#55;#56;#57;#96;#97;#98;#99;#100;#101;#102;#103;#104;#105;"; // Válidos
	validChar += "#8;#9;#13;#16;#27;#36;#46;"; // Controle
	/* validChar += "#45;"; // Especiais para o campo */
	if (validChar.indexOf("#" + String(event.keyCode + ";")) == -1) {
	    event.returnValue = false;
	}
	vlrCampo = objeto.value;
	if	(type == 'CNPJ') {
		if	(tecla.keyCode != 8) {
			if 	(vlrCampo.length == 2 || vlrCampo.length == 6) {
				vlrCampo += '.';
				objeto.value = vlrCampo;
			}
			if 	(vlrCampo.length == 10) {
				vlrCampo += '/';
				objeto.value = vlrCampo;
			}
			if 	(vlrCampo.length == 15) {
				vlrCampo += '-';
				objeto.value = vlrCampo;
			}
		}
	} else {
		if	(tecla.keyCode != 8) {
			if 	(vlrCampo.length == 3 || vlrCampo.length == 7) {
				vlrCampo += '.';
				objeto.value = vlrCampo;
			}
			if 	(vlrCampo.length == 11) {
				vlrCampo += '-';
				objeto.value = vlrCampo;
			}
		}
	}
	return true;
}


/*****************************************************************************
/* Utilização: onBlur="validaCNPJ(this.value,obrigatorio)"
/****************************************************************************/
function validaCNPJ(par,obrigatorio) {

	var temErro = false;
	CNPJ = par;
	if	(obrigatorio && CNPJ.length == 0) {
		erro = "Você deve informar o CNPJ";
	} else {
		if	(CNPJ.length == 0) {
			return true;
		}
		erro = new String;
		if (CNPJ.length < 18) erro += "É necessario preencher corretamente o número do CNPJ! \n\n"; 
		if ((CNPJ.charAt(2) != ".") || (CNPJ.charAt(6) != ".") || (CNPJ.charAt(10) != "/") || (CNPJ.charAt(15) != "-")) {
			if (erro.length == 0) erro += "É necessário preencher corretamente o número do CNPJ! \n\n";
		}
	
	     //substituir os caracteres que não são números
	   	if(document.layers && parseInt(navigator.appVersion) == 4){
	           x = CNPJ.substring(0,2);
	           x += CNPJ. substring (3,6);
	           x += CNPJ. substring (7,10);
	           x += CNPJ. substring (11,15);
	           x += CNPJ. substring (16,18);
	           CNPJ = x; 
	   	} else {
	           CNPJ = CNPJ. replace (".","");
 	           CNPJ = CNPJ. replace (".","");
	           CNPJ = CNPJ. replace ("-","");
	           CNPJ = CNPJ. replace ("/","");
	   	}
	    var nonNumbers = /\D/;
	    if (nonNumbers.test(CNPJ)) erro += "A verificação de CNPJ suporta apenas números! \n\n"; 
	    var a = [];
	    var b = new Number;
	    var c = [6,5,4,3,2,9,8,7,6,5,4,3,2];
	    for (i=0; i<12; i++){
	         a[i] = CNPJ.charAt(i);
	         b += a[i] * c[i+1];
	    }
	   
	   if ((x = b % 11) < 2) { a[12] = 0 } else { a[12] = 11-x }
	    b = 0;
	    for (y=0; y<13; y++) {
	            b += (a[y] * c[y]); 
	    }
	    if ((x = b % 11) < 2) { a[13] = 0; } else { a[13] = 11-x; }
	    if ((CNPJ.charAt(12) != a[12]) || (CNPJ.charAt(13) != a[13])){
	            erro +="CNPJ Inválido!";
	    }
	    if (erro.length > 0){
	       alert(erro);
	       document.forms[0].cnpj.focus();
	       return false;
	    } 
	}
    return true;
}


/*****************************************************************************
/* Utilização: onBlur="validaCPF(this.value)"
/****************************************************************************/
function validaCPF(par) { 
  
 	if	(par != '') {
		var i; 
		var errorMsg = '';
		s = par.replace(".","");
		s = s.replace(".","");
		s = s.replace("-","");
		var c = s.substr(0,9); 
		var dv = s.substr(9,2); 
		var d1 = 0; 
		for (i = 0; i < 9; i++) { 
			d1 += c.charAt(i)*(10-i); 
		} 
		  
		if (d1 == 0){ 
			errorMsg = "CPF Invalido"; 
		} 
		  
		d1 = 11 - (d1 % 11); 
		if (d1 > 9) d1 = 0; 
		if (dv.charAt(0) != d1)  { 
	  		errorMsg = "CPF Invalido";
		} 
		  
		d1 *= 2; 
		for (i = 0; i < 9; i++) { 
			d1 += c.charAt(i)*(11-i); 
		} 
		  
		d1 = 11 - (d1 % 11); 
		if (d1 > 9) d1 = 0; 
		if (dv.charAt(1) != d1) { 
		  	errorMsg = "CPF Invalido"; 
		} 
		if (errorMsg.length > 0) {
			alert(errorMsg);
			document.forms[0].cpf.focus();
		} else {
			return true; 
		}
	}
	return true;
} 

/*****************************************************************************
/* Utilização: onBlur="validaEmail(this,'campo')"
/****************************************************************************/
function validaEmail(par,field) {
	var email = par.value;
	var fieldName = par.name;
	if	(email.length > 0) {
		if	(email.indexOf(".") == -1 || email.indexOf("@") == -1) {
			alert("Endereço de E-mail Inválido");
			document.getElementById(field).focus();
			return false;
		}
	}
	return true;
}

/*****************************************************************************
/* Utilização: onKeyDown="mascaraData(this, event)"
/****************************************************************************/
function mascaraData(objData, tecla) {
	if 	(tecla.keyCode == 8)
		return true;
	if	(tecla.keyCode == 113) {
		objData.value = formatarData(new Date());
	}
	data = objData.value;
	if 	(data.length == 2 || data.length == 5) {
		data+='/';
		objData.value = data;
	}
	return true;
}

/*****************************************************************************
/* Utilização: onKeyDown="mascaraHora(this, event)"
/****************************************************************************/
function mascaraHora(objeto, tecla) {
	var validChar =  "#48;#49;#50;#51;#52;#53;#54;#55;#56;#57;#96;#97;#98;#99;#100;#101;#102;#103;#104;#105;"; // Válidos
	validChar += "#8;#9;#13;#16;#27;#36;#46;"; // Controle
	validChar += "#45;"; // Especiais para o campo
	if (validChar.indexOf("#" + String(event.keyCode + ";")) == -1) {
	    event.returnValue = false;
	}
	vlrCampo = objeto.value;
	if	(tecla.keyCode != 8) {
		if 	(vlrCampo.length == 2) {
			vlrCampo += ':';
			objeto.value = vlrCampo;
		}
	}
	return true;
}