<!--
window.history.forward(1); 
/*
document.attachEvent("onkeydown", my_onkeydown_handler); 
function my_onkeydown_handler(){ 
	switch (event.keyCode) { 
		case 116 : // 'F5' 
		event.returnValue = false; 
		event.keyCode = 0; 
		//window.status = "Esta tecla está desabilitada!"; 
		alert ("Esta tecla está desabilitada!");
		break; 
	} 
} 
*/
//disable right mouse click Script 
//document.onmousedown="if (event.button==2) return false"; 
//document.oncontextmenu=new Function("return false"); 

document.attachEvent("onkeydown", showDown); 
//document.onkeydown = showDown; 

function showDown(evt) { 
	evt = (evt)? evt : ((event)? event : null); 
	if (evt) { 
		if (event.keyCode == 8 && (event.srcElement.type!= "text" && event.srcElement.type!= "textarea" && event.srcElement.type!= "password")) { 
			// When backspace is pressed but not in form element 
			cancelKey(evt); 
		} else if (event.keyCode == 116) { 
			// When F5 is pressed 
			cancelKey(evt); 
		} else if (event.keyCode == 122) { 
			// When F11 is pressed 
			cancelKey(evt); 
		} else if (event.ctrlKey && (event.keyCode == 78 || event.keyCode == 82)) { 
			// When ctrl is pressed with R or N 
			cancelKey(evt); 
		} else if (event.altKey && event.keyCode==37 ) { 
			// stop Alt left cursor 
			cancelKey(evt); 
			return false; 
		} 
	} 
} 

function cancelKey(evt) { 
	if (evt.preventDefault) { 
		evt.preventDefault(); 
		return false; 
	} else { 
		evt.keyCode = 0; 
		evt.returnValue = false; 
		alert ("Esta tecla está desabilitada!");
	} 
} 

function backPage() {
	if (history.length>0) {
		history.go(-1);
	}
}
function rOpenWindow(){
	window.opener.location.reload();
}

function hiddenLayer(obj){
	if (document.all) {
		eval("document.all."+obj+".style.visibility='hidden'");
	}
	else if (document.layers){
		document.layers[obj].visibility = "hidden";
	}
	else{
		document.getElementById(obj).style.visibility = 'hidden';
	}
}

function openwin(url, w, h){
	newWindow = window.open(url,'window',"toolbar=0, location=0, directories=0, status=0, menubar=0, scrollbars=1, resizable=0, width="+w+", height="+h);
	newWindow.focus();
}
function openwinFlex(url, w, h){
	newWindow = window.open(url,'window',"toolbar=0, location=0, directories=0, status=0, menubar=0, scrollbars=1, resizable=1, width="+w+", height="+h);
	newWindow.focus();
}
function openwin2(url, w, h, windowName){
	newWindow = window.open(url,windowName,"toolbar=0, location=0, directories=0, status=1, menubar=0, scrollbars=1, resizable=0, width="+w+", height="+h);
	newWindow.focus();
}
function setStatus(){
	window.defaultStatus='eCOMPASS';
	return true;
}
function openwinSelect(url, compl, w, h){
	if (url.options[url.selectedIndex].value!=""){
		var url2 = url.options[url.selectedIndex].value + compl;
		newWindow = window.open(url2,'window',"toolbar=0, location=0, directories=0, status=0, menubar=0, scrollbars=1, resizable=0, width="+w+", height="+h);
		newWindow.focus();
	}
	return;
}
function setOpenerValueSubmit(objName, objValue, formName){
	obj = eval('window.opener.document.'+formName+'.'+objName);
	obj.value = objValue;
	eval('window.opener.document.'+formName+'.submit()');
}
function setOpenerValue(objName, objValue, formName){
	obj = eval('window.opener.document.'+formName+'.'+objName);
	obj.value = objValue;
}
function setValue(objName, objValue, formName){
	obj = eval('document.'+formName+'.'+objName);
	obj.value = objValue;
}

