// Constants
var _NAME = 0;
var _FULLNAME = 1;
var _HREF = 2;
var _LATITUDE = 3;
var _LONGITUDE = 4;
var _COLOR = 5;
var _ADDRESS = 6;
var _CITY = 7;
var _STATE = 8;
var _ZIP = 9;
var _TELEPHONE = 10;
var _DEFAULTZOOM = 15;
var _TIMEOUT = 3000;


// Variables
var _facilities = [ ];
var _map;

function DrawMap( )
{
    if (GBrowserIsCompatible( ) )
	{
		LoadFacilities( );
		InitializeMap( );
		window.setTimeout( LoadElements, _TIMEOUT );
		// LoadMarkers( );
	}
}	// DrawMap( )


function GenerateFacilityList( )
{
	var myString = "";
	for ( var i = 0; i < _facilities.length; i++ )
	{
		var facility = _facilities[ i ];
		var letter = facility[ _FULLNAME ].substr(0, 1).toUpperCase( );
		myString +=
			'<p><span class="facilitytext"><span class="name">' + 
			facility[ _FULLNAME ] +
			"</span> ('" + letter + "' - " +
			'<a href="javascript:ZoomTo( ' + i.toString( ) + ' )">find in map</a>)' +
			"<br />" +
			facility[ _ADDRESS ] + "<br />" +
			facility[ _CITY ] + " " + facility[ _STATE ] + "  " + facility[ _ZIP ] +
			"</span></p>";
	}	// for ( i )
	
	document.getElementById( "facility_list" ).innerHTML = myString;
}	// GenerateFacilityList( )



function InitializeMap( )
{
	_map = new GMap2( document.getElementById( "map_canvas" ) );
	_map.setCenter(
		new GLatLng( _facilities[ 0 ][ _LATITUDE ], _facilities[ 0 ][ _LONGITUDE ] ),
		_DEFAULTZOOM );
	_map.addControl( new GLargeMapControl( ) );
	_map.addControl( new GScaleControl( ) );
	_map.addControl( new GMapTypeControl( ) );
}	// InitializeMap( )


function LoadElements( )
{
	GenerateFacilityList( );
	LoadMarkers( );
}	// LoadElements( )


