
var req;
var suburb_postcodes;
var suburb_ids;
var suburb_regions;
var suburb_codes;

var suburbBox;
var townBox;
var regionBox;
var provinceBox;
var postcodeBox;

var prefix = "../";

function refreshPostcode()
{

	var current_suburb = suburb_codes[suburbBox.selectedIndex];
	var postcode_list = suburb_postcodes[current_suburb].split(',');

	if( postcode_list.length==1 )
	{
		convertSelectToLabel( "postcodeBox" );
		postcodeBox.value = postcode_list[0];
		document.getElementById("postcodeBox_label").innerHTML = postcode_list[0];
	}
	else
	{
		convertLabelToSelect( "postcodeBox" );
		postcodeBox.options.length = 0;
		var sel_postcode = 0;
		for(i=0;i<postcode_list.length;i++)
		{
			postcodeBox.options[i] = new Option( postcode_list[i], postcode_list[i] );
			if(selected_postcode==postcode_list[i]) { sel_postcode = i; }
		}
		postcodeBox.selectedIndex = sel_postcode;
	}

	// update homenet_region_id if applicable
	try
	{
		var frm = suburbBox.form;
		frm.homenet_region_id.value = suburb_ids[current_suburb];
	}
	catch( err )
	{
		// do nothing really ..
	}

	//alert(suburb_ids[current_suburb]);
	document.getElementById("regionBox_label").innerHTML = suburb_regions[current_suburb];
	regionBox.value = suburb_regions[current_suburb];

}

function refreshTowns()
{

	//var url = prefix+"RESULTS/homenet.class.php";
	var url = "homenet.class.php";

	convertSelectToLabel( "townBox" );
	convertSelectToLabel( "suburbBox" );
	convertSelectToLabel( "regionBox" );
	convertSelectToLabel( "postcodeBox" );

	document.getElementById("townBox_label").innerHTML = "Loading ...";
	document.getElementById("suburbBox_label").innerHTML = "Loading ...";
	document.getElementById("regionBox_label").innerHTML = "Loading ...";
	document.getElementById("postcodeBox_label").innerHTML = "Loading ...";

	if( window.XMLHttpRequest ) {
		req = new XMLHttpRequest();
	} else if( window.ActiveXObject ) {
		req = new ActiveXObject("Microsoft.XMLHTTP");
	}
	if( req ) {
		req.onreadystatechange = populateTowns;
		req.open( "POST", url, true );
		req.setRequestHeader( "Content-Type","application/x-www-form-urlencoded; charset=UTF-8" );
		req.send( "action=getTowns&province="+provinceBox.options[provinceBox.selectedIndex].value );
	}

}

function populateTowns()
{

	if( (req.readyState == 4)&&(req.status == 200) )
	{

		var townList = req.responseText.split('#');

		if( townList.length==1 )
		{
			townBox.value = townList[0];
			document.getElementById("townBox_label").innerHTML = townList[0];
		}
		else
		{
			convertLabelToSelect( "townBox" );
			townBox.options.length = 0;
			for( i=0; i<townList.length; i++ )
			{
				townBox.options[i] = new Option( townList[i], townList[i] );
			}
			townBox.selectedIndex = 0;
		}

		refreshSuburbs();

	}

}

function refreshSuburbs()
{

	//var url = prefix+"RESULTS/homenet.class.php";
	var url = "homenet.class.php";

	convertSelectToLabel( "suburbBox" );
	convertSelectToLabel( "regionBox" );
	convertSelectToLabel( "postcodeBox" );

	document.getElementById("suburbBox_label").innerHTML = "Loading ...";
	document.getElementById("regionBox_label").innerHTML = "Loading ...";
	document.getElementById("postcodeBox_label").innerHTML = "Loading ...";

	if( window.XMLHttpRequest ) {
		req = new XMLHttpRequest();
	} else if( window.ActiveXObject ) {
		req = new ActiveXObject("Microsoft.XMLHTTP");
	}
	if( req ) {
		req.onreadystatechange = populateSuburbs;
		req.open( "POST", url, true );
		req.setRequestHeader( "Content-Type","application/x-www-form-urlencoded; charset=UTF-8" );
		req.send( "action=getSuburbs&town="+encodeURI(townBox.options[townBox.selectedIndex].value)+"&province="+encodeURI(provinceBox.options[provinceBox.selectedIndex].value) );
	}

}

