	var posto = new GIcon();
	posto.image = 'http://www.autogas.pt/mapa/icons/icon_posto.png';
	posto.shadow = 'http://www.autogas.pt/mapa/icons/icon_shadow.png';
	posto.iconSize = new GSize(20, 30);    
	posto.shadowSize = new GSize(30, 30);    
	posto.iconAnchor = new GPoint(12, 30);    
	posto.infoWindowAnchor = new GPoint(10, 30);   
	
	var posto_lock = new GIcon();
	posto_lock.image = 'http://www.autogas.pt/mapa/icons/icon_posto_1.png';
	posto_lock.shadow = 'http://www.autogas.pt/mapa/icons/icon_shadow.png';
	posto_lock.iconSize = new GSize(20, 30);    
	posto_lock.shadowSize = new GSize(30, 30);    
	posto_lock.iconAnchor = new GPoint(12, 30);    
	posto_lock.infoWindowAnchor = new GPoint(10, 30);
	
	var posto_erro = new GIcon();
	posto_erro.image = 'http://www.autogas.pt/mapa/icons/icon_posto_erro.png';
	posto_erro.shadow = 'http://www.autogas.pt/mapa/icons/icon_shadow.png';
	posto_erro.iconSize = new GSize(20, 30);    
	posto_erro.shadowSize = new GSize(30, 30);    
	posto_erro.iconAnchor = new GPoint(12, 30);    
	posto_erro.infoWindowAnchor = new GPoint(10, 30);  

	var iconBlue = new GIcon();
	iconBlue.image = 'http://www.autogas.pt/mapa/icons/icon_posto.png';
	iconBlue.shadow = 'http://www.autogas.pt/mapa/icons/icon_shadow.png';
	iconBlue.iconSize = new GSize(20, 30);    
	iconBlue.shadowSize = new GSize(30, 30);    
	iconBlue.iconAnchor = new GPoint(12, 30);    
	iconBlue.infoWindowAnchor = new GPoint(10, 30); 
	
	var iconRed = new GIcon();     
	iconRed.image = 'http://www.autogas.pt/mapa/icons/icon_inst.png';
	iconRed.shadow = 'http://www.autogas.pt/mapa/icons/icon_shadow.png';
	iconRed.iconSize = new GSize(20, 30);    
	iconRed.shadowSize = new GSize(30, 30);    
	iconRed.iconAnchor = new GPoint(12, 30);    
	iconRed.infoWindowAnchor = new GPoint(10, 30);
	
	var customIcons = [];    
	customIcons["10"] = posto;
	customIcons["10_1"] = posto_lock;
	customIcons["10_E"] = posto_erro;  
	customIcons["11"] = iconRed;

	
//function zoomtopointIn(lat,lng) { 
//var cnt=1;
//var ZoomAct = map.getZoom();
//if (ZoomAct < 17)	{	if (ZoomAct<12) 		{ cnt=5;}	map.setCenter(new GLatLng(lat, lng), (parseInt(ZoomAct) + cnt));	}}

function showTooltip(marker) {
   	tooltip.innerHTML = marker.tooltip;
	var point=map.getCurrentMapType().getProjection().fromLatLngToPixel(map.fromDivPixelToLatLng(new GPoint(0,0),true),map.getZoom());
	var offset=map.getCurrentMapType().getProjection().fromLatLngToPixel(marker.getPoint(),map.getZoom());
	var anchor=marker.getIcon().iconAnchor;
	var width=marker.getIcon().iconSize.width-65;
	var height= 40;
	var pos = new GControlPosition(G_ANCHOR_TOP_LEFT, new GSize(offset.x - point.x - anchor.x + width, offset.y - point.y -anchor.y -height)); 
	pos.apply(tooltip);
	tooltip.style.visibility="visible";
}

function zoomtopointIn(lat,lng) { 
var cnt=1;
var ZoomAct = map.getZoom();
if (ZoomAct < 17)
	{
	if (ZoomAct<12) { cnt=5; map.setCenter(new GLatLng(lat, lng), (parseInt(ZoomAct) + cnt));}
	cnt=1;map.setCenter(new GLatLng(lat, lng), (parseInt(ZoomAct)));
	}
}

function zoomtopointOut(lat,lng) { var ZoomAct = map.getZoom(); if (ZoomAct > 0)
{ map.setCenter(GLatLng(lat, lng),(parseInt(ZoomAct) - 1));}
}

function mapType(type) { switch (type) { case 2:
map.setMapType(G_HYBRID_MAP); break; case 1:
map.setMapType(G_SATELLITE_MAP); break; default:
map.setMapType(G_NORMAL_MAP); break;}
}