function copyValue(objTo, objFrom, formName){
	To = eval('document.'+formName+'.'+objTo);
	From = eval('document.'+formName+'.'+objFrom);
	To.value = From.value;
}


function setListValue(objName, objListName, formName){
	obj = MM_findObj(objListName);
	objHid = MM_findObj(objName);
	for (var i = 0; i < obj.options.length; i++){
		if ((obj.options[i].selected) && (obj.options[i].value>'')){
			if (objHid.value.match(";"+obj.options[i].value+";") == null){
				objHid.value += obj.options[i].value+";";
			}
		}
	}
}

function setValueCheck(objName, objValue, formName, act){
	obj = eval('document.'+formName+'.'+objName);
	obj.value = objValue;
	formElem = eval('document.'+formName+'.elements');
	for (var i = 0; i < formElem.length; i++){
		obj1 = eval('document.'+formName+'.elements['+i+']');
		objType = obj1.type;
		retype = /hidden|action|button|submit|reset|multiple|image|check|radio/i;
		if (!retype.exec(objType)){
			if (!checkField(obj1)) return; 
		}
	} 
	if (!act){
		eval('document.'+formName+'.submit()');	
	}
	else{
		return 'n';
	}
}
function setValueRadio(objName, objValue, formName){
	obj = eval('document.'+formName+'.'+objName);
	obj.value = objValue;
	formElem = eval('document.'+formName+'.elements');
	for (var i = 0; i < formElem.length; i++){
		obj1 = eval('document.'+formName+'.elements['+i+']');
		objType = obj1.type;
		retype = /hidden|action|button|submit|reset|multiple|image|check/i;
		if (!retype.exec(objType)){
			if (!checkField(obj1)) return; 
		}
	} 
	eval('document.'+formName+'.submit()');	
}
function setValueSubmit(objName, objValue, formName){
	obj = eval('document.'+formName+'.'+objName);
	obj.value = objValue;
	eval('document.' + formName + '.submit()');
	return true;
}

function setValueAppend(objSrc,formSrc,objName,objValue,formName){
	objSrc = eval('document.'+formSrc+'.'+objSrc);
	obj = eval('document.'+formName+'.'+objName);
	obj.value='';
	for ( i = 0; i < objSrc.length; i++){
		if ( objSrc[i].checked ){
			obj.value = obj.value + "#" + objSrc[i].value;
		}
	}
//	obj.value = objValue;
//	eval('document.' + formName + '.submit()');
	return true;
}

function setValueConfirm(objName, objValue, formName, msgAlert){
	if ( confirm(msgAlert) ){
		obj = eval('document.'+formName+'.'+objName);
		obj.value = objValue;
		eval('document.' + formName + '.submit()');
		return true;
	}
	return false;
}

