/*******************************************************************************
	MAIN CONTROL SCRIPT: xml_g_maps.js
	LITERADIUS PHP LOCATOR
	
	-----------------------------------------------------------------------
	product			: LiteRadius version: 2.0.0
	released		: May 1, 2008
	copyright		: Copyright 2001-2008 Escape Radius
	email			: info@escaperadius.com
	website			: http://www.escaperadius.com
	-----------------------------------------------------------------------

*******************************************************************************/

var icon_path = 'templates/js_css/markers/';
var custom_icon=[];	
var gmarkers=[];						 
var reZoom;
var reCenter;
var backbutton;
var xml;
var map;
var bounds = new GBounds(Number.MAX_VALUE, Number.MAX_VALUE, -Number.MAX_VALUE, -Number.MAX_VALUE); 
var label;

function plot_locations() {
	map = new GMap2(document.getElementById("map")); 
	map.addControl(new GLargeMapControl());
	map.addControl(new GMapTypeControl());

	if (location_list.length > 0) processMarkers();
	else init_view(map_lat,map_lng, map_zoom); //set_init_view(document.search_form.geo_region.value);
}

function processMarkers() {
	start = 0;

	init_view(location_list[0][1],location_list[0][0], 16)
	lng = location_list[0][0];
	lat = location_list[0][1];
	marker_style = location_list[0][3];
	color = location_list[0][4];

	add_point_of_entry(lng,lat,color);
	start++;
	
	for (var i=start; i < location_list.length; i++) {
		lng = location_list[i][0];
		lat = location_list[i][1];
		title = location_list[i][2];
		marker_id = location_list[i][3];
		year_built = location_list[i][4];
		addCustomMarker(lng,lat,title,marker_id,year_built);
		}
	map.centerAndZoomOnBounds(bounds);
	reZoom = map.getZoom();
	reCenter = map.getCenter();
	backbutton = new TextualControl();

} 
function init_view(lat, lng, zoom) {
		map.setCenter(new GLatLng(lat,lng), zoom);
}
function add_point_of_entry(lng, lat, origin) {
	arrow_point = new GPoint(lng, lat);
  	bounds.extend(arrow_point);
	arrow_icon = new GIcon();

	if (origin.search("none") != -1) { 	
      origin = "point_of_origin_transparent.png" 
  }
	arrow_icon.image = graphic_path + "templates/js_css/markers/" + origin;
	arrow_icon.iconSize = new GSize(26, 26);
	arrow_icon.iconAnchor = new GPoint(13, 13);
  	arrow_marker = new GMarker(arrow_point, arrow_icon);
  	map.addOverlay(arrow_marker);
}

function addCustomMarker(lng, lat, title, iconStr, yb) {	
   var point = new GPoint(lng, lat);
   bounds.extend(point);
   var icon = custom_icon[iconStr];
   var marker = new GMarker(point, icon);
	var eanchor = new GLatLng(lat,lng);

   gmarkers.push(marker);
   marker.type = iconStr; 
   GEvent.addListener(marker, "click", function () {//	 alert(icon.image);
	
      var text = "<div align=center>" + title + "</div>";
			// LITERADIUS modification 10/01/07 
			// Add custom control to original zoom
//			map.addControl(backbutton);
//      if(map.getZoom() == click_zoom ) marker.openInfoWindowHtml(text);
      marker.openInfoWindowHtml(text);
// 			map.setCenter(marker.getPoint(), click_zoom); 
   });
	GEvent.addListener(marker, "mouseover", function() { 
		label = new ELabel(eanchor, 
						   yb, 
						   "elabel_1", 
						   new GSize(-100,25));
	   	map.addOverlay(label);
	});
	GEvent.addListener(marker, "mouseout", function() {  
    	map.removeOverlay(label);
	});	   
   map.addOverlay(marker);
}

GMap2.prototype.centerAndZoomOnBounds = function(bounds) {

   var span = new GSize(bounds.maxX - bounds.minX, bounds.maxY - bounds.minY);
	 var center = new GLatLng(bounds.minY + span.height / 2., bounds.minX + span.width / 2.);
		sw = new GLatLng(bounds.maxY, bounds.minX);
		ne = new GLatLng(bounds.minY, bounds.maxX);
		b = new GLatLngBounds(sw, ne);
		newZoom = map.getBoundsZoomLevel(b);

   if (map.getZoom() != newZoom) {
       map.setCenter(center, newZoom);
   } else {
			map.setCenter(center);
   }

}


