//<![CDATA[

function LOJAWindowMarkers(map,point,myText) {

	// Creates a marker at the given point
	function createMarker(point, myText,icon1) {  
		var marker = new GMarker(point,icon1);  
		GEvent.addListener(marker, "click", function() { marker.openInfoWindowHtml(myText); });  
		return marker;
	}

	// Setup Icon 1
    var icon1 = new GIcon();
	icon1.shadow = 'imagens/mapa_marca_sombra.png';
    icon1.image='imagens/mapa_marca.png';
    icon1.iconSize = new GSize(100, 80);
	icon1.shadowSize = new GSize(120, 80);
    icon1.iconAnchor = new GPoint(100/2,80);
    icon1.infoWindowAnchor = new GPoint(50,80);
	icon1.infoShadowAnchor = new GPoint(50, 80);
	
	// Add markers
	map.addOverlay(createMarker(point,myText,icon1));
	
}

function doDrawCircle(){
	map.clearOverlays();

	var center = map.getCenter();
	var circlePoints = Array();
	var bounds = new GLatLngBounds();
	var circleRadius=2;
	var circleUnits = 'KM';
	with (Math) {
		if (circleUnits == 'KM') {
			var rLat = (circleRadius/6378.8) * (180/PI);
		}
		else { //miles
			var rLat = (circleRadius/3963.189) * (180/PI);
		}
		var rLng = rLat/cos(center.lat() * (PI/180));

		for (var a = 0 ; a < 361 ; a+=1 ) {
			var aRad = a*(PI/180);
			var x = center.lng() + (rLng * cos(aRad));
			var y = center.lat() + (rLat * sin(aRad));
			var point = new GLatLng(parseFloat(y),parseFloat(x),true);
			bounds.extend(point);
			circlePoints.push(point);
		}
	}

	centerMarker = new GMarker(center);
	map.addOverlay(centerMarker);

	circle = new GPolygon(circlePoints, '#ff0000', 1, 1, '#ddffdd', 0.35);	
	map.addOverlay(circle); 

	map.setZoom(map.getBoundsZoomLevel(bounds)-1);
}
	
function EstadioWindowMarkers(map,point,myText) {

	// Creates a marker at the given point
	function createMarker(point, myText,icon2) {  
		var marker = new GMarker(point,icon2);  
		GEvent.addListener(marker, "click", function() { marker.openInfoWindowHtml(myText); });  
		return marker;
	}

	// Setup Icon 2
    var icon2 = new GIcon();
	icon2.shadow = 'imagens/mapa_marca_sombra.png';
    icon2.image='imagens/mapa_marca.png';
    icon2.iconSize = new GSize(60, 56);
	icon2.shadowSize = new GSize(60, 56);
    icon2.iconAnchor = new GPoint(60/2,56);
    icon2.infoWindowAnchor = new GPoint(19,56);
	icon2.infoShadowAnchor = new GPoint(40, 60);

	// Add markers
	map.addOverlay(createMarker(point,myText,icon2));
	
}


function OnClickShowCoord(map) {
	// centrar mapa indicando Latitude e Longitude

	GEvent.addListener(map, "moveend", function() {
	  var center = map.getCenter();
	  document.getElementById("message").innerHTML = center.toString();
	});

}

function PlaceIconsOnMap(map) {
	//add and remove icon in maps

	GEvent.addListener(map, "click", function(marker, point) {
	  if (marker) {
	    map.removeOverlay(marker);
	  } else {
	    map.addOverlay(new GMarker(point));
	  }
	});
}

function ShowPopup(map) {
	//display window with text
	map.setCenter(new GLatLng(myLat, myLong));  
	map.openInfoWindow(map.getCenter(), document.createTextNode(myPopupText));
}

function AddIcon(map) {
	var icon = new GIcon();
	icon.image = myImg;
	icon.iconSize = new GSize(myImgWidth, myImgHeight);
	icon.iconAnchor = new GPoint(myImgWidth/2,myImgHeight);
	icon.infoWindowAnchor = new GPoint(9,2);

	var point = new GLatLng(myLat, myLong); 
	map.addOverlay(new GMarker(point,icon));

}

function RenderControls(map) {

	// myControls[0..3] = 1_Zoom,2_Small,3_Big / Scale / MapType / Overview

	if (myControls[0]==1) map.addControl(new GSmallZoomControl());	// +- zoom
	if (myControls[0]==2) map.addControl(new GSmallMapControl());	// pan and zoom (small)
	if (myControls[0]==3) map.addControl(new GLargeMapControl());	// pan and zoom (big)
		
	if (myControls[1]==1) map.addControl(new GScaleControl());		// escala
	if (myControls[2]==1) map.addControl(new GMapTypeControl()); 	// Map,Satellite,Hybrid views
	if (myControls[3]==1) map.addControl(new GOverviewMapControl()); 	// overview box

	//new!        
    if (myControls[2]==2) map.addControl(new GMapTypeControl(),new GControlPosition(G_ANCHOR_BOTTOM_RIGHT, new GSize(5, 5))); // coloca o MapType no canto inferior direito com 5 padding
}

    function load() {
      if (GBrowserIsCompatible()) {
		var map = new GMap2(document.getElementById("map"));

		map.setCenter(new GLatLng(myLat, myLong), myZoom);  

		//show controls on map
		RenderControls(map)

		//START: functions for tests
		if (myUserType==1) { OnClickShowCoord(map); }
		if (myUserType==2) { ShowPopup(map); OnClickShowCoord(map); PlaceIconsOnMap(map); }
		//END: functions for tests

		//Place Icons on map
		if (myAction == '1') { AddIcon(map) } else { PopulateMap(map) };
		
		//Custom Layers
 		var layer1=[G_NORMAL_MAP.getTileLayers()[0]]; 
		var layer2=[G_SATELLITE_MAP.getTileLayers()[0],G_HYBRID_MAP.getTileLayers()[1]]; 

		var custommap1 = new GMapType(layer1, G_SATELLITE_MAP.getProjection(), "Normal", G_SATELLITE_MAP);
		var custommap2 = new GMapType(layer2, G_SATELLITE_MAP.getProjection(), "Satelite", G_SATELLITE_MAP);
	      
 		map.getMapTypes().length = 0;
		map.addMapType(custommap1);
		map.addMapType(custommap2);
			
		map.setMapType(custommap2);

		
      } //end GBrowserIsCompatible
    } //end load
    
    //]]>
