// some global variables 
var xmlHttp;
var is_captcha_code_correct = 1

//The purpose of the function is to solve the problem of creating different XMLHTTP objects for different browsers.
function GetXmlHttpObject()
{
	try
	{
		// Opera 8.0+, Firefox, Safari
		xmlHttp = new XMLHttpRequest();
	}
	catch (e)
	{
		// Internet Explorer Browsers
		try
		{
			//IE 6 +
			xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e)
		{
			//IE 5.5
			xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
		}
	}
	return xmlHttp;
}


function stateChanged()
{
			
	if (xmlHttp.readyState==4)
	{
		//lets get a grip on the XML document using DOM
		var xmlDoc = xmlHttp.responseXML.documentElement;
		
		//firstly, check if any RV subtype sales exist..ie if the XML document returned an <empty> tag then we assume
		//no sales exist
		var empty = xmlDoc.getElementsByTagName('empty');
		if (empty.length)
		{
			//get a handle to our menu
			var our_form = document.property_search.suburb	
			//remove all options by setting the options array's length to 0
			//new Option(text, value, defaultSelected, selected)	
			our_form.options.length=0	
			our_form.options[0]=new Option("Data not available","",true, false)
		}
		else
		{
		
			//get a handle to our subtype menu
			var our_form = document.property_search.suburb	
			//remove all options by setting the options array's length to 0		
			our_form.options.length=0	
			
			//get the name of RV type the user chose
			//var rv_type_name = xmlDoc.getElementsByTagName("rv_type_name")[0].childNodes[0].nodeValue;
			//create an entry in the subtype menu to display an "all" option
			//our_form.options[0]=new Option("All " + rv_type_name + "subtypes", "all_subtypes", false, false)
			
			//declare some variables
			var subtype_id, subtype_name, sales_count			
			//how many subtype tags did our XML document return?
			var length = xmlDoc.getElementsByTagName('suburb').length;
			
			//alert("length = " + length);
				
			//repopulate the select menu with new options (aka content), using the Option() constructor on each option
			//loop through based on how many subtype tags we have
			
			
			// got to have the All option....:)
			
			our_form.options[0]=new Option("All Suburbs","all_suburbs",true, false)
			
			
			var j = 1
			for (var i=0; i < length; i++)
			{
				//alert("i = " + i);			
				suburbid = xmlDoc.getElementsByTagName("suburbid")[i].childNodes[0].nodeValue;
				sname = xmlDoc.getElementsByTagName("sname")[i].childNodes[0].nodeValue;
				//sales_count = xmlDoc.getElementsByTagName("sales_count")[i].childNodes[0].nodeValue;
				
				//the Option() constructor supports the following four parameters, the later two optional:
				//new Option(text, value, defaultSelected, selected)
				our_form.options[j]=new Option(sname, suburbid, false, false)
				j = j + 1

			}//for	
				
		}//else
		
	}//if (xmlHttp.readyState==4)
	
}//function stateChanged()


function get_menu(id)
{	
			
		//create object via function call
		xmlHttp=GetXmlHttpObject();
		if (xmlHttp==null)
		  {
		  alert ("Your browser does not support AJAX!");
		  return;
		}		
		
		//create querystring to our ASP script - pass the 'id' of the RV type
		var url="/get_suburbs_menu.asp?id=" + id;
		//alert(url);
		
		//The onreadystatechange Property
		//After a request to the server, we need a function that can receive the data that is returned by the server.
		//The onreadystatechange property stores the function that will process the response from a server.
		//The following code sets the onreadystatechange property to the function:
		xmlHttp.onreadystatechange=stateChanged;
		xmlHttp.open("GET",url,true);
		xmlHttp.send(null);
			
}