function load() {
	plot_locations();
}

function initMapView(){
    var map_view = xml.documentElement.getElementsByTagName('map_view');
    if(map_view.length > 0) {
	    map_zoom = parseInt(map_view[0].getAttribute('zoom'));
		map_lat = parseFloat(map_view[0].getAttribute('lat'));
		map_lng = parseFloat(map_view[0].getAttribute('lng'));
	}
}

function setUserOrigin(origin){
		var origin_icon = custom_icon[origin[0].getAttribute("marker")];
		var coordinate = new GLatLng(parseFloat(origin[0].getAttribute('lat')),
                           parseFloat(origin[0].getAttribute('lng')));
		
		var o_marker = new GMarker(coordinate, origin_icon);

		var info = new Array();
		info['name'] = origin[0].getAttribute('name');
		info['address_1'] = info['city'] = info['postal_code'] = '';
		GEvent.addListener(o_marker, "click", function() {  
			o_marker.openInfoWindowHtml(infoWindowStyle(info)); 
		});
		
		map.addOverlay(o_marker);
}

function setMarkers(record) {
	var bounds = new GLatLngBounds();
	for (var i = 0; i < record.length; i++) {
		var loc = new Array();
       	loc['name'] = record[i].getAttribute('name');
       	loc['address_1'] = record[i].getAttribute('address_1');
       	loc['city'] = record[i].getAttribute('city');
       	loc['state'] = record[i].getAttribute('state');
       	loc['postal_code'] = record[i].getAttribute('postal_code');
       	loc['distance'] = record[i].getAttribute('distance');
       	loc['icon'] = record[i].getAttribute('icon');
       	loc['point'] = new GLatLng(parseFloat(record[i].getAttribute('lat')),
                                 parseFloat(record[i].getAttribute('lng')));
        var marker = createMarker(loc);

        map.addOverlay(marker);
        bounds.extend(loc['point']);
	}
    map.setCenter(bounds.getCenter(), map.getBoundsZoomLevel(bounds));
}

function createMarker(location) {
	var location_icon = custom_icon[location['icon']];
	var marker = new GMarker(location['point'], location_icon);

    GEvent.addListener(marker, 'click', function() {
        marker.openInfoWindowHtml(infoWindowStyle(location));
    });
    return marker;
}

function infoWindowStyle(info) {
	var html = '<table width=250 border=0 cellspacing=2 cellpadding=2>';
		html += '<tr class="info_1"><td>' + info['name'] + '</td></tr>';
		html += '<tr class="info_2"><td>' + info['address_1'] + '</td></tr>';
		html += '<tr class="info_2"><td>'  + info['city'];
		html += ' '  + info['postal_code'] +  '</td>';
		html += '</tr></table>';
	return html;
}

custom_icon['manual_marker.png'] = new GIcon();
custom_icon['manual_marker.png'].shadow = icon_path + "marker_00_shadow.png";
custom_icon['manual_marker.png'].image = icon_path + "manual_marker.png";
custom_icon['manual_marker.png'].iconSize = new GSize(28.0, 28.0);
custom_icon['manual_marker.png'].shadowSize = new GSize(43.0, 28.0);
custom_icon['manual_marker.png'].iconAnchor = new GPoint(10.0, 28.0);
custom_icon['manual_marker.png'].infoWindowAnchor = new GPoint(0.0, 28.0);
custom_icon['manual_marker.png'].infoShadowAnchor = new GPoint(0.0, 28.0);

// Square Markers
custom_icon['marker_00.png'] = new GIcon();
custom_icon['marker_00.png'].shadow = icon_path + "marker_00_shadow.png";
custom_icon['marker_00.png'].image = icon_path + "marker_00.png";
custom_icon['marker_00.png'].iconSize = new GSize(28.0, 28.0);
custom_icon['marker_00.png'].shadowSize = new GSize(43.0, 28.0);
custom_icon['marker_00.png'].iconAnchor = new GPoint(10.0, 28.0);
custom_icon['marker_00.png'].infoWindowAnchor = new GPoint(14.0, 2.0);
custom_icon['marker_00.png'].infoShadowAnchor = new GPoint(28.0, 15.0);

