// JavaScript Document

	var googleDescription_from = "";
	var googleDescription_to = "";
	
	var used_longlat = "";
	var used_base_id = 0;
	

	//Uses Google Local search to get ACCURATE point from postcode
	function usePointFromPostcode(postcode, fromOrTo, callbackFunction)
	{
		//alert(postcode);
		localSearch.setSearchCompleteCallback(null, 
		function() {
			
//			alert(localSearch.results.length );
			  if(localSearch.results.length == 1)
			  {    
			  //alert("single result " + fromOrTo);
				  eval("googleDescription_" + fromOrTo + " = '" +  localSearch.results[0].title  + ", " + localSearch.results[0].city + "';");
				  
				  //If a postcode has not already been entered then try and look one up
				  var objPostcode = document.getElementById(fromOrTo + "_text");
				  if (objPostcode.value == "")
				  {
						address="";
						for (j=0; j<localSearch.results[0].addressLines.length; j++)
						{
							address += localSearch.results[0].addressLines[j] + ", ";
						}
						
	
						address = address.split(", ");
						//alert(address);
						
						if (address[address.length-3] != undefined)
						{
							postcode = address[address.length-3];
							
							var pcodeRegxp = /[A-Za-z]{1,2}[0-9]{1,2}/;
							postcode = pcodeRegxp.exec(postcode);

							objPostcode.value = postcode;
							
						}
				  }

				var resultLat = localSearch.results[0].lat;
				var resultLng = localSearch.results[0].lng;
				var point = new GLatLng(resultLat,resultLng);
				callbackFunction(point, fromOrTo, resultLat, resultLng);
			  }
			  else if (localSearch.results.length > 1)
			  {

				  
				  multipleResponseText = "";
				  
				  for (i=0; i < localSearch.results.length; i++)
				  {
					phoneNumber ="";

					address="";
					for (j=0; j<localSearch.results[i].addressLines.length; j++)
					{
						address += localSearch.results[i].addressLines[j] + ", ";
					}
					

					address = address.split(", ");
					
					if (address[address.length-3] != undefined)
					{
						postcode = address[address.length-3];
						var pcodeRegxp = /[A-Za-z]{1,2}[0-9]{1,2}/;
						postcode = pcodeRegxp.exec(postcode);
					}

					
					if (localSearch.results[i].phoneNumbers)
						phoneNumber = localSearch.results[i].phoneNumbers[0].number;

					multipleResponseText += "<div class='localSearchResultElement'><h2 onclick='updateTextOnSearchClarify(\"" + fromOrTo + "\", \"" + localSearch.results[i].title + ", " + localSearch.results[i].streetAddress + ", " + localSearch.results[i].city + ", " + localSearch.results[i].region  +  "\", \"" + postcode +  "\"); postCodeTranslated(\"\", \"" + fromOrTo + "\", " + localSearch.results[i].lat + ", " +  localSearch.results[i].lng + ");'>" + localSearch.results[i].title + "</h2><p>" + localSearch.results[i].streetAddress + "<br/>" + localSearch.results[i].city + "<br/>" + phoneNumber  + "</p></div>";
				  }

				  var objlocalSearchClarify = document.getElementById("localSearchClarify");
				  var objlocalSearchClarifyContent = document.getElementById("localSearchClarifyContent");
				  var objlocalSearchClarifyIntro = document.getElementById("localSearchClarifyIntro");

				  objlocalSearchClarifyContent.innerHTML = multipleResponseText;
				  objlocalSearchClarify.style.display = "block";
				
				  if (fromOrTo == "to")
				  	friendlyFromOrTo = "dropoff"
				  else
				  	friendlyFromOrTo = "pickup"

				  objlocalSearchClarifyIntro.innerHTML = "Your " + friendlyFromOrTo + " location search produced more than one result. Please choose the correct location.";


	

				  
			  }
			  else if(localSearch.results.length == 0)
			  {
				  
				  var pickupDropoff = "pickup";
				  if (fromOrTo == "to")
				  {
				  	pickupDropoff = "dropoff";
				  }
					
				alert("Sorry, your " + pickupDropoff + " location cannot be found. Please check and re-enter the address.");

				document.getElementById("panel_display_journey_details_and_map").style.visibility = "hidden";
				document.getElementById("vehicle_types").style.display = "none";

			  }
		});  


		if (postcode.substring(0,2) == ", ")
			postcode = postcode.substring(2);

	  localSearch.execute(postcode + ", UK");
	}


	function updateTextOnSearchClarify(fromOrTo, newText, postcode)
	{
	//	alert(postcode);
		var objTxt = document.getElementById("txt_" + fromOrTo	);
//		objTxt.value = newText;

		var objPostcode = document.getElementById(fromOrTo + "_text");
		objPostcode.value = postcode;


		eval("googleDescription_" + fromOrTo + " = '" + newText + "'");
	}
	
	function cancelLocalSearchResults()
	{
	  var objlocalSearchClarify = document.getElementById("localSearchClarify");
	  objlocalSearchClarify.style.display = "none";
		
	}

	//Called when the postcode conversion to Lat and Long completes. Calls the Google Directions process with the origin and destination. When ready, Google Directions will call the function declared in initialise
	function postCodeTranslated(point, fromOrTo, lat, lon)
	{
		  var objlocalSearchClarify = document.getElementById("localSearchClarify");
  		  objlocalSearchClarify.style.display = "none";

//	alert("psotcode translated" + fromOrTo);
		if (fromOrTo == "from")
		{
			fromReady = true;
			fromLongLat = lat + "," + lon;
			
			
			//Now call to translation if necessary
			if (document.form1.txt_to.value != "")
			{
				//alert("translate to" + document.form1.txt_to.value);
			//	document.form1.toTextFriendly.value = document.form1.txt_to.value.toUpperCase();
				usePointFromPostcode(document.form1.txt_to.value, "to", postCodeTranslated)	;
			}

			
			
		}
		else if (fromOrTo == "to")
		{
			toReady = true;
			toLongLat = lat + "," + lon;
		//	alert(toLongLat);
		}
		
	//	alert("toready = " + toReady + "\n" + "from ready = " + fromReady);
	//		alert(fromTextLookup + " to " + toTextLookup);
		
		if (toReady && fromReady)
		{
			used_longlat = document.form1.base_longlat.value;
//alert(document.form1.to_base_id.value);
			if (document.form1.to_base_id.value != 0)
			{
			//	alert("use to");
				used_longlat = 	document.form1.to_longlat.value;
				used_base_id = document.form1.to_base_id.value;
			}
			else if (document.form1.from_base_id.value != 0)
			{
				used_longlat = 	document.form1.from_longlat.value;
				used_base_id = document.form1.from_base_id.value;
			}


		directions.load("from: " + used_longlat + " to: " + fromLongLat + " to: " + toLongLat + " to: " + used_longlat);
	
//		alert("from: " + document.form1.base_longlat.value + " to: " + fromLongLat + " to: " + toLongLat + " to: " + document.form1.base_longlat.value);
		}
//			directions.load("from: " + fromLongLat + " to: " + toLongLat );

	}

