var sCinza  = "#d1d9e0";  
var sBranco = "white";

function getTopo(altura) {
	if (screen) {return (screen.heigth-altura) / 2;} else {return (600-altura)/2;}
}

function getEsquerda(largura) {
	if (screen) {return (screen.width-largura) / 2;} else {return (800-largura)/2;}
}

function abreJanela(caminho) {
	var hoje = new Date();
	var id = hoje.getTime().toString();	
	window.open(caminho,id,'scrollbars=yes, toolbar=no, location=no, directories=no, status=no, menubar=no, top=30, left=100, width=600, height=500, resizeable=no');
}

function abreJanelaA(caminho) {
	var hoje = new Date();
	var id = hoje.getTime().toString();	
	window.open(caminho,id,'scrollbars=yes, toolbar=no, location=no, directories=no, status=no, menubar=no, top=30, left=100, width=600, height=500, resizeable=no');
}

function showToolTip(item) {
	var info;
	if ( item == 0 ) {
		document.all['tooltip'].innerHTML = '';
		return;
	}
	if (screen) {if (screen.width==1024) esq = 424; else esq = 314;} else {esq = 314;}
	if ( item == 1 ) {
		info =  "<div id=\"tooltip1\" class=\"tooltip\" style=\"position:absolute; top=584; left="+esq+"; width=396; height=32;\">";
		info += "&nbsp;Carga sob regime especial de transito aduaneiro simplificado destinado a recinto&nbsp;<br>";
		info += "&nbsp;alfandegado em zona secundária com permanência máxima de 24 horas.&nbsp;</div>";
		document.all['tooltip'].innerHTML = info;
		return;
	}		
	if ( item == 2 ) {
		info =  "<div id=\"tooltip2\" style=\"position:absolute; top=212; left="+esq+"; width=396; height=44;\"><table class=\"tooltip\">";
		info += "<tr><td colspan=2>&nbsp;<b>Situações Especiais:</b>&nbsp;</td></tr>";
		info += "<tr><td valign=\"top\">&nbsp;<b>a)</b></td><td>trânsito de TECA para TECA;&nbsp;</td></tr>";
		info += "<tr><td valign=\"top\">&nbsp;<b>b)</b></td><td>trânsito internacional, inclusive para partes e peças para embarcações, aeronaves e outros veículos estrangeiros, quando em trânsito no país;&nbsp;</td></tr>";
		info += "<tr><td valign=\"top\">&nbsp;<b>c)</b></td><td>reimportação, redestinação e carga descarregada por engano;&nbsp;</td></tr>";
		info += "<tr><td valign=\"top\">&nbsp;<b>d)</b></td><td>bagagem desacompanhada e carga, consideradas pela Receita Federal<br>como sem valor e destinação comercial;&nbsp;</td></tr>";
		info += "<tr><td valign=\"top\">&nbsp;<b>e)</b></td><td>moedas estrangeiras, importadas diretamente pela autoridade monetária brasileira;&nbsp;</td></tr>";
		info += "<tr><td valign=\"top\">&nbsp;<b>f)</b></td><td>materiais de comissaria e de suprimentos de uso exclusivo das empresas<br>de transporte aéreo com mais de 48 horas de armazenagem;&nbsp;</td></tr>";
		info += "<tr><td valign=\"top\">&nbsp;<b>g)</b></td><td>malas diplomáticas, quando devidamente caracterizadas e em<br>reciprocidade de tratamento;&nbsp;</td></tr>";
		info += "<tr><td valign=\"top\">&nbsp;<b>h)</b></td><td>urnas contendo cadáveres ou cinzas;&nbsp;</td></tr>";
		info += "<tr><td valign=\"top\">&nbsp;<b>i)</b></td><td>plantas, sementes, animais vivos, ovos férteis, semens e embriões,<br>desde que liberados em prazo máximo de 6 (seis) horas, contadas a<br>partir do ato de recebimento no TECA;&nbsp;</td></tr>";
		info += "<tr><td valign=\"top\">&nbsp;<b>j)</b></td><td>cargas que entrarem no país sob o regime de Admissão Temporária destinadas, comprovadamente, aos certames e outros eventos de<br>natureza científica, esportiva, filantrópica ou cívico-cultural; e&nbsp;</td></tr>";
		info += "<tr><td valign=\"top\">&nbsp;<b>l)</b></td><td>aparelhos, motores, reatores, peças, acessórios e demais partes,<br>materiais de manutenção e reparo, importados ou admitidos temporariamente no País, por empresas nacionais concessionárias<br>ou permissionárias dos serviços aéreos públicos, quando destinados<br>a uso próprio.</td></tr>";
		info += "</table></div>";
		document.all['tooltip'].innerHTML = info;
	}
}