custom_icon['marker_01.png'] = new GIcon();
custom_icon['marker_01.png'].shadow = icon_path + "marker_00_shadow.png";
custom_icon['marker_01.png'].image = icon_path + "marker_01.png";
custom_icon['marker_01.png'].iconSize = new GSize(28.0, 28.0);
custom_icon['marker_01.png'].shadowSize = new GSize(43.0, 28.0);
custom_icon['marker_01.png'].iconAnchor = new GPoint(10.0, 28.0);
custom_icon['marker_01.png'].infoWindowAnchor = new GPoint(14.0, 2.0);
custom_icon['marker_01.png'].infoShadowAnchor = new GPoint(28.0, 15.0);

custom_icon['marker_02.png'] = new GIcon();
custom_icon['marker_02.png'].shadow = icon_path + "marker_00_shadow.png";
custom_icon['marker_02.png'].image = icon_path + "marker_02.png";
custom_icon['marker_02.png'].iconSize = new GSize(28.0, 28.0);
custom_icon['marker_02.png'].shadowSize = new GSize(43.0, 28.0);
custom_icon['marker_02.png'].iconAnchor = new GPoint(10.0, 28.0);
custom_icon['marker_02.png'].infoWindowAnchor = new GPoint(14.0, 2.0);
custom_icon['marker_02.png'].infoShadowAnchor = new GPoint(28.0, 15.0);

custom_icon['marker_03.png'] = new GIcon();
custom_icon['marker_03.png'].shadow = icon_path + "marker_00_shadow.png";
custom_icon['marker_03.png'].image = icon_path + "marker_03.png";
custom_icon['marker_03.png'].iconSize = new GSize(28.0, 28.0);
custom_icon['marker_03.png'].shadowSize = new GSize(43.0, 28.0);
custom_icon['marker_03.png'].iconAnchor = new GPoint(10.0, 28.0);
custom_icon['marker_03.png'].infoWindowAnchor = new GPoint(14.0, 2.0);
custom_icon['marker_03.png'].infoShadowAnchor = new GPoint(28.0, 15.0);

custom_icon['marker_04.png'] = new GIcon();
custom_icon['marker_04.png'].shadow = icon_path + "marker_00_shadow.png";
custom_icon['marker_04.png'].image = icon_path + "marker_04.png";
custom_icon['marker_04.png'].iconSize = new GSize(28.0, 28.0);
custom_icon['marker_04.png'].shadowSize = new GSize(43.0, 28.0);
custom_icon['marker_04.png'].iconAnchor = new GPoint(10.0, 28.0);
custom_icon['marker_04.png'].infoWindowAnchor = new GPoint(14.0, 2.0);
custom_icon['marker_04.png'].infoShadowAnchor = new GPoint(28.0, 15.0);

custom_icon['marker_05.png'] = new GIcon();
custom_icon['marker_05.png'].shadow = icon_path + "marker_00_shadow.png";
custom_icon['marker_05.png'].image = icon_path + "marker_05.png";
custom_icon['marker_05.png'].iconSize = new GSize(28.0, 28.0);
custom_icon['marker_05.png'].shadowSize = new GSize(43.0, 28.0);
custom_icon['marker_05.png'].iconAnchor = new GPoint(10.0, 28.0);
custom_icon['marker_05.png'].infoWindowAnchor = new GPoint(14.0, 2.0);
custom_icon['marker_05.png'].infoShadowAnchor = new GPoint(28.0, 15.0);

custom_icon['marker_06.png'] = new GIcon();
custom_icon['marker_06.png'].shadow = icon_path + "marker_00_shadow.png";
custom_icon['marker_06.png'].image = icon_path + "marker_06.png";
custom_icon['marker_06.png'].iconSize = new GSize(28.0, 28.0);
custom_icon['marker_06.png'].shadowSize = new GSize(43.0, 28.0);
custom_icon['marker_06.png'].iconAnchor = new GPoint(10.0, 28.0);
custom_icon['marker_06.png'].infoWindowAnchor = new GPoint(14.0, 2.0);
custom_icon['marker_06.png'].infoShadowAnchor = new GPoint(28.0, 15.0);

