// Our global state
var map;
var markers = [];
var infoWindow;
var latlng;
var bounds;
var searchedLocation;
var stopLatLngArray = [];
var stopContentArray = [];
var stopMarkerArray = [];
var stopDistanceArray = [];
var sideInfo;
var routeOrigin;
var routeDestination;
var closestStopGoing;
var closestStopComing;
//var directionDisplay;
//var directionsService;
var routeCoordinates = [];
var poly;
var gRouteCategory;
var gRouteName;
var gRouteFullFare;
var gRouteTransferFee;
var gRouteHalfFare;
var gRouteFareInfo;

function OnLoad()
{
	// Create Route Stops Array
	createRouteStopsArray();

	// Create Google Map
	createGoogleMap(34.1941716, -79.7591893);

	// Initialize infoWindow from global variable
	infoWindow = new google.maps.InfoWindow();

	// Create all route stop markers
	setMarkers(RouteStops);
}

function createRouteStopsArray()
{
	RouteStops = [
		["HopeHealth, Inc.", "600 E. Palmetto St.<br />Florence, South Carolina 29506", 34.1941716, -79.7591893, "843.667.9414"],
		["HopeHealth Edisto", "1857 Joe S. Jeffords Hwy<br />Orangeburg, South Carolina 29115", 33.472774, -80.84475, "803.535.2272"],
		["HopeHealth Lower Savannah", "130 Waterloo St.<br />Aiken, South Carolina 29801", 33.563553, -81.731189, "803.643.1977"],
		["HopeHealth at Francis Marion University", "121 S. Evander Drive<br />Florence, South Carolina 29501", 34.1955811, -79.6585141, "843.661.1848"],
		["HopeHealth on Cherokee", "230 Cherokee Rd.<br />Florence, South Carolina 29501", 34.18365, -79.76784, "843.413.3258"]
	];
}

function createGoogleMap(Latitude, Longitude)
{
	latlng = new google.maps.LatLng(Latitude, Longitude);
	bounds = new google.maps.LatLngBounds(latlng);
	var settings = {
		zoom: 14,
		center: latlng,
		mapTypeControl: true,
		mapTypeControlOptions: {
			style: google.maps.MapTypeControlStyle.DROPDOWN_MENU,
			position: google.maps.ControlPosition.TOP_RIGHT
		},
		navigationControl: true,
		navigationControlOptions: {
        	style: google.maps.NavigationControlStyle.ZOOM_PAN,
        	position: google.maps.ControlPosition.TOP_LEFT
    	},
		mapTypeId: google.maps.MapTypeId.ROADMAP
	};

	// Initialize Google Map from global variable and using above settings
	map = new google.maps.Map(document.getElementById("map"), settings);
}

function setMarkers(RouteStops)
{
	var stopMarkerShadow = new google.maps.MarkerImage('/image/HopeHealthGoogleIconShadow.png',new google.maps.Size(51,56),new google.maps.Point(0,0),new google.maps.Point(15,50));
	
	// Cycle through all route stops
	for (var i = 0; i < RouteStops.length; i++) {
		var stopLocation = RouteStops[i];
		
		// Set image
		var stopMarkerImage;
		stopMarkerImage = new google.maps.MarkerImage('/image/HopeHealthGoogleIcon.png',
			new google.maps.Size(51,56),
			new google.maps.Point(0,0),
			new google.maps.Point(15,50)
		);
		
		// Set Lat and Long
		var stopLatLng = new google.maps.LatLng(stopLocation[2], stopLocation[3]);
		stopLatLngArray.push(stopLatLng);
		
		// Widen screen to fit
		bounds.extend(stopLatLng);
		map.fitBounds(bounds);
		
		// Set infoWindow Content
		var stopContent;
		stopContent = '<div class="info-window">'+
			'<h2><img src="/image/HopeHealthGoogleIcon.png" alt="' + stopLocation[0] + '" width="51" height="56" align="right" style="padding: 3px 0px 0px 10px;" />' + stopLocation[0] + '</h2>'+
			'<p>' + stopLocation[1] +
			'<br />phone: ' + stopLocation[4] + '</p>' + 
			'<h2>Get Directions</h2>' + 
			'<p class="bottom">Start Address:</p>' +
			'<form action="http://maps.google.com/maps" method="get" target="_blank">' + 
			'<input type="text" class="directions" maxlength="40" name="saddr" id="saddr" value="" /><br /><br />' + 
			'<input type="image" alt="Submit" src="/image/GetDirectionsButton.png" name="submit" />' + 
			'<input type="hidden" name="daddr" value="' + stopLocation[2] + ',' + stopLocation[3] + '" /></form>' +
			'</div>';

		stopContentArray.push(stopContent);
		
		// Set Marker
		var stopZIndex = i + 1;
		var stopMarker = new google.maps.Marker({
			map: map,
			position: stopLatLng,
			icon: stopMarkerImage,
			shadow: stopMarkerShadow,
			title: stopLocation[0],
			zIndex: stopZIndex
		});
		stopMarkerArray.push(stopMarker);
		
		// Marker Listener
		google.maps.event.addListener(stopMarkerArray[i], 'click', function() { 
			setInfoWindow(this);
		});
	}
}

function setInfoWindow(mark)
{
	for (var m = 0; m < stopMarkerArray.length; ++m) {
		if (stopMarkerArray[m] == mark) {
			infoWindow.setContent(stopContentArray[m]);
			infoWindow.open(map, stopMarkerArray[m]);
			stopMarkerArray[m].setZIndex(RouteStops.length);
			return;
		}
	}
}

function activateMarker(number)
{
	infoWindow.setContent(stopContentArray[number]);
	infoWindow.open(map, stopMarkerArray[number]);
	stopMarkerArray[number].setZIndex(RouteStops.length + 1);
}
