function MM_swapImgRestore() { //v3.0
	var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
	var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
	var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
	if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
	var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
		d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
		if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
		for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
		if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
	var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
	if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
function onShow(div) {
	document.getElementById(div).style.display='block';
}

function onHide(div) {
	document.getElementById(div).style.display='none';
}
function mudaArea(id)
{
	/*if (document.getElementById('meio'))
	{
	meio.location.href='content/destinos/grupos.php?_op=&&local='+id; //não sei o q é esse parametro _op (flavio)
	}
	else
	{*/
	window.location.href='index.php?_op=mudaarea&&local='+id;
	//}
}

function changeAtend(aba)
{

	abaAtend = document.getElementById('abaAtend'+aba);

	for (i=0; i<=5; i++)
	{
		abaAtend = document.getElementById('abaAtend'+i);
		if (i==aba) {
			abaAtend.src = 'img/abaAtend'+i+'_on.gif';
		} else {
			abaAtend.src = 'img/abaAtend'+i+'.gif';
		}
	}

	if(aba.toString()=='0') {
		document.getElementById('meio').src = 'content/atendimento/aten_fale_cliente.php';
	} else if (aba.toString()=='1') {
		document.getElementById('meio').src = 'content/atendimento/aten_fale_posvenda.php';
	} else if (aba.toString()=='2') {
		document.getElementById('meio').src = 'content/atendimento/aten_fale_grupos.php';
	} else if (aba.toString()=='3') {
		document.getElementById('meio').src = 'content/atendimento/aten_fale_comercial.php';
	} else if (aba.toString()=='4') {
		document.getElementById('meio').src = 'content/atendimento/aten_fale_imprensa.php';
	} else if (aba.toString()=='5') {
		document.getElementById('meio').src = 'content/atendimento/aten_fale_rh.php';
	}

}


function changeGrupo(aba){

	abaAtend = document.getElementById('abaGrupo'+aba);
	for (i=0; i<=6; i++)
	{
		abaAtend = document.getElementById('abaGrupo'+i);
		if (i==aba) {
			abaAtend.src = 'img/grupo_parceiros_abas/abaGrupo'+i+'_on.gif';
		} else {
			abaAtend.src = 'img/grupo_parceiros_abas/abaGrupo'+i+'.gif';
		}
	}

	if(aba.toString()=='0') {
		carregaPagina('conteudo','', 'content|institucional|inst_par_aliancas');
		//document.getElementById('meio').src = 'content/institucional/inst_par_aliancas.php';
	} else if (aba.toString()=='1') {
		carregaPagina('conteudo','', 'content|institucional|inst_par_associacoes');
		//document.getElementById('meio').src = 'content/institucional/inst_par_associacoes.php';
	} else if (aba.toString()=='2') {
		carregaPagina('conteudo','', 'content|institucional|inst_par_ciasaereas');
		//document.getElementById('meio').src = 'content/institucional/inst_par_ciasaereas.php';
	} else if (aba.toString()=='3') {
		carregaPagina('conteudo','', 'content|institucional|inst_par_ciasnavios');
		//document.getElementById('meio').src = 'content/institucional/inst_par_ciasnavios.php';
	} else if (aba.toString()=='4') {
		carregaPagina('conteudo','', 'content|institucional|inst_par_ferramentas');
		//document.getElementById('meio').src = 'content/institucional/inst_par_ferramentas.php';
	} else if (aba.toString()=='5') {
		carregaPagina('conteudo','', 'content|institucional|inst_par_locadoras');
		//document.getElementById('meio').src = 'content/institucional/inst_par_locadoras.php';
	} else if (aba.toString()=='6') {
		carregaPagina('conteudo','', 'content|institucional|inst_par_midia');
		//document.getElementById('meio').src = 'content/institucional/inst_par_midia.php';
	}


}

function changeEscr(aba)
{

	abaEscr = document.getElementById('abaEscr'+aba);

	for (i=0; i<2; i++)
	{
		abaAtend = document.getElementById('abaEscr'+i);
		if (i==aba) {
			abaAtend.src = 'img/escritorios_abas/abaEscr'+i+'_on.gif';
		} else {
			abaAtend.src = 'img/escritorios_abas/abaEscr'+i+'.gif';
		}
	}

	if(aba.toString()=='0') {
		document.getElementById('meio').src = 'content/institucional/inst_esc_br.php';
	} else if (aba.toString()=='1') {
		document.getElementById('meio').src = 'content/institucional/nossa_equipe.php';
	} else if (aba.toString()=='2') {
		//document.getElementById('meio').src = 'content/institucional/inst_esc_distr.php';
	}

}

function changePub(aba)
{

	abaPub = document.getElementById('abaPub'+aba);

	for (i=0; i<=2; i++)
	{
		abaPub = document.getElementById('abaPub'+i);
		if (i==aba) {
			abaPub.src = 'img/publicidade_abas/abaPub'+i+'_on.gif';
		} else {
			abaPub.src = 'img/publicidade_abas/abaPub'+i+'.gif';
		}
	}

	if(aba.toString()=='0') {
		//carregaPagina('conteudo','', 'content|institucional|inst_pub_site');
		document.getElementById('meio').src = 'content/institucional/inst_pub_site.php';
	} else if (aba.toString()=='1') {
		//carregaPagina('conteudo','', 'content|institucional|inst_pub_revista');
		document.getElementById('meio').src = 'content/institucional/inst_pub_revista.php';
	} else if (aba.toString()=='2') {
		//carregaPagina('conteudo','', 'content|institucional|inst_pub_jornal');
		document.getElementById('meio').src = 'content/institucional/inst_pub_jornal.php';
	}

}

function changeDados(aba)
{

	abaDados = document.getElementById('abaDados'+aba);

	for (i=0; i<=1; i++)
	{
		abaDados = document.getElementById('abaDados'+i);
		if (i==aba) {
			abaDados.src = 'img/dados_abas/abaDados'+i+'_on.gif';
		} else {
			abaDados.src = 'img/dados_abas/abaDados'+i+'.gif';
		}
	}

	if(aba.toString()=='0') {
		document.getElementById('meio').src = 'content/institucional/inst_dad_secxxi.php';
	} else if (aba.toString()=='1') {
		document.getElementById('meio').src = 'content/institucional/inst_dad_euro.php';
	}

}

function mudaAba(localId, aba)
{
	abaDestinos = document.getElementById('abaDestinos'+aba);
	abaId = abaDestinos.name;
	abaNome = abaDestinos.alt;

	if (document.getElementById('meio'))
	{
		meio.location.href='content/destinos/grupos.php?local='+localId+'&aba='+abaId;
	}
	else
	{
		window.location.href='?local='+idLocal+'&aba='+idAba;
	}

	//muda imagem do cabeçalho
	//document.getElementById('imgTitulo').src = "img/titulos/"+abaId+".jpg";
	var so = new SWFObject("swf/case_parado.swf?img=../img/titulos/"+abaId+".jpg&titulo=", "imgTituloSwf", "525", "65", "7", "");
	so.addParam("wmode", "transparent");
	so.write("imgTitulo");

	//marca aba corretamente
	for (i=0; i<=5; i++)
	{
		if (document.getElementById('abaDestinos'+i))
		{
			abaDestinos = document.getElementById('abaDestinos'+i);
			abaId = abaDestinos.name;
			if (i==aba)
			{
				if (abaDestinos.src != 'img/destinos_abas/'+abaId+'_on.gif')
				abaDestinos.src = 'img/destinos_abas/'+abaId+'_on.gif';
			}
			else
			{
				if (abaDestinos.src != 'img/destinos_abas/'+abaId+'.gif')
				abaDestinos.src = 'img/destinos_abas/'+abaId+'.gif';
			}

		} //if

	}//for
}

var win=null;
function NewWindow(mypage,myname,w,h,scroll,pos){
	if(pos=="random"){LeftPosition=(screen.width)?Math.floor(Math.random()*(screen.width-w)):100;TopPosition=(screen.height)?Math.floor(Math.random()*((screen.height-h)-75)):100;}
	if(pos=="center"){LeftPosition=(screen.width)?(screen.width-w)/2:100;TopPosition=(screen.height)?(screen.height-h)/2:100;}
	else if((pos!="center" && pos!="random") || pos==null){LeftPosition=0;TopPosition=20}
	settings='width='+w+',height='+h+',top='+TopPosition+',left='+LeftPosition+',scrollbars='+scroll+',location=no,directories=no,status=no,menubar=no,toolbar=no,resizable=yes,maximizable=yes';
	win=window.open(mypage,myname,settings);}


	/*********************************************
	*Funções para tratamento de datas
	*Alterado por Patricia em 31/10/2006
	*
	**********************************************/

	//Aplica máscara em campos tipo data
	function maskDate(dataField, event, bAllowMaskYear) {

		//alert(bAllowMaskYear);
		var data = dataField.value;
		var mydata = '';
		var tecla;

		CheckTAB=true;
		if(navigator.appName.indexOf("Netscape") != -1)
		tecla = event.which;
		else
		tecla = event.keyCode;
		if ((tecla == 9) || (tecla == 16) || (tecla == 37) || (tecla == 39))
		return true;

		if (!bAllowMaskYear) {
			data = data.replace(/[^0-9]/g, "");
		} else {
			data = data.replace(/[^0-9yY]/g, "");
		}
		if (data.length > 0) {
			mydata = data.slice(0, 2);
			if (data.length > 1) {
				mydata = mydata + '/';
				if (data.length > 2) {
					mydata = mydata + data.slice(2, 4);
					if (data.length > 3 && data.length != 4 )  {
						mydata = mydata + '/';
						if (data.length > 4) {
							mydata = mydata + data.slice(4, 8);
						}
					}
				}
			}
		}
		dataField.value = mydata.replace("y", "Y");
	}

	//Valida data
	function validateKeyDate(field, event, bAllowMaskOnYear) {
		var ENTER = 13;
		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 == ENTER) {
			field.blur();
			//window.setTimeout("document." + field.form.name + ".submit()", 500);
			return false;
		}

		if (tecla == BACKSPACE) {
			if ((field.value.slice(-1) == '/') || (field.value.slice(-1) == '-'))
			field.value = field.value.slice(0, -1);
			return true;
		}

		if ((tecla == 0 ) || isNum(key))
		return true;
		if (bAllowMaskOnYear) {
			if (key.toUpperCase() == 'Y' && field.value.length > 4) {
				return true;
			}
		}

		return false;
	}
	//verifica se o caracter é numero
	function isNum( caracter ) {
		var strValid = "0123456789";
		if (strValid.indexOf(caracter) == -1)
		return false;
		return true;
	}

	function completeYear(dataField, sMessage) {
		var data = dataField.value;
		var mydata = '';

		mydata = mydata + data;
		diames = (dataField.value.substring(0, 6));

		if (mydata.length == 8) {
			ano = (dataField.value.substring(6, 8));
			if (ano > 20) {
				dataField.value = diames + "19" + ano;
			} else {
				dataField.value = diames + "20" + ano;
			}
		} else if (mydata.length == 6) {
			ano = (dataField.value.substring(6, 8));
			Today = new Date();
			dataField.value = diames + Today.getFullYear();
		}

		if (mydata.length != 0) {
			verifyDateBR(dataField, sMessage);
		}
	}

	/// Verify date validity, BR format
	function verifyDateBR(data, sMessage) {

		var mydata = '';
		mydata = data.value.replace(' ', '');
		tam = mydata.length;

		bReturn = true;

		situacao = "";

		if (tam < 8) { situacao = "falsa"; }
		dia = (data.value.substring(0, 2));
		mes = (data.value.substring(3, 5));
		ano = (data.value.substring(6, 10));

		bReturn = dataVerification(data,dia,mes,ano,mydata,sMessage);

		return bReturn;
	}

	function dataVerification(data,dia,mes,ano,mydata,sMessage ){

		// Verify if day is valid according to month
		if ((dia < 1) || (dia > 30) && (mes == 4 || mes == 6 || mes == 9 || mes == 11 ) || (dia > 31)) {
			data.value = '';
			data.focus();
			data.select();

			if (sMessage){
				sMessage = sMessage.replace('@@date@@', mydata);
				alert(String.fromCharCode(10) + sMessage + String.fromCharCode(10));
			} else {
				alert(String.fromCharCode(10) + 'Uma data inválida foi digitada: ' + mydata + String.fromCharCode(10) + String.fromCharCode(10) + 'Por favor, confira o dia digitado.' + String.fromCharCode(10) + ' ');
			}
			return false;
		}

		// Verify if month is valid
		if (mes < 1 || mes > 12 ) {
			data.value = '';
			data.focus();
			data.select();
			if (sMessage){
				sMessage = sMessage.replace('@@date@@', mydata);
				alert(String.fromCharCode(10) + sMessage + String.fromCharCode(10));
			} else {
				alert(String.fromCharCode(10) + 'Uma data inválida foi digitada: ' + mydata + String.fromCharCode(10) + String.fromCharCode(10) + 'Por favor, confira o mês digitado.' + String.fromCharCode(10) + ' ');
			}
			return false;
		}

		// Verica se e ano bissexto
		if (mes == 2 && ( dia < 1 || dia > 29 || (dia > 28 && (parseInt(ano / 4) != ano / 4)))) {
			data.value = '';
			data.focus();
			data.select();
			if (sMessage){
				sMessage = sMessage.replace('@@date@@', mydata);
				alert(String.fromCharCode(10) + sMessage + String.fromCharCode(10));
			} else {
				alert(String.fromCharCode(10) + 'Uma data inválida foi digitada: ' + mydata + String.fromCharCode(10) + String.fromCharCode(10) + 'Por favor, confira o ano digitado.' + String.fromCharCode(10) + ' ');
			}
			return false;
		}

		if (data.value == "") {
			data.value = '';
			data.focus();
			data.select();
			if (sMessage){
				sMessage = sMessage.replace('@@date@@', mydata);
				alert(String.fromCharCode(10) + sMessage + String.fromCharCode(10));
			} else {
				alert(String.fromCharCode(10) + 'Uma data inválida foi digitada: ' + mydata + String.fromCharCode(10) + String.fromCharCode(10) + 'Por favor, digite uma data válida.' + String.fromCharCode(10) + ' ');
			}
			return false;
		}

		if (ano < 1900 || ano > 2100) {
			data.value = '';
			data.focus();
			data.select();
			if (sMessage){
				sMessage = sMessage.replace('@@date@@', mydata);
				alert(String.fromCharCode(10) + sMessage + String.fromCharCode(10));
			} else {
				alert(String.fromCharCode(10) + 'Uma data inválida foi digitada:'  + mydata + String.fromCharCode(10) + String.fromCharCode(10) + 'Por favor, confira o ano digitado.' + String.fromCharCode(10) + ' ');
			}
			return false;
		}

		return true;
	}

	/*********************************************
	*Fim das funções para tratamento de datas
	*
	*
	**********************************************/

	/*********************************************
	*Funções para tratamento de numeros
	*
	*
	**********************************************/
	//retorna verdadeiro se tecla em event é númerica ou backspace
	//retorna falso caso contrário
	function validaTeclaNumerica(event)
	{
		var BACKSPACE=  8;
		var TAB= 9;
		var key;
		var tecla;

		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 || tecla == TAB )
		return true;
		return ( isNum(key));

	}


	// Replaces field contents with the result of the mathematical expression it represents.
	// Valid operators: +, -, *, /, % (percent), parenthesis

	function analyzeExpression(field) {
		var valor = new String;
		valor = field.value;

		valor = valor.replace(/\s/g, "");
		valor = valor.replace(/[=]/g, "");
		iPos = valor.search(/[^0-9,\.\+\-\*\/\%\(\)]/);
		if (iPos >= 0) {
			alert("Expressão Inválida. Use somente caracteres numéricos, vírgula ou ponto, parenteses e os operadores +, -, *, /, %");
			field.focus();
			return false;
		}
		iPos = valor.search(/[,\.\+\-\*\/\%]{2,}/g);
		if (iPos > -1) {
			alert("Expressão Inválida");
			field.focus();
			return false;
		}

		valor = valor.replace(/\%/g, "/100,0*");
		valor = valor.replace(/,/g, ".");
		try {
			field.value = eval(valor);
		} catch (eW) {
			alert("Expressão inválida");
			field.focus();
			return false;
		}
		field.value = field.value.replace(/\./g, ",");

		return true;
	}

	function validateKey(field, event, sCharVal) {
		var BACKSPACE = 8;
		var VIRGULA = 44;
		var PONTO = 46;
		var MENOS = 45;
		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) {
			field.blur();
			//window.setTimeout("document." + field.form.name + ".submit()", 500);
			return false;
		}

		// Obtï¿½m o tamanho do texto selecionado
		if (document.getSelection) {
			iTamSel = field.selectionEnd - field.selectionStart;
		} else if (document.selection) {
			txt = document.selection.createRange().text;
			iTamSel = txt.length;
		}

		if ((key == '=') && (iTamSel == field.value.length))
		return true;

		if (sCharVal == undefined || sCharVal == null) {
			sCharVal = '0-9\\.';
		}

		if (field.value.slice(0, 1) == '=') {

			// Tratamento de expressï¿½es
			if ((field.TamanhoOriginal == null) || (field.TamanhoOriginal == 0)) {
				field.TamanhoOriginal = field.maxLength;
				field.maxLength = 200;
			}

			iPos = key.search(/[^0-9\.\t\r\b\+\-\*\/\%\(\)\000]/);

			return (iPos < 0);

		} else {

			// Tratamento de nï¿½meros puros
			sMascChar = '/[^' + sCharVal + '\\t\\r\\b\\000]/';

			if (tecla == 0)
			return true;

			if (tecla == VIRGULA) {
				if ((field.value.indexOf(',') == -1)) {
					if (field.value.length == 0) {
						field.value = field.value + "0,";
					} else {
						field.value = field.value + ",";
					}
				}
				return false;
			}

			if (tecla == PONTO) {
				if ((field.value.indexOf('.') == -1)) {
					if (field.value.length == 0) {
						field.value = field.value + "0.";
					} else {
						field.value = field.value + ".";
					}

				}
				return false;
			}

			if (tecla == MENOS)
			return ((field.value.length == 0) || (iTamSel == field.value.length));

			iPos = eval('key.search(' + sMascChar + ')');
			return (iPos < 0);

		}
	}

	/**************************************
	Funções para tratamento de cpf e cnpj
	***************************************/
	var NUM_DIGITOS_CPF  = 11;
	var NUM_DIGITOS_CNPJ = 14;
	var NUM_DGT_CNPJ_BASE = 8;


	/**
	* Adiciona método lpad() à classe String.
	* Preenche a String à esquerda com o caractere fornecido,
	* até que ela atinja o tamanho especificado.
	*/
	String.prototype.lpad = function(pSize, pCharPad)
	{
		var str = this;
		var dif = pSize - str.length;
		var ch = String(pCharPad).charAt(0);
		for (; dif>0; dif--) str = ch + str;
		return (str);
	} //String.lpad


	/**
	* Adiciona método trim() à classe String.
	* Elimina brancos no início e fim da String.
	*/
	String.prototype.trim = function()
	{
		return this.replace(/^\s*/, "").replace(/\s*$/, "");
	} //String.trim


	function checa_cnpj(campo)
	{
		if (!(isCnpj(campo.value))) {
			alert("CNPJ inválido!");
			campo.value = "";
		}
	}

	function checa_cpf(campo)
	{   if (!(isCpf(campo.value))) {
		alert("CPF inválido!");
		campo.value = "";
	}
	}


	/**
	* Formata a string fornecida como CNPJ ou CPF, adicionando zeros
	* à esquerda se necessário e caracteres separadores, conforme solicitado.
	* @param String pCpfCnpj
	* 	String fornecida para ser formatada.
	* @param boolean pUseSepar
	* 	Indica se devem ser usados caracteres separadores (. - /).
	* @param boolean pIsCnpj
	* 	Indica se a string fornecida é um CNPJ.
	* 	Caso contrário, é CPF. Default = false (CPF).
	* @return String de CPF ou CNPJ devidamente formatada.
	*/
	function formatCpfCnpj(pCpfCnpj, pUseSepar, pIsCnpj)
	{
		if (pIsCnpj==null)  { pIsCnpj = false};
		if (pUseSepar==null) { pUseSepar = true};
		var maxDigitos = (pIsCnpj? NUM_DIGITOS_CNPJ: NUM_DIGITOS_CPF);
		var numero = unformatNumber(pCpfCnpj);

		numero = numero.lpad(maxDigitos, '0');
		if (!pUseSepar) { return numero};

		if (pIsCnpj)
		{
			reCnpj = /(\d{2})(\d{3})(\d{3})(\d{4})(\d{2})$/;
			numero = numero.replace(reCnpj, "$1.$2.$3/$4-$5");
		}
		else
		{
			reCpf  = /(\d{3})(\d{3})(\d{3})(\d{2})$/;
			numero = numero.replace(reCpf, "$1.$2.$3-$4");
		}

		return numero;
	} //formatCpfCnpj

	/**
	* Elimina caracteres de formatação e zeros à esquerda da string
	* de número fornecida.
	* @param String pNum
	* 	String de número fornecida para ser desformatada.
	* @return String de número desformatada.
	*/
	function unformatNumber(pNum)
	{
		return String(pNum).replace(/\D/g, "").replace(/^0+/, "");
	} //unformatNumber


	/**
	* Calcula os 2 dígitos verificadores para o número-efetivo pEfetivo de
	* CNPJ (12 dígitos) ou CPF (9 dígitos) fornecido. pIsCnpj é booleano e
	* informa se o número-efetivo fornecido é CNPJ (default = false).
	* @param String pEfetivo
	* 	String do número-efetivo (SEM dígitos verificadores) de CNPJ ou CPF.
	* @param boolean pIsCnpj
	* 	Indica se a string fornecida é de um CNPJ.
	* 	Caso contrário, é CPF. Default = false (CPF).
	* @return String com os dois dígitos verificadores.
	*/

	function dvCpfCnpj(pEfetivo, pIsCnpj)
	{
		if (pIsCnpj==null) pIsCnpj = false;
		var i, j, k, soma, dv;
		var cicloPeso = pIsCnpj? NUM_DGT_CNPJ_BASE: NUM_DIGITOS_CPF;
		var maxDigitos = pIsCnpj? NUM_DIGITOS_CNPJ: NUM_DIGITOS_CPF;
		var calculado = formatCpfCnpj(pEfetivo, false, pIsCnpj);
		calculado = calculado.substring(2, maxDigitos);
		var result = "";

		for (j = 1; j <= 2; j++)
		{
			k = 2;
			soma = 0;
			for (i = calculado.length-1; i >= 0; i--)
			{
				soma += (calculado.charAt(i) - '0') * k;
				k = (k-1) % cicloPeso + 2;
			}
			dv = 11 - soma % 11;
			if (dv > 9) dv = 0;
			calculado += dv;
			result += dv
		}

		return result;
	}

	/**
	* Testa se a String pCpf fornecida é um CPF válido.
	* Qualquer formatação que não seja algarismos é desconsiderada.
	* @param String pCpf
	* 	String fornecida para ser testada.
	* @return <code>true</code> se a String fornecida for um CPF válido.
	*/
	function isCpf(pCpf)
	{
		var numero = formatCpfCnpj(pCpf, false, false);
		var base = numero.substring(0, numero.length - 2);
		var digitos = dvCpfCnpj(base, false);
		var algUnico, i;

		// Valida dígitos verificadores
		if (numero != base + digitos) return false;

		/* Não serão considerados válidos os seguintes CPF:
		* 000.000.000-00, 111.111.111-11, 222.222.222-22, 333.333.333-33, 444.444.444-44,
		* 555.555.555-55, 666.666.666-66, 777.777.777-77, 888.888.888-88, 999.999.999-99.
		*/
		algUnico = true;
		for (i=1; i<NUM_DIGITOS_CPF; i++)
		{
			algUnico = algUnico && (numero.charAt(i-1) == numero.charAt(i));
		}
		return (!algUnico);
	} //isCpf


	/**
	* Testa se a String pCnpj fornecida é um CNPJ válido.
	* Qualquer formatação que não seja algarismos é desconsiderada.
	* @param String pCnpj
	* 	String fornecida para ser testada.
	* @return <code>true</code> se a String fornecida for um CNPJ válido.
	*/
	function isCnpj(pCnpj)
	{
		var numero = formatCpfCnpj(pCnpj, false, true);
		var base = numero.substring(0, NUM_DGT_CNPJ_BASE);
		var ordem = numero.substring(NUM_DGT_CNPJ_BASE, 12);
		var digitos = dvCpfCnpj(base + ordem, true);
		var algUnico;

		// Valida dígitos verificadores
		if (numero != base + ordem + digitos) return false;

		/* Não serão considerados válidos os CNPJ com os seguintes números BÁSICOS:
		* 11.111.111, 22.222.222, 33.333.333, 44.444.444, 55.555.555,
		* 66.666.666, 77.777.777, 88.888.888, 99.999.999.
		*/
		algUnico = numero.charAt(0) != '0';
		for (i=1; i<NUM_DGT_CNPJ_BASE; i++)
		{
			algUnico = algUnico && (numero.charAt(i-1) == numero.charAt(i));
		}
		if (algUnico) return false;

		/* Não será considerado válido CNPJ com número de ORDEM igual a 0000.
		* Não será considerado válido CNPJ com número de ORDEM maior do que 0300
		* e com as três primeiras posições do número BÁSICO com 000 (zeros).
		* Esta crítica não será feita quando o no BÁSICO do CNPJ for igual a 00.000.000.
		*/
		if (ordem == "0000") return false;
		return (base == "00000000"
		|| parseInt(ordem, 10) <= 300 || base.substring(0, 3) != "000");
	} //isCnpj


	function checa_data(campo_id)
	{
		var hoje = new Date();
		var campo = document.getElementById(campo_id);
		if ((campo.value != "") && !(validaData(campo.value))) {
			alert("Data inválida!");
			campo.value = "";
		} else {
			if (parseInt(campo.value.substr(6)) > hoje.getFullYear()) {
				alert("Data inválida!");
				campo.value = "";
			} else if (parseInt(campo.value.substr(6)) < 1900) {
				alert("Data inválida!");
				campo.value = "";
			}
		}
	}

	function validaData (data) {
		//Verifica se a data é válida (data em português)
		//no formato DD/MM/YY ou DD/MM/YYYY

		if (data == "" ) {
			return (false) ;
		}
		else {

			var datePat = /^(\d{1,2})(\/|-)(\d{2})\2(\d{4})$/i;

			var matchArray = data.match(datePat); //verifica o formato
			if (matchArray == null) {
				return (false);
			}

			day = matchArray[1]; // divide a data em variáveis
			month = matchArray[3];
			year = matchArray[4];

			if (month < 1 || month > 12) { // verifica o intervalo de meses
				return (false);
			}
			if (day < 1 || day > 31) {
				return (false);
			}
			if ((month==4 || month==6 || month==9 || month==11) && day==31) {
				return (false);
			}
			if (month == 2) { //verifica data de 29 de fevereiro
				var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
				if (day>29 || (day==29 && !isleap)) {
					return (false);
				}
			}
		}
		return (true);  // data válida

	}
	//Função auxiliar que junta os tres campos em uma data para validar.
	//Utilizada quando a data é informada em campos separados.
	function enviaDataParaValidacao(IdCampoDia, IdCampoMes,IdCampoAno) {
		var dia = document.getElementById(IdCampoDia).value;
		var mes = document.getElementById(IdCampoMes).value;
		var ano = document.getElementById(IdCampoAno).value;
		if (dia != "" && mes != "" && ano != "") {
			var dataCompleta = dia + "/" + mes + "/" + ano;
			if (!validaData(dataCompleta)) {
				alert('Data Inválida');
				document.getElementById(IdCampoDia).value = "";
				document.getElementById(IdCampoMes).value = "";
				document.getElementById(IdCampoAno).value = "";
			}
			document.getElementById(IdCampoDia).focus();
		}
	}

	//************************************** Antigo "mascaras.js"
	Mascaras = {
		IsIE: navigator.appName.toLowerCase().indexOf('microsoft')!=-1,
		AZ: /[A-Z]/i,
		Acentos: /[À-ÿ]/i,
		Num: /[0-9]/,
		carregar: function(parte){
			var Tags = ['input','textarea'];
			if (typeof parte == "undefined") parte = document;
			for(var z=0;z<Tags.length;z++){
				Inputs=parte.getElementsByTagName(Tags[z]);
				for(var i=0;i<Inputs.length;i++)
				if(('button,image,hidden,submit,reset').indexOf(Inputs[i].type.toLowerCase())==-1)
				this.aplicar(Inputs[i]);
			}
		},
		aplicar: function(campo){
			tipo = campo.getAttribute('tipo');
			if (!tipo || campo.type == "select-one") return;
			orientacao = campo.getAttribute('orientacao');
			mascara = campo.getAttribute('mascara');
			jsexec = campo.getAttribute('jsexec');
			if (tipo.toLowerCase() == "decimal"){
				orientacao = "esquerda";
				casasdecimais = campo.getAttribute('casasdecimais');
				tamanho = campo.getAttribute('maxLength');
				if (!tamanho || tamanho > 50) tamanho = 10;
				if (!casasdecimais) casasdecimais = 2;
				campo.setAttribute("mascara", this.geraMascaraDecimal(tamanho, casasdecimais));
				campo.setAttribute("tipo", "numerico");
				campo.setAttribute("orientacao", orientacao);
				campo.setAttribute("jsexec", jsexec);
				campo.onblur = function(e){ Mascaras.onblur(e?e:event, campo) };
				campo.onfocus = function(e){ Mascaras.guardaValor(campo) };
			}
			if (orientacao && orientacao.toLowerCase() == "esquerda")
			{
				campo.style.textAlign = "right";
				campo.style.paddingRight = "1px";
			}
			if (mascara) campo.setAttribute("maxLength", mascara.length);
			if (tipo){
				campo.onkeypress = function(e){ return Mascaras.onkeypress(e?e:event); };
				campo.onkeyup = function(e){ Mascaras.onkeyup(e?e:event, campo) };
			}
			campo.setAttribute("snegativo", ((campo.value).substr(0,1) == "-" ? "s" : "n"));

			this.aplicarMascara(campo, campo.value);
		},
		onkeypress: function(e){
			KeyCode = this.IsIE ? event.keyCode : e.which;
			campo =  this.IsIE ? event.srcElement : e.target;
			readonly = campo.getAttribute('readonly');
			if (readonly) return;
			maxlength = campo.getAttribute('maxlength');
			pt = campo.getAttribute('pt');
			selecao = this.selecao(campo);
			if (selecao.length > 0 && KeyCode != 0){
				campo.value = "";
				Char = String.fromCharCode(KeyCode);
				tipo = campo.getAttribute('tipo').toLowerCase();
				if (tipo == "numerico" && Char.search(this.Num) == -1) {
					return false;
				}
				else {
					return true;
				}
			}
			if (KeyCode == 0) return true;
			Char = String.fromCharCode(KeyCode);
			valor = campo.value;
			mascara = campo.getAttribute('mascara');
			if (KeyCode != 8){
				tipo = campo.getAttribute('tipo').toLowerCase();
				negativo = campo.getAttribute('negativo');
				if(negativo && KeyCode == 45){
					snegativo = campo.getAttribute('snegativo');
					snegativo = (snegativo == "s" ? "n" : "s");
					campo.setAttribute("snegativo", snegativo);
				}else{
					valor += Char
					if (tipo == "numerico" && Char.search(this.Num) == -1) return false;
					if (KeyCode != 32 && tipo == "caracter" && Char.search(this.AZ) == -1 && Char.search(this.Acentos) == -1) return false;
				}
			}
			if (mascara){
				this.aplicarMascara(campo, valor);
				return false;
			}
			return true;
		},
		onkeyup: function(e, campo){
			KeyCode = this.IsIE ? event.keyCode : e.which;
			if (KeyCode != 9 && KeyCode != 16 && KeyCode != 109){
				valor = campo.value;
				if (KeyCode == 8 && !this.IsIE) valor = valor.substr(0,valor.length-1);
				this.aplicarMascara(campo, valor);
			}
		},
		onblur: function(e, campo){
			var retorno = "";
			var i = 0;
			var decimais = campo.getAttribute("casasdecimais");
			if ((campo.value.length > 0) && (campo.value.length <= decimais)) {
				for (i=campo.value.length; i < decimais; i++){
					retorno += "0";
				}
				retorno = "0," + retorno + campo.value;
				campo.value = retorno;
			}
			this.executarEspecial(campo);
			return true;
		},
		aplicarMascara: function(campo, valor){
			//alert(campo.name);
			mascara = campo.getAttribute('mascara');
			if (!mascara) return;
			negativo = campo.getAttribute('negativo');
			snegativo = campo.getAttribute('snegativo');
			if (negativo && valor.substr(0,1) == "-")
			valor = valor.substr(1,valor.length-1);
			orientacao = campo.getAttribute('orientacao');
			var i = 0;
			for(i=0;i<mascara.length;i++){
				caracter = mascara.substr(i,1);
				if (caracter != "#") valor = valor.replace(caracter, "");
			}
			retorno = "";
			if (orientacao != "esquerda"){
				contador = 0;
				for(i=0;i<mascara.length;i++){
					caracter = mascara.substr(i,1);
					if (caracter == "#"){
						retorno += valor.substr(contador,1);
						contador++;
					}else
					retorno += caracter;
					if(contador >= valor.length) break;
				}
			}else{
				contador = valor.length-1;
				for(i=mascara.length-1;i>=0;i--){
					if(contador < 0) break;
					caracter = mascara.substr(i,1);
					if (caracter == "#"){
						retorno = valor.substr(contador,1) + retorno;
						contador--;
					}else
					retorno = caracter + retorno;
				}
			}
			if (negativo && snegativo == "s")
			retorno = "-" + retorno;
			campo.value = retorno;
		},
		geraMascaraDecimal: function(tam, decimais){
			var retorno = ""; var contador = 0; var i = 0;
			decimais = parseInt(decimais);
			for (i=0;i<(tam-(decimais+1));i++){
				retorno = "#" + retorno;
				contador++;
				if (contador == 3){
					retorno = "." + retorno;
					contador=0;
				}
			}
			retorno = retorno + ",";
			for (i=0;i<decimais;i++) retorno += "#";
			return retorno;
		},
		selecao: function(campo){
			if (this.IsIE)
			return document.selection.createRange().text;
			else
			return (campo.value).substr(campo.selectionStart, (campo.selectionEnd - campo.selectionStart));
		},
		formataValor: function (valor, decimais){
			valor = valor.split('.');
			if (valor.length == 1) valor[1] = "";
			for(var i=valor[1].length;i<decimais;i++)
			valor[1] += "0";
			valor[1] = valor[1].substr(0,2);
			return (valor[0] + "." + valor[1]);
		},
		executarEspecial: function (campo){
			funcao = campo.getAttribute('jsexec');
			if (funcao) {
				valorguardado = campo.getAttribute('valorguardado');
				if (campo.value != valorguardado) eval(funcao);
			}
		},
		guardaValor: function (campo){
			campo.setAttribute('valorguardado', campo.value);
		}
	};
	//*************************************************************



	function incFlash(width, Height, src)
	{
		AC_FL_RunContent( 'codebase','http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0','width',width,'height',Height,'src',src,'quality','high','pluginspage','http://www.macromedia.com/go/getflashplayer','movie',src); //end AC code
	}

	function number_format (number, decimals, dec_point, thousands_sep)
	{
		var exponent = "";
		var numberstr = number.toString ();
		var eindex = numberstr.indexOf ("e");
		if (eindex > -1)
		{
			exponent = numberstr.substring (eindex);
			number = parseFloat (numberstr.substring (0, eindex));
		}

		if (decimals != null)
		{
			var temp = Math.pow (10, decimals);
			number = Math.round (number * temp) / temp;
		}
		var sign = number < 0 ? "-" : "";
		var integer = (number > 0 ?
		Math.floor (number) : Math.abs (Math.ceil (number))).toString ();

		var fractional = number.toString ().substring (integer.length + sign.length);
		dec_point = dec_point != null ? dec_point : ",";
		fractional = decimals != null && decimals > 0 || fractional.length > 1 ?
		(dec_point + fractional.substring (1)) : "";
		if (decimals != null && decimals > 0)
		{
			for (i = fractional.length - 1, z = decimals; i < z; ++i)
			fractional += "0";
		}

		thousands_sep = (thousands_sep != dec_point || fractional.length == 0) ?
		thousands_sep : null;
		if (thousands_sep != null && thousands_sep != "")
		{
			for (i = integer.length - 3; i > 0; i -= 3)
			integer = integer.substring (0 , i) + thousands_sep + integer.substring (i);
		}

		return sign + integer + fractional + exponent;
	}

	function carregaPagina(campo, variaveis, arquivo) {
		var ajax = getHTTPObject();

		var data = document.getElementById(campo);
		if(ajax) {
			var parameters = variaveis+"&arquivo="+arquivo+"&rand=" + GM_Random();
			// Faz a chamada assíncrona para o php
			ajax.open('POST','includes/ajax_carrega_pagina.php',true);

			ajax.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
			ajax.onreadystatechange = function() {
				if(ajax.readyState == 4) { // Se a resposta estiver pronta
					if(ajax.status == 200) { // Se a resposta retornou com sucesso
						data.innerHTML = ajax.responseText;
					} else { // Se a resposta retornar com erro, mostrá-lo
						alert(ajax.statusText);
					}
				}
			}
			ajax.send(parameters);

		}
	}
	
	function validaBuscaSimples() {
		var msg = "";
		if (document.getElementById("id").value == "")
		{
			if (document.getElementById("data").value == 0) {
				msg += "Selecione uma data antes de prosseguir com a busca.\n";
			}
			if (document.getElementById("destino").value == 0) {
				msg += "Selecione uma cidade de destino antes de prosseguir com a busca.\n";
			}
			if (document.getElementById("embarque").value == 0) {
				msg += "Selecione uma cidade de embarque antes de prosseguir com a busca.";
			}
		}
		if (msg != "")
			alert(msg);
		else
			document.getElementById("").submit();
	}
	
	function trocaAbaBox(aba) {
		document.getElementById("ababox1").src = document.getElementById("ababox1").src.replace("_on", "");
		//document.getElementById("ababox2").src = document.getElementById("ababox2").src.replace("_on", "");
		document.getElementById("ababox3").src = document.getElementById("ababox3").src.replace("_on", "");
		if (aba == 1) {
			document.getElementById("ababox1").src = "img/topo_box/busca_on.gif";
			/*
		} else if (aba == 2) {
			document.getElementById("ababox2").src = "img/topo_box/login_on.gif";
			*/
		} else if (aba == 3) {
			document.getElementById("ababox3").src = "img/topo_box/conheca_on.gif";
		}
	}