    var map;
    var geocoder;
    var myPano;
    var myPano;
    var panoClient;
    var nextPanoId;

    function load() {
      if (GBrowserIsCompatible()) {
        var lat = -30.852726;
        var lng = 135.941845;
        geocoder = new GClientGeocoder();
        map = new GMap2(document.getElementById('map'));
        map.addControl(new GSmallMapControl());
        map.addControl(new GMapTypeControl());
        map.setCenter(new GLatLng(lat,lng), 3);
        map.setUIToDefault();

        // Create a base icon for all of our markers that specifies the
        // shadow, icon dimensions, etc.
        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);

        function createMemberMarker(point, name, address, suburb, state, post_code, website, courseid, fax,  m_id) {
      var marker = new GMarker(point);
      var html = '<b>' + name + '</b> <br/>' + address + '<br />' + suburb + ', ' + state + ' ' + post_code + '<br/><a class ="linkonwhitebg" href="' + website + '">' + website + '</a><br /><a href=members.php?m_id=' + m_id + '><strong style="color:red">Click to view Profile</strong></a>' ;
      GEvent.addListener(marker, 'click', function() {
        marker.openInfoWindowHtml(html);
      });

      return marker;
    }

        var point = new GLatLng(lat,lng);
        panoramaOptions = { latlng:point };
        pano = new GStreetviewPanorama(document.getElementById("streetview"), panoramaOptions);
        GEvent.addListener(pano);

          // Add 10 markers to the map at random locations
        var bounds = map.getBounds();
        var southWest = bounds.getSouthWest();
        var northEast = bounds.getNorthEast();
        var lngSpan = northEast.lng() - southWest.lng();
        var latSpan = northEast.lat() - southWest.lat();

     var membersUrl = 'phpsqlmembers_genxml.php';
     GDownloadUrl(membersUrl, function(data) {
       var xml = GXml.parse(data);
       var markers = xml.documentElement.getElementsByTagName('marker');
       map.clearOverlays();
        for (var i = 0; i < markers.length; i++) {
        var name = markers[i].getAttribute('name');
                var address = markers[i].getAttribute('address');
                var suburb = markers[i].getAttribute('suburb');
                var state = markers[i].getAttribute('state');
                var post_code = markers[i].getAttribute('post_code');
                var fax = markers[i].getAttribute('fax');
                var website = markers[i].getAttribute('website');
                var courseid = markers[i].getAttribute('courseid');
                var m_id = markers[i].getAttribute('m_id');
                var distance = parseFloat(markers[i].getAttribute('distance'));
          var latlng = new GLatLng(parseFloat(markers[i].getAttribute('lat')),
                                 parseFloat(markers[i].getAttribute('lng')));

          var point = new GLatLng(parseFloat(markers[i].getAttribute('lat')),
                                 parseFloat(markers[i].getAttribute('lng')));

        var marker = createMemberMarker(point, name, address, suburb, state, post_code,  website, courseid, fax, m_id);
         map.addOverlay(marker);
        }
        });

      }
    }


    function streetview(point) {
        panoramaOptions = { latlng:point };
        pano = new GStreetviewPanorama(document.getElementById("streetview"), panoramaOptions);
        GEvent.addListener(pano);

    }
    function handleNoFlash(errorCode) {
      if (errorCode == FLASH_UNAVAILABLE) {
        alert("Error: Flash doesn't appear to be supported by your browser");
        return;
      }
    }

   function searchLocations() {
   document.getElementById('statusmessage').innerHTML = 'Loading <img src="images/ajax-loader.gif">';

     var address = document.getElementById('addressInput').value;
     var pc = address.substr(0,1);

     switch(pc)
        {
                case '0':
                        address = address + ' NT Australia';
                        break;
                case '2':
                        address = address + ' NSW Australia';

                        break;
                case '3':
                        address = address + ' VIC Australia';
                        break;
                case '4':
                        address = address + ' QLD Australia';
                        break;
               case '5':
                        address = address + ' SA Australia';
                break;
                case '6':
                        address = address + ' WA Australia';
                        break;
                case '7':
                        address = address + ' TAS Australia';
                        break;
                default:



        }

     geocoder.getLatLng(address, function(latlng) {
       if (!latlng) {
         alert(address + ' not found');
       } else {
         searchLocationsNear(latlng);
         document.getElementById('statusmessage').innerHTML = '';

       }
     });

   }

   function searchLocationsNear(center) {
     var radius = document.getElementById('radiusSelect').value;
     var courseid = document.getElementById('courseid').value;
     var calendar1 = document.getElementById('calendar1').value;
     var calendar2 = document.getElementById('calendar2').value;


     var searchUrl = 'phpsqlsearch_genxml2.php?lat=' + center.lat() + '&lng=' + center.lng() + '&radius=' + radius + '&courseid=' + courseid + '&calendar1=' + calendar1 + '&calendar2=' + calendar2;
     GDownloadUrl(searchUrl, function(data) {
       var xml = GXml.parse(data);
       var markers = xml.documentElement.getElementsByTagName('marker');
       map.clearOverlays();

       var sidebar = document.getElementById('sidebar');
       sidebar.innerHTML = '';
       if (markers.length == 0) {
         sidebar.innerHTML = 'No results found.';
         map.setCenter(new GLatLng(-33.852726, 150.941845), 15);
         return;
       }

       var bounds = new GLatLngBounds();
       for (var i = 0; i < markers.length; i++) {
         var name = markers[i].getAttribute('name');
         var address = markers[i].getAttribute('address');
         var website = markers[i].getAttribute('website');
         var courseid = markers[i].getAttribute('courseid');
         var m_id = markers[i].getAttribute('m_id');
         var distance = parseFloat(markers[i].getAttribute('distance'));
         var point = new GLatLng(parseFloat(markers[i].getAttribute('lat')),
                                 parseFloat(markers[i].getAttribute('lng')));

         var marker = createMarker(point, name, address, website, courseid, m_id);
         map.addOverlay(marker);
         var sidebarEntry = createSidebarEntry(marker, name, address, distance, courseid, m_id);
         sidebar.appendChild(sidebarEntry);
         bounds.extend(point);

       }

       map.setCenter(bounds.getCenter(), map.getBoundsZoomLevel(bounds));
     });
   }

    function createMarker(point, name, address, website, courseid, m_id) {

      var marker = new GMarker(point);
      var html = '<b>' + name + '</b> <br/>' + address + '<br/><a class ="linkonwhitebg" href="course_info.php?courses_id=' + courseid +  '&v_id=' + m_id + '">Book Now</a>' ;
      GEvent.addListener(marker, 'click', function() {
        marker.openInfoWindowHtml(html);
      });

      return marker;
    }

    function createSidebarEntry(marker, name, address, distance, courseid, m_id) {
      var div = document.createElement('div');
      var html = '<b>' + name + '</b> Distance (' + distance.toFixed(1) + 'km)<br/>' + address +'<br/><a href="course_info.php?courses_id=' + courseid +  '&v_id=' + m_id + '"><img src="images/button_booknow.gif" border="0"></a>';
      div.innerHTML = html;
      div.style.cursor = 'pointer';
      div.style.marginBottom = '5px';
      GEvent.addDomListener(div, 'click', function() {
        GEvent.trigger(marker, 'click');
        openWindow(marker)
      });
      GEvent.addDomListener(div, 'mouseover', function() {
        div.style.backgroundColor = '#eee';
      });
      GEvent.addDomListener(div, 'mouseout', function() {
        div.style.backgroundColor = '#fff';
      });
      document.getElementById('statusmessage').innerHTML = '';

      return div;
    }

    function openWindow(marker)
        {
                var fenwayPOV = {yaw:370.64659986187695,pitch:-20};
                myPano = new GStreetviewPanorama(document.getElementById("streetview"));
                var latlang = marker.getLatLng();
                myPano.setLocationAndPOV(latlang,fenwayPOV);

        }