custom_icon['marker_07.png'] = new GIcon();
custom_icon['marker_07.png'].shadow = icon_path + "marker_00_shadow.png";
custom_icon['marker_07.png'].image = icon_path + "marker_07.png";
custom_icon['marker_07.png'].iconSize = new GSize(28.0, 28.0);
custom_icon['marker_07.png'].shadowSize = new GSize(43.0, 28.0);
custom_icon['marker_07.png'].iconAnchor = new GPoint(10.0, 28.0);
custom_icon['marker_07.png'].infoWindowAnchor = new GPoint(14.0, 2.0);
custom_icon['marker_07.png'].infoShadowAnchor = new GPoint(28.0, 15.0);

custom_icon['marker_08.png'] = new GIcon();
custom_icon['marker_08.png'].shadow = icon_path + "marker_00_shadow.png";
custom_icon['marker_08.png'].image = icon_path + "marker_08.png";
custom_icon['marker_08.png'].iconSize = new GSize(28.0, 28.0);
custom_icon['marker_08.png'].shadowSize = new GSize(43.0, 28.0);
custom_icon['marker_08.png'].iconAnchor = new GPoint(10.0, 28.0);
custom_icon['marker_08.png'].infoWindowAnchor = new GPoint(14.0, 2.0);
custom_icon['marker_08.png'].infoShadowAnchor = new GPoint(28.0, 15.0);

custom_icon['marker_09.png'] = new GIcon();
custom_icon['marker_09.png'].shadow = icon_path + "marker_00_shadow.png";
custom_icon['marker_09.png'].image = icon_path + "marker_09.png";
custom_icon['marker_09.png'].iconSize = new GSize(28.0, 28.0);
custom_icon['marker_09.png'].shadowSize = new GSize(43.0, 28.0);
custom_icon['marker_09.png'].iconAnchor = new GPoint(10.0, 28.0);
custom_icon['marker_09.png'].infoWindowAnchor = new GPoint(14.0, 2.0);
custom_icon['marker_09.png'].infoShadowAnchor = new GPoint(28.0, 15.0);

// Round Markers
custom_icon['marker_10.png'] = new GIcon();
custom_icon['marker_10.png'].shadow = icon_path + "marker_10_shadow.png";
custom_icon['marker_10.png'].image = icon_path + "marker_10.png";
custom_icon['marker_10.png'].iconSize = new GSize(28.0, 28.0);
custom_icon['marker_10.png'].shadowSize = new GSize(43.0, 28.0);
custom_icon['marker_10.png'].iconAnchor = new GPoint(14.0, 28.0);
custom_icon['marker_10.png'].infoWindowAnchor = new GPoint(14.0, 2.0);
custom_icon['marker_10.png'].infoShadowAnchor = new GPoint(28.0, 15.0);


custom_icon['marker_11.png'] = new GIcon();
custom_icon['marker_11.png'].shadow = icon_path + "marker_10_shadow.png";
custom_icon['marker_11.png'].image = icon_path + "marker_11.png";
custom_icon['marker_11.png'].iconSize = new GSize(28.0, 28.0);
custom_icon['marker_11.png'].shadowSize = new GSize(43.0, 28.0);
custom_icon['marker_11.png'].iconAnchor = new GPoint(14.0, 28.0);
custom_icon['marker_11.png'].infoWindowAnchor = new GPoint(14.0, 2.0);
custom_icon['marker_11.png'].infoShadowAnchor = new GPoint(28.0, 15.0);

custom_icon['marker_12.png'] = new GIcon();
custom_icon['marker_12.png'].shadow = icon_path + "marker_10_shadow.png";
custom_icon['marker_12.png'].image = icon_path + "marker_12.png";
custom_icon['marker_12.png'].iconSize = new GSize(28.0, 28.0);
custom_icon['marker_12.png'].shadowSize = new GSize(43.0, 28.0);
custom_icon['marker_12.png'].iconAnchor = new GPoint(14.0, 28.0);
custom_icon['marker_12.png'].infoWindowAnchor = new GPoint(14.0, 2.0);
custom_icon['marker_12.png'].infoShadowAnchor = new GPoint(28.0, 15.0);

