//<![CDATA[
function createMap() {  if (GBrowserIsCompatible()) {  map = new GMap2(document.getElementById("map_canvas"));  map.addControl(new GSmallMapControl());  GEvent.addListener(map, 'click', function (overlay, point) {});  codeAddress();  }  else {  alert("Sorry, the Google Maps API is not compatible with this browser. Please enable Javascript on your browser.");  } } function createMarker(point, html, index) {  var baseIcon = new GIcon(G_DEFAULT_ICON);  baseIcon.shadow = "http://www.google.com/mapfiles/shadow50.png";  baseIcon.iconSize = new GSize(20, 34);  baseIcon.shadowSize = new GSize(37, 34);  baseIcon.iconAnchor = new GPoint(9, 34);  baseIcon.infoWindowAnchor = new GPoint(9, 2);  var letteredIcon = new GIcon(baseIcon);  letteredIcon.image = markerImg[index];  markerOptions = {  icon: letteredIcon  };  var marker = new GMarker(point, markerOptions);  GEvent.addListener(marker, "click", function () {  marker.openInfoWindowHtml(html);  });  return marker; } function pointData(point, lat, lng, businessName, address, phone, mobile, email, service, website) {  this.point = point;  this.lat = lat;  this.lng = lng;  this.businessName = businessName;  this.address = address;  this.phone = phone;  this.mobile = mobile;  this.email = email;  this.service = service;  this.website = website; } var map; var zoomlevel = 14; var companies = new Array(); var gIndex = 0; var backup = ''; var markerImg = new Array(); function getMarkerImg() {  var i = 0;  var letter;  for (i = 0; i < 24; i++) {  letter = String.fromCharCode("A".charCodeAt(0) + i);  markerImg[i] = "http://www.google.com/mapfiles/marker" + letter + ".png";  } } function getMarks(url) {  map.closeInfoWindow();  map.clearOverlays();  companies.clear();  gIndex = 0;  var request = GXmlHttp.create();  request.open("GET", url, true);  request.onreadystatechange = function () {  if (request.readyState == 4) {  var xmlDoc = request.responseXML;  var markers = xmlDoc.documentElement.getElementsByTagName("marker");  for (var k = 0; k < markers.length; k++) {  var lat = markers[k].getAttribute("lat");  var lng = markers[k].getAttribute("lng");  var point = new GLatLng(lat, lng);  var address = markers[k].getAttribute("address");  var name = markers[k].getAttribute("business_name");  var phone = markers[k].getAttribute("phone");  var mobile = markers[k].getAttribute("mobile");  var email = markers[k].getAttribute("email");  var service = markers[k].getAttribute("service");  var website = markers[k].getAttribute("website");  if (website.include('http://')) {  website = website.sub('http://', '');  }  companies[gIndex++] = new pointData(point, lat, lng, name, address, phone, mobile, email, service, website);  }  showMarkers();  displayCompanies();  }  };  request.send(null); } function codeAddress() {  var address = document.getElementById("postcode").value;  if (address.blank() || address.include("postcode")) {  address = "Bondi";  }  if (!isNaN(address)) {  if (address >= 2600 || address < 200) {  alert("Please enter a Postcode for Sydney Suburb.");  return;  }  address = convertPostCode(address);  }  address = address + ' NSW Australia';  var latLng;  var urlStr;  var geocoder = new GClientGeocoder();  if (geocoder) {  geocoder.getLatLng(address, function (point) {  if (point) {  latLng = point.toUrlValue();  urlStr = "marks.php?latLng=" + latLng;  map.setCenter(point, zoomlevel);  getMarks(urlStr);  map.panTo(point);  }  });  } } function showMarkers() {  for (var i = 0; i < gIndex; i++) {  var html = companies[i].businessName + "<br/>" + companies[i].address;  var marker = createMarker(companies[i].point, html, i);  map.addOverlay(marker);  } } function clearList(list) {  while (!$(list).empty()) {  $(list).firstDescendant().remove();  } } function displayCompanies() {  var actualImage;  var i;  clearList('sidebar-list');  document.getElementById('sidebar-list').innerHTML = '';  for (i = 0; i < gIndex; i++) {  actualImage = markerImg[i];  var listItem = document.createElement('li');  var listItemLink = listItem.appendChild(document.createElement('p'));  var phoneStr = companies[i].phone;  var mobileStr = companies[i].mobile;  if (phoneStr.empty() || phoneStr.include('undefined') || phoneStr.include('null')) {  phoneStr = '';  }  else {  phoneStr = "<img src=images/phone.png>" + companies[i].phone;  }  if (mobileStr.empty() || mobileStr.include('undefined') || mobileStr.include('null')) {  mobileStr = '';  }  else {  mobileStr = '<img src=images/mobile.png style="margin-left: 10px">' + companies[i].mobile + "<br />";  }  var str = '<div class="business">' + "<img src=" + actualImage + ">" + companies[i].businessName + "</div>" + '<div class="service" style="margin-left: 8px">' + companies[i].address + '</div>' + '<div class="phone">' + phoneStr + mobileStr + '<a href="javascript:showCompany(' + i + ')">more info</a>' + '</div>';  listItem.innerHTML = str;  document.getElementById('sidebar-list').appendChild(listItem);  } } function convertPostCode(number) {  var areas = new Array();  var ret = "Sydney";  var url = "pc.php?PC=" + number;  var request = GXmlHttp.create();  request.open("GET", url, false);  request.send(null);  var xmlDoc = request.responseXML;  var pointcodes = xmlDoc.documentElement.getElementsByTagName("PC");  var area = pointcodes[0].getAttribute("area");  ret = area;  return ret; } function showCompany(i) {  mapFocus();  backup = document.getElementById("sidebar").innerHTML;  var actualImage = markerImg[i];  var phoneStr = companies[i].phone;  var mobileStr = companies[i].mobile;  var serviceStr = companies[i].service;  var websiteStr = companies[i].website;  var emailStr = companies[i].email;  if (phoneStr.empty() || phoneStr.include('undefined') || phoneStr.include('null')) {  phoneStr = '';  }  else {  phoneStr = "<img src=images/phone.png>" + companies[i].phone;  }  if (mobileStr.empty() || mobileStr.include('undefined') || mobileStr.include('null')) {  mobileStr = '';  }  else {  mobileStr = '<img src=images/mobile.png style="margin-left: 10px">' + companies[i].mobile + "<br />";  }  if (serviceStr.empty() || serviceStr.include('undefined') || serviceStr.include('null')) {  serviceStr = '';  }  else {  serviceStr = '<div class="service">' + companies[i].service + "<br />" + "<br />";  }  if (websiteStr.empty() || websiteStr.include('undefined') || websiteStr.include('null')) {  websiteStr = '';  }  else {  websiteStr = 'Visit our website: <br/>' + '<a href="http://' + companies[i].website + '" target="blank">' + companies[i].website + '</a>' + "<br />" + "<br />";  }  var str = '<div class="business">' + "<img src=" + actualImage + '>' + companies[i].businessName + "</div>" + '<div class="service">' + companies[i].address + '</div>' + '<div class="phone">' + phoneStr + mobileStr + '</div>' + serviceStr + websiteStr + '<a href="javascript:restore()"><img src="images/back.png" /></a>' + '</div>';  var strForm = '<div class="service">Please send your query to this business. Please enter your name, your phone number, copy the security code below and send your message. Email is optional.</div><div id="query"><form action="" method="post" name="query-form" class="query-form" id="query-form">';  strForm += '<label>Name</label>  <input type="text"  name="Name" size="47"/>' + '\r\n';  strForm += '<label>Phone</label><input type="text"  name="Phone" size="47" />' + '\r\n';  strForm += '<label>Email</label><input type="text"  name="Email" size="47" /> ' + '\r\n';  strForm += '<label>Security Code</label><input type="text"  name="captcha" size="47" maxlength="4"/>' + '\r\n';  strForm += '<input type="hidden"  name="BusinessEmail" value="' + emailStr + '"/> ';  strForm += '<label>Message</label><textarea name="Message" cols="36" rows="20"> </textarea>';  strForm += '<div  id="captcha"><img src="captcha.php" alt="captcha image"></div>';  strForm += '<input type="image" id="submit" src="images/send.gif" class="submit" /></div></form>';  if (emailStr.empty() || emailStr.include('undefined') || emailStr.include('null')) {  emailStr = '';  }  else {  str += strForm;  }  map.panTo(companies[i].point);  document.getElementById("sidebar").innerHTML = str; } function restore() {  document.getElementById("sidebar").innerHTML = backup; } function clearInput(theText) {  var val = theText.value;  if (!val.blank()) {  theText.value = "";  } } function codeSuburb() {  var address = document.getElementById("postcode").value;  if (address.blank() || address.include("postcode")) {  address = "Bondi";  }  if (!isNaN(address)) {  if (address >= 2600 || address < 200) {  alert("Please enter a Postcode for Sydney Suburb.");  return;  }  address = convertPostCode(address);  }  address = address + ' NSW Australia';  var latLng;  var urlStr;  var geocoder = new GClientGeocoder();  if (geocoder) {  geocoder.getLatLng(address, function (point) {  if (point) {  latLng = point.toUrlValue();  urlStr = "marks.php?latLng=" + latLng;  getMarks2(urlStr);  }  });  } } function getMarks2(url) {  companies.clear();  gIndex = 0;  var request = GXmlHttp.create();  request.open("GET", url, true);  request.onreadystatechange = function () {  if (request.readyState == 4) {  var xmlDoc = request.responseXML;  var markers = xmlDoc.documentElement.getElementsByTagName("marker");  for (var k = 0; k < markers.length; k++) {  var lat = markers[k].getAttribute("lat");  var lng = markers[k].getAttribute("lng");  var point = new GLatLng(lat, lng);  var address = markers[k].getAttribute("address");  var name = markers[k].getAttribute("business_name");  var phone = markers[k].getAttribute("phone");  var mobile = markers[k].getAttribute("mobile");  var email = markers[k].getAttribute("email");  var service = markers[k].getAttribute("service");  var website = markers[k].getAttribute("website");  if (website.include('http://')) {  website = website.sub('http://', '');  }  companies[gIndex++] = new pointData(point, lat, lng, name, address, phone, mobile, email, service, website);  }  displayCompanies2();  }  };  request.send(null); } function displayCompanies2() {  var actualImage;  var i;  clearList('sidebar-list');  document.getElementById('sidebar-list').innerHTML = '';  for (i = 0; i < gIndex; i++) {  actualImage = markerImg[i];  var listItem = document.createElement('li');  var listItemLink = listItem.appendChild(document.createElement('p'));  var phoneStr = companies[i].phone;  if (phoneStr.empty() || phoneStr.include('undefined') || phoneStr.include('null')) {  phoneStr = '';  }  else {  phoneStr = "<img src=images/phone.png>" + companies[i].phone;  }  var mobileStr = companies[i].mobile;  if (mobileStr.empty() || mobileStr.include('undefined') || mobileStr.include('null')) {  mobileStr = '';  }  else {  mobileStr = '<img src=images/mobile.png style="margin-left: 10px">' + companies[i].mobile + "<br />";  }  var str = '<div class="business">' + "<img src=" + actualImage + ">" + companies[i].businessName + "</div>" + '<div class="service" style="margin-left: 8px">' + companies[i].address + '</div>' + '<div class="phone">' + phoneStr + mobileStr + '<a href="javascript:updateBusiness(' + i + ')">update business info</a>' + '</div>';  listItem.innerHTML = str;  document.getElementById('sidebar-list').appendChild(listItem);  } } function updateBusiness(i) {  mapFocus();  backup = document.getElementById("sidebar").innerHTML;  var letter = String.fromCharCode("A".charCodeAt(0) + i);  var myImage = "http://www.google.com/mapfiles/marker" + letter + ".png";  var actualImage = myImage;  var phoneStr = companies[i].phone;  var mobileStr = companies[i].mobile;  var businessName = companies[i].businessName;  var address = companies[i].address;  var websiteStr = companies[i].website;  if (phoneStr.empty() || phoneStr.include('undefined') || phoneStr.include('null')) {  phoneStr = '';  }  else {  phoneStr = "<img src=images/phone.png>" + companies[i].phone;  }  if (mobileStr.empty() || mobileStr.include('undefined') || mobileStr.include('null')) {  mobileStr = '';  }  else {  mobileStr = '<img src=images/mobile.png style="margin-left: 10px">' + companies[i].mobile + "<br />";  }  var serviceStr = companies[i].service;  if (serviceStr.empty() || serviceStr.include('undefined') || serviceStr.include('null')) {  serviceStr = '';  }  else {  serviceStr = '<div class="service">' + companies[i].service + "<br />" + "<br />";  }  if (websiteStr.empty() || websiteStr.include('undefined') || websiteStr.include('null')) {  websiteStr = '';  }  else {  websiteStr = 'Website: <br/>' + '<a href="http://' + companies[i].website + '" target="blank">' + companies[i].website + '</a>' + "<br />" + "<br />";  }  var str = '<div class="business">' + "<img src=" + actualImage + '>' + businessName + "</div>" + '<div class="service">' + address + '</div>' + '<div class="phone">' + phoneStr + mobileStr + '</div>' + serviceStr + websiteStr + '<a href="javascript:restore()"><img src="images/back.png" /></a>' + '</div>';  document.getElementById("sidebar").innerHTML = str;  document.getElementById("businessName").value = businessName;  document.getElementById("address").value = address;  document.getElementById("phone").value = companies[i].phone;  document.getElementById("mobile").value = companies[i].mobile;  document.getElementById("website").value = companies[i].website;  document.getElementById("service").value = companies[i].service;  document.getElementById("email").value = companies[i].email;     } function pause(millis) {  var date = new Date();  var curDate = null;  do {  curDate = new Date();  }  while (curDate - date < millis); } function mapFocus(){  window.scrollTo(0, 408); } //]]>

