//<!--
		
// variables booleans that have also what's the browser in use
var N4 = ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) <= 4));
var NS = ((navigator.appName == "Netscape") && parseInt(navigator.appVersion) > 4);
var IE  = ((navigator.userAgent.indexOf("MSIE") != -1));


var chars1 = "àáãâéèêíìîóòõôúùûçÀÁÃÂÉÈÊÍÌÎÓÒÕÔÚÙÛÇ";
var chars2 = "AAAAEEEIIIOOOOUUUCAAAAEEEIIIOOOOUUUC";
var search = false;
var accent = false;
var up = false;


var currentTextbox="";
var currentAnchor="";
var currentStationsDiv="";

var now = new Date();
var cal = new CalendarPopup('calendar');
var lang = 'pt';

function setLanguage()
{
	cal.setCssPrefix('TEST');
	//set the default values
	cal.setTitle("Calendário");
	cal.setMonthNames('Janeiro','Fevereiro','Março','Abril','Maio','Junho','Julho','Agosto','Setembro','Outubro','Novembro','Dezembro');
	cal.setDayHeaders('<ABBR TITLE="Domingo">D</ABBR>','<ABBR TITLE="Segunda">S</ABBR>','<ABBR TITLE="Terça">T</ABBR>','<ABBR TITLE="Quarta">Q</ABBR>','<ABBR TITLE="Quinta">Q</ABBR>','<ABBR TITLE="Sexta">S</ABBR>','<ABBR TITLE="Sábado">S</ABBR>');
	cal.setTodayText("Hoje");
	cal.setSummary1("Esta tabela contém dois links para navegar pelos meses do calendário e o nome do mês que está activo.");
	cal.setSummary2("Links para navegar pelos meses do calendário e o nome do mês activo.");
	cal.setSummary3("Contém os dias do mês activo divididos em oito colunas de Domingo a Sábado.");
	cal.setMonthBack("Voltar um mês");
	cal.setMonthFront("Avançar um mês");
	if (langa=='en'){//override for english
		cal.setTitle("Calendar");
		cal.setMonthNames('January','February','March','April','May','June','July','August','September','October','November','December');
		cal.setDayHeaders('<ABBR TITLE="Sunday">S</ABBR>','<ABBR TITLE="Monday">M</ABBR>','<ABBR TITLE="Tuesday">T</ABBR>','<ABBR TITLE="Wednsday">W</ABBR>','<ABBR TITLE="Thursday">T</ABBR>','<ABBR TITLE="Friday">F</ABBR>','<ABBR TITLE="Saturday">S</ABBR>');
		cal.setTodayText("Today");
		cal.setSummary1("This table contains two links to navigate through the calendar and the name of the active month.");
		cal.setSummary2("Links to navigate through the calendar months and the name of the active month.");
		cal.setSummary3("Contains the days of month divided in eight rows from Sunday to Saturday.");
		cal.setMonthBack("Backward one month");
		cal.setMonthFront("Forward one month");
	}
}

function pop(textid,anchor) {
	return popf(textid,anchor,'yyyy-MM-dd');
}
function popf(textid,anchor,format){
	var textbox = getObject(textid);
	cal.select(textbox,anchor,format);
	getObject('focuscalendar').focus();
	return false;
}

function popCalendar(idDay, idMonth, idYear, idAnchor, idHiddenInput)
{
	var day = document.getElementById(idDay).value;
	if(day.length <= 1) {
		day = "0" + day;
	}
	
	var month = document.getElementById(idMonth).value;
	if(month.length <= 1) {
		month = "0" + month;
	}
	
	var year = document.getElementById(idYear).value;
	
	var fullDate = year + "-" + month + "-" + day;
	
	if(fullDate.length != 10) {
		fullDate = "";
	}

	var hiddenInput = document.getElementById(idHiddenInput);

	hiddenInput.value = fullDate;

	cal.select(hiddenInput,idAnchor,'yyyy-MM-dd');
	
	hiddenInput.focus();

	return false;
}

function setDateField(idHiddenDate,idField,beginIndex,endIndex) {
	var newDate = document.getElementById(idHiddenDate).value;
	document.getElementById(idField).value = newDate.substring(beginIndex,endIndex);
}

function setCurrent(textbox, anchor, idDivStations)
{
	currentTextbox=textbox;
	currentAnchor=anchor;
	currentStationsDiv=idDivStations;
}

function checkservices(obj,stt){var svcs=['allServices','alfa','intercities','interregionals','regionals','urbans'];var all = false;if(obj==svcs[0])saservices(svcs);else{var as=true;for(var i=1;i<svcs.length;i++)if(!getObject(svcs[i]).checked){as=false;break;}if(as)saservices(svcs);else getObject(svcs[0]).checked=false;}}
function saservices(svcs){getObject(svcs[0]).checked = true;for(var i=1;i<svcs.length;i++)getObject(svcs[i]).checked=false;}
function resetOptions(){getObject("allServices").checked=true;getObject("alfa").checked=false;getObject("intercities").checked=false;getObject("interregionals").checked=false;getObject("regionals").checked=false;getObject("urbans").checked=false;getObject("depart").value="";getObject("arrival").value="";getObject('date').value=formatDate(nowa,'yyyy-MM-dd');getObject('returnDate').value="";getObject('time').value="";getObject('returnTime').value="";}
function flash(element, num, vel, color)
{
	var blink=true;
	var x=0;
	var n=num*2;
	var coloron = color;
	var e = document.getElementById(element);
	if(e==null)
		return;
	var coloroff = e.style.backgroundColor;
	for(x=0;x<n;x++)
	{
		if(blink)
			setTimeout("blink('"+element+"','"+coloron+"')", x*vel);
		else
			setTimeout("blink('"+element+"','"+coloroff+"')", x*vel);
		blink = !blink;
	}
	setTimeout("blink('"+element+"','"+coloroff+"')", (x+1)*vel);
}