custom_icon['marker_13.png'] = new GIcon();
custom_icon['marker_13.png'].shadow = icon_path + "marker_10_shadow.png";
custom_icon['marker_13.png'].image = icon_path + "marker_13.png";
custom_icon['marker_13.png'].iconSize = new GSize(28.0, 28.0);
custom_icon['marker_13.png'].shadowSize = new GSize(43.0, 28.0);
custom_icon['marker_13.png'].iconAnchor = new GPoint(14.0, 28.0);
custom_icon['marker_13.png'].infoWindowAnchor = new GPoint(14.0, 2.0);
custom_icon['marker_13.png'].infoShadowAnchor = new GPoint(28.0, 15.0);

custom_icon['marker_14.png'] = new GIcon();
custom_icon['marker_14.png'].shadow = icon_path + "marker_10_shadow.png";
custom_icon['marker_14.png'].image = icon_path + "marker_14.png";
custom_icon['marker_14.png'].iconSize = new GSize(28.0, 28.0);
custom_icon['marker_14.png'].shadowSize = new GSize(43.0, 28.0);
custom_icon['marker_14.png'].iconAnchor = new GPoint(14.0, 28.0);
custom_icon['marker_14.png'].infoWindowAnchor = new GPoint(14.0, 2.0);
custom_icon['marker_14.png'].infoShadowAnchor = new GPoint(28.0, 15.0);

custom_icon['marker_15.png'] = new GIcon();
custom_icon['marker_15.png'].shadow = icon_path + "marker_10_shadow.png";
custom_icon['marker_15.png'].image = icon_path + "marker_15.png";
custom_icon['marker_15.png'].iconSize = new GSize(28.0, 28.0);
custom_icon['marker_15.png'].shadowSize = new GSize(43.0, 28.0);
custom_icon['marker_15.png'].iconAnchor = new GPoint(14.0, 28.0);
custom_icon['marker_15.png'].infoWindowAnchor = new GPoint(14.0, 2.0);
custom_icon['marker_15.png'].infoShadowAnchor = new GPoint(28.0, 15.0);

custom_icon['marker_16.png'] = new GIcon();
custom_icon['marker_16.png'].shadow = icon_path + "marker_10_shadow.png";
custom_icon['marker_16.png'].image = icon_path + "marker_16.png";
custom_icon['marker_16.png'].iconSize = new GSize(28.0, 28.0);
custom_icon['marker_16.png'].shadowSize = new GSize(43.0, 28.0);
custom_icon['marker_16.png'].iconAnchor = new GPoint(14.0, 28.0);
custom_icon['marker_16.png'].infoWindowAnchor = new GPoint(14.0, 2.0);
custom_icon['marker_16.png'].infoShadowAnchor = new GPoint(28.0, 15.0);

custom_icon['marker_17.png'] = new GIcon();
custom_icon['marker_17.png'].shadow = icon_path + "marker_10_shadow.png";
custom_icon['marker_17.png'].image = icon_path + "marker_17.png";
custom_icon['marker_17.png'].iconSize = new GSize(28.0, 28.0);
custom_icon['marker_17.png'].shadowSize = new GSize(43.0, 28.0);
custom_icon['marker_17.png'].iconAnchor = new GPoint(14.0, 28.0);
custom_icon['marker_17.png'].infoWindowAnchor = new GPoint(14.0, 2.0);
custom_icon['marker_17.png'].infoShadowAnchor = new GPoint(28.0, 15.0);

custom_icon['marker_18.png'] = new GIcon();
custom_icon['marker_18.png'].shadow = icon_path + "marker_10_shadow.png";
custom_icon['marker_18.png'].image = icon_path + "marker_18.png";
custom_icon['marker_18.png'].iconSize = new GSize(28.0, 28.0);
custom_icon['marker_18.png'].shadowSize = new GSize(43.0, 28.0);
custom_icon['marker_18.png'].iconAnchor = new GPoint(14.0, 28.0);
custom_icon['marker_18.png'].infoWindowAnchor = new GPoint(14.0, 2.0);
custom_icon['marker_18.png'].infoShadowAnchor = new GPoint(28.0, 15.0);