function setCor(objeto,cor) 
{
	if ( objeto.style )
	{
		objeto.style.backgroundColor = cor;
	}
}

function inibeTabela(objeto) 
{
	/*
	if ( objeto.value == "T1" || objeto.value == "T2" )
	{
		calculo.parm_volume.disabled=true;
		setCor(calculo.parm_volume,sCinza);
		calculo.parm_volume.value = "";
	}
	if ( objeto.value == "T3" )
	{
		calculo.parm_volume.disabled=false;
		setCor(calculo.parm_volume,sBranco);
	}
	*/
	/*
	if (( objeto.value == "T3" )&&( objeto.checked == true )) {
		alert("Itaguaí encontra-se em manutenção.");
		objeto.checked = false;
		objeto.blur();
		return;
	}
	*/
	if (( objeto.value == "T1" )&&( objeto.checked == true ))
	{
		calculo.parm_valorfob.disabled=false;
		setCor(calculo.parm_valorfob,sBranco);
	}
	else
	{
		calculo.parm_valorfob.disabled=true;
		setCor(calculo.parm_valorfob,sCinza);
		calculo.parm_valorfob.value = "";
	}
	inibeCarga(null);
	calculo.parm_tipodocumento.focus();
}

function inibeCarga(objeto) 
{
	var tipo;
	if (objeto) {
		tipo = objeto.value;
	} else {
		if (calculo.parm_tipocarga[0].checked) tipo = "C";
		if (calculo.parm_tipocarga[1].checked) tipo = "S";
	}

	if (( tipo == "C" ) || (calculo.parm_tabelapreco[2].checked))
	{	
		calculo.parm_numcntr20.disabled=false;
		calculo.parm_numcntr40.disabled=false;
		setCor(calculo.parm_numcntr20,sBranco);
		setCor(calculo.parm_numcntr40,sBranco);
		calculo.parm_numcntr20.focus();
	} 
	//if (( tipo == "S" ) && (!calculo.parm_tabelapreco[2].checked))
	else
	{	
		calculo.parm_numcntr20.disabled=true;
		calculo.parm_numcntr40.disabled=true;
		setCor(calculo.parm_numcntr20,sCinza);
		setCor(calculo.parm_numcntr40,sCinza);
		calculo.parm_numcntr20.value = "";
		calculo.parm_numcntr40.value = "";
	}
}

function isValidNumber ( oField, iLen )
{
	var re     = /^\d*$/;
	var sValor = oField.value;
	
	if ( sValor.search( re ) != -1 && sValor.length >= iLen )
	{
		return true;
	} 
	return false;	
}

function isValidDigit ( oField )
{
	var re     = /^\d*$/;
	var sValor = oField.value;
	
	if ( sValor.search( re ) != -1 )
	{
		return true;
	} 
	return false;	
}

function isValidMail( oField )
{
  	var re1    = new RegExp("(@.*@)|(\\.\\.)|(@\\.)|(^\\.)");
  	var re2    = new RegExp("^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$");  		
	var sMail  = new String ( oField.value );
	
	if ( !re1.test( sMail ) && re2.test( sMail ) )
	{
		return true;
	}
	return false;
}

function isNull( oField )
{
	if ( Trim( oField.value ) == "" )
	{
	  	return true;
	}
	return false;
}