function stateChanged_captcha()
{
	// reset
	//is_captcha_code_correct = 1
		
	//alert("stateChanged_captcha")
	if (xmlHttp.readyState==4)
	{
		
		//alert("xmlHttp.readyState==4")
		
		//lets get a grip on the XML document using DOM
		var xmlDoc = xmlHttp.responseXML.documentElement;
				
		//if the XML document returned an <empty> tag then we assume no code was generated.....unlikely to happen, but you never know
		var empty = xmlDoc.getElementsByTagName('empty');
		if (empty.length)
		{
			alert("Security code error - please select a new image")
		}
		else
		{			
			
			// Piece of shit Firefox doesn't support '.item(0).text'			
			//var code = xmlDoc.getElementsByTagName('code').item(0).text;	
			//var user_value = xmlDoc.getElementsByTagName('user_value').item(0).text;	
			
			//alert("state 1) is_captcha_code_correct = " + is_captcha_code_correct);
			var code = xmlDoc.getElementsByTagName('code')[0].childNodes[0].nodeValue;		
			var user_value = xmlDoc.getElementsByTagName('user_value')[0].childNodes[0].nodeValue;
			
			//alert("code = " + code);
			//alert("user_value = " + user_value);
			
			
			if (code != user_value) {
				//alert("here5")
				// returning a value doesn't work in this function, so we'll update a global variable instead								
				is_captcha_code_correct = 0
				alert("Incorrect security code - please try again")
				document.ContactForm2.captchacode.focus();
				
				//alert("2)is_captcha_code_correct = " + is_captcha_code_correct);	
			}
			else
			{
				//alert("You have entered the correct code")
				document.ContactForm2.submit();
			}
			//alert("state 2) is_captcha_code_correct = " + is_captcha_code_correct);
		
				
		}//else
	
	}//if (xmlHttp.readyState==4)
		
}//function stateChanged_captcha()



function get_captcha(captchacode)
{	

		//alert("here 1, captchacode = " + captchacode)
	
		//create object via function call
		xmlHttp=GetXmlHttpObject();
		if (xmlHttp==null)
		  {
		  alert ("Your browser does not support AJAX!");
		  return;
		}		
		
		//create querystring to our ASP script - pass the value entered by the user
		var url="/get_captcha.asp?user_value=" + captchacode;
		//alert(url);
	
	
		// The onreadystatechange Property
		// After a request to the server, we need a function that can receive the data that is returned by the server.
		// The onreadystatechange property stores the function that will process the response from a server.
		// The following code sets the onreadystatechange property to the function:
		// Note: cannot pass a value (or return one) from the onreadystatechange function, so don't even try
		
		
		xmlHttp.open("GET",url,true);		
		xmlHttp.onreadystatechange=stateChanged_captcha;
		xmlHttp.send(null);
		
		
		//alert("get_captcha, 2, captchacode = " + captchacode)
		
			
}