function setValueDate(objName, objValue, formName){
	var now = new Date();
	var year = now.getFullYear();
	var month = now.getMonth() + 1;
	var day = now.getDate();
	day = (day.length > 1 ? day : '0'+day);
	month = (month.length > 1 ? month : '0'+month);
	today = day+"/"+month+"/"+year;
	if (today == objValue){
		if (!confirm("Você realmete pretende viajar hoje?")){
			return false;
		}
	}
	obj = eval('document.'+formName+'.'+objName);
	obj.value = objValue;
	if (!checkField(obj)) return false; else  return true; 
}
function printDateTime(){
	var now = new Date();
	var currentYear = now.getFullYear();
	var month = new Array("Jan", "Fev", "Mar", "Abr", "Mai", "Jun", "Jul", "Ago", "Set", "Out", "Nov", "Dez");
	var currentDate = now.getDate();
	document.write(currentDate+' / '+month[now.getMonth()]+' / '+((currentYear < 100) ? "19" : "")+currentYear);
}
function jumpMenu(targ,selObj,restore){ //v3.0
 if (selObj.options[selObj.selectedIndex].value>''){
   eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
   if (restore) selObj.selectedIndex=0;
 }
}
function commaToDot(value){
	return value.replace(",",".")
}
function isNumber(value){
	return !isNaN(commaToDot(value));		
}
function isInteger(value){
	newValue = commaToDot(value);
	return ((isNumber(value)) && (newValue.indexOf(".") < 0));
}
function isChar(value){
	rechar = /[A-Za-z]/;
	renum = /[0-9_]/;
	respecial = /\W/;
	caracter = rechar.exec(value);
	numero = renum.exec(value);
	special = respecial.exec(value);
	return (caracter && !numero && !special);
}
function getLength(value, len){
	return (value.length >= parseInt(len,10));
}
function checkField(obj){
	if (obj.name == null || obj.name == '' || obj.name == ' '){
		return true;
	}
	valueType = obj.name.substr(0,1);
	valueLength = obj.name.substr(1,3);
	switch (obj.type.toLowerCase()){
		case "text":
			objValue = trim(obj.value);
		break;
		case "select-one":
			objValue = trim(obj.options[obj.selectedIndex].value);
		break;
		case "radio":
			objValue = '';
			for (i = 0; i < obj.length; i++){
				if(obj[i].checked){
					objValue = trim(obj[i].value);
				}
			}
		break;
		default:
			objValue = trim(obj.value);	
	}
	if (getLength(objValue, valueLength)){
		switch (valueType){
			case "c": //Char
				if (!isChar(objValue)){
					alert('Valor inválido. Este campo deve ser preenchido apenas com letras.');
					if (objType != 'radio') {
						obj.focus();
						obj.select();
					}
					else{
						obj[0].select();
					}
					return false;
				}
				return true;		
			break;
			case "r": //CPF
				var varFirstChr = obj.value.charAt(0);
				for ( var i=0; i<=10; i++ ){
					var c = obj.value.charAt(i);
					if( ! (c>="0")&&(c<="9") ){
						alert('Valor inválido. Preencha usando apenas números.');
						obj.focus();
						obj.select();
					}
					if( c!=varFirstChr ){
						vaCharCPF = true;
					}
				}
				if( !vaCharCPF ){ 
					return false; 
				}
				soma=0;
				for ( i=0; i<9; i++ ) { 
					soma += (10-i) * ( eval(obj.value.charAt(i)) ); 
				}
				digito_verificador = 11-(soma % 11);
				if ( (soma % 11) < 2 ){
					digito_verificador = 0;
				}
				if ( eval(obj.value.charAt(9)) != digito_verificador ){ 
					alert('Dígito verificador está incorreto.');
					obj.focus();
					obj.select();
					return false; 
				}
				soma=0;
				for ( i=0; i<9; i++ ) { 
					soma += (11-i) * ( eval(obj.value.charAt(i)) ); 
				}
				soma += 2 * ( eval(obj.value.charAt(9)) );
				digito_verificador = 11-(soma % 11);
				if ( (soma % 11) < 2 ){
					digito_verificador = 0;
				}
				if ( eval(obj.value.charAt(10)) != digito_verificador ){ 
					alert('Dígito verificador está incorreto.');
					obj.focus();
					obj.select();
					return false; 
				}
				return true;
			case "i": //Inteiro
				if (!isInteger(objValue)){
					alert('Valor inválido. Este campo deve ser preenchido por um número inteiro.');
					if (objType != 'radio') {
						obj.focus();
						obj.select();
					}
					else{
						obj[0].select();
					}
					return false;
				}
				return true;		
			break;
			case "v": //Inteiro
				if ((!isInteger(objValue)) )
				{
					alert('Valor inválido. Este campo deve ser preenchido por um número inteiro.');
					obj.focus();
					obj.select();
					return false;
				}
				else if ( (!checkDV(objValue))){
					obj.focus();
					obj.select();
					return false;
				}
				return true;		
			break;		
			case "d": //Double
				if (!isNumber(objValue)){
					alert('Valor inválido. Este campo deve ser preenchido por um número.');
					if (objType != 'radio') {
						obj.focus();
						obj.select();
					}
					else{
						obj[0].select();
					}
					return false;					
				}
				return true;		
			break;
			case "k": //data com antecedência para viagem assento confirmado
				var datePat = /^(\d{1,2})(\/)(\d{1,2})\2(\d{4})$/;
				var matchArray = objValue.match(datePat);
				if (matchArray == null){
					 alert ('Favor preencher corretamente a data.\nA data deve estar no formato dd/mm/aaaa.');	
					 return false;
				}
				month = matchArray[3];
				day = matchArray[1];
				year = matchArray[4];
				var today  = new Date();
				var limite_1 = new Date(today.getTime()+(1000 * 60 * 60 * 24 * 7));
				var limite_2 = new Date(today.getTime()+(1000 * 60 * 60 * 24 * 180));
				var time = new Date(year, month - 1, day, today.getHours(), today.getMinutes(), today.getSeconds(), today.getMilliseconds());
				if (time < limite_1 ){
					alert ('Data inválida.\nAceita-se data a partir de '+limite_1.toLocaleDateString()+'.');
					return false;
				}
				return checkDate(month, day, year);
			break;
			case "n": //data com antecedência para viagem normal
				var datePat = /^(\d{1,2})(\/)(\d{1,2})\2(\d{4})$/;
				var matchArray = objValue.match(datePat);
				if (matchArray == null){
					 alert ('Favor preencher corretamente a data.\nA data deve estar no formato dd/mm/aaaa.');	
					 return false;
				}
				month = matchArray[3];
				day = matchArray[1];
				year = matchArray[4];
				var today  = new Date();
				var limite_1 = new Date(today.getTime()+(1000 * 60 * 60 * 24 * 0));
				var limite_2 = new Date(today.getTime()+(1000 * 60 * 60 * 24 * 180));
				var time = new Date(year, month - 1, day, today.getHours(), today.getMinutes(), today.getSeconds(), today.getMilliseconds());
				if (time < limite_1 ){
					alert ('Data inválida.\nAceita-se data a partir de '+limite_1.toLocaleDateString()+'.');
					return false;
				}
				return checkDate(month, day, year);
			break;
			case "a": //Data futura
				var datePat = /^(\d{1,2})(\/)(\d{1,2})\2(\d{4})$/;
				var matchArray = objValue.match(datePat);
				if (matchArray == null){
					 alert ('Favor preencher corretamente a data.\nA data deve estar no formato dd/mm/aaaa.');	
					 return false;
				}
				month = matchArray[3];
				day = matchArray[1];
				year = matchArray[4];
				var today = new Date();
				var time = new Date(year, month - 1, day, today.getHours(), today.getMinutes(), today.getSeconds(), today.getMilliseconds());
				if (today > time){
					alert ('Data inválida.\nA data deve ser posterior a hoje.');
					return false;
				}
				return checkDate(month, day, year);
			break;
			case "b": //Data passada
				var datePat = /^(\d{1,2})(\/)(\d{1,2})\2(\d{4})$/;
				var matchArray = objValue.match(datePat);
				if (matchArray == null){
					 alert ('Formato de data inválido.\nA data deve estar no formato dd/mm/aaaa.');	
					 return false;
				}
				month = matchArray[3];
				day = matchArray[1];
				year = matchArray[4];
				var today = new Date();
				var time = new Date(year, month - 1, day, today.getHours(), today.getMinutes(), today.getSeconds(), today.getMilliseconds());
				var firstday = new Date("January 01, 1901 00:00:00");
				
				if ((today < time) || (firstday >= time)){
					alert ('Data inválida.\nA data deve ser anterior a hoje');
					return false;
				}
				return checkDate(month, day, year);
			break;
			case "f": //Data qualquer
				var datePat = /^(\d{1,2})(\/)(\d{1,2})\2(\d{4})$/;
				var matchArray = objValue.match(datePat);
				if (matchArray == null){
					alert ('Formato de data inválido.\nA data deve estar no formato dd/mm/aaaa.');	
					obj.focus();
					obj.select();
					return false;
				}
				month = matchArray[3];
				day = matchArray[1];
				year = matchArray[4];
				var today = new Date();
				var time = new Date(year, month - 1, day, today.getHours(), today.getMinutes(), today.getSeconds(), today.getMilliseconds());
				var firstday = new Date("January 01, 1901 00:00:00");
				
				if ((firstday >= time)){
					alert ('Data inválida');
					obj.focus();
					obj.select();
					return false;
				}
				return checkDate(month, day, year);
			break;
			default:  //Alfanumérico	
				return true;	
		}
	}else{
		if ((objType == 'text') || (objType == 'password') || (objType == 'textarea') || (objType == 'textfield')) { 
			text = ' Por favor, preencha todos os campos com *.\n O campo deve ser preenchido com ao menos '+parseInt(valueLength, 10)+' caracteres/dígitos.';
		}
		else{
			text = "Por favor selecione uma opção."
		}	
		alert(text);
		if (objType == 'select-one'){
			obj.focus();
			return false;
		}		
		if ((objType != 'radio') && (objType != 'select-one')) {
			if (obj.disabled == "true"){
				return false;
			}
			else{
				obj.focus();
				obj.select();
				return false;
			}
		}
		return false;
	}	
}