function isDate(objeto)
{	
	if (objeto.value == "") return true;
	
	VarArray=objeto.value.split("/");
	TamanhoArray=VarArray.length;
	if (TamanhoArray!=3)	
	{
		alert("A data deve estar no formato dd/mm/aaaa!");
		objeto.focus();
		return false;
	}
	if ((VarArray[0].length!=2)||(VarArray[1].length!=2)||(VarArray[2].length!=4))
	{
		alert("A data deve estar no formato dd/mm/aaaa!");
		objeto.focus();
		return false; 
	}

	msg = "A data é inválida!";
	if (isNaN(VarArray[0]) || isNaN(VarArray[1]) || isNaN(VarArray[2]))
	{
		alert(msg);
		objeto.focus();
		return false; 
	}
	
	if (VarArray[2] < 2000) {alert(msg + "\nData anterior ao Ano 2000.");objeto.focus();return false;}	
	if (VarArray[2] % 4 == 0) {bisexto=true;} else {bisexto=false;}	
	if (VarArray[1] > 12) {alert(msg);objeto.focus();return false;}	
	if (VarArray[1]==2) 	{
		if (bisexto==true) {
			if ( VarArray[0] > 29 ) {alert(msg);objeto.focus();return false;}}
		else {
			if ( VarArray[0] > 28 ) {alert(msg);objeto.focus();return false;}}
	}
	else if (VarArray[1]==4||VarArray[1]==6||VarArray[1]==9||VarArray[1]==11)	{
		if ( VarArray[0] > 30 ) {alert(msg);objeto.focus();return false;}} 
	else {
		if ( VarArray[0] > 31 ) {alert(msg);objeto.focus();return false;}}
	
	var hoje = new Date();
	var dia = new Date();
	dia.setYear(VarArray[2]);
	dia.setMonth(VarArray[1]-1);
	dia.setDate(VarArray[0]);

	return true;
}

function isHora(objeto)
{	
	if (objeto.value == "") return true;
	
	VarArray=objeto.value.split(":");
	TamanhoArray=VarArray.length;
	if (TamanhoArray!=2)	
	{
		alert("A hora deve estar no formato hh:mm!");
		objeto.focus();
		return false;
	}
	if ((VarArray[0].length!=2)||(VarArray[1].length!=2))
	{
		alert("A hora deve estar no formato hh:mm!");
		objeto.focus();
		return false; 
	}

	msg = "A hora é inválida!";
	if (isNaN(VarArray[0]) || isNaN(VarArray[1]))
	{
		alert(msg);
		objeto.focus();
		return false; 
	}
	
	if (VarArray[1] > 59) {alert(msg);objeto.focus();return false;}	
	if (VarArray[0] > 23) {alert(msg);objeto.focus();return false;}
	
	return true;
}

function comparaData(data1, data2) {
	dataArray1 = data1.value.split("/");
	dataArray2 = data2.value.split("/");
	dat1 = dataArray1[2] + '' + dataArray1[1] + '' + dataArray1[0] 
	dat2 = dataArray2[2] + '' + dataArray2[1] + '' + dataArray2[0] 
	if ( dat1 > dat2 ) {return 1;}
	if ( dat2 > dat1 ) {return 2;}
	else {return 0;}		
}

function comparaHora(hora1, hora2) {
	horaArray1 = hora1.value.split(":");
	horaArray2 = hora2.value.split(":");
	hor1 = horaArray1[0] + '' + horaArray1[1]
	hor2 = horaArray2[0] + '' + horaArray2[1]
	if ( hor1 > hor2 ) {return 1;}
	if ( hor2 > hor1 ) {return 2;}
	else {return 0;}		
}