custom_icon['marker_19.png'] = new GIcon();
custom_icon['marker_19.png'].shadow = icon_path + "marker_10_shadow.png";
custom_icon['marker_19.png'].image = icon_path + "marker_19.png";
custom_icon['marker_19.png'].iconSize = new GSize(28.0, 28.0);
custom_icon['marker_19.png'].shadowSize = new GSize(43.0, 28.0);
custom_icon['marker_19.png'].iconAnchor = new GPoint(14.0, 28.0);
custom_icon['marker_19.png'].infoWindowAnchor = new GPoint(14.0, 2.0);
custom_icon['marker_19.png'].infoShadowAnchor = new GPoint(28.0, 15.0);

// Tack Markers
custom_icon['marker_20.png'] = new GIcon();
custom_icon['marker_20.png'].shadow = icon_path + "marker_20_shadow.png";
custom_icon['marker_20.png'].image = icon_path + "marker_20.png";
custom_icon['marker_20.png'].iconSize = new GSize(12.0, 20.0);
custom_icon['marker_20.png'].shadowSize = new GSize(23.0, 20.0);
custom_icon['marker_20.png'].iconAnchor = new GPoint(6.0, 20.0);
custom_icon['marker_20.png'].infoWindowAnchor = new GPoint(6.0, 2.0);
custom_icon['marker_20.png'].infoShadowAnchor = new GPoint(12.0, 8.0);

custom_icon['marker_21.png'] = new GIcon();
custom_icon['marker_21.png'].shadow = icon_path + "marker_20_shadow.png";
custom_icon['marker_21.png'].image = icon_path + "marker_21.png";
custom_icon['marker_21.png'].iconSize = new GSize(12.0, 20.0);
custom_icon['marker_21.png'].shadowSize = new GSize(23.0, 20.0);
custom_icon['marker_21.png'].iconAnchor = new GPoint(6.0, 20.0);
custom_icon['marker_21.png'].infoWindowAnchor = new GPoint(6.0, 2.0);
custom_icon['marker_21.png'].infoShadowAnchor = new GPoint(12.0, 8.0);

custom_icon['marker_22.png'] = new GIcon();
custom_icon['marker_22.png'].shadow = icon_path + "marker_20_shadow.png";
custom_icon['marker_22.png'].image = icon_path + "marker_22.png";
custom_icon['marker_22.png'].iconSize = new GSize(12.0, 20.0);
custom_icon['marker_22.png'].shadowSize = new GSize(23.0, 20.0);
custom_icon['marker_22.png'].iconAnchor = new GPoint(6.0, 20.0);
custom_icon['marker_22.png'].infoWindowAnchor = new GPoint(6.0, 2.0);
custom_icon['marker_22.png'].infoShadowAnchor = new GPoint(12.0, 8.0);

custom_icon['marker_23.png'] = new GIcon();
custom_icon['marker_23.png'].shadow = icon_path + "marker_20_shadow.png";
custom_icon['marker_23.png'].image = icon_path + "marker_23.png";
custom_icon['marker_23.png'].iconSize = new GSize(12.0, 20.0);
custom_icon['marker_23.png'].shadowSize = new GSize(23.0, 20.0);
custom_icon['marker_23.png'].iconAnchor = new GPoint(6.0, 20.0);
custom_icon['marker_23.png'].infoWindowAnchor = new GPoint(6.0, 2.0);
custom_icon['marker_23.png'].infoShadowAnchor = new GPoint(12.0, 8.0);

custom_icon['marker_24.png'] = new GIcon();
custom_icon['marker_24.png'].shadow = icon_path + "marker_20_shadow.png";
custom_icon['marker_24.png'].image = icon_path + "marker_24.png";
custom_icon['marker_24.png'].iconSize = new GSize(12.0, 20.0);
custom_icon['marker_24.png'].shadowSize = new GSize(23.0, 20.0);
custom_icon['marker_24.png'].iconAnchor = new GPoint(6.0, 20.0);
custom_icon['marker_24.png'].infoWindowAnchor = new GPoint(6.0, 2.0);
custom_icon['marker_24.png'].infoShadowAnchor = new GPoint(12.0, 8.0);