function showAddress() { address = document.getElementById('address').value; if (geocoder) { geocoder.getLatLng( address, function(point) { if (!point) { alert(address + " not found");} else { map.setCenter(point, 13); var marker = new GMarker(point); map.addOverlay(marker); marker.openInfoWindowHtml(address);}
} );}
}

function subGPoints(a,b) { return new GPoint(a.x-b.x, a.y-b.y);}

function getMarkers(type){ 
var bounds = map.getBounds();
var southWest = bounds.getSouthWest();
var northEast = bounds.getNorthEast();

document.getElementById('msg_ajax').style.visibility = 'visible';
document.getElementById('msg_ajax').innerHTML = "<img src=/mapa/progressbar.gif> <br> A Carregar os Dados...<br> Loading...";
markerCounter = 0;

var urlstr="/mapa/link/gpl_xml.php?tipo="+type+"&rnelng="+northEast.lng()+"nelat="+northEast.lat()+"&swlng="+southWest.lng()+"&swlat="+southWest.lat();
var request = GXmlHttp.create();
request.open('GET', urlstr , true);
request.onreadystatechange = function () {
	if (request.readyState == 4) {
		releaseMarkers();
		var xmlDoc = request.responseXML;
		locations = xmlDoc.documentElement.getElementsByTagName("marker");
		//tips = xmlDoc.documentElement.getElementsByTagName("tip")[0];
		markers = [];
		if (locations.length){ 
		for (var i = 0;i < locations.length; i++) { 
		point = new GLatLng(locations[i].getAttribute("lat"),locations[i].getAttribute("lon"));
		var id = locations[i].getAttribute("id");
		var type = locations[i].getAttribute("type");
		var v_id = locations[i].getAttribute("id");
		var label = locations[i].getAttribute("label");
		var html = '<img src="images/spacer.gif" width="1" height="200" /><img src=/mapa/progressbar.gif> A Carregar os Dados...';
		var tip = GXml.value(locations[i].getElementsByTagName("tip")[0]);
		map.addOverlay(createMarker(point, id, html, type, tip, label));
		markerCounter++;}
		}
	document.getElementById('msg_ajax').style.visibility = 'hidden';}
}
request.send(null);

}

var gmarkers = [];
function createMarker(point, id, html, type, tip, label) {
	markerOptions = { title: label,icon:customIcons[type] };
	var marker = new GMarker(point,markerOptions);
	gmarkers[id] = marker;
	marker.tooltip = '<div class="tooltip"><nobr>'+tip+'</nobr></div>';
	
	GEvent.addListener(marker, "mouseover", function() {
		var pointNew = marker.getPoint();
		var lat = pointNew.y;
		var lng = pointNew.x;
		//document.getElementById('msg_ajax').innerHTML = "<img src=/mapa/progressbar.gif> A Carregar os Dados...";
		//marker.openInfoWindowHtml(html);
		showTooltip(marker);
		})
	
	GEvent.addListener(marker, "mouseout", function() {
		var pointNew = marker.getPoint();
		tooltip.style.visibility="hidden" 
		})


	GEvent.addListener(marker, "infowindowclose", function() {
		var pointNew = marker.getPoint();
		map.panTo(pointNew);
		MostraPostos(10);
		})
	
	GEvent.addListener(marker, "infowindowopen", function() {
		var point = marker.getPoint();
		map.savePosition(); 
		var CDivPixel = map.fromLatLngToDivPixel(map.getCenter()); 
		var pointDivPixel = map.fromLatLngToDivPixel(point); 
		var fromCenter = subGPoints(pointDivPixel, CDivPixel); 
		map.panBy(new GSize(-fromCenter.x-0,-fromCenter.y+150));
		})
		
	GEvent.addListener(marker, "click", function() {
		var pointNew = marker.getPoint();
		var lat = pointNew.y;
		var lng = pointNew.x;
		var pointcenter = new GLatLng(lat+0,lng);
		var request = GXmlHttp.create();
		request.open("GET", "/mapa/link/getmarker.php?rnd="+Math.random()+"&Id="+id+"&lat="+lat+"&lng="+lng, true);
		request.onreadystatechange = function() {
		if (request.readyState == 4) {
			answer =request.responseText;
			//map.panDirection(1,2);
			marker.openInfoWindowHtml(answer,{suppressMapPan:true});
			}
		}
		request.send(null);
		//zoomtopointIn(lat,lng);
		marker.openInfoWindowHtml(html,{suppressMapPan:true});
		})
	
return marker;}

function releaseMarkers()
{ map.clearOverlays();}

function aumentar(level)
{ map.setZoom(level);}


