var map = null;
var html = '';
var gmarkers = [];
var i = 1;
var htmls = [];
var hmarkers = [];

var hotIcon = new GIcon();
hotIcon.image = "http://nireblog.com/imagenes/blue-dot.png";
hotIcon.shadow = "http://www.google.com/mapfiles/shadow50.png";
hotIcon.iconSize = new GSize(32, 32);
hotIcon.shadowSize = new GSize(37, 34);
hotIcon.iconAnchor = new GPoint(9, 34);
hotIcon.infoWindowAnchor = new GPoint(9, 2);
hotIcon.infoShadowAnchor = new GPoint(18, 25);

function loadmapPublic(clat, clng, scale) {
	if (GBrowserIsCompatible()) {
		map = new GMap2(document.getElementById("map"));
		map.addControl(new GLargeMapControl());
		map.addControl(new GMapTypeControl());
		map.setCenter(new GLatLng(clat, clng), scale, G_HYBRID_MAP);
	}

}
function loadmapPublicUser(clat, clng, scale) {
	if (GBrowserIsCompatible()) {
		map = new GMap2(document.getElementById("map"));
		map.addControl(new GSmallZoomControl());
		map.setCenter(new GLatLng(clat, clng), scale, G_HYBRID_MAP);
	}

}
function centerMark(clat, clng, scale) {
	if (GBrowserIsCompatible()) {
		map = new GMap2(document.getElementById("map"));
		map.addControl(new GLargeMapControl());
		map.addControl(new GMapTypeControl());
		point = new GLatLng(clat, clng);
		map.setCenter(point, scale, G_HYBRID_MAP);
		var marker = new GMarker(point, {draggable: true})
		map.addOverlay(marker);
	}

}

function centerMarkUser(clat, clng, scale) {
	if (GBrowserIsCompatible()) {
		map = new GMap2(document.getElementById("map"));
		map.addControl(new GSmallZoomControl());
		point = new GLatLng(clat, clng);
		map.setCenter(point, scale, G_NORMAL_MAP);
		var marker = new GMarker(point, {draggable: true})
		map.addOverlay(marker);
	}

}

function createMarker(point,name,html,icon) {
  	if (icon) {
  		var marker = new GMarker(point,icon);
  	}
  	else {
  		var marker = new GMarker(point);
  	}

      // === store the name so that the tooltip function can use it ===
        marker.tooltip = '<div class="tooltip">'+name+'</div>';
	html = '<strong>'+name+'</strong><br/>'+ html;
        GEvent.addListener(marker, "click", function() {
          marker.openInfoWindowHtml(html);
        });
        gmarkers[i] = marker;
        hmarkers[i] = new GMarker(point,hotIcon);
        htmls[i] = html;
//        side_bar_html += '<a href="javascript:myclick(' + i + ')" onmouseover="mymouseover('+i+')" onmouseout="mymouseout()">' + name + '</a><br>';
	map.addOverlay(marker);

       //  ======  The new marker "mouseover" and "mouseout" listeners  ======
        GEvent.addListener(marker,"mouseover", function() {
          showTooltip(marker);
        });        
        GEvent.addListener(marker,"mouseout", function() {
		tooltip.style.visibility="hidden"
        });       
	i++;
      }

    function myclick(i, texto) {
      gmarkers[i].openInfoWindowHtml(texto);
    }


      // ====== This function displays the tooltip ======
      // it can be called from an icon mousover or a side_bar mouseover
      function showTooltip(marker) {
      	tooltip.innerHTML = marker.tooltip;
	var point=map.getCurrentMapType().getProjection().fromLatLngToPixel(map.getBounds().getSouthWest(),map.getZoom());
	var offset=map.getCurrentMapType().getProjection().fromLatLngToPixel(marker.getPoint(),map.getZoom());
	var anchor=marker.getIcon().iconAnchor;
	var width=marker.getIcon().iconSize.width;
	var pos = new GControlPosition(G_ANCHOR_BOTTOM_LEFT, new GSize(offset.x - point.x - anchor.x + width,- offset.y + point.y +anchor.y)); 
	pos.apply(tooltip);
	tooltip.style.visibility="visible";
      }

      // ===== This function is invoked when the mouse goes over an entry in the side_bar =====
      // It launches the tooltip on the icon      
      function mymouseover(i) {
        showTooltip(gmarkers[i])
      map.removeOverlay(gmarkers[i]);
      map.addOverlay(hmarkers[i]);
      }
      // ===== This function is invoked when the mouse leaves an entry in the side_bar =====
      // It hides the tooltip      
      function mymouseout(i) {
	tooltip.style.visibility="hidden";
        map.removeOverlay(hmarkers[i]);
        map.addOverlay(gmarkers[i])
      }

