// JavaScript Document
if(typeof txt_js_branco === 'undefined' || txt_js_branco == null) {
	var txt_js_branco = "O campo ";
	var txt_js_branco2 = " deve ser preenchido.";
	var txt_js_email = "O e-mail deve ser um endereço de e-mail válido.";
	var txt_js_data = "O formato da data é invalido!";
	var txt_js_numero1 = "O campo ";
	var txt_js_numero2 = " deve conter apenas números.";
	var txt_js_url1 = "O campo ";
	var txt_js_url2 = " não contém um endereço válido.";
	var txt_js_cartaoCredito = "O número do cartão de crédito é inválido";
	var txt_js_codSeguranca = "O código de segurança deve ter 3 caracteres";
	var txt_js_dataValidadeCartao = "Data de validade inválida."
	var txt_js_temCerteza = "Tem certeza?";
	var txt_js_emailInvalido = "O endereço do e-mail é inválido";
	var txt_js_dataInvalida = "O formato da data é inválido! Favor informar no seguinte formato dd/mm/aaaa. Exemplo: 20/08/2010";
	var txt_js_caracterInvalido1 = "Por questão de segurança o campo ";
	var txt_js_caracterInvalido2 = " não permite a inserção de ambos os caracteres '<' e '>'.";
}

// Validação de campo vazio. Param: campo, nome do campo para exibição
function validaBranco( campo, nome ){
	var elemento = document.getElementById( campo );

	if( trim( elemento.value ) == "" ) {
		if( nome != null )
			alert( txt_js_branco + nome.toUpperCase() + txt_js_branco2 );
		else
			alert( txt_js_branco + elemento.name.toUpperCase() + txt_js_branco2 );
		
		elemento.focus();
		return false;
	}
	/*else if(!validaTextoSemTags( campo, nome ))
	{
		return false;
	}*/

	return true;
}

// Validação de campo vazio. Param: campo, nome do campo para exibição
function validaBrancoHtml( campo, nome ){
	campo = document.getElementById( campo );

	if( trim( campo.value ) == "" ) {
		if( nome != null )
			alert( txt_js_branco + nome.toUpperCase() + txt_js_branco2 );
		else
			alert( txt_js_branco + campo.name.toUpperCase() + txt_js_branco2 );
		
		campo.focus();
		return false;
	}	
	return true;
}

// Validação de campo vazio sem exibir alert
function validaBranco2( campo ){
	campo = document.getElementById( campo );

	if( trim( campo.value ) == "" ) 
		return false;
	return true;
}

//Validação para não permitir a inserção da TAG '<' evitando assim a inserção de scripts
function validaCaracterInvalido( campo ){
	campo = document.getElementById( campo );

	if (campo.value.indexOf("<") > -1)
		return false;

	return true;
}


//Validação de email
function validaEmail( campo )
{
	campoform = document.getElementById( campo );
	return validaEmailPorCampo( campoform );
}

function validaEmailPorCampo( campo ){
	campoform = campo;
	email = campoform.value;

    if ( email )
	{
		p = email.indexOf('@');
		pont = email.indexOf('.');
		if ( p < 1 || p == (email.length - 1) || pont < 1 || pont == (email.length - 1) )
		{
				alert (txt_js_emailInvalido);
	    		campoform.value = '';
	    		campoform.focus();
				return false;
		}
	} else {
		alert (txt_js_emailInvalido);
  		campoform.value = '';
	    campoform.focus();
		return false;
	}
	return true;
}

//Validação de Telefone
function validaTelefone( campoPar ) {
	campo = document.getElementById( campoPar );
	var valor='';
	var digito = false;
	a = campo.value;

	if ( a != "" ) {
		num = a.length;
		for (f=0;f<num;f++)
		{
			if (parseInt(a.substr(f,1)) || a.substr(f,1)=='0') 
			if ((a.substr(f,1) != '0') || digito) valor = valor + '' + a.substr(f,1);
			if (parseInt(a.substr(f,1)) && a.substr(f,1) != '0') digito = true;
		};
		num = valor.length;
		if (num < 9 || num > 17)
		{
			alert ('- Número de telefone inválido. \nEntre com o DDD e o número do telefone.\nExemplo: 55 (11) 1234-5678');
			campo.focus();
			return false;
		}
		else
		{
			if (num == 9) valor = '(' + valor.substr(0, 2) + ') ' + valor.substr(num-7, 3) + '-' + valor.substr(num-4, 4);
			if (num == 10) valor = '(' + valor.substr(0, 2) + ') ' + valor.substr(num-8, 4) + '-' + valor.substr(num-4, 4);
			if (num == 12) valor = '' + valor.substr(0, 2) + ' (' + valor.substr(num-10, 2) + ') ' + valor.substr(num-8, 4) + '-' + valor.substr(num-4, 4);
			campo.value = valor;
		}
	}
	else{
		alert ('- Número de telefone inválido. \nEntre com o DDD e o número do telefone.\nExemplo: (11) 1234-5678');
		campo.focus();
		return false;
	}
	return true;
}