function jump_to_location(location) { ignoreMove = 0; if (location == 'europe') { map.setCenter(new GLatLng(55.27912, 20.21484), 3);} else if (location == 'north_america') { map.setCenter(new GLatLng(39.487085,-93.779297), 3);} else if (location == 'south_america') { map.setCenter(new GLatLng(-25.482951,-71.71875), 3);} else if (location == 'africa') { map.setCenter(new GLatLng(1.230374,20.566406), 3);} else if (location == 'asia') { map.setCenter(new GLatLng(42.940339,107.226563), 3);} else if (location == 'oceana') { map.setCenter(new GLatLng(-19.47695,134.296875), 3);}
}

function irpara(i) {
	if (gmarkers[i]){
	map.closeInfoWindow()
	GEvent.trigger(gmarkers[i], "click");
	}
}

function irpara_preco(i) {
	if (gmarkers[i]){
	map.closeInfoWindow()
	map.clearOverlays();
	getMarkers(10,i);
	}
}

function gotoMark(lat,lon,zoom)
{ 
	map.clearOverlays();
	gotoZoom(lat, lon, zoom);
}

function GetNewPoint(type){ 
	releaseMarkers();
	var center = map.getCenter();
	var marker = new GMarker(center, {draggable: true, icon:customIcons[10]});
	GEvent.addListener(marker, "dragstart", function() {
			map.closeInfoWindow();}
			);
	
	GEvent.addListener(marker, "dragend", function() {
			var request = GXmlHttp.create();
			var pointNew = marker.getPoint();
			var lat = pointNew.y;
			var lng = pointNew.x;
			request.open("GET", "addmarker.php?lat="+lat+"&lng="+lng+"&type="+type, true);
			request.onreadystatechange = function() { if (request.readyState == 4) { answer =request.responseText; marker.openInfoWindowHtml(answer);}
			}
			request.send(null);}
			);
	map.addOverlay(marker);
}

function GetNewPoint_Posto(id,lat,lon){ 
	
	releaseMarkers();
	if (lat > 0 && lon < 0){
		var center = new GLatLng(lat,lon);
		map.panTo(center);
		}
	else {
		var center = map.getCenter();
		}
	
	var marker = new GMarker(center, {draggable: true});
	GEvent.addListener(marker, "dragstart", function() {
			map.closeInfoWindow();}
			);
	
	GEvent.addListener(marker, "dragend", function() {
			var request = GXmlHttp.create();
			var pointNew = marker.getPoint();
			var lat = pointNew.y;
			var lng = pointNew.x;
			
			var Frame = document.getElementById("showeditcoord_i");
			
			var FrameWindow = Frame.window?Frame.window:Frame.contentWindow;
			var FrameDocument = FrameWindow.document;
			
			var objlat = FrameDocument.getElementById("nova_lat");
			var objlon = FrameDocument.getElementById("nova_lon");
			
			objlat.value=lat;
			objlon.value=lng;
			
			request.open("GET", "editar_posto_infowindow.php?lat="+lat+"&lng="+lng, true);
			request.onreadystatechange = function() { if (request.readyState == 4) { answer =request.responseText; marker.openInfoWindowHtml(answer);}
			}
			request.send(null);}
			);
	map.addOverlay(marker);
}

function add_posto_old(lat,lon,type){
releaseMarkers();
Element.show('addpoi');
var objFrame=document.getElementById('addpoi_i');
var urlstr="/mapa/form_add_poi.php?lat="+lat+"&lon="+lon+"&type="+type;
objFrame.src=urlstr;
}

function add_posto(lat,lon,type){
releaseMarkers();
Element.show('box');
var objFrame=document.getElementById('box_i');
var urlstr="/mapa/form_add_poi.php?lat="+lat+"&lon="+lon+"&type="+type;
objFrame.src=urlstr;
}

function HtmlControl($1,$2){this._1=$1;this.isVisible=true;this._2=false;this._3=false;if($2){this.isVisible=($2.visible===false)?false:true;this._2=($2.printable===true)?true:false;this._3=($2.selectable===true)?true:false;}this.setVisible=function($3){this._4.style.display=($3)?"block":"none";this.isVisible=$3;};}HtmlControl.prototype=new GControl();HtmlControl.prototype.initialize=function($4){this.selectable=function(){return this._3;};this.printable=function(){return this._2;};this._4=document.createElement("div");this._4.innerHTML=this._1;this.setVisible(this.isVisible);$4.getContainer().appendChild(this._4);return this._4;};HtmlControl.prototype.getDefaultPosition=function(){return new GControlPosition(G_ANCHOR_TOP_LEFT,new GSize(7,7));};