/**
 *
 */
//<![CDATA[

	/*************** GOOGLE MAPS CODE ******************************/
	
	var _imgRootPath = getWorkingDirPath() + "images/";
	var _markerArray = new Array();

	function getWorkingDirPath()
	{
		var path = document.location.pathname;
		var dir = path.substring(0, path.lastIndexOf('/'));
		dir = dir + "/";
		return dir;
	}
	
	// Create our "tiny" marker icon
	function createIcon(imgName)
	{
		var icon = new GIcon();
		icon.image = _imgRootPath + imgName;
		icon.shadow = _imgRootPath + "marker_shadow.png";
		icon.iconSize = new GSize(12, 20);
		icon.shadowSize = new GSize(22, 20);
		icon.iconAnchor = new GPoint(6, 20);
		icon.infoWindowAnchor = new GPoint(5, 1);
		return icon;
	}

	// Creates a marker whose info window displays the given number
	function createMarker(point, icon, name, image_path, map) {

		var marker = new GMarker(point, icon);

		// Show this location's image and name in the info window when it is clicked
		var html = "<center><img src=" + image_path + " width=100><br><font size=-1><b>" + name + "</b></font></center>";
		GEvent.addListener(marker, "click", function() {
			marker.openInfoWindowHtml(html);
		});

  		return marker;
	}
/*	
    function load() {
      if (GBrowserIsCompatible()) {
        var map = new GMap2(document.getElementById("map"));
        map.setCenter(new GLatLng(37.4419, -122.1419), 13);
      }
    }
*/

	/**
	 * Loads google map. if params given, center and expand given building, otherwise
	 * center on the middle of Tech campus.
	 *
	 * locArray? - 2D array with building info
	 * building? - name of the building
	 * lat? - latitude
	 * lon? - longitude
	 * img? - path to image of the building
	 */
	function course_load()
	{
		if (GBrowserIsCompatible()) {

			var map = new GMap2(document.getElementById("map"));
			map.addControl(new GSmallMapControl());
			map.addControl(new GMapTypeControl());
			//map.addMapType(G_HYBRID_MAP);

			var center_of_tech = new GLatLng(33.775898, -84.398318);

			var center_point = center_of_tech;
			var zoom = 14;
			map.setCenter(center_point, zoom);
			
			// load all the markers
			if (arguments.length == 1)
			{
				var locArray = arguments[0];
				var lastMarker = false;
				var lastHTML = false;
				
				var i;
				for (i = 0; i < locArray.length; i++)
				{
					if (locArray[i])
					{
						var text = locArray[i][0];
						var lat = locArray[i][1];
						var lon = locArray[i][2];
						var img = locArray[i][3];
						var time = locArray[i][4];
						var classid = locArray[i][5];

						text = text + "<br>" + time;

						var building_loc = new GLatLng(lat, lon);
						//alert(lat + "|" + lon + "|" + text + "|" + img + "|" + map);
						var icon = createIcon("marker_default.png");
						var marker = createMarker(building_loc, icon, text, img, map);
						_markerArray[classid] = marker;
						lastMarker = marker;
						lastHTML = "<center><!--<img src=" + img + " width=100><br>--><font size=-1><b>" + text + "</b></font></center>";

						map.addOverlay(marker);
					}
				}

				// open the last marker
				if (i > 0)
				{
					lastMarker.openInfoWindowHtml(lastHTML);
				}
			}
			else
			{
				map.setCenter(center_point, zoom);
			}
			return map;
		}
		return false;
	}

	/**
	 * Loads google map. if param given, place markers at class locations, otherwise
	 * center on the middle of Tech campus.
	 *
	 * locArray? - 2D array with schedule info
	 */
	function schedule_load()
	{
		if (GBrowserIsCompatible()) {

			var map = new GMap2(document.getElementById("map"));
			map.addControl(new GSmallMapControl());
			map.addControl(new GMapTypeControl());
			//map.addMapType(G_HYBRID_MAP);

			var center_of_tech = new GLatLng(33.775898, -84.398318);

			// center on Tech
			var center_point = center_of_tech;
			var zoom = 14;
			map.setCenter(center_point, zoom);

			// load all the markers
			if (arguments.length == 1)
			{
				var locArray = arguments[0];
				var lastMarker = false;
				var lastHTML = false;
				var lastCRN = 0;
				var markerNum = 0;
				
				var i;
				for (i = 0; i < locArray.length; i++)
				{
					if (locArray[i])
					{
						var text = locArray[i][0];
						var lat = locArray[i][1];
						var lon = locArray[i][2];
						var img = locArray[i][3];
						var courseAndTime = locArray[i][4];
						var classid = locArray[i][5];
						var crn = locArray[i][6];
						
						text = text + "<br>" + courseAndTime;

						var building_loc = new GLatLng(lat, lon);
						//alert(building_loc.toString() + "|" + text + "|" + img + "|" + map);
						
						if (crn != lastCRN)
						{
							markerNum++;
							if (markerNum > 8)
							{
								markerNum = markerNum % 8;
							}
						}
						lastCRN = crn;

						var icon = createIcon("marker_class" + markerNum + ".png");
						
						var marker = createMarker(building_loc, icon, text, img, map);
						
						_markerArray[classid] = marker;
						
						lastMarker = marker;
						lastHTML = "<center><!--<img src=" + img + " width=100><br>--><font size=-1><b>" + text + "</b></font></center>";
							
						map.addOverlay(marker);
					}
				}

				// open the last marker
				if (i > 0)
				{
					lastMarker.openInfoWindowHtml(lastHTML);
				}
			}
			return map;
		}
		return false;
	}
	
	function gmap_open_info_window(classid, locArray)
	{
		for (i = 0; i < locArray.length; i++)
		{
			if (locArray[i][5] == classid)
			{
				var text = locArray[i][0];
				var lat = locArray[i][1];
				var lon = locArray[i][2];
				var img = locArray[i][3];
				var course = locArray[i][4];
				var classid = locArray[i][5];
				
				text = text + "<br>" + course;
				var HTML = "<center><!--<img src=" + img + " width=100><br>--><font size=-1><b>" + text + "</b></font></center>";
				_markerArray[classid].openInfoWindowHtml(HTML);
				
				return;
			}
		}
		map.closeInfoWindow();
	}

//]]>