function set_price(id)
{	
			//get a handle to our subtype menu
			var lower_menu = document.property_search.lower
			var upper_menu = document.property_search.upper
			
			//remove all options by setting the options array's length to 0		
			//alert(lower_menu.options.length)
			lower_menu.options.length=0
			upper_menu.options.length=0
			//alert("set_price")
			
			
			if (id == "for_sale") {
				
				//the Option() constructor supports the following four parameters, the later two optional:
				//new Option(text, value, defaultSelected, selected)
				lower_menu.options[0]=new Option("Any", "", true, false)
				lower_menu.options[1]=new Option("25,000", "25000", false, false)
				lower_menu.options[2]=new Option("50,000", "50000", false, false)	
				lower_menu.options[3]=new Option("75,000", "75000", false, false)
				lower_menu.options[4]=new Option("100,000", "100000", false, false)
				lower_menu.options[5]=new Option("150,000", "150000", false, false)
				lower_menu.options[6]=new Option("200,000", "200000", true, false)
				lower_menu.options[7]=new Option("250,000", "250000", false, false)
				lower_menu.options[8]=new Option("300,000", "300000", false, false)	
				lower_menu.options[9]=new Option("350,000", "350000", false, false)
				lower_menu.options[10]=new Option("400,000", "400000", false, false)
				lower_menu.options[11]=new Option("450,000", "450000", false, false)
				lower_menu.options[12]=new Option("500,000", "500000", true, false)
				lower_menu.options[13]=new Option("600,000", "600000", false, false)
				lower_menu.options[14]=new Option("700,000", "700000", false, false)	
				lower_menu.options[15]=new Option("800,000", "800000", false, false)
				lower_menu.options[16]=new Option("900,000", "900000", false, false)
				lower_menu.options[17]=new Option("1,000,000", "1000000", false, false)
				lower_menu.options[18]=new Option("1,250,000", "1250000", false, false)
				lower_menu.options[19]=new Option("1,750,000", "1750000", false, false)
				lower_menu.options[20]=new Option("2,000,000", "2000000", false, false)
				lower_menu.options[21]=new Option("2,500,000", "2500000", false, false)
				lower_menu.options[22]=new Option("3,000,000", "3000000", false, false)
				lower_menu.options[23]=new Option("4,000,000", "4000000", false, false)
				lower_menu.options[24]=new Option("5,000,000", "5000000", false, false)
				lower_menu.options[25]=new Option("10,000,000", "10000000", false, false)
				
			
			
				upper_menu.options[0]=new Option("Any", "", true, false)
				upper_menu.options[1]=new Option("25,000", "25000", false, false)
				upper_menu.options[2]=new Option("50,000", "50000", false, false)	
				upper_menu.options[3]=new Option("75,000", "75000", false, false)
				upper_menu.options[4]=new Option("100,000", "100000", false, false)
				upper_menu.options[5]=new Option("150,000", "150000", false, false)
				upper_menu.options[6]=new Option("200,000", "200000", true, false)
				upper_menu.options[7]=new Option("250,000", "250000", false, false)
				upper_menu.options[8]=new Option("300,000", "300000", false, false)	
				upper_menu.options[9]=new Option("350,000", "350000", false, false)
				upper_menu.options[10]=new Option("400,000", "400000", false, false)
				upper_menu.options[11]=new Option("450,000", "450000", false, false)
				upper_menu.options[12]=new Option("500,000", "500000", true, false)
				upper_menu.options[13]=new Option("600,000", "600000", false, false)
				upper_menu.options[14]=new Option("700,000", "700000", false, false)	
				upper_menu.options[15]=new Option("800,000", "800000", false, false)
				upper_menu.options[16]=new Option("900,000", "900000", false, false)
				upper_menu.options[17]=new Option("1,000,000", "1000000", false, false)
				upper_menu.options[18]=new Option("1,250,000", "1250000", false, false)
				upper_menu.options[19]=new Option("1,750,000", "1750000", false, false)
				upper_menu.options[20]=new Option("2,000,000", "2000000", false, false)
				upper_menu.options[21]=new Option("2,500,000", "2500000", false, false)
				upper_menu.options[22]=new Option("3,000,000", "3000000", false, false)
				upper_menu.options[23]=new Option("4,000,000", "4000000", false, false)
				upper_menu.options[24]=new Option("5,000,000", "5000000", false, false)
				upper_menu.options[25]=new Option("10,000,000", "10000000", false, false)
				upper_menu.options[25]=new Option("10,000,000 + ", "999999999999999", false, false)
				
				
				
				
			}
			
			if (id == "for_rent") {
				
				//the Option() constructor supports the following four parameters, the later two optional:
				//new Option(text, value, defaultSelected, selected)
				lower_menu.options[0]=new Option("Any", "", true, false)
				lower_menu.options[1]=new Option("50", "50", false, false)
				lower_menu.options[2]=new Option("100", "100", false, false)
				lower_menu.options[3]=new Option("150", "150", false, false)
				lower_menu.options[4]=new Option("200", "200", false, false)
				lower_menu.options[5]=new Option("250", "250", false, false)
				lower_menu.options[6]=new Option("300", "300", false, false)
				lower_menu.options[7]=new Option("350", "350", false, false)
				lower_menu.options[8]=new Option("400", "400", false, false)
				lower_menu.options[9]=new Option("450", "450", false, false)
				lower_menu.options[10]=new Option("500", "500", false, false)
				lower_menu.options[11]=new Option("550", "550", false, false)
				lower_menu.options[12]=new Option("600", "600", false, false)
				lower_menu.options[13]=new Option("650", "650", false, false)
				lower_menu.options[14]=new Option("700", "700", false, false)
				lower_menu.options[15]=new Option("750", "750", false, false)
				lower_menu.options[16]=new Option("800", "800", false, false)
				lower_menu.options[17]=new Option("850", "850", false, false)
				lower_menu.options[18]=new Option("900", "900", false, false)
				lower_menu.options[19]=new Option("950", "950", false, false)
				lower_menu.options[20]=new Option("1,000", "1000", false, false)
				lower_menu.options[21]=new Option("1,500", "1500", false, false)
				lower_menu.options[22]=new Option("2,000", "2,000", false, false)
				lower_menu.options[23]=new Option("2,500", "2,500", false, false)
				lower_menu.options[24]=new Option("3,000", "3000", false, false)
				lower_menu.options[25]=new Option("3,500", "3500", false, false)
				lower_menu.options[26]=new Option("4,000", "4000", false, false)
				lower_menu.options[27]=new Option("4,500", "4500", false, false)
				lower_menu.options[28]=new Option("5,000", "5000", false, false)
				
								
				upper_menu.options[0]=new Option("Any", "", true, false)
				upper_menu.options[1]=new Option("50", "50", false, false)
				upper_menu.options[2]=new Option("100", "100", false, false)
				upper_menu.options[3]=new Option("150", "150", false, false)
				upper_menu.options[4]=new Option("200", "200", false, false)
				upper_menu.options[5]=new Option("250", "250", false, false)
				upper_menu.options[6]=new Option("300", "300", false, false)
				upper_menu.options[7]=new Option("350", "350", false, false)
				upper_menu.options[8]=new Option("400", "400", false, false)
				upper_menu.options[9]=new Option("450", "450", false, false)
				upper_menu.options[10]=new Option("500", "500", false, false)
				upper_menu.options[11]=new Option("550", "550", false, false)
				upper_menu.options[12]=new Option("600", "600", false, false)
				upper_menu.options[13]=new Option("650", "650", false, false)
				upper_menu.options[14]=new Option("700", "700", false, false)
				upper_menu.options[15]=new Option("750", "750", false, false)
				upper_menu.options[16]=new Option("800", "800", false, false)
				upper_menu.options[17]=new Option("850", "850", false, false)
				upper_menu.options[18]=new Option("900", "900", false, false)
				upper_menu.options[19]=new Option("950", "950", false, false)
				upper_menu.options[20]=new Option("1,000", "1000", false, false)
				upper_menu.options[21]=new Option("1,500", "1500", false, false)
				upper_menu.options[22]=new Option("2,000", "2,000", false, false)
				upper_menu.options[23]=new Option("2,500", "2,500", false, false)
				upper_menu.options[24]=new Option("3,000", "3000", false, false)
				upper_menu.options[25]=new Option("3,500", "3500", false, false)
				upper_menu.options[26]=new Option("4,000", "4000", false, false)
				upper_menu.options[27]=new Option("4,500", "4500", false, false)
				upper_menu.options[28]=new Option("5,000", "5000", false, false)
				upper_menu.options[28]=new Option("5,000", "5000", false, false)
				upper_menu.options[28]=new Option("5,000 +", "999999999999999", false, false)
				
				
			}
						
}

function get_suburb_text()
{

		
		// get the text of the selected value 
		var w = document.property_search.suburb.selectedIndex;				
		var selected_text = document.property_search.suburb.options[w].text;

		// test
		// alert(selected_text);
		
		// get a handle on out hidden input field
		var h = document.property_search.suburb_name
		h.value = selected_text
		
	
}