custom_icon['marker_25.png'] = new GIcon();
custom_icon['marker_25.png'].shadow = icon_path + "marker_20_shadow.png";
custom_icon['marker_25.png'].image = icon_path + "marker_25.png";
custom_icon['marker_25.png'].iconSize = new GSize(12.0, 20.0);
custom_icon['marker_25.png'].shadowSize = new GSize(23.0, 20.0);
custom_icon['marker_25.png'].iconAnchor = new GPoint(6.0, 20.0);
custom_icon['marker_25.png'].infoWindowAnchor = new GPoint(6.0, 2.0);
custom_icon['marker_25.png'].infoShadowAnchor = new GPoint(12.0, 8.0);

custom_icon['marker_26.png'] = new GIcon();
custom_icon['marker_26.png'].shadow = icon_path + "marker_20_shadow.png";
custom_icon['marker_26.png'].image = icon_path + "marker_26.png";
custom_icon['marker_26.png'].iconSize = new GSize(12.0, 20.0);
custom_icon['marker_26.png'].shadowSize = new GSize(23.0, 20.0);
custom_icon['marker_26.png'].iconAnchor = new GPoint(6.0, 20.0);
custom_icon['marker_26.png'].infoWindowAnchor = new GPoint(6.0, 2.0);
custom_icon['marker_26.png'].infoShadowAnchor = new GPoint(12.0, 8.0);

custom_icon['marker_27.png'] = new GIcon();
custom_icon['marker_27.png'].shadow = icon_path + "marker_20_shadow.png";
custom_icon['marker_27.png'].image = icon_path + "marker_27.png";
custom_icon['marker_27.png'].iconSize = new GSize(12.0, 20.0);
custom_icon['marker_27.png'].shadowSize = new GSize(23.0, 20.0);
custom_icon['marker_27.png'].iconAnchor = new GPoint(6.0, 20.0);
custom_icon['marker_27.png'].infoWindowAnchor = new GPoint(6.0, 2.0);
custom_icon['marker_27.png'].infoShadowAnchor = new GPoint(12.0, 8.0);

custom_icon['marker_28.png'] = new GIcon();
custom_icon['marker_28.png'].shadow = icon_path + "marker_20_shadow.png";
custom_icon['marker_28.png'].image = icon_path + "marker_28.png";
custom_icon['marker_28.png'].iconSize = new GSize(12.0, 20.0);
custom_icon['marker_28.png'].shadowSize = new GSize(23.0, 20.0);
custom_icon['marker_28.png'].iconAnchor = new GPoint(6.0, 20.0);
custom_icon['marker_28.png'].infoWindowAnchor = new GPoint(6.0, 2.0);
custom_icon['marker_28.png'].infoShadowAnchor = new GPoint(12.0, 8.0);

custom_icon['marker_29.png'] = new GIcon();
custom_icon['marker_29.png'].shadow = icon_path + "marker_20_shadow.png";
custom_icon['marker_29.png'].image = icon_path + "marker_29.png";
custom_icon['marker_29.png'].iconSize = new GSize(12.0, 20.0);
custom_icon['marker_29.png'].shadowSize = new GSize(23.0, 20.0);
custom_icon['marker_29.png'].iconAnchor = new GPoint(6.0, 20.0);
custom_icon['marker_29.png'].infoWindowAnchor = new GPoint(6.0, 2.0);
custom_icon['marker_29.png'].infoShadowAnchor = new GPoint(12.0, 8.0);

// Origin Markers
custom_icon['origin_00.png'] = new GIcon();
//custom_icon['origin_00.png'].shadow = icon_path + "origin_00_shadow.png";
custom_icon['origin_00.png'].image = icon_path + "origin_00.png";
custom_icon['origin_00.png'].iconSize = new GSize(26.0, 26.0);
//custom_icon['origin_00.png'].shadowSize = new GSize(23.0, 20.0);
custom_icon['origin_00.png'].iconAnchor = new GPoint(13.0, 26.0);
custom_icon['origin_00.png'].infoWindowAnchor = new GPoint(13.0, 2.0);
//custom_icon['origin_00.png'].infoShadowAnchor = new GPoint(12.0, 8.0);

