	
/* Check box function */
portdouglas_flag = false;
hinterlands_flag = false;
northcoast_flag = false;
southcoast_flag = false;

//first click
first_click = true;

//uncheck checkboxes
document.advancedSearch.a_portdouglas.checked = false;
document.advancedSearch.a_hinterland.checked = false;
document.advancedSearch.a_northcoast.checked = false;
document.advancedSearch.a_southcoast.checked = false;

function clearBox()
{
	box = document.getElementById('locations');
	box.options.length = 0;
	box.options[0] = new Option("All Suburbs","aaa");
	box.options[1] = new Option("-------------------------------------","aaaa");
}

function checkBox(area)
{
	if(area == 'Port Douglas')
	{
		if(document.advancedSearch.a_portdouglas.checked == true)
			document.advancedSearch.a_portdouglas.checked = false;
		else
			document.advancedSearch.a_portdouglas.checked = true;
	}
	
	else if (area == 'Hinterlands')
	{
		if(document.advancedSearch.a_hinterland.checked == true)
			document.advancedSearch.a_hinterland.checked = false;
		else
			document.advancedSearch.a_hinterland.checked = true;
	}
	
	else if (area == 'North Coast & Country')
	{
		if(document.advancedSearch.a_northcoast.checked == true)
			document.advancedSearch.a_northcoast.checked = false;
		else
			document.advancedSearch.a_northcoast.checked = true;
	}
	
	else if (area == 'South Coast & Country')
	{
		if(document.advancedSearch.a_southcoast.checked == true)
			document.advancedSearch.a_southcoast.checked = false;
		else
			document.advancedSearch.a_southcoast.checked = true;
	}
}

/* Suburbs Select Box Function */
function selectBox(area) 
{
	/*if(document.advancedSearch.a_portdouglas.checked == true && document.advancedSearch.a_hinterland.checked == false && document.advancedSearch.a_northcoast.checked == false && document.advancedSearch.a_southcoast.checked == false)
		clearBox();
	if(document.advancedSearch.a_portdouglas.checked == false && document.advancedSearch.a_hinterland.checked == true && document.advancedSearch.a_northcoast.checked == false && document.advancedSearch.a_southcoast.checked == false)
		clearBox();
	if(document.advancedSearch.a_portdouglas.checked == false && document.advancedSearch.a_hinterland.checked == false && document.advancedSearch.a_northcoast.checked == true && document.advancedSearch.a_southcoast.checked == false)
		clearBox();
	if(document.advancedSearch.a_portdouglas.checked == false && document.advancedSearch.a_hinterland.checked == false && document.advancedSearch.a_northcoast.checked == false && document.advancedSearch.a_southcoast.checked == true)
		clearBox();*/
	
	var portdouglas = new Array();
	portdouglas[0] = "Port Douglas";
	
	var hinterlands = new Array();
	hinterlands[0] = "Mt Molloy";
	hinterlands[1] = "Julatten";
	hinterlands[2] = "Whyanbeel";
	hinterlands[3] = "Mt Carbine";
	hinterlands[4] = "Cassowary";
	
	var southcoast = new Array();
	southcoast[0] = "Oak Beach";
	southcoast[1] = "Pebbly Beach";
	southcoast[2] = "Palm Cove";
	southcoast[3] = "Mowbray Valley";
	
	var northcoast = new Array();
	northcoast[0] = "Mossman";
	northcoast[1] = "Cooya Beach";
	northcoast[2] = "Newell Beach";
	northcoast[3] = "Wonga Beach";
	northcoast[4] = "Rocky Point";
	northcoast[5] = "Daintree Village";
	northcoast[6] = "Daintree";
	
	box = document.getElementById('locations');	
	
	if(area == 'Port Douglas')
	{
		if(!portdouglas_flag)
		{
			if(document.advancedSearch.a_hinterland.checked == false && document.advancedSearch.a_northcoast.checked == false && document.advancedSearch.a_southcoast.checked == false)
				clearBox();
			portdouglas_flag = true;
			insertItems(portdouglas);
		}
		else
		{ 	
			portdouglas_flag = false;
			removeItems(portdouglas);
		}
	}
	
	else if (area == 'Hinterlands')
	{
		if(!hinterlands_flag)
		{
			if(document.advancedSearch.a_portdouglas.checked == false && document.advancedSearch.a_northcoast.checked == false && document.advancedSearch.a_southcoast.checked == false)
				clearBox();
			hinterlands_flag = true;
			insertItems(hinterlands);
		}
		else
		{
			hinterlands_flag = false;
			removeItems(hinterlands);
		}
	}
	
	else if (area == 'North Coast & Country')
	{
		if(!northcoast_flag)
		{
			if(document.advancedSearch.a_portdouglas.checked == false && document.advancedSearch.a_hinterland.checked == false && document.advancedSearch.a_southcoast.checked == false)
				clearBox();		
			northcoast_flag = true;
			insertItems(northcoast);
		}
		else
		{
			northcoast_flag = false;
			removeItems(northcoast);
		}
	}
	
	else if (area == 'South Coast & Country')
	{
		if(!southcoast_flag)
		{
			if(document.advancedSearch.a_portdouglas.checked == false && document.advancedSearch.a_hinterland.checked == false && document.advancedSearch.a_northcoast.checked == false)
				clearBox();				
			southcoast_flag = true;
			insertItems(southcoast);
		}
		else
		{
			southcoast_flag = false;
			removeItems(southcoast);
		}
	}
	if(document.advancedSearch.a_portdouglas.checked == false && document.advancedSearch.a_hinterland.checked == false && document.advancedSearch.a_northcoast.checked == false && document.advancedSearch.a_southcoast.checked == false)
	{
		clearBox();
		resetBox();
	}
	sortSelect(box);
}

