
function addLoadEvent(func){
    var oldonload = window.onload;
   
    if (typeof window.onload != 'function'){
        window.onload = func;
       
    } else {   
        window.onload = function(){
            if(oldonload){
                oldonload();
            }
            func();
        }
    }
}

var gmap = function(id){	
	var map;
	var url = "gmap.xml";
	var mapHolderId = id;
	var locationList;
	var markerList = [];
	
	var init = function(){
		GDownloadUrl(url, function(data){
			var xml = GXml.parse(data);
			var markers = xml.getElementsByTagName("map");
			var centerLat = parseFloat(xml.getElementsByTagName("map")[0].getAttribute("lat"));
			var centerLng = parseFloat(xml.getElementsByTagName("map")[0].getAttribute("lng"));
			var mapZoom = parseInt(xml.getElementsByTagName("map")[0].getAttribute("zoom"));
			
			map = new GMap2(document.getElementById(mapHolderId));
			map.setCenter(new GLatLng(centerLat,centerLng), mapZoom);
			map.addControl(new google.maps.LargeMapControl());
			map.addControl(new google.maps.MapTypeControl());
			
			locationList = xml.getElementsByTagName("location");
			
			for (var i = 0; i < locationList.length; i++){							
				var point = new google.maps.LatLng( parseFloat(locationList[i].getAttribute("lat")), parseFloat(locationList[i].getAttribute("lng")));
				
				function createMarker(index){
					var myMarker = new google.maps.Marker(point);									

					google.maps.Event.addListener(myMarker, "click", function() {
						myMarker.openInfoWindowHtml(locationList[index].firstChild.data);
					});
					
					return myMarker;
				}
				
				var marker = new createMarker(i);
				
				markerList[i] = marker;
				
				map.addOverlay(marker);
				
				if (locationList[i].getAttribute("openInfoWindowHtml") == "true"){
					marker.openInfoWindowHtml(locationList[i].firstChild.data);									
				}
			}
									   
		});				
	}();
	
	this.switchMarker = function(num){		
		markerList[num].openInfoWindowHtml(locationList[num].firstChild.data);
	}
}

function genGmap(){
	window.onunload = "";
	var map = new gmap("gmap-holder");	
	
	var linksContainer = document.getElementById("right-column");
	var links = linksContainer.getElementsByTagName("a");
	
	for (var i = 0; i < links.length; i++){
		var myLink = links[i];
		myLink.onclick = function(){
			var rel = parseInt(this.getAttribute("rel")) ;
			
			map.switchMarker(rel);
			
			return false;
		}
	}
}

addLoadEvent(genGmap);