function LoadFacilities( )
{
	_facilities[ 0 ] = new Array( 11 );
	_facilities[ 0 ][ _NAME ] = "CCRB";
	_facilities[ 0 ][ _FULLNAME ] = "Central Campus Recreation Building";
	_facilities[ 0 ][ _HREF ] = "ccrb.html";
	_facilities[ 0 ][ _LATITUDE ] = "42.27829310828179";
	_facilities[ 0 ][ _LONGITUDE ] = "-83.73251438140869";
	_facilities[ 0 ][ _COLOR ] = "#6666FF";
	_facilities[ 0 ][ _ADDRESS ] = "401 Washtenaw Ave.";
	_facilities[ 0 ][ _CITY ] = "Ann Arbor";
	_facilities[ 0 ][ _STATE ] = "MI";
	_facilities[ 0 ][ _ZIP ] = "48109-2214";
	_facilities[ 0 ][ _TELEPHONE ] = "(734) 763-3084";

	_facilities[ 1 ] = new Array( 11 );
	_facilities[ 1 ][ _NAME ] = "IMSB";
	_facilities[ 1 ][ _FULLNAME ] = "Intramural Sports Building";
	_facilities[ 1 ][ _HREF ] = "imsb.html";
	_facilities[ 1 ][ _LATITUDE ] = "42.26955";
	_facilities[ 1 ][ _LONGITUDE ] = "-83.74198";
	_facilities[ 1 ][ _COLOR ] = "#FF6666";
	_facilities[ 1 ][ _ADDRESS ] = "606 E. Hoover Ave.";
	_facilities[ 1 ][ _CITY ] = "Ann Arbor";
	_facilities[ 1 ][ _STATE ] = "MI";
	_facilities[ 1 ][ _ZIP ] = "48109-3717";
	_facilities[ 1 ][ _TELEPHONE ] = "(734) 763-3562";

	_facilities[ 2 ] = new Array( 11 );
	_facilities[ 2 ][ _NAME ] = "NCRB";
	_facilities[ 2 ][ _FULLNAME ] = "North Campus Recreation Building";
	_facilities[ 2 ][ _HREF ] = "ncrb.html";
	_facilities[ 2 ][ _LATITUDE ] = "42.295437105580994";
	_facilities[ 2 ][ _LONGITUDE ] = "-83.71994018554687";
	_facilities[ 2 ][ _COLOR ] = "#66FF66";
	_facilities[ 2 ][ _ADDRESS ] = "2375 Hubbard St.";
	_facilities[ 2 ][ _CITY ] = "Ann Arbor";
	_facilities[ 2 ][ _STATE ] = "MI";
	_facilities[ 2 ][ _ZIP ] = "48109-2087";
	_facilities[ 2 ][ _TELEPHONE ] = "(734) 763-4560";

	_facilities[ 3 ] = new Array( 11 );
	_facilities[ 3 ][ _NAME ] = "Elbel";
	_facilities[ 3 ][ _FULLNAME ] = "Elbel Fields";
	_facilities[ 3 ][ _HREF ] = "fields.html";
	_facilities[ 3 ][ _LATITUDE ] = "42.270703812641464";
	_facilities[ 3 ][ _LONGITUDE ] = "-83.74517440795898";
	_facilities[ 3 ][ _COLOR ] = "#FFFF66";
	_facilities[ 3 ][ _ADDRESS ] = "336 Hill St.";
	_facilities[ 3 ][ _CITY ] = "Ann Arbor";
	_facilities[ 3 ][ _STATE ] = "MI";
	_facilities[ 3 ][ _ZIP ] = "48104-3219";
	_facilities[ 3 ][ _TELEPHONE ] = "(734) 764-3967";

	_facilities[ 4 ] = new Array( 11 );
	_facilities[ 4 ][ _NAME ] = "Mitchell";
	_facilities[ 4 ][ _FULLNAME ] = "Mitchell Fields";
	_facilities[ 4 ][ _HREF ] = "fields.html";
	_facilities[ 4 ][ _LATITUDE ] = "42.28584974136072";
	_facilities[ 4 ][ _LONGITUDE ] = "-83.72268676757812";
	_facilities[ 4 ][ _COLOR ] = "#FF66FF";
	_facilities[ 4 ][ _ADDRESS ] = "1900 Fuller Rd.";
	_facilities[ 4 ][ _CITY ] = "Ann Arbor";
	_facilities[ 4 ][ _STATE ] = "MI";
	_facilities[ 4 ][ _ZIP ] = "48109";
	_facilities[ 4 ][ _TELEPHONE ] = "CCRB - (734) 763-3084";

	_facilities[ 5 ] = new Array( 11 );
	_facilities[ 5 ][ _NAME ] = "Radrick";
	_facilities[ 5 ][ _FULLNAME ] = "Radrick Recreation Area";
	_facilities[ 5 ][ _HREF ] = "radrick.html";
	_facilities[ 5 ][ _LATITUDE ] = "42.28851657194665";
	_facilities[ 5 ][ _LONGITUDE ] = "-83.67103815078735";
	_facilities[ 5 ][ _COLOR ] = "#66FFFF";
	_facilities[ 5 ][ _ADDRESS ] = "1120 N Dixboro Rd.";
	_facilities[ 5 ][ _CITY ] = "Ann Arbor";
	_facilities[ 5 ][ _STATE ] = "MI";
	_facilities[ 5 ][ _ZIP ] = "48109";
	_facilities[ 5 ][ _TELEPHONE ] = "Challenge Program - (734) 936-0603";

	_facilities[ 6 ] = new Array( 11 );
	_facilities[ 6 ][ _NAME ] = "Coliseum";
	_facilities[ 6 ][ _FULLNAME ] = "Sports Coliseum";
	_facilities[ 6 ][ _HREF ] = "coliseum.html";
	_facilities[ 6 ][ _LATITUDE ] = "42.27198992914304";
	_facilities[ 6 ][ _LONGITUDE ] = "-83.74592006206512";
	_facilities[ 6 ][ _COLOR ] = "#666666";
	_facilities[ 6 ][ _ADDRESS ] = "721 S. Fifth Ave.";
	_facilities[ 6 ][ _CITY ] = "Ann Arbor";
	_facilities[ 6 ][ _STATE ] = "MI";
	_facilities[ 6 ][ _ZIP ] = "48109";
	_facilities[ 6 ][ _TELEPHONE ] = "CCRB - (734) 763-3084";
}	// LoadFacilities( )


function LoadMarkers( )
{
	for ( index = 0; index < _facilities.length; index++ )
	{
		var facility = _facilities[ index ];
		var point = new GLatLng( facility[ _LATITUDE ], facility[ _LONGITUDE ] );
		var letter = facility[ _FULLNAME ].substr(0, 1).toUpperCase( );
		var letteredIcon = new GIcon( G_DEFAULT_ICON );
		letteredIcon.image = "http://www.google.com/mapfiles/marker" + letter + ".png";
		
		// Set up our GMarkerOptions object
    	markerOptions = { icon:letteredIcon };
		var marker = new GMarker( point, markerOptions );
		marker.value = index;
		
		_map.addOverlay( marker );
	}	// for ( index )
	
	GEvent.addListener(
		_map, "click",
		function( overlay, latlng, overlaylatlng )
		{
			if ( overlay )
			{
				OpenInfoWindow( overlay.value );
			}	// if ( overlay )
		}	// function( )
	);
}	// LoadMarkers( )



function OpenInfoWindow( index )
{
	var facility = _facilities[ index ];
	var point = new GLatLng( facility[ _LATITUDE ], facility[ _LONGITUDE ] );
	var message = '<span class="facility"><span class="name">' + 
		facility[ _FULLNAME ] + "</span><br />" +
		facility[ _ADDRESS ] + "<br />" +
		facility[ _CITY ] + " " + facility[ _STATE ] + "  " + facility[ _ZIP ] + "<br />" +
		facility[ _TELEPHONE ] + "</span>";

	_map.openInfoWindow( point, message );
}	// OpenInfoWindow( )



function ZoomTo( index )
{
	var facility = _facilities[ index ];
	var point = new GLatLng( facility[ _LATITUDE ], facility[ _LONGITUDE ] );
	_map.setZoom( _DEFAULTZOOM );
	_map.panTo( point );
}	// ZoomTo( )