    var map;    
    var timeOut = null;
    var updateTime = 15;
    var updateOn = true;
    var listUpdate = "listPoints.php";
    var listField  = "name";
    var userMarkers = new Array();
    var markersBounds = new GLatLngBounds();
    var firstTime = true;
    var tabs = new Array();
    
    function init(sessionOn) {
      if (sessionOn) {
        load();
        //GEvent.addListener(map, "load", updatePoints);      
        tabs.push('tabpanel1');
        tabs.push('tabpanel2');
        //tabs.push('tabpanel3');
        updatePoints();        
      } else {
        load();
        listUpdate = "listPublicUsers.php";
        updatePoints();        
      }
      /* Labeled Marker
          var latlng = new GLatLng(0, 0);
          var icon = new GIcon(G_DEFAULT_ICON);
          icon.image = '';
          icon.iconSize = new GSize(32, 32);
          icon.iconAnchor = new GPoint(16, 16);
          icon.infoWindowAnchor = new GPoint(25, 7);                
          opts = { 
          "icon": icon,
          "clickable": true,
          "labelText": "Sérgio",
          "labelOffset": new GSize(0, -30)
          };
          var marker = new LabeledMarker(latlng, opts);
          map.addOverlay(marker);
       */
    }
    
    function load() {
      if (GBrowserIsCompatible()) {
        map = new GMap2(document.getElementById("map"));                
        map.setCenter(new GLatLng(0,0),2);        
        map.addControl(new GLargeMapControl());
        map.addControl(new GMapTypeControl());
        //map.addControl(new GOverviewMapControl());
        map.addControl(new GScaleControl());
        var bottomRight = new GControlPosition(G_ANCHOR_BOTTOM_RIGHT, new GSize(10,20));
        var lsc = new google.maps.LocalSearch();         
        map.addControl(new google.maps.LocalSearch(), bottomRight);
        //map.addControl(new SearchControl());
        //map.enableContinuousZoom();
        map.enableScrollWheelZoom(); 
        map.setMapType(G_HYBRID_MAP);       
      }
    }
                                        
    function loadComplete(data, responseCode) 
    {
      var xml = GXml.parse(data);
      parseMarkersKml(xml);
      if ( firstTime) {
        map.setCenter(markersBounds.getCenter(),map.getBoundsZoomLevel(markersBounds));
        firstTime = false;
      }
      // Create HTML for markers
      var tablePoints = document.getElementById("listPoints");
      if ( tablePoints != null)
      {
        var html;         
        var descs = xml.documentElement.getElementsByTagName("description");                
        if ( userMarkers.length > 0) {
          html = '<br/><b>'+descs[0].childNodes[0].data+'</b>';
          html += '<table>';                         
          for (var i = 0; i < userMarkers.length; i++) {            
            html += createHtmlElement(userMarkers[i], listField);
          }
                                    
          html += '</table>';                    
          tablePoints.innerHTML= html;  
        } else {
          html = '<br/><b>No posts available</b>';        
          tablePoints.innerHTML= html;         
        }
      }                            
    }
                                
    function updatePoints()   
    {                        
      if( timeOut != null) {        
        clearTimeout(timeOut);
      }
      GDownloadUrl(listUpdate, loadComplete);
      if ( updateOn) {             
        timeOut = setTimeout("updatePoints();", updateTime*1000);      
      }
      return false; 
    }
    
    function changeUpdate() {
      updateTime = document.forms["refresh"].updateTime.value;;
      updateOn =  document.forms["refresh"].updateOn.checked;
      if (updateOn) {
        updatePoints();
      }    
    }
                                                  
    function updateTabs(tab) {      
        tabs.forEach(function(name) {
          document.getElementById(name).className='taboff';
        });
        document.getElementById(tabs[tab]).className='tabon';        
        listUpdateOld = listUpdate;
        if (tab == 0) {
          listUpdate = 'listPoints.php';
          listField = 'name';
          document.getElementById('deleteButton').style.visibility = 'visible';
        }
        
        if (tab == 1) {             
          listUpdate = 'listFriends.php';
          listField = 'user';
          document.getElementById('deleteButton').style.visibility = 'hidden';
        }
        
        if (tab == 2) {
            listUpdate = 'listPoints.php';
        }
        updatePoints();        
        var link = document.getElementById('exportToKml');
        link.href = link.href.replace(listUpdateOld, listUpdate);
    }