custom_icon['origin_01.png'] = new GIcon();
//custom_icon['origin_01.png'].shadow = icon_path + "origin_01_shadow.png";
custom_icon['origin_01.png'].image = icon_path + "origin_01.png";
custom_icon['origin_01.png'].iconSize = new GSize(26.0, 26.0);
//custom_icon['origin_01.png'].shadowSize = new GSize(23.0, 20.0);
custom_icon['origin_01.png'].iconAnchor = new GPoint(13.0, 26.0);
custom_icon['origin_01.png'].infoWindowAnchor = new GPoint(13.0, 2.0);
//custom_icon['origin_01.png'].infoShadowAnchor = new GPoint(12.0, 8.0);

custom_icon['origin_02.png'] = new GIcon();
//custom_icon['origin_02.png'].shadow = icon_path + "origin_02_shadow.png";
custom_icon['origin_02.png'].image = icon_path + "origin_02.png";
custom_icon['origin_02.png'].iconSize = new GSize(26.0, 26.0);
//custom_icon['origin_02.png'].shadowSize = new GSize(23.0, 20.0);
custom_icon['origin_02.png'].iconAnchor = new GPoint(13.0, 26.0);
custom_icon['origin_02.png'].infoWindowAnchor = new GPoint(13.0, 2.0);
//custom_icon['origin_02.png'].infoShadowAnchor = new GPoint(12.0, 8.0);

custom_icon['origin_03.png'] = new GIcon();
//custom_icon['origin_03.png'].shadow = icon_path + "origin_03_shadow.png";
custom_icon['origin_03.png'].image = icon_path + "origin_03.png";
custom_icon['origin_03.png'].iconSize = new GSize(26.0, 26.0);
//custom_icon['origin_03.png'].shadowSize = new GSize(23.0, 20.0);
custom_icon['origin_03.png'].iconAnchor = new GPoint(13.0, 26.0);
custom_icon['origin_03.png'].infoWindowAnchor = new GPoint(13.0, 2.0);
//custom_icon['origin_03.png'].infoShadowAnchor = new GPoint(12.0, 8.0);

custom_icon['origin_04.png'] = new GIcon();
//custom_icon['origin_04.png'].shadow = icon_path + "origin_04_shadow.png";
custom_icon['origin_04.png'].image = icon_path + "origin_04.png";
custom_icon['origin_04.png'].iconSize = new GSize(26.0, 26.0);
//custom_icon['origin_04.png'].shadowSize = new GSize(23.0, 20.0);
custom_icon['origin_04.png'].iconAnchor = new GPoint(13.0, 26.0);
custom_icon['origin_04.png'].infoWindowAnchor = new GPoint(13.0, 2.0);
//custom_icon['origin_04.png'].infoShadowAnchor = new GPoint(12.0, 8.0);

// EXTRA GOODIE FUNCTIONS
/*
// FUNCTION: TextualControl	
*/
function TextualControl () {}
	TextualControl.prototype = new GControl();
	TextualControl.prototype.initialize = function(map) {
  	var container = document.createElement("div");
	var zoomDiv = document.createElement("div");
  	this.setButtonStyle_(zoomDiv);
  	container.appendChild(zoomDiv);
  	zoomDiv.appendChild(document.createTextNode("back to area map"));
  	GEvent.addDomListener(zoomDiv, "click", function() {
		map.closeInfoWindow(); 
		map.setCenter(reCenter, reZoom); 
		map.removeControl(backbutton); 
  	});

	map.getContainer().appendChild(container);
	return container;
}
// 
/*
// PROTOTYPE: TextualControl	
//
// By default, the control will appear in the top right corner of the
// map with 7 pixels of padding.
*/
TextualControl.prototype.getDefaultPosition = function() {
  return new GControlPosition(G_ANCHOR_TOP_RIGHT, new GSize(217, 7));
}
/*
// PROTOTYPE: TextualControl	
//
// Sets the proper CSS for the given button element.
*/
TextualControl.prototype.setButtonStyle_ = function(button) {
	button.style.backgroundColor = "#880000";
  	button.style.padding = "1px";
  	button.style.fontFamily = "Geneva, Vera, Arial, Helvetica, sans-serif";
  	button.style.fontSize = "12px";
  	button.style.fontVariant = "small-caps";
  	button.style.border = "1px solid #999999";
  	button.style.color = "#fff";
  	button.style.cursor = "pointer";
}