// validação de data
function validaData( campo, idiomaUsuario ){
	var data = document.getElementById(campo);

	if (idiomaUsuario == null)
		idiomaUsuario = "";
	idiomaUsuario = idiomaUsuario.toLowerCase();
	hoje = new Date();
    anoAtual = hoje.getFullYear();
   	barras = data.value.split("/");
	
	if (barras != ""){
		if (barras.length == 3){
			//Cao o idioma for inglês valida as datas de forma invertida
			if (idiomaUsuario == "ingles")
			{
				dia = barras[1];
				mes = barras[0];								
			}
			else
			{
				dia = barras[0];
				mes = barras[1];
			}
			ano = barras[2];
			resultado = (!isNaN(dia) && (dia > 0) && (dia < 32)) && (!isNaN(mes) && (mes > 0) && (mes < 13)) && (!isNaN(ano) && (ano.length == 4) );
			if (!resultado) {
				alert(txt_js_dataInvalida);
				data.focus();
				return false;
			}
			else
			{
				mes = parseInt(mes);
				dia = parseInt(dia);
							
				if ((mes == 4 || mes ==6 || mes == 9 || mes == 11) && dia > 30 )
				{
					alert(txt_js_dataInvalida);
					data.focus();
					return false;
				}
				else if (mes == 2 && dia >= 30)
				{
					alert(txt_js_dataInvalida);
					data.focus();
					return false;
				}
			}
		}
		else {
			alert(txt_js_dataInvalida);
			data.focus();
			return false;
		}
	}
	return true;
}

// validação de data para datas inexistentes
function validaData2(objData){
	var data = objData.value.toString();
	if(data) {
		var dia = data.substr(0,2);
		var mes = data.substr(3,2);
		var ano = data.substr(6,4);
		var erro = "";
		if(isNumber(dia) && isNumber(mes) && isNumber(ano) && data.length == 10) {
			try {
				dia = parseInt(dia);
				mes = parseInt(mes);
				ano = parseInt(ano);
				dataAtual = new Date();
				anoAtual = dataAtual.getFullYear();
				if(dia > 31) erro += "\n- Foi digitado um número maior que 31 para dia.";
				if(mes > 12) erro += "\n- Foi colocado um número maior que 12 para mês.";
				if(ano > (anoAtual+50) || ano < (anoAtual-120)) erro += "\n- O ano foi digitado incorretamente";
				if(dia == 29 && mes == 2 && !anoBissesto(ano)) erro += "\n- O ano digitado não é bissexto para ter 29 dias";
				if(dia > 29 && mes == 2) erro += "\n- O mês de fevereiro não tem mais de 29 dias.";
				if((dia > 30 && mes == 4) || (dia > 30 && mes == 6) || (dia > 30 && mes == 4) || (dia > 30 && mes == 6) || (dia > 30 && mes == 9) || (dia > 30 && mes == 11)) erro += "\n- O mês de digitado possui no máximo 30 dias.";
				if((dia > 31 && mes == 1) || (dia > 31 && mes == 3) || (dia > 31 && mes == 5) || (dia > 31 && mes == 7) || (dia > 31 && mes == 8) || (dia > 31 && mes == 10) || (dia > 31 && mes == 12)) erro += "\n- O mês de digitado possui no máximo 31 dias.";
			} catch(e){
				erro += "\n- Foi digitado um caractere não-numérico na data.";
			}
		} else {
			erro += "\n- Foi digitado um caractere não-numérico na data.";
		}
		if(erro) {
			alert("Data Inválida:\n" + erro);
			objData.value = "";
			objData.focus();
		}
	}
}

//validação de números
function validaNumero( campo, nome ){
	var numero = document.getElementById( campo );
	var numeroValor = numero.value.replace( ",",".");
	
	if ( isNaN( numeroValor ) ){
		if( nome != null )
			alert( "O campo " + nome.toUpperCase() + " deve conter apenas números." );
		else
			alert( "O campo " + numero.name.toUpperCase() + " deve conter apenas números." );
			
		numero.value = "";	
		numero.focus();
		return false;
	}
	return true;
}