function isNumero(objeto,inteiro,decimal,faixai,faixaf){

	if (objeto.value=="0") {return true;}
	
	if (objeto.value.indexOf(".")>-1){
		alert("O separador deve ser a vírgula!");
		objeto.focus();
		return false;		
	}
	VarArray=objeto.value.split(",");
	TamanhoArray=VarArray.length;
	if (TamanhoArray>2){
		alert("Digite somente um separador decimal!");
		objeto.focus();
		return false;	
	}else if(TamanhoArray==2){
			if (isNaN(VarArray[0]) || isNaN(VarArray[1])){
				alert("O valor deve ser numérico!");
				objeto.focus();
				return false;
			}else{
				if (VarArray[0] < 0 || objeto.value.indexOf("-")>-1){
					alert("O valor não pode ser negativo!");
					objeto.focus();
					return false;				
				}else{
					if ((VarArray[0].length>inteiro) || (VarArray[1].length>decimal)){
						alert("O valor deve possuir " + inteiro + " inteiros e " + decimal + " decimais!");
						objeto.focus();
						return false;				
					}else{
						if (((VarArray[0] < faixai)||(VarArray[0] > faixaf)||(VarArray[0]==faixaf&&VarArray[1]>0))&&(faixai != faixaf)){
							alert("O valor deve estar entre " + faixai + " e " + faixaf + "!");
							objeto.focus();
							return false;				
						}else{
							return true;
						}
					}
				}
			}
	}else{
			if (isNaN(objeto.value)){
				alert("O valor deve ser numérico!");
				objeto.focus();
				return false;
			}else{
				if (objeto.value < 0 || objeto.value.indexOf("-")>-1){
					alert("O valor não pode ser negativo!");
					objeto.focus();
					return false;				
				}else{
					if ((objeto.value.length>inteiro)){
						alert("O valor deve possuir " + inteiro + " caracteres inteiros no máximo!");
						objeto.focus();
						return false;
					}else{
						if (((objeto.value < faixai)||(objeto.value > faixaf))&&(faixai != faixaf)){
							alert("O valor deve estar entre " + faixai + " e " + faixaf + "!");
							objeto.focus();
							return false;				
						}else{
							return true;
						}
					}
				}
			}
	}
}

function validaForm() 
{
	//if (calculo.parm_nomecliente.value=="")
	//{
	//	alert("O nome do cliente deve ser informado!");
	//	calculo.parm_nomecliente.focus();			
	//	return false;
	//}

	//if (calculo.parm_numerobl.value=="")
	//{
	//	alert("O número do B/L deve ser informado!");
	//	calculo.parm_numerobl.focus();			
	//	return false;
	//}

	if (calculo.parm_tabelapreco[0].checked == false && calculo.parm_tabelapreco[1].checked == false && calculo.parm_tabelapreco[2].checked == false )
	{
		alert("Escolha o Terminal para o cálculo!");
		return false;
	}

	if (calculo.parm_valorcarga.value=="")
	{
		alert("O valor CIF da carga deve ser informado!");
		calculo.parm_valorcarga.focus();			
		return false;
	}

	if (calculo.parm_valorcambio.value=="")
	{
		alert("O valor do moeda deve ser informado!");
		calculo.parm_valorcambio.focus();			
		return false;
	}

	if (calculo.parm_tabelapreco[2].checked) 
	{
		if (calculo.parm_tipocarga[1].checked) { //|| calculo.parm_desunitizacao[0].checked) {
			if (calculo.parm_pesobruto.value=="") 
			{
				alert("O peso bruto da carga deve ser informado!");
				calculo.parm_pesobruto.focus();			
				return false;
			}
			/*
			if (calculo.parm_volume.value=="") 
			{
				alert("O volume da carga deve ser informado!");
				calculo.parm_pesobruto.focus();			
				return false;
			}
			*/
		}
	}
	else
	{
		if (calculo.parm_pesobruto.value=="") 
		{
			alert("O peso bruto da carga deve ser informado!");
			calculo.parm_pesobruto.focus();
			return false;
		}
	}	

	if ((calculo.parm_tipocarga[0].checked)||
	   ((calculo.parm_tipocarga[1].checked)&&(calculo.parm_tabelapreco[2].checked)))
	{
		if (calculo.parm_numcntr20.value=="" && calculo.parm_numcntr40.value=="")
		{
			alert("A quantidade de containeres de 20' ou 40' deve ser informada!");
			calculo.parm_numcntr20.focus();			
			return false;
		}
	}

	if (calculo.parm_datachegada.value=="")
	{
		alert("A data de entrada no terminal deve ser informada!");
		calculo.parm_datachegada.focus();			
		return false;
	}

	if (calculo.parm_datacalculo.value=="")
	{
		alert("A data de cálculo deve ser informada!");
		calculo.parm_datacalculo.focus();			
		return false;
	}
	
	if ( comparaData(calculo.parm_datachegada,calculo.parm_datacalculo) == 1 ) {
		alert("A data de entrada no terminal não pode ser maior que data de cálculo!");
		calculo.parm_datacalculo.focus();			
		return false;
	}		
	return true;
}

