//<![CDATA[
    
    if (GBrowserIsCompatible()) { 

    var map;
    var geo;
    var reasons=[];

	
    function load() {
      
	  //Initialise Enter to Tab
	  enterToTab(document.forms.thisForm, true);
      
	  //Pre loading thinking graphic
	  preload_image = new Image(24,24); 
      preload_image.src="http://farebid.co.uk/assets/images/thinking.gif";
	  
      // ====== Create a Client Geocoder ======
      geo = new GClientGeocoder(); 
		
	  
      // ====== Array for decoding the failure codes ======
      reasons[G_GEO_SUCCESS]            = "Success";
      reasons[G_GEO_MISSING_ADDRESS]    = "Missing Address: The address was either missing or had no value.";
      reasons[G_GEO_UNKNOWN_ADDRESS]    = "Unknown Address:  No corresponding geographic location could be found for the specified address.";
      reasons[G_GEO_UNAVAILABLE_ADDRESS]= "Unavailable Address:  The geocode for the given address cannot be returned due to legal or contractual reasons.";
      reasons[G_GEO_BAD_KEY]            = "Bad Key: The API key is either invalid or does not match the domain for which it was given";
      reasons[G_GEO_TOO_MANY_QUERIES]   = "Too Many Queries: The daily geocoding quota for this site has been exceeded.";
      reasons[G_GEO_SERVER_ERROR]       = "Server error: The geocoding request could not be successfully processed.";
    }

	
	  function drawMap(thisDiv,lat,lng) {
		  map = new GMap(document.getElementById(thisDiv));
          var point = new GLatLng(lat,lng);
          map.setCenter(point,15); 
          map.addOverlay(new GMarker(point));
	  }
	  
	  
	  
	  
	  function choose(address,formID,lng,lat) {
		drawMap(formID+"map",lng,lat);
		document.getElementById(formID+"searchdiv").innerHTML = "<input id=\""+formID+"\" name=\""+formID+"\" type=\"hidden\" value=\""+ address + "\"><input id=\""+formID+"\" name=\""+formID+"_lat\" type=\"hidden\" value=\""+ lat + "\"><input id=\""+formID+"\" name=\""+formID+"_lng\" type=\"hidden\" value=\""+ lng + "\"><p>" + address + " <a href=\"javascript:(resetSearch('"+formID+"'))\">Change</a></p>";
		document.getElementById(formID+"instruction").innerHTML = '<img src="/assets/images/tick.png"/>';
		document.getElementById(formID+"message").innerHTML = "";
		enterToTab(document.forms.thisForm, true);
      }
	  
	  
	  function resetSearch(formID) {
	  	document.getElementById(formID+"searchdiv").innerHTML = "<input id=\""+formID+"search\" name=\""+formID+"\" class=\"placesearch\" type=\"text\" value=\"\" onBlur=\"javascript:(showAddress('"+formID+"'))\"/>";
		document.getElementById(formID+"message").innerHTML = "";
		document.getElementById(formID+"map").innerHTML = "";
		document.getElementById(formID+"instruction").innerHTML = "<a href=\"javascript:(showAddress('"+formID+"'))\"><img src=\"http://farebid.co.uk/assets/images/search.png\" border=\"0\" /></a>";
		enterToTab(document.forms.thisForm, true);
	  }


      // ====== Geocoding ======
      function showAddress(formID) {
        
		var search = document.getElementById(formID+'search').value ;
		var prepend;
		var searchHasNumber = search.match("[0-9]*");
		var addressHasNumber;
				
        // ====== Perform the Geocoding ======        
        if (search != "") {
		  document.getElementById(formID+"instruction").innerHTML = "<img src=\"http://farebid.co.uk/assets/images/thinking.gif\" />"
		  geo.getLocations(search + " UK", function (result)
          {
           
            if (result.Status.code == G_GEO_SUCCESS) {
              // ===== If there was more than one result, "ask did you mean" on them all =====
              if (result.Placemark.length > 1) { 
                document.getElementById(formID+"message").innerHTML = "Did you mean:";
                // Loop through the results
                for (var i=0; i<result.Placemark.length; i++) {
				  prepend = "";
				  addressHasNumber = result.Placemark[i].address.match("[0-9]*");
				  if (searchHasNumber != "" && addressHasNumber == "") { prepend = searchHasNumber + " ";}
				  
                  var p = result.Placemark[i].Point.coordinates;
                  document.getElementById(formID+"message").innerHTML += 
				  "<br>"+(i+1)+": <a href=\"javascript:choose('"+ prepend + escape(result.Placemark[i].address)+"','"+formID+"'," +p[1]+","+p[0]+")\">"+ prepend + result.Placemark[i].address+"<\/a>";
				  
				  // LIMIT TO 5 RESULTS FOR FORMATTING REASONS:
				  if (i==4) i=result.Placemark.lenght;
                }
				document.getElementById(formID+"instruction").innerHTML = "<a href=\"javascript:(showAddress('"+formID+"'))\"><img src=\"http://farebid.co.uk/assets/images/search.png\" border=\"0\" /></a>";
              }
              // ===== If there was a single marker =====
              else {
                prepend = "";
				addressHasNumber = result.Placemark[0].address.match("[0-9]*");
				
				if (searchHasNumber != "" && addressHasNumber == "") { prepend = searchHasNumber + " ";}
				
				var p = result.Placemark[0].Point.coordinates;
                drawMap(formID+"map",p[1],p[0]);
				
				document.getElementById(formID+"searchdiv").innerHTML = "<input id=\""+formID+"\" name=\""+formID+"\" type=\"hidden\" value=\""+ prepend + result.Placemark[0].address + "\"><input id=\""+formID+"\" name=\""+formID+"_lat\" type=\"hidden\" value=\""+ p[0] + "\"><input id=\""+formID+"\" name=\""+formID+"_lng\" type=\"hidden\" value=\""+ p[1] + "\"><p>" + prepend + result.Placemark[0].address + " <a href=\"javascript:(resetSearch('"+formID+"'))\">Change</a></p>";
				
				document.getElementById(formID+"instruction").innerHTML = '<img src="/assets/images/tick.png"/>';
				document.getElementById(formID+"message").innerHTML = "";
				enterToTab(document.forms.thisForm, true);
              }
            }
            // ====== Decode the error status ======
            else {
			  var reason="Code "+result.Status.code;
              if (reasons[result.Status.code]) {
                reason = reasons[result.Status.code]
              } 
              document.getElementById(formID+"message").innerHTML = "Unable to Validate address";
			  document.getElementById(formID+"instruction").innerHTML = "<a href=\"javascript:(showAddress('"+formID+"'))\"><img src=\"http://farebid.co.uk/assets/images/search.png\" border=\"0\" /></a>";
            }
          }
        );
      }
    }
	}

    //]]>