function removeItems(area)
{
	box = document.getElementById('locations');		
	for(i = 0; i < area.length; i++)
	{
		for(j = 0; j < box.options.length; j++)
		{
			if(area[i] == box.options[j].value)
			{
				box.options[j] = null;
			}
		}
	}
}

function insertItems(area)
{
	box = document.getElementById('locations');	
	for(i = 0; i < area.length; i++)
	{
		sLength = box.options.length;
		box.options[sLength] = new Option(area[i],area[i]);
	}
}

function resetBox()
{
	var portdouglas = new Array();
	portdouglas[0] = "Port Douglas";
	
	var area = new Array();
	area[0] = "Mt Molloy";
	area[1] = "Julatten";
	area[2] = "Whyanbeel";
	area[3] = "Mt Carbine";
	area[4] = "Cassowary";
	
	area[5] = "Oak Beach";
	area[6] = "Pebbly Beach";
	area[7] = "Palm Cove";
	area[8] = "Mowbray Valley";
	
	area[9] = "Mossman";
	area[10] = "Cooya Beach";
	area[11] = "Newell Beach";
	area[12] = "Wonga Beach";
	area[13] = "Rocky Point";
	area[14] = "Daintree Village";
	area[15] = "Daintree";
	
	box = document.getElementById('locations');	
	for(i = 0; i < area.length; i++)
	{
		sLength = box.options.length;
		box.options[sLength] = new Option(area[i],area[i]);
	}
}

// sort function - ascending (case-insensitive)
function sortFuncAsc(record1, record2) {
    var value1 = record1.optValue.toLowerCase();
    var value2 = record2.optValue.toLowerCase();
    if (value1 > value2) return(1);
    if (value1 < value2) return(-1);
    return(0);
}

// sort function - descending (case-insensitive)
function sortFuncDesc(record1, record2) {
    var value1 = record1.optText.toLowerCase();
    var value2 = record2.optText.toLowerCase();
    if (value1 > value2) return(-1);
    if (value1 < value2) return(1);
    return(0);
}

function sortSelect(selectToSort, ascendingOrder) {
    if (arguments.length == 1) ascendingOrder = true;    // default to ascending sort

    // copy options into an array
    var myOptions = [];
    for (var loop=0; loop<selectToSort.options.length; loop++) {
        myOptions[loop] = { optText:selectToSort.options[loop].text, optValue:selectToSort.options[loop].value };
    }

    // sort array
    if (ascendingOrder) {
        myOptions.sort(sortFuncAsc);
    } else {
        myOptions.sort(sortFuncDesc);
    }

    // copy sorted options from array back to select box
    selectToSort.options.length = 0;
    for (var loop=0; loop<myOptions.length; loop++) {
        var optObj = document.createElement('option');
        optObj.text = myOptions[loop].optText;
        optObj.value = myOptions[loop].optValue;
        selectToSort.options.add(optObj);
    }
}