function checkDate(month, day, year){
	if (month < 1 || month > 12){
		 alert ('Mês inválido');		
		 return false;
	}
	if (day < 1 || day > 31){
		alert ('Dia inválido');
		return false;
	}
	if ((month==4 || month==6 || month==9 || month==11) && day==31){ 
		alert ('Data inválida');
		return false;
	}
	if (month == 2){
		var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
		if (day>29 || (day==29 && !isleap)) {
			alert ('Data inválida.')
			return false;
		}
	}	
	return true;	
}

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;
}
var isNN = (navigator.appName.indexOf("Netscape")!=-1);
function autoTab(input,len, e) {
	var keyCode = (isNN) ? e.which : e.keyCode; 
	var filter = (isNN) ? [0,8,9] : [0,8,9,16,17,18,37,38,39,40,46];
	if(input.value.length >= len && !containsElement(filter,keyCode)) {
		input.value = input.value.slice(0, len);
		if (!input.form[(getIndex(input)+1) % input.form.length].disabled){
			input.form[(getIndex(input)+1) % input.form.length].focus();
		} else {
			input.form[(getIndex(input)+2) % input.form.length].focus();
		}
}
function containsElement(arr, ele) {
	var found = false, index = 0;
	while(!found && index < arr.length)
		if(arr[index] == ele)found = true;
		else index++;
	return found;
}
function getIndex(input) {
	var index = -1, i = 0, found = false;
	while (i < input.form.length && index == -1)
		if (input.form[i] == input)index = i;
		else i++;
		return index;
	}
	return true;
}
function checkDV(valor){
	var numero = valor.substr(0,valor.length-1);
	var dv = valor.substr((valor.length)-1,1);
	if ( (numero%7) != dv ){
		alert("Este não é um número valido de ticket.");
		return false;
	}
	return true;
}
function isArray(o) {
  return (isObject(o) && (o.length) &&(!isString(o)));
}
function isObject(o) {
  return (typeof(o)=="object");
}
function isString(o) {
  return (typeof(o)=="string");
}

function trim(s) {
  while (s.substring(0,1) == ' ') {
    s = s.substring(1,s.length);
  }
  while (s.substring(s.length-1,s.length) == ' ') {
    s = s.substring(0,s.length-1);
  }
  return s;
}

-->