//validação de números 2
function validaNumero2( campo, nome ){
	var numero = document.getElementById( campo );
	var numeroValor = numero.value.replace( ".","");
		numeroValor = numeroValor.replace( ",",".");
	
	if ( isNaN( numeroValor ) ) {

		if( nome != null )
			alert( txt_numero1 + nome.toUpperCase() + txt_numero2 );
		else
			alert( txt_numero1 + numero.name.toUpperCase() + txt_numero2 );

		numero.focus();
		return false;
	}
	return true;
}

// comparação de 2 datas
function comparaData( data1, data2 ){
	var data1 = document.getElementById( data1 );
	var data2 = document.getElementById( data2 );
		
	var dataArray1 = data1.value.split( "/" );
	var dataArray2 = data2.value.split( "/" );
	
	var dData1 = new Date( dataArray1[2], dataArray1[1] - 1, dataArray1[0] );
	var dData2 = new Date( dataArray2[2], dataArray2[1] - 1, dataArray2[0] );

	if ( dData1.getTime() > dData2.getTime() )
		return 1;
	else if ( dData1.getTime() < dData2.getTime() )
		return -1;
	else
		return 0;
}

// Valida um URL
function validaURL( campo, nome ){
	campo = document.getElementById( campo );

	if( campo.value.substr(0, 7) != "http://" || campo.value.length <= 12 ){
		if (nome != null)
			alert( "O campo " + nome.toUpperCase() + " não contém um endereço válido. Ex: http://www.forl.org.br" );
		else
			alert( "O campo " + campo.name.toUpperCase() + " não contém um endereço válido. Ex: http://www.forl.org.br" );
		campo.focus();
		return false;
	}
	return true;
}

// Validação de CPF
function validaCPF( campoform ) {
	num_cpf = '';
	campo = campoform.value;
	if (campo == "00000000000" || campo == "11111111111" || campo == "22222222222" || campo == "33333333333" || campo == "44444444444" || campo == "55555555555" || campo == "66666666666" || campo == "77777777777"  || campo == "88888888888"  || campo == "99999999999"){
		return false;
	}
	if (campo == "000.000.000-00" || campo == "111.111.111-11" || campo == "222.222.222-22" || campo == "333.333.333-33" || campo == "444.444.444-44" || campo == "555.555.555-55" || campo == "666.666.666-66" || campo == "777.777.777-77"  || campo == "888.888.888-88"  || campo == "999.999.999-99"){
		return false;
	}
	if (!campo) return true;
	for (i=0;i<campo.length;i++) {
			resposta=campo.charAt(i) ;
			num = parseFloat(resposta);
			if (resposta==''+num) num_cpf=num_cpf+resposta; 
		}

	if (num_cpf.length == 11) {
		soma = 0;
		for (i=0; i < 9; i ++) soma += parseInt(num_cpf.charAt(i)) * (10 - i);
		resto = 11 - (soma % 11);
		if (resto == 10 || resto == 11)	resto = 0;
		soma = 0;
		for (i = 0; i < 10; i ++) soma += parseInt(num_cpf.charAt(i)) * (11 - i);
		resto2 = 11 - (soma % 11);
		if (resto2 == 10 || resto2 == 11) resto2 = 0;
		if ((resto != parseInt(num_cpf.charAt(9))) || (resto2 != parseInt(num_cpf.charAt(10)))) {
			return false;
		}
		else {
			campoform.value= num_cpf.substring(0,3) + '.' + num_cpf.substring(3,6) + '.'
			+ num_cpf.substring(6,9) + '-' + num_cpf.substring(9,11);
			return true;
		}
	}
	else {
		return false;
	}	
}

function trim(txt){  
	var retirar = ' ';
	var retorno = '';

	for(i=0;i<txt.length;i++){  
		if(retirar.indexOf(txt.substr(i,1)) == -1){  
			retorno += txt.substr(i,1);
		}
	}  
	return retorno;
}

//Função para validar CNPJ
function validaCNPJ( campoform ){
	num_cpf = '';
	campo = campoform.value;

	if (!campo) return true;
	
	for (i=0;i<campo.length;i++)
		{
		resposta=campo.charAt(i) ;
		num = parseFloat(resposta);
		if (resposta==''+num) num_cpf=num_cpf+resposta; 
		}

	if (num_cpf.length == 14)
		{
		d1= 0;
		d4= 0;
		xx= 1;
		for (nCount = 0;nCount< num_cpf.length-2;nCount++)
			{
			if (xx < 5) fator= 6 - xx; else fator= 14 - xx;
			d1 = d1 + num_cpf.charAt(nCount) * fator;
			if (xx < 6) fator = 7 - xx; else fator = 15 - xx;
			d4 = d4 + num_cpf.charAt(nCount) * fator;
	    	xx = xx+1;
			}
		resto = d1%11;
		if (resto < 2) digito1 = 0; else digito1 = 11 - resto;
		d4 = d4 + 2 * digito1;
		resto = d4%11;
		if (resto < 2) digito2 = 0; else digito2 = 11 - resto;
		Check = digito1+''+digito2;
        if (Check != num_cpf.substring(num_cpf.length-2,num_cpf.length))
			{
			alert ('- CNPJ inválido. \nEntre com o CNPJ correto.');
    		campoform.value = '';
    		campoform.focus();
			return false;
			}
		else 
			{
			campoform.value= num_cpf.substring(0,2)
			+ '.' + num_cpf.substring(2,5) + '.' + num_cpf.substring(5,8) + '/' + num_cpf.substring(8,12)
			+ '-' + num_cpf.substring(12,14);
			return true;
			};
		}
	else
		{
		alert ('- CNPJ inválido. \nEntre com o CNPJ correto.');
    	campoform.value = '';
    	campoform.focus();
		return false;
		}
}

//Exibe ou esconde pelo Id
function mostraDados( pri ) {
  var element = document.getElementById(pri);

  if (element.style.display == 'none') 
    element.style.display = '';
  else
    element.style.display = 'none'
}

// Validação de hora
function validaHora( nomeCampo ){
	var reTime = /^([0-1]\d|2[0-3]):[0-5]\d/;
	
	var campoTempo = document.getElementById(nomeCampo);
	var valorCampoTempo = campoTempo.value;
	
	eval("reTime = reTime");
	
	if( !reTime.test(valorCampoTempo) && validaBranco2(nomeCampo) ){
		campoTempo.value = "";
		alert("O horário " + valorCampoTempo + " é inválido.");
		campoTempo.focus();
		return false;
	} 
	return true;
}

// Compara duas horas
function comparaHora(horaA, horaB) {	
	var arrayHoraA = document.getElementById(horaA).value.split(":");
	var arrayHoraB = document.getElementById(horaB).value.split(":");
	
	if(arrayHoraA[0] > arrayHoraB[0]) {
		return 1;
	} else if(arrayHoraA[0] < arrayHoraB[0]) {
		return -1;
	} else {
		if(arrayHoraA[1] > arrayHoraB[1]) {
			return 1;
		} else if(arrayHoraA[1] < arrayHoraB[1]) {
			return -1;
		} else {
			return 0;
		}
	}
}

function barraProgressoUpload(progressId) {
	window.document.cookie = "RefreshProgressID=TRUE";

	Param = "scrollbars=0,resizable=0, toolbar=0, status=0, menubar=0, width=400, height=100, top= "+ String(window.screen.height / 2 - 50) +", LEFT="+ String(window.screen.width / 2 - 200);
	window.open("ProgressBar.asp?ProgressID="+ progressId , null, Param);
}

function inicializaBarraProgresso(progressId) {
	var CookiesOff = true;
	
	//if cookies are not enabled let user know that browser must be supporting cookies for this demo to run ok
	CookiesOff = verificaSuportaCookies();		
		
	if( progressId != -1 && String(window.document.cookie).indexOf("RefreshProgressID=TRUE") != -1 )
		window.location.reload(1);

	window.document.cookie = "RefreshProgressID=FALSE";

	//by setting the ProgressID to -1 we make sure progress bar will not be displayed by the Upload function below	
	if (CookiesOff == true){	
		progressId = -1;
	}	
}

function verificaSuportaCookies() {
	//checks to see if browser has cookie support enabled,
	//	if not an alert box is displayed, letting user know we need cookies
	//also returns true if cookies disabled, otherwise false is returned	
	var blnCookiesSupported = false;
	
	//set the cookie
	document.cookie = 'testit' + "=" + escape('hi') + ";"
	
	//now attempt to retrieve the cookie
	var aCookie = document.cookie.split(";");

	for (var i=0; i < aCookie.length; i++)
	{ 
		var aCrumb = aCookie[i].split("=");

		if ('testit' == aCrumb[0]) {
			blnCookiesSupported = true; 
		}	
	}
	
	return blnCookiesSupported
}

// inverte data
function inverteData( data1 ){
	var data1 = document.getElementById( data1 );
			
	var dataArray1 = data1.value.split( "/" );
		
	return dataArray1[2] + "/" + dataArray1[1] + "/" + dataArray1[0] ;	
}

function isIE8() {
	if(navigator.appVersion.indexOf("MSIE 8.0") >= 0)
		return true;
	return false;
}


