//create marker
function setZIndex(marker,b) {
  	return GOverlay.getZIndex(marker.getPoint().lat()) + marker.importance*1000000;
}
function createMarker(id,lat,lng,zoom,place,word,username,avatar,ago_time,show,picture) {
	if (show) {
		map.setCenter(new GLatLng(lat,lng),zoom);	
		if (map.isLoaded()) {
			map.setZoom(zoom);		
			map.panTo(new GLatLng(lat,lng));
		}
	}
	var marker = new GMarker(new GLatLng(lat,lng));
	if (show == true) {
		var myIcon = new GIcon();
		myIcon.image = base_url+'images/markers/image.png';
		myIcon.shadow = base_url+'images/markers/shadow.png';
		myIcon.iconSize = new GSize(30,26);
		myIcon.shadowSize = new GSize(43,26);
		myIcon.iconAnchor = new GPoint(15,26);
		myIcon.infoWindowAnchor = new GPoint(15,0);
		myIcon.printImage = base_url+'images/markers/printImage.gif';
		myIcon.mozPrintImage = base_url+'images/markers/mozPrintImage.gif';
		myIcon.printShadow = base_url+'images/markers/printShadow.gif';
		myIcon.transparent = base_url+'images/markers/transparent.png';
		myIcon.imageMap = [7,0,17,1,25,2,26,3,27,4,27,5,24,6,24,7,24,8,25,9,25,10,25,11,25,12,28,13,29,14,29,15,29,16,29,17,29,18,23,19,23,20,22,21,22,22,22,23,22,24,22,25,1,25,2,24,2,23,2,22,2,21,2,20,1,19,1,18,0,17,0,16,0,15,0,14,0,13,0,12,0,11,0,10,0,9,0,8,1,7,1,6,2,5,3,4,3,3,2,2,1,1,1,0];	
		//var myIcon = new GIcon(G_DEFAULT_ICON);
    	//myIcon.image = base_url+'images/markers/orange_Marker.png';
		// Set up our GMarkerOptions object
		markerOptions = { icon:myIcon, zIndexProcess:setZIndex };	
		var marker = new GMarker(new GLatLng(lat,lng),markerOptions);	
	}
	var pic = '';
	if (picture!='') {
		pic = "<img width='30' height='30' alt='' src='"+base_url+picture+"'/>";
	}	
	var myplace = "<div class='map-data'>"+
	"<p>"+
	"<a title='"+username+"' href='"+base_url+"user/"+username+"'>"+
	"<img width='30' height='30' alt='' src='"+base_url+avatar+"'/>"+
	"</a>"+	
	pic+
	"<a class='b' title='guest' href='"+base_url+"user/"+username+"'>"+username+"</a>"+
	"<a class='b at' title='"+place+"' href='"+base_url+"action/"+id+"'>@"+place+"</a>&nbsp;"+
	word+
	"</p>"+
	"<span>"+ago_time+
	"</span>"+
	"</div>";
	GEvent.addListener(marker, 'click', function() {
		marker.openInfoWindowHtml(myplace);
	});		
	map.addOverlay(marker);
	if (show == true) {
		setTimeout("",1000);	
		map.savePosition();		
		GEvent.trigger(marker, 'click');
    }	
    return marker;		  	
} 
//$id/$lat/$lng
function load_marker(url,openInfo){
  	GDownloadUrl(url, function(data) {
      	var xml = GXml.parse(data);
      	var markers = xml.documentElement.getElementsByTagName('marker');    	
      	for (var i = 0; i < markers.length; i++) {
			var id = parseFloat(markers[i].getAttribute('id'));
			var lat = parseFloat(markers[i].getAttribute('lat'));
			var lng = parseFloat(markers[i].getAttribute('lng'));
			var zoom = parseFloat(markers[i].getAttribute('zoom'));			
			var place = markers[i].getAttribute('place');
			var word = markers[i].getAttribute('word');
			var username = markers[i].getAttribute('username');
			var picture = markers[i].getAttribute('picture');
			var avatar = markers[i].getAttribute('avatar');			
			var ago_time = markers[i].getAttribute('ago_time');
			createMarker(id,lat,lng,zoom,place,word,username,avatar,ago_time,openInfo,picture);	
      	};
   	});
}   
function load_marker_normal(url){
	load_marker(url,false);
}
function load_marker_openInfo(url){
	load_marker(url,true);
}
function load_new_marker(id){
	map.clearOverlays();
	load_marker_openInfo(base_url+'markers/get/'+id);
	load_marker_normal(base_url+'markers/near/'+id);
}
function showPlace() {
	var address = document.getElementById("place").value;
	map.clearOverlays();
	if (geocoder) {
		geocoder.getLatLng(
			address,
			function(point) {
				if (!point) {
					alert(address + " not found");
				} else {
					map.setCenter(point, map.getZoom()!=zoom_level?map.getZoom():zoom_level);
					document.getElementById("lng").value = point.x;
					document.getElementById("lat").value  = point.y;	
					document.getElementById("zoom").value = map.getZoom();

					var marker = new GMarker(point);
					map.addOverlay(marker);
					GEvent.addListener(map,"click", function(overlay,latlng) {     
						if (latlng) {   
							map.removeOverlay(marker); 
							marker = new GMarker(latlng);
							map.addOverlay(marker);
							map.panTo(latlng);
							document.getElementById("lng").value = latlng.x;
							document.getElementById("lat").value  = latlng.y;
							document.getElementById("zoom").value = map.getZoom();
							point = marker;
						}
					});
				}
			}
		);
	}
}