function blink(element,color)
{
	var e = document.getElementById(element);
	if(e==null) return;
	if(color==null) {
		e.style.backgroundColor='';
	} else {
		e.style.backgroundColor=color;
	}
}

function filter(keycode, idDivStations){
	
    var result = true;
    var textbox = document.getElementById(currentTextbox);
    var len = textbox.value.length;
	var str = textbox.value;

	if(keycode==40)//down key
	{
	     viltControlAutoComplete(keycode,textbox);
	     viltShowStations(currentAnchor,currentTextbox,idDivStations,currentDivListId);
	}
	if(keycode==27)viltHide(idDivStations);
	if(keycode==191)
	{
	  result=false;
	}
	 
	if(keycode==192 || keycode==186)
	{
	  accent = true;
	  result=false;
	}
	
	if(accent)
	{
		result = false;
		accent = false;
	}
	
	if(len!=0)
	{
		var pos = chars1.indexOf(str.charAt(len-1));
		if(pos!=-1)
		{
			var chr = chars2.charAt(pos);
			textbox.value = str.substring(0,len-1);
			str = textbox.value + chr;
			textbox.value = str;
	 		result=true;
		}
	}
	
	if( keycode==219 || keycode==220)
	{
		textbox.value = str.substring(0,len-1);
		result = false;
	}
	return result;
}

/***********************************************
 *
 * JAVASCRIPT FOR THE STATIONS DIV UTILITY
 *
 ***********************************************/

var oldString=null;
var currentTextbox="";
var currentAnchor="";
var currentDiv="";
var currentDivList="";

//
// Shows the stations list popup window
//
function viltShowStations(anchor,textbox,divId,divListId){
	if(anchor!=null && textbox!=null) {
	  	viltSetCurrent(anchor,textbox,divId,divListId);
    }
    var div = document.getElementById(divId);
    var pos = getAnchorPosition(anchor);

	if(div!=null) {
		div.style.top=(pos.y+16)+'px';
		div.style.left=pos.x+'px';

		toggle(divId);
	}
}

//
// Sets the current stations objects (textboxes, anchores, etc)
//
function viltSetCurrent(anchor,textbox,divId,divListId) {
	currentTextbox=textbox;
	currentAnchor=anchor;
	currentDivId=divId;
	currentDivListId=divListId;
}

//
// Processes the auto complete mechanisms
//
function viltAutoComplete(keycode) {
	var key = keycode;
	if(filter(keycode,currentDivId)) {
		var textbox = document.getElementById(currentTextbox);
		if(key==8||key==46) {
			setTimeout("viltControlAutoComplete('"+ key +"','"+textbox.value+"')", 600);
		} else {
			setTimeout("viltControlAutoComplete('"+ key +"','"+textbox.value+"')", 100);			
		}
	}
}

function viltControlAutoComplete(keycode,txt) {
	var txtbox = document.getElementById(currentTextbox);
	if(txtbox.value == txt &&(keycode <35 || keycode > 40) && (keycode <16 || keycode > 18) && keycode != 27) {
		viltFindText();
	}
}

function viltFindText(){
	var userTextBox = document.getElementById(currentTextbox);

	var str = userTextBox.value;
	var stationsDiv = document.getElementById(currentDivId);
	var stationsList = document.getElementById(currentDivListId);

	if(str != "") {
		for(index=0; index<stationsList.length; index++) {	
			if(stationsList.item(index).text.substring(0, str.length).toUpperCase() == str.toUpperCase()){
				var currentPosition = userTextBox.value.length;
				oldString=userTextBox.value;
				userTextBox.value = stationsList.item(index).text;
				var nextPosition = userTextBox.value.length;
				stationsList.SelectedIndex = index;	
				stationsList.item(index).selected=true;
				if(!setSelectionRange(userTextBox,currentPosition,nextPosition)) {
					userTextBox.value=oldString;
				}
				oldString=null;											
				break;
			}	
		}
	} else {
		stationsList.item(0).selected=true;
	}
}

function viltCheckKey(key)
{
	if(key==13 || key==27) {
		viltChangeFocus();
	}
}

function viltChangeFocus() {
	var textBox = document.getElementById(currentTextbox);
	if(textBox!=null || textBox!=""){
		textBox.focus();
		viltUpdateText();
		toggle(currentDivId);
	}
}

function viltUpdateText() {
	var textbox = document.getElementById(currentTextbox);					
	var currentStations = document.getElementById(currentDivListId);										
	if(textbox != null && currentStations != null) {
		textbox.value = currentStations.item(currentStations.selectedIndex).text;
	}
}
function viltDisableButton(but){var b=getObject(but);if(b==null){b=but;}try{b.disabled=true;b.style.color='#CCCCCC';b.style.backgroundColor='#AAAAAA';b.style.cursor='default';}catch(e){}}