function validaCadastro() 
{
	if (cadastro.tipocliente.value=="")
	{
		alert("O tipo de cliente deve ser informado!");
		cadastro.tipocliente.focus();			
		return false;
	}

	if (cadastro.empresa.value=="")
	{
		alert("O nome da empresa deve ser informado!");
		cadastro.empresa.focus();			
		return false;
	}

	if (cadastro.contato.value=="")
	{
		alert("O contato deve ser informado!");
		cadastro.contato.focus();			
		return false;
	}

	if (cadastro.endereco.value=="")
	{
		alert("O endereço deve ser informado!");
		cadastro.endereco.focus();			
		return false;
	}

	if (cadastro.bairro.value=="")
	{
		alert("O bairro deve ser informado!");
		cadastro.bairro.focus();			
		return false;
	}

	if (cadastro.cidade.value=="")
	{
		alert("O endereço deve ser informado!");
		cadastro.cidade.focus();			
		return false;
	}

	if (cadastro.uf.value=="")
	{
		alert("O UF deve ser informado!");
		cadastro.uf.focus();			
		return false;
	}

	if (cadastro.telefone.value=="")
	{
		alert("O Telefone deve ser informado!");
		cadastro.telefone.focus();			
		return false;
	}

	if (cadastro.email.value=="")
	{
		alert("O Email deve ser informado!");
		cadastro.email.focus();			
		return false;
	}

	if ( !isValidMail(cadastro.email) )
	{
		alert("O Email informado é inválido!");
		cadastro.email.focus();			
		return false;
	}

	if (cadastro.login.value=="")
	{
		alert("O usuário deve ser informado!");
		cadastro.login.focus();			
		return false;
	}

	if (cadastro.senha.value=="")
	{
		alert("A senha deve ser informada!");
		cadastro.senha.focus();			
		return false;
	}

	if (cadastro.senha.value.length < 3)
	{
		alert("A senha deve ter, no mínimo, 3 caracteres!");
		cadastro.senha.focus();			
		return false;
	}

	if (cadastro.senha2.value=="")
	{
		alert("A confirmação de senha deve ser informada!");
		cadastro.senha2.focus();			
		return false;
	}

	if (cadastro.senha.value != cadastro.senha2.value)
	{
		alert("A confirmação de senha não confere!");
		cadastro.senha2.focus();	
		cadastro.senha2.select();
		return false;
	}

	return true;
}

function validaAlteracao() 
{
	if (cadastro.tipocliente.value=="")
	{
		alert("O tipo de cliente deve ser informado!");
		cadastro.tipocliente.focus();			
		return false;
	}

	if (cadastro.empresa.value=="")
	{
		alert("O nome da empresa deve ser informado!");
		cadastro.empresa.focus();			
		return false;
	}

	if (cadastro.contato.value=="")
	{
		alert("O contato deve ser informado!");
		cadastro.contato.focus();			
		return false;
	}

	if (cadastro.endereco.value=="")
	{
		alert("O endereço deve ser informado!");
		cadastro.endereco.focus();			
		return false;
	}

	if (cadastro.bairro.value=="")
	{
		alert("O bairro deve ser informado!");
		cadastro.bairro.focus();			
		return false;
	}

	if (cadastro.cidade.value=="")
	{
		alert("O endereço deve ser informado!");
		cadastro.cidade.focus();			
		return false;
	}

	if (cadastro.uf.value=="")
	{
		alert("O UF deve ser informado!");
		cadastro.uf.focus();			
		return false;
	}

	if (cadastro.telefone.value=="")
	{
		alert("O Telefone deve ser informado!");
		cadastro.telefone.focus();			
		return false;
	}

	if (cadastro.email.value=="")
	{
		alert("O Email deve ser informado!");
		cadastro.email.focus();			
		return false;
	}

	if ( !isValidMail(cadastro.email) )
	{
		alert("O Email informado é inválido!");
		cadastro.email.focus();			
		return false;
	}

	return true;
}