function populateSuburbs()
{

	if( (req.readyState == 4)&&(req.status == 200) )
	{
		
		
		suburb_postcodes = new Array();
		suburb_ids       = new Array();
		suburb_regions   = new Array();
		suburb_codes     = new Array();

		var returnedData = req.responseText.split("\n");

		var suburbList = returnedData[0].split('#');
		var regionList = returnedData[1].split('#');
		var selectedRegion = returnedData[2];

		var this_suburb;
		var current_suburb;
		var current_suburb_index = 0;

		if( suburbList.length==1 )
		{
			this_suburb = suburbList[0].split("=");
			suburbBox.value = this_suburb[0];
			document.getElementById("suburbBox_label").innerHTML = this_suburb[0];
			current_suburb = this_suburb[0]+"/"+this_suburb[2];
			suburb_postcodes[current_suburb] = this_suburb[1];
			suburb_ids[current_suburb]       = this_suburb[2];
			suburb_regions[current_suburb]   = this_suburb[3];
			suburb_codes[0]                  = current_suburb;
		}
		else
		{
			convertLabelToSelect( "suburbBox" );
			suburbBox.options.length = 0;
			for( i=0; i<suburbList.length; i++ )
			{
				this_suburb = suburbList[i].split("=");
				suburbBox.options[i] = new Option( this_suburb[0], this_suburb[0] );
				suburb_postcodes[this_suburb[0]+"/"+this_suburb[2]] = this_suburb[1];
				suburb_ids[this_suburb[0]+"/"+this_suburb[2]]       = this_suburb[2];
				suburb_regions[this_suburb[0]+"/"+this_suburb[2]]   = this_suburb[3];
				suburb_codes[i]                                     = this_suburb[0]+"/"+this_suburb[2];
				if( i==0 ) current_suburb = this_suburb[0]+"/"+this_suburb[2];
				if( (this_suburb[0]==selected_suburb)&&(this_suburb[3]==selected_region) )
				{
					current_suburb = this_suburb[0]+"/"+this_suburb[2];
					current_suburb_index = i;
				}
			}
			suburbBox.selectedIndex = current_suburb_index;
		}

		// update homenet_region_id if applicable
		try
		{
			var frm = suburbBox.form;
			frm.homenet_region_id.value = suburb_ids[current_suburb];
		}
		catch( err )
		{
			// do nothing really ..
		}

		var postcodes = suburb_postcodes[current_suburb].split(",");
		if( postcodes.length==1 )
		{
			postcodeBox.value = postcodes[0];
			document.getElementById("postcodeBox_label").innerHTML = postcodes[0];
		}
		else
		{
			convertLabelToSelect( "postcodeBox" );
			postcodeBox.options.length = 0;
			var current_postcode_index = 0;
			for( i=0;i<postcodes.length;i++ )
			{
				postcodeBox.options[i] = new Option( postcodes[i], postcodes[i] );
				if( postcodes[i]==selected_postcode ) current_postcode_index = i;
			}
			postcodeBox.selectedIndex = current_postcode_index;
		}

/*
		if( regionList.length==1 )
		{
			regionBox.value = regionList[0];
			document.getElementById("regionBox_label").innerHTML = regionList[0];
		}
		else
		{
			convertLabelToSelect( "regionBox" );
			regionBox.options.length = 0;
			var regionSelectedIndex = 0;
			for( i=0; i<regionList.length; i++ )
			{
				regionBox.options[i] = new Option( regionList[i], regionList[i] );
				if( regionList[i]==selectedRegion ) regionSelectedIndex = i;
			}
			regionBox.selectedIndex = regionSelectedIndex;
		}
*/
		document.getElementById("regionBox_label").innerHTML = suburb_regions[current_suburb];
		regionBox.value = suburb_regions[current_suburb];

	}

}
