// JavaScript Document

var map;
var gmarkers = [];
var i = 0;
var map_nav = "";

function placeMarkerAtPoint(point,title,bubble)
{
	//var marker = new GMarker(point,title,address);
	
	var marker =  createMarker(point,title,bubble);
	map.addOverlay(marker);
	document.getElementById('mapnav').innerHTML = map_nav;
}

function createMarker(point,name,bubble) {
        var marker = new GMarker(point);
		
		var destination = point + '';
		destination = destination.replace('(','');
		destination = destination.replace(')','');
		
		GEvent.addListener(marker, "click", function() {
          	//map.panTo(point)
		  	marker.openInfoWindowHtml(bubble);
											  
		  //map.setCenter(point, 4);
        });
		
		GEvent.addListener(marker, "zoomin", function() {
          map.setCenter(point, 13);
		  marker.openInfoWindowHtml(bubble);
		  
		  //map.panTo(point);
		 });
		
		GEvent.addListener(marker, "zoomout", function() {
          map.setCenter(point, 5);
		  marker.openInfoWindowHtml(bubble);
		  
		  //map.panTo(point);
        });
		
        // save the info we need to use later for the side_bar
        gmarkers[i] = marker;
        // add a line to the side_bar html
			
		
        map_nav += '<a href="javascript:pan(' + i + ')">'+name+'</a>';
		
		if((locations.length-1) != i){
			map_nav += '  |  ';
		}
		//<a href="javascript:zoomin(' + i + ')" class="zoomicon"><img src="mapfiles/zoomin.gif" style="border:none;vertical-align:middle" title="Zoom In" alt="Zoom In"/></a><a href="javascript:zoomout(' + i + ')" class="zoomicon"><img src="mapfiles/zoomout.gif" style="border:none;vertical-align:middle" title="Zoom Out" alt="Zoom Out"/></a>
		//map_nav_l += '<a href="javascript:pan(' + i + ')">'+name+'</a><br />';
        	
		i++;
		
        return marker;
 }
 
function pan(i) {
        GEvent.trigger(gmarkers[i], "click");
}

function zoomin(i){
		GEvent.trigger(gmarkers[i], "zoomin");
}

function zoomout(i){
		GEvent.trigger(gmarkers[i], "zoomout");
}

function setCenterToPoint(point)
{
	map.setCenter(point, 17);
}

function showPointLatLng(point)
{
	alert("Latitude: " + point.lat() + "\nLongitude: " + point.lng());
}

function mapLoad() {
	if (GBrowserIsCompatible()) {
		map = new GMap2(document.getElementById("map"));
		//gdir = new GDirections(map, document.getElementById("directions"));
		
		defaultLL = defaultLL.split(',');
		
		map.addControl(new GLargeMapControl());
		map.addControl(new GMapTypeControl());
		map.setCenter(new GLatLng(defaultLL[0],defaultLL[1]), 5);
		  
	
		for(l=0;l<locations.length;l++){
			var loc;
			var locLL;
			var locNAME;
			var locADDRESS;
			loc = locations[l];
			loc = loc.split('*****');
			locLL = loc[0].split(',');
			locLL =  new GLatLng(locLL[0],locLL[1]);
			locNAME = loc[1];
			locADDRESS = loc[2];
						
			placeMarkerAtPoint(locLL,locNAME,locADDRESS);
		}
		
	}
}

function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      oldonload();
      func();
    }
  }
}

function addUnLoadEvent(func) {
	var oldonunload = window.onunload;
	if (typeof window.onunload != 'function') {
	  window.onunload = func;
	} else {
	  window.onunload = function() {
	    oldonunload();
	    func();
	  }
	}
}

addLoadEvent(mapLoad);
addUnLoadEvent(GUnload);
