var markers;
var markerElements;
var i;
var infoHtml;

function initMap(x, y, z, MapID, infoLat, infoLng) {
	var centerX = x;
	var centerY = y;
  var zoomLevel = z;
  if (centerX == ""){
  	centerX = "-94.21875";
  	centerY = "37.996162679728116";
  	zoomLevel = "14";
  }
	var panel = document.getElementById("panel" + MapID);
  var html = "";
  
	var baseIcon = new GIcon();
	baseIcon.shadow = "/Q2WebCentral/images/shadow50.png";
	baseIcon.iconSize = new GSize(20, 34);
	baseIcon.shadowSize = new GSize(37, 34);
	baseIcon.iconAnchor = new GPoint(9, 34);
	baseIcon.infoWindowAnchor = new GPoint(9, 2);
	baseIcon.infoShadowAnchor = new GPoint(18, 25);

  map = new GMap(document.getElementById("map" + MapID));
  map.addControl(new GLargeMapControl());
  map.addControl(new GMapTypeControl());
  map.centerAndZoom(new GPoint(centerX, centerY), parseInt(zoomLevel));
  //map.setCenter(new GLatLng(centerY, centerX), parseInt(zoomLevel));
	
	GDownloadUrl("maps.aspx?v=" + MapID, function(data, responseCode) {
	  var xml = GXml.parse(data);
	  var markerElements = xml.documentElement.getElementsByTagName("Maps");
	  markers = new Array(markerElements.length);
	  for (var i = 0; i < markerElements.length; i++) {
			var Lat = markerElements[i].getElementsByTagName("Lat")[0].firstChild.nodeValue;
			var Lng = markerElements[i].getElementsByTagName("Lng")[0].firstChild.nodeValue;
			var Title = "", Line1 = "", Line2 = "", Line3 = "", Line4 = "", Line5 = "";
			var MoreInfo = 0;
			if(markerElements[i].getElementsByTagName("LobbyMon")[0].firstChild ||
									markerElements[i].getElementsByTagName("LobbyTue")[0].firstChild ||
									markerElements[i].getElementsByTagName("LobbyWed")[0].firstChild ||
									markerElements[i].getElementsByTagName("LobbyThu")[0].firstChild ||
									markerElements[i].getElementsByTagName("LobbyFri")[0].firstChild ||
									markerElements[i].getElementsByTagName("LobbySat")[0].firstChild ||
									markerElements[i].getElementsByTagName("LobbySun")[0].firstChild ||
									markerElements[i].getElementsByTagName("DriveMon")[0].firstChild ||
									markerElements[i].getElementsByTagName("DriveTue")[0].firstChild ||
									markerElements[i].getElementsByTagName("DriveWed")[0].firstChild ||
									markerElements[i].getElementsByTagName("DriveThu")[0].firstChild ||
									markerElements[i].getElementsByTagName("DriveFri")[0].firstChild ||
									markerElements[i].getElementsByTagName("DriveSat")[0].firstChild ||
									markerElements[i].getElementsByTagName("DriveSun")[0].firstChild){
				MoreInfo = 1;
			}
			if(markerElements[i].getElementsByTagName("Additional")[0]){
				if(markerElements[i].getElementsByTagName("Additional")[0].firstChild){
					MoreInfo = 1;
				}
			}
			if(markerElements[i].getElementsByTagName("Title")[0].firstChild){
				Title = markerElements[i].getElementsByTagName("Title")[0].firstChild.nodeValue;
			}
			if(markerElements[i].getElementsByTagName("Line1")[0].firstChild){
				Line1 = markerElements[i].getElementsByTagName("Line1")[0].firstChild.nodeValue;
			}
			if(markerElements[i].getElementsByTagName("Line2")[0].firstChild){
				Line2 = markerElements[i].getElementsByTagName("Line2")[0].firstChild.nodeValue;
			}
			if(markerElements[i].getElementsByTagName("Line3")[0].firstChild){
				Line3 = markerElements[i].getElementsByTagName("Line3")[0].firstChild.nodeValue;
			}
			if(markerElements[i].getElementsByTagName("Line4")[0].firstChild){
				Line4 = markerElements[i].getElementsByTagName("Line4")[0].firstChild.nodeValue;
			}
			if(markerElements[i].getElementsByTagName("Line5")[0].firstChild){
				Line5 = markerElements[i].getElementsByTagName("Line5")[0].firstChild.nodeValue;
			}
			var Color = markerElements[i].getElementsByTagName("Color")[0].firstChild.nodeValue;
			var createdHtml = createHtml(Title, Line1, Line2, Line3, Line4, Line5, MoreInfo, MapID, Lat, Lng);
			var count = i+1;
			markers[i] = createMarker(new GPoint(parseFloat(Lat), parseFloat(Lng)), markerElements[i], baseIcon, count, Color, createdHtml);
			map.addOverlay(markers[i]);
			
			if (Color == "0") {
				Color = "blue";
			} else if (Color == "1") {
				Color = "red";
			} else if (Color == "2") {
				Color = "green";
			}
			
			tempHtml = createdHtml;
			tempHtml = tempHtml.replace(/\"/gi,"");
			tempHtml = tempHtml.replace(/\'/gi,"\\'");
			html = "<table class=\"panel\"><tr onClick=\"markers[" + i + "].openInfoWindowHtml('" + tempHtml + "')\">";
			html += "<td width=\"20\"><img src=\"/Q2WebCentral/styles/elements/images/circle_" + Color + count + ".png\" width=\"20\" height=\"20\" /></td>";
			html += "<td style=\"vertical-align: middle;\"><b>" + Title + "</b></td>";
			html += "</tr></table>";
			panel.innerHTML += html;
			html = "";
	  }
	});
}

// Creates a marker whose info window displays the given number
function createMarker(point, html, baseIcon, count, Color, createdHtml) {
	if (Color == "0") {
		Color = "blue";
	} else if (Color == "1") {
		Color = "red";
	} else if (Color == "2") {
		Color = "green";
	}
	var icon = new GIcon(baseIcon);
	icon.image = "/Q2WebCentral/styles/elements/images/marker_" + Color + count + ".png";
	var marker = new GMarker(point, icon);

	GEvent.addListener(marker, "click", function() {
		marker.openInfoWindowHtml(createdHtml);
	});

	return marker;
}

function UrlSplitter(url, Lat, Lng){
	url = "default.aspx?e=" + url + "&Lat=" + Lat + "&Lng=" + Lng + "&p=1&t=blank";
	window.open(url,'mywin', 'left=135,top=150,width=640,height=350,toolbar=0,resizable=1,status=0,scrollbars=1');
}

function jsVoid(){

}

function createHtml(Title, Line1, Line2, Line3, Line4, Line5, MoreInfo, MapID, Lat, Lng){
	tempHtml = "";
	if(Title != ""){
		tempHtml = tempHtml + "<b>" + Title + "</b><br />";
	}
	if(Line1 != ""){
		tempHtml = tempHtml + "<div>" + Line1 + "</div>";
	}
	if(Line2 != ""){
		tempHtml = tempHtml + "<div>" + Line2 + "</div>";
	}
	if(Line3 != ""){
		tempHtml = tempHtml + "<div>" + Line3 + "</div>";
	}
	if(Line4 != ""){
		tempHtml = tempHtml + "<div>" + Line4 + "</div>";
	}
	if(Line5 != ""){
		tempHtml = tempHtml + "<div>" + Line5 + "</div>";
	}
	if(MoreInfo == 1){
		tempHtml = tempHtml + "<a href=\"javascript:jsVoid();\" onClick=\"UrlSplitter('" + MapID + "','" + Lat + "','" + Lng + "');\">Hours and Information</a>";
	}
	return tempHtml;
}