function validaSenha() 
{
	if (cadastro.login.value=="")
	{
		alert("O usuário deve ser informado!");
		cadastro.login.focus();			
		return false;
	}

	if (cadastro.senhaatual.value=="")
	{
		alert("A senha atual deve ser informada!");
		cadastro.senha.focus();			
		return false;
	}

	if (cadastro.senha.value=="")
	{
		alert("A senha deve ser informada!");
		cadastro.senha.focus();			
		return false;
	}

	if (cadastro.senha.value.length < 3)
	{
		alert("A senha deve ter, no mínimo, 3 caracteres!");
		cadastro.senha.focus();			
		return false;
	}

	if (cadastro.senha2.value=="")
	{
		alert("A confirmação de senha deve ser informada!");
		cadastro.senha2.focus();			
		return false;
	}

	if (cadastro.senha.value != cadastro.senha2.value)
	{
		alert("A confirmação de senha não confere!");
		cadastro.senha2.focus();	
		cadastro.senha2.select();
		return false;
	}

	return true;
}

function validaFormAereo() 
{
	var compara;
	
	//if (calculo_aereo.parm_nomecliente.value=="")
	//{
	//	alert("O nome do cliente deve ser informado!");
	//	calculo_aereo.parm_nomecliente.focus();			
	//	return false;
	//}

	if (calculo_aereo.parm_tabelapreco[0].checked == false && calculo_aereo.parm_tabelapreco[1].checked == false )
	{
		alert("Escolha o Aeroporto para o cálculo!");
		return false;
	}

	if (calculo_aereo.parm_valorcarga.value=="")
	{
		alert("O valor CIF da carga deve ser informado!");
		calculo_aereo.parm_valorcarga.focus();			
		return false;
	}

	if (calculo_aereo.parm_valorcambio.value=="")
	{
		alert("A taxa de conversão da moeda deve ser informada!");
		calculo_aereo.parm_valorcambio.focus();			
		return false;
	}

	if (calculo_aereo.parm_pesobruto.value=="") 
	{
		alert("O peso bruto da carga deve ser informado!");
		calculo_aereo.parm_pesobruto.focus();			
		return false;
	}

	if (calculo_aereo.parm_pesoliq.value=="") 
	{
		alert("O peso líquido da carga deve ser informado!");
		calculo_aereo.parm_pesoliq.focus();			
		return false;
	}
	
	if (parseInt(calculo_aereo.parm_pesobruto.value) < parseInt(calculo_aereo.parm_pesoliq.value))
	{
		alert("O peso líquido deve ser menor que o peso bruto!");
		calculo_aereo.parm_pesoliq.focus();			
		return false;	
	}

	if (calculo_aereo.parm_datachegada.value=="")
	{
		alert("A data de entrada deve ser informada!");
		calculo_aereo.parm_datachegada.focus();			
		return false;
	}

	if (calculo_aereo.parm_horachegada.value=="")
	{
		alert("A hora de entrada deve ser informada!");
		calculo_aereo.parm_horachegada.focus();			
		return false;
	}

	if (calculo_aereo.parm_datacalculo.value=="")
	{
		alert("A data de cálculo deve ser informada!");
		calculo_aereo.parm_datacalculo.focus();			
		return false;
	}
	
	if (calculo_aereo.parm_horacalculo.value=="")
	{
		alert("A hora de cálculo deve ser informada!");
		calculo_aereo.parm_horacalculo.focus();			
		return false;
	}

	compara = comparaData(calculo_aereo.parm_datachegada,calculo_aereo.parm_datacalculo);
	if ( compara == 1 ) {
		alert("A data de entrada no terminal não pode ser maior que data de cálculo!");
		calculo_aereo.parm_datacalculo.focus();			
		return false;
	}		
	else {
		if ( compara == 0 ) {
			compara = comparaHora(calculo_aereo.parm_horachegada,calculo_aereo.parm_horacalculo);
			if ( compara == 1 ) {
				alert("A hora de entrada não pode ser maior que hora de cálculo!");
				calculo_aereo.parm_horacalculo.focus();			
				return false;
			}
		}
	}
	return true;
}