// valida formulário de Isentos
function validaFormIsentos() {
	if(!validaBranco("nome"))
		return false;
		
	if( !validaBranco("cpf") || !validacaoCPF("cpf") )
		return false;

	if(!validaBranco("porcentagemDesconto", "Porcentagem de Desconto") || !validaNumero("porcentagemDesconto", "Porcentagem de Desconto"))
		return false;
		
	porcentagemDesconto = document.getElementById("porcentagemDesconto").value;
	
	if(porcentagemDesconto < 0 || porcentagemDesconto > 100) {
		alert("A porcentagem de desconto deve estar entre 0% e 100%.");
		//$("porcentagemDesconto").focus();
		return false;
	}
	
	return true;
}
// validação cpf de isentos
function validacaoCPF( campo ) {
	if( !validaCPF( campo ) ) {
		alert("O CPF informado é inválido.");
		campo.focus();
		return false;
	}
	
	return true;
}

// Copiar tabela e colocar no campo "conteudoTabela"
function exportarExcel() {
	document.getElementById("conteudoTabela").value = document.getElementById("tabelaExpandida").innerHTML;	
}

function isNumber(x){
	var anum=/(^\d+$)|(^\d+\.\d+$)/;
	if (anum.test(x)) testresult=true;
	else testresult=false; 
	return (testresult);
}

function convertData(a){
	var valor = a.value;
	if(valor.indexOf("/") == -1){
		if(valor.length > 2 && valor.length < 5) 
			a.value = valor.substr(0,2) + "/" + valor.substr(2,1);
	} 
	if(valor.lastIndexOf("/") < 5){
		if(valor.length > 5) 
			a.value = valor.substr(0,5) + "/" + valor.substr(5,1);
	}
	if(valor.length > 10)
		a.value = valor.substr(0,10);	
}

function getIdade(dataNascimento, dataComparacao) {
	arrayNascimento = dataNascimento.split("/");
	arrayComparacao = dataComparacao.split("/");

	if(idiomaAtual == "Ingles")	{
		dia_atual = arrayComparacao[1]; //Extrai dia atual
		mes_atual = arrayComparacao[0]; //Extrai mes atual
		ano_atual = arrayComparacao[2]; //Extrai ano do atual
	
		dia_nascimento = arrayNascimento[1]; //Extrai dia do nascimento		
		mes_nascimento = arrayNascimento[0]; //Extrai mês do nascimento
		ano_nascimento = arrayNascimento[2]; //Extrai ano do nascimento
	} else {
		dia_atual = arrayComparacao[0]; //Extrai dia atual
		mes_atual = arrayComparacao[1]; //Extrai mes atual
		ano_atual = arrayComparacao[2]; //Extrai ano do atual
	
		dia_nascimento = arrayNascimento[0]; //Extrai dia do nascimento		
		mes_nascimento = arrayNascimento[1]; //Extrai mês do nascimento
		ano_nascimento = arrayNascimento[2]; //Extrai ano do nascimento
	}
	
	dif_ano = ano_atual - ano_nascimento; //Faz a diferença dos anos
	
	//Verificar se já fez aniversário
	if( (dif_ano > 0) && ((mes_atual > mes_nascimento) || (mes_atual == mes_nascimento && dia_atual > dia_nascimento)) )
		return dif_ano - 1;
	else
		return dif_ano;		
}

//Função para campo TextArea para travar maxlength
function ismaxlength(obj){  
 var mlength=obj.getAttribute? parseInt(obj.getAttribute("maxlength")) : ""  ;
 
 if (obj.getAttribute && obj.value.length>mlength)  {
 	obj.value=obj.value.substring(0,mlength) ;
 } 
  
}

// Confirmação padrão
function confirma() {
	return confirm(txt_js_temCerteza);
}

function somenteNumero(evt)
{
	var charCode = (evt.which) ? evt.which : event.keyCode
    if (charCode > 31 && (charCode < 48 || charCode > 57))
    	return false;

   	return true;
}


// Validação para verificar a inserção de TAGS (<script>)
function validaTextoSemTags( campo, nome ) {
	campo = document.getElementById( campo );

	if (campo.value.indexOf("<") > -1 && campo.value.indexOf(">") > campo.value.indexOf("<"))
	{
		if( nome != null )
			alert( txt_js_caracterInvalido1 + nome.toUpperCase() + txt_js_caracterInvalido2 );
		else
			alert( txt_js_caracterInvalido1 + campo.name.toUpperCase() + txt_js_caracterInvalido2 );
		
		campo.focus();

		return false;
	}

	return true		
}

function $(id){
	return document.getElementById(id);
}
