var suburbListActive = -1;


function requestSucceeded(xmlhttp, obj) 
{
	
	var dat = eval('(' + xmlhttp.responseText + ')');
	
	if (dat.email)
	{
		document.getElementById('firstname').value = dat.firstname;
		document.getElementById('surname').value = dat.surname;
	}
	
	
//	alert('Request succeeded.');
			
//			 + interpretResponse(xmlhttp, obj), null, 'Ajax');
//			if (updateTotals) { updateTotals(); }
}

function setupSuburb(el)
{
	var tds = el.getElementsByTagName('td');
	for (var i = 0; i < tds.length; i++)
	{
		tds[i].onclick = setsuburb;
		tds[i].onmouseover = suburbMouseover;
	}
}


//feeRequest = new Array();

//document.getElementById('email').onkeyup = getEmail;
document.getElementById('suburb').onkeyup = getSuburb;
//ocument.getElementById('pax').onchange = getFee;
//document.getElementById('baby').onchange = getFee;

//document.getElementById('passengerbody').style.display = 'none';


//document.getElementById('bform').onubmit = formSubmit;

//var Requester = API.Requester;
//requester.onsuccess = requestSucceeded;


function fsubmit(e)
{
	if (document.getElementById('suburblist').innerHTML.length)
		return false;
	return true;
}

function calreturn0(y,m,d)
{
	document.getElementById('date0').value = d + '/' + m + '/' + y;
	getFlight(0);
}

function calreturn1(y,m,d)
{
	document.getElementById('date1').value = d + '/' + m + '/' + y;
	getFlight(1);
}

function getSuburb(e)
{
	e = e || window.event;
	var k = e.keyCode;
	if (k == 27)
	{
		document.getElementById('suburblist').innerHTML = '';
		return;
	}
	if (k == 38 || k == 40)
	{
		if (k == 38)
			suburbList(-1);
		else
			suburbList(1);
		return;
	}
	
	if (k == 13)
	{
		return false;
	}
	
	var s = document.getElementById('suburb').value;
	
	if (s)
	{
		
		document.getElementById('suburbloader').style.visibility = 'visible';
		
		AjaxRequest.get(
		{
			'url': 'ajax.php',
			'suburb' : document.getElementById('suburb').value,
			'onSuccess': function(req){gotSuburb(req);} 
		} );
	}
	else
	{
		document.getElementById('suburblist').innerHTML = '';
		document.getElementById('postcode').value = '';
	}
}

function gotSuburb(xmlhttp) 
{
	var dat = eval('(' + xmlhttp.responseText + ')');
	if (dat.suburb)
	{
		document.getElementById('suburbloader').style.visibility = 'hidden';
		var suburblist = document.getElementById('suburblist');
		suburblist.innerHTML = dat.data;
		if (dat.data.length == 0)
		{
			document.getElementById('suburberror').innerHTML = 'Not found';
			document.getElementById('fee').value = '';
		}
		else
		{
			document.getElementById('suburberror').innerHTML = '';
			getFee();
		}
		setupSuburb(suburblist);
	}
	
}


function suburbList(dir)
{
	var tds = document.getElementById('suburblist').getElementsByTagName('td');
	
	// find current
	
	var current = -1;
	var i;
	
	for (i = 0;i < tds.length; i++)
	{
		if (tds[i].className.length)
		{
			current = i;
			break;
		}
	}
	if (current == -1) // none set
	{
		if (dir > 0)
			suburbListActive = 0;
		else
			suburbListActive = tds.length - 1;
	}
	else
	{
		suburbListActive += dir;
		if (suburbListActive < 0)
			suburbListActive = tds.length - 1;
		if (suburbListActive >= tds.length)
			suburbListActive = 0;
		tds[current].className = '';
	}
	tds[suburbListActive].className = 'suburblisthover';
}

function setsuburb(e)
{
	s = this.innerHTML;
	document.getElementById('suburb').value = s;
//	document.getElementById('postcode').value = p;
	document.getElementById('suburblist').innerHTML = '';
	getFee(0);
//	getFee(1);
	
}

function suburbMouseover(e)
{
	var tds = document.getElementById('suburblist').getElementsByTagName('td');
	
	// find current
	
	
	var current = -1;
	var i;
	
	for (i = 0;i < tds.length; i++)
	{
		tds[i].className = '';
		if (tds[i] == this)
			suburbListActive = i;
	}
			
	this.className = 'suburblisthover';
}


function getFee()
{
	var s = document.getElementById('suburb').value;
	
	if (!document.getElementById('pax'))
		return;
	var p0 = document.getElementById('pax').value;
//	var b0 = document.getElementById('baby').value;
	var a0 = document.getElementById('arrival').checked;


	document.getElementById('fee').value = '';

	if (!s)
	{
	}
	else
	{	
		document.getElementById('feeloader').style.visibility = 'visible';
		feeRequest = AjaxRequest.get(
		{
			'url': 'ajax.php',
			'efee': 'y',
			's': s,
			
			'p0': p0,
			'a0': a0,
			
			
			'onSuccess': function(req){gotFee(req);} 
		} );
	}
}

function gotFee(xmlhttp) 
{
	if (xmlhttp.requestIndex == feeRequest)
	{
		var dat = eval('(' + xmlhttp.responseText + ')');
		if (dat.fee)
		{
			document.getElementById('feeloader').style.visibility = 'hidden';
			document.getElementById('fee').value = dat.fee;
		}
	}
}



