// <! [CDATA[

var latitude = 0;
var longitude = 0;
var zoom = 0;

var map = new GMap2(document.getElementById("map"));
map.addControl(new GSmallMapControl());
map.addControl(new GMapTypeControl());
map.enableScrollWheelZoom();
    geocoder = new GClientGeocoder();


// nlm added
GEvent.addListener(map, "moveend", function() {
//   var center = map.getCenterLatLng();
    var center = map.getCenter();
//   var latLngStr = '(' + center.y + ', ' + center.x + ')';
//   var bounds = map.getBoundsLatLng();
//   document.getElementById("message").innerHTML = latLngStr + "<br>" + bounds;
}
);


function recenter(latitude, longitude, zoom) {
	    map.setCenter(new GLatLng(latitude, longitude), zoom);
//   map.centerAndZoom(new GPoint(latitude, longitude), zoom);
}

    function showAddress(address) {
      if (geocoder) {
        geocoder.getLatLng(
          address,
          function(point) {
            if (!point) {
              alert(address + " not found");
            } else {
              map.setCenter(point, 7);
//              var marker = new GMarker(point);
//              map.addOverlay(marker);
//              marker.openInfoWindowHtml(address);
            }
          }
        );
      }
    }



function resetMapPosition() {
   switch(uriq) {
      case "region=na" :
	    map.setCenter(new GLatLng(40.580584,-104.941406), 3);
//         map.centerAndZoom(new GPoint( -104.941406, 40.580584), 14);
         pagelink = '<a href="'+document.URL+'">Triathlon Clubs in North America</a>';
		 document.title = "TRImapper.com - North America Triathlon Club Finder, Triathlon Clubs in North America";
         break
      case "region=ca" :
	    map.setCenter(new GLatLng(13.282718,-82.265625), 5);
//         map.centerAndZoom(new GPoint( -82.265625, 13.282718), 12);
         pagelink = '<a href="'+document.URL+'">Triathlon Clubs in Central America</a>';
         document.title = "TRImapper.com - Central America Triathlon Club Finder, Triathlon Clubs in Central America";
         break
      case "region=cb" :
	    map.setCenter(new GLatLng(18.479609,-71.806640), 5);
//         map.centerAndZoom(new GPoint( -71.806640, 18.479609), 12);
         pagelink = '<a href="'+document.URL+'">Triathlon Clubs in Caribbean</a>';
         document.title = "TRImapper.com - Caribbean Triathlon Club Finder, Triathlon Clubs in the Caribbean";
         break
      case "cntry=aa" :
	    map.setCenter(new GLatLng(12.484850,-70.037841), 9);
//         map.centerAndZoom(new GPoint( -70.037841, 12.484850), 8);
         pagelink = '<a href="'+document.URL+'">Triathlon Clubs in Aruba</a>';
         document.title = "TRImapper.com - Aruba Triathlon Club Finder, Triathlon Clubs in Aruba";
         break;
      case "cntry=bd" :
	    map.setCenter(new GLatLng(32.338200,-64.709472), 8);
//         map.centerAndZoom(new GPoint( -64.709472, 32.338200), 9);
         pagelink = '<a href="'+document.URL+'">Triathlon Clubs in Bermuda</a>';
         document.title = "TRImapper.com - Bermuda Triathlon Club Finder, Triathlon Clubs in Bermuda";
         break;
      case "cntry=bf" :
	    map.setCenter(new GLatLng(25.065697,-77.563476), 7);
//         map.centerAndZoom(new GPoint( -77.563476, 25.065697), 10);
         pagelink = '<a href="'+document.URL+'">Triathlon Clubs in Bahamas</a>';
         document.title = "TRImapper.com - Bahamas Triathlon Club Finder, Triathlon Clubs in the Bahamas";
         break;
      case "cntry=ca" :
	    map.setCenter(new GLatLng(51.618016,-93.867187), 3);
//         map.centerAndZoom(new GPoint( -93.867187, 51.618016), 14);
         pagelink = '<a href="'+document.URL+'">Triathlon Clubs in Canada</a>';
         document.title = "TRImapper.com - Canada Triathlon Club Finder, Triathlon Clubs in Canada";
         break;
      case "cntry=cj" :
	    map.setCenter(new GLatLng(19.528730,-80.617675), 8);
//         map.centerAndZoom(new GPoint( -80.617675, 19.528730), 9);
         pagelink = '<a href="'+document.URL+'">Triathlon Clubs in Cayman Islands</a>';
         document.title = "TRImapper.com - Cayman Islands Triathlon Club Finder, Triathlon Clubs in the Cayman Islands";
         break;
      case "cntry=ho" :
	    map.setCenter(new GLatLng(14.636738,-86.286621), 7);
//         map.centerAndZoom(new GPoint( -86.286621, 14.636738), 10);
         pagelink = '<a href="'+document.URL+'">Triathlon Clubs in Honduras</a>';
         document.title = "TRImapper.com - Honduras Triathlon Club Finder, Triathlon Clubs in Honduras";
         break;
      case "cntry=pm" :
	    map.setCenter(new GLatLng(8.450638,-79.914550), 7);
//         map.centerAndZoom(new GPoint( -79.914550, 8.450638), 10);
         pagelink = '<a href="'+document.URL+'">Triathlon Clubs in Panama</a>';
         document.title = "TRImapper.com - Panama Triathlon Club Finder, Triathlon Clubs in Panama";
         break;
	case "cntry=pr":
	  map.setCenter(new GLatLng(18.213698,-66.549682), 8);
//		map.centerAndZoom(new GPoint(-66.549682,18.213698),9);
		pagelink = '<a href="'+document.URL+'">Triathlon Clubs in Puerto Rico</a>';
		document.title = "TRImapper.com - Puerto Rico Triathlon Club Finder, Triathlon Clubs in Puerto Rico";
		break;
      case "cntry=sn" :
	    map.setCenter(new GLatLng(17.133333,-62.616666), 8);
//         map.centerAndZoom(new GPoint( -62.616666, 17.133333), 9);
         pagelink = '<a href="'+document.URL+'">Triathlon Clubs in Saint Kitts and Nevis</a>';
         document.title = "TRImapper.com - Saint Kitts and Nevis Triathlon Club Finder, Triathlon Clubs in Saint Kitts and Nevis";
         break;
      case "cntry=td" :
	    map.setCenter(new GLatLng(10.568822,-61.105957), 8);
//         map.centerAndZoom(new GPoint( -61.105957, 10.568822), 9);
         pagelink = '<a href="'+document.URL+'">Triathlon Clubs in Trinidad and Tobago</a>';
         document.title = "TRImapper.com - Trinidad and Tobago Triathlon Club Finder, Triathlon Clubs in Trinidad and Tobago";
         break;
      case "cntry=us" :
	    map.setCenter(new GLatLng(37.160317,-95.976562), 4);
//         map.centerAndZoom(new GPoint( -95.976562, 37.160317), 13);
         pagelink = '<a href="'+document.URL+'">Triathlon Clubs in the United States</a>';
         document.title = "TRImapper.com - United States Triathlon Club Finder, Triathlon Clubs in the United States";
         break;
      case "state=al" :
	    map.setCenter(new GLatLng(32.846574,-86.619451), 7);
//         map.centerAndZoom(new GPoint( -86.619451, 32.846574), 10);
         pagelink = '<a href="'+document.URL+'">Triathlon Clubs in Alabama</a>';
         document.title = "TRImapper.com - Alabama Triathlon Club Finder, Triathlon Clubs in Alabama";
         break;
      case "state=ak" :
	    map.setCenter(new GLatLng(63.235856,-154.940000), 4);
//         map.centerAndZoom(new GPoint( -154.940000, 63.235856), 13);
         pagelink = '<a href="'+document.URL+'">Triathlon Clubs in Alaska</a>';
         document.title = "TRImapper.com - Alaska Triathlon Club Finder, Triathlon Clubs in Alaska";
         break;
      case "state=ar" :
	    map.setCenter(new GLatLng(34.759666,-92.241210), 7);
//         map.centerAndZoom(new GPoint( -92.241210, 34.759666), 10);
         pagelink = '<a href="'+document.URL+'">Triathlon Clubs in Arkansas</a>';
         document.title = "TRImapper.com - Arkansas Triathlon Club Finder, Triathlon Clubs in Arkansas";
         break;
      case "state=az" :
	    map.setCenter(new GLatLng(34.554393,-112.484934), 6);
//         map.centerAndZoom(new GPoint( -112.484934, 34.554393), 11);
         pagelink = '<a href="'+document.URL+'">Triathlon Clubs in Arizona</a>';
         document.title = "TRImapper.com - Arizona Triathlon Club Finder, Triathlon Clubs in Arizona";
         break;
      case "state=ca" :
	    map.setCenter(new GLatLng(36.792988,-119.763404), 6);
//         map.centerAndZoom(new GPoint( -119.763404, 36.792988), 11);
         pagelink = '<a href="'+document.URL+'">Triathlon Clubs in California</a>';
         document.title = "TRImapper.com - California Triathlon Club Finder, Triathlon Clubs in California";
         break;
      case "state=co" :
	    map.setCenter(new GLatLng(39.046593,-105.590964), 7);
//         map.centerAndZoom(new GPoint( -105.590964, 39.046593), 10);
         pagelink = '<a href="'+document.URL+'">Triathlon Clubs in Colorado</a>';
         document.title = "TRImapper.com - Colorado Triathlon Club Finder, Triathlon Clubs in Colorado";
         break;
      case "state=ct" :
	    map.setCenter(new GLatLng(41.567153,-72.675580), 9);
//         map.centerAndZoom(new GPoint( -72.675580, 41.567153), 8);
         pagelink = '<a href="'+document.URL+'">Triathlon Clubs in Connecticut</a>';
         document.title = "TRImapper.com - Connecticut Triathlon Club Finder, Triathlon Clubs in Connecticut";
         break;
      case "state=fl" :
	    map.setCenter(new GLatLng(28.149503,-84.221191), 6);
//         map.centerAndZoom(new GPoint( -84.221191, 28.149503), 11);
         pagelink = '<a href="'+document.URL+'">Triathlon Clubs in Florida</a>';
         document.title = "TRImapper.com - Florida Triathlon Club Finder, Triathlon Clubs in Florida";
         break;
      case "state=ga" :
	    map.setCenter(new GLatLng(32.837452,-83.637898), 7);
//         map.centerAndZoom(new GPoint( -83.637898, 32.837452), 10);
         pagelink = '<a href="'+document.URL+'">Triathlon Clubs in Georgia</a>';
         document.title = "TRImapper.com - Georgia Triathlon Club Finder, Triathlon Clubs in Georgia";
         break;
      case "state=hi" :
	    map.setCenter(new GLatLng(20.612219,-157.675781), 7);
//         map.centerAndZoom(new GPoint( -157.675781, 20.612219), 10);
         pagelink = '<a href="'+document.URL+'">Triathlon Clubs in Hawaii</a>';
         document.title = "TRImapper.com - Hawaii Triathlon Club Finder, Triathlon Clubs in Hawaii";
         break;
      case "state=id" :
	    map.setCenter(new GLatLng(44.504722,-114.230833), 7);
//         map.centerAndZoom(new GPoint( -114.230833, 44.504722), 10);
         pagelink = '<a href="'+document.URL+'">Triathlon Clubs in Idaho</a>';
         document.title = "TRImapper.com - Idaho Triathlon Club Finder, Triathlon Clubs in Idaho";
         break;
      case "state=il" :
	    map.setCenter(new GLatLng(39.720476,-89.663809), 7);
//         map.centerAndZoom(new GPoint( -89.663809, 39.720476), 10);
         pagelink = '<a href="'+document.URL+'">Triathlon Clubs in Illinois</a>';
         document.title = "TRImapper.com - Illinois Triathlon Club Finder, Triathlon Clubs in Illinois";
         break;
      case "state=in" :
	    map.setCenter(new GLatLng(39.786000,-86.176757), 7);
//         map.centerAndZoom(new GPoint( -86.176757, 39.786000), 10);
         pagelink = '<a href="'+document.URL+'">Triathlon Clubs in Indiana</a>';
         document.title = "TRImapper.com - Indiana Triathlon Club Finder, Triathlon Clubs in Indiana";
         break;
      case "state=ia" :
	    map.setCenter(new GLatLng(42.031423,-93.655519), 7);
//         map.centerAndZoom(new GPoint( -93.655519, 42.031423), 10);
         pagelink = '<a href="'+document.URL+'">Triathlon Clubs in Iowa</a>';
         document.title = "TRImapper.com - Iowa Triathlon Club Finder, Triathlon Clubs in Iowa";
         break;
      case "state=ks" :
	    map.setCenter(new GLatLng(38.349457,-98.31239), 7);
//         map.centerAndZoom(new GPoint( -98.31239, 38.349457), 10);
         pagelink = '<a href="'+document.URL+'">Triathlon Clubs in Kansas</a>';
         document.title = "TRImapper.com - Kansas Triathlon Club Finder, Triathlon Clubs in Kansas";
         break;
      case "state=ky" :
	    map.setCenter(new GLatLng(37.828427,-85.47277), 7);
//         map.centerAndZoom(new GPoint( -85.47277, 37.828427), 10);
         pagelink = '<a href="'+document.URL+'">Triathlon Clubs in Kentucky</a>';
         document.title = "TRImapper.com - Kentucky Triathlon Club Finder, Triathlon Clubs in Kentucky";
         break;
      case "state=la" :
	    map.setCenter(new GLatLng(31.043521,-92.175292), 7);
//         map.centerAndZoom(new GPoint( -92.175292, 31.043521), 10);
         pagelink = '<a href="'+document.URL+'">Triathlon Clubs in Louisiana</a>';
         document.title = "TRImapper.com - Louisiana Triathlon Club Finder, Triathlon Clubs in Louisiana";
         break;
      case "state=me" :
	    map.setCenter(new GLatLng(45.625410,-68.575140), 7);
//         map.centerAndZoom(new GPoint( -68.575140, 45.625410), 10);
         pagelink = '<a href="'+document.URL+'">Triathlon Clubs in Maine</a>';
         document.title = "TRImapper.com - Maine Triathlon Club Finder, Triathlon Clubs in Maine";
         break;
      case "state=md" :
	    map.setCenter(new GLatLng(39.084842,-77.162498), 7);
//         map.centerAndZoom(new GPoint( -77.162498, 39.084842), 10);
         pagelink = '<a href="'+document.URL+'">Triathlon Clubs in Maryland</a>';
         document.title = "TRImapper.com - Maryland Triathlon Club Finder, Triathlon Clubs in Maryland";
         break;
      case "state=ma" :
	    map.setCenter(new GLatLng(42.336045,-71.835863), 7);
//         map.centerAndZoom(new GPoint( -71.835863, 42.336045), 10);
         pagelink = '<a href="'+document.URL+'">Triathlon Clubs in Massachusetts</a>';
         document.title = "TRImapper.com - Massachusetts Triathlon Club Finder, Triathlon Clubs in Massachusetts";
         break;
      case "state=mi" :
	    map.setCenter(new GLatLng(43.711554,-85.415967), 7);
//         map.centerAndZoom(new GPoint( -85.415967, 43.711554), 10);
         pagelink = '<a href="'+document.URL+'">Triathlon Clubs in Michigan</a>';
         document.title = "TRImapper.com - Michigan Triathlon Club Finder, Triathlon Clubs in Michigan";
         break;
      case "state=mn" :
	    map.setCenter(new GLatLng(45.563300,-94.200300), 7);
//         map.centerAndZoom(new GPoint( -94.200300, 45.563300), 10);
         pagelink = '<a href="'+document.URL+'">Triathlon Clubs in Minnesota</a>';
         document.title = "TRImapper.com - Minnesota Triathlon Club Finder, Triathlon Clubs in Minnesota";
         break;
      case "state=ms" :
	    map.setCenter(new GLatLng(32.972133,-89.982145), 7);
//         map.centerAndZoom(new GPoint( -89.982145, 32.972133), 10);
         pagelink = '<a href="'+document.URL+'">Triathlon Clubs in Mississippi</a>';
         document.title = "TRImapper.com - Mississippi Triathlon Club Finder, Triathlon Clubs in Mississippi";
         break;
      case "state=mo" :
	    map.setCenter(new GLatLng(38.570928,-92.179490), 7);
//         map.centerAndZoom(new GPoint( -92.179490, 38.570928), 10);
         pagelink = '<a href="'+document.URL+'">Triathlon Clubs in Missouri</a>';
         document.title = "TRImapper.com - Missouri Triathlon Club Finder, Triathlon Clubs in Missouri";
         break;
      case "state=ne" :
	    map.setCenter(new GLatLng(41.401758,-99.623210), 6);
//         map.centerAndZoom(new GPoint( -99.623210, 41.401758), 11);
         pagelink = '<a href="'+document.URL+'">Triathlon Clubs in Nebraska</a>';
         document.title = "TRImapper.com - Nebraska Triathlon Club Finder, Triathlon Clubs in Nebraska";
         break;
      case "state=nv" :
	    map.setCenter(new GLatLng(39.091595,-117.06997), 6);
//         map.centerAndZoom(new GPoint( -117.06997, 39.091595), 11);
         pagelink = '<a href="'+document.URL+'">Triathlon Clubs in Nevada</a>';
         document.title = "TRImapper.com - Nevada Triathlon Club Finder, Triathlon Clubs in Nevada";
         break;
      case "state=nh" :
	    map.setCenter(new GLatLng(43.767344,-71.716137), 7);
//         map.centerAndZoom(new GPoint( -71.716137, 43.767344), 10);
         pagelink = '<a href="'+document.URL+'">Triathlon Clubs in New Hampshire</a>';
         document.title = "TRImapper.com - New Hampshire Triathlon Club Finder, Triathlon Clubs in New Hampshire";
         break;
      case "state=nj" :
	    map.setCenter(new GLatLng(39.867587,-74.783935), 8);
//         map.centerAndZoom(new GPoint( -74.783935, 39.867587), 9);
         pagelink = '<a href="'+document.URL+'">Triathlon Clubs in New Jersey</a>';
         document.title = "TRImapper.com - New Jersey Triathlon Club Finder, Triathlon Clubs in New Jersey";
         break;
      case "state=nm" :
	    map.setCenter(new GLatLng(34.669358,-106.051025), 6);
//         map.centerAndZoom(new GPoint( -106.051025, 34.669358), 11);
         pagelink = '<a href="'+document.URL+'">Triathlon Clubs in New Mexico</a>';
         document.title = "TRImapper.com - New Mexico Triathlon Club Finder, Triathlon Clubs in New Mexico";
         break;
      case "state=ny" :
	    map.setCenter(new GLatLng(42.593532,-76.179199), 7);
//         map.centerAndZoom(new GPoint( -76.179199, 42.593532), 10);
         pagelink = '<a href="'+document.URL+'">Triathlon Clubs in New York</a>';
         document.title = "TRImapper.com - New York Triathlon Club Finder, Triathlon Clubs in New York";
         break;
      case "state=nc" :
	    map.setCenter(new GLatLng(35.634423,-79.782275), 7);
//         map.centerAndZoom(new GPoint( -79.782275, 35.634423), 10);
         pagelink = '<a href="'+document.URL+'">Triathlon Clubs in North Carolina</a>';
         document.title = "TRImapper.com - North Carolina Triathlon Club Finder, Triathlon Clubs in North Carolina";
         break;
      case "state=oh" :
	    map.setCenter(new GLatLng(39.954520,-82.999000), 7);
//         map.centerAndZoom(new GPoint( -82.999000, 39.954520), 10);
         pagelink = '<a href="'+document.URL+'">Triathlon Clubs in Ohio</a>';
         document.title = "TRImapper.com - Ohio Triathlon Club Finder, Triathlon Clubs in Ohio";
         break;
      case "state=ok" :
	    map.setCenter(new GLatLng(35.509605,-97.998046), 7);
//         map.centerAndZoom(new GPoint( -97.998046, 35.509605), 10);
         pagelink = '<a href="'+document.URL+'">Triathlon Clubs in Oklahoma</a>';
         document.title = "TRImapper.com - Oklahoma Triathlon Club Finder, Triathlon Clubs in Oklahoma";
         break;
      case "state=or" :
	    map.setCenter(new GLatLng(44.098068,-120.531005), 7);
//         map.centerAndZoom(new GPoint( -120.531005, 44.098068), 10);
         pagelink = '<a href="'+document.URL+'">Triathlon Clubs in Oregon</a>';
         document.title = "TRImapper.com - Oregon Triathlon Club Finder, Triathlon Clubs in Oregon";
         break;
      case "state=pa" :
	    map.setCenter(new GLatLng(40.768873,-77.299804), 7);
//         map.centerAndZoom(new GPoint( -77.299804, 40.768873), 10);
         pagelink = '<a href="'+document.URL+'">Triathlon Clubs in Pennsylvania</a>';
         document.title = "TRImapper.com - Pennsylvania Triathlon Club Finder, Triathlon Clubs in Pennsylvania";
         break;
      case "state=ri" :
	    map.setCenter(new GLatLng(41.693411,-71.571999), 10);
//         map.centerAndZoom(new GPoint( -71.571999, 41.693411), 7);
         pagelink = '<a href="'+document.URL+'">Triathlon Clubs in Rhode Island</a>';
         document.title = "TRImapper.com - Rhode Island Triathlon Club Finder, Triathlon Clubs in Rhode Island";
         break;
      case "state=sc" :
	    map.setCenter(new GLatLng(34.082210,-80.996562), 7);
//         map.centerAndZoom(new GPoint( -80.996562, 34.082210), 10);
         pagelink = '<a href="'+document.URL+'">Triathlon Clubs in South Carolina</a>';
         document.title = "TRImapper.com - South Carolina Triathlon Club Finder, Triathlon Clubs in South Carolina";
         break;
      case "state=tn" :
	    map.setCenter(new GLatLng(35.836064,-86.392946), 7);
//         map.centerAndZoom(new GPoint( -86.392946, 35.836064), 10);
         pagelink = '<a href="'+document.URL+'">Triathlon Clubs in Tennessee</a>';
         document.title = "TRImapper.com - Tennessee Triathlon Club Finder, Triathlon Clubs in Tennessee";
         break;
      case "state=tx" :
	    map.setCenter(new GLatLng(31.709167,-98.990833), 6);
//         map.centerAndZoom(new GPoint( -98.990833, 31.709167), 11);
         pagelink = '<a href="'+document.URL+'">Triathlon Clubs in Texas</a>';
         document.title = "TRImapper.com - Texas Triathlon Club Finder, Triathlon Clubs in Texas";
         break;
      case "state=ut" :
	    map.setCenter(new GLatLng(39.371050,-111.587016), 6);
//         map.centerAndZoom(new GPoint( -111.587016, 39.371050), 11);
         pagelink = '<a href="'+document.URL+'">Triathlon Clubs in Utah</a>';
         document.title = "TRImapper.com - Utah Triathlon Club Finder, Triathlon Clubs in Utah";
         break;
      case "state=vt" :
	    map.setCenter(new GLatLng(43.909631,-72.663091), 7);
//         map.centerAndZoom(new GPoint( -72.663091, 43.909631), 10);
         pagelink = '<a href="'+document.URL+'">Triathlon Clubs in Vermont</a>';
         document.title = "TRImapper.com - Vermont Triathlon Club Finder, Triathlon Clubs in Vermont";
         break;
      case "state=va" :
	    map.setCenter(new GLatLng(37.805443,-79.420166), 7);
//         map.centerAndZoom(new GPoint( -79.420166, 37.805443), 10);
         pagelink = '<a href="'+document.URL+'">Triathlon Clubs in Virginia</a>';
         document.title = "TRImapper.com - Virginia Triathlon Club Finder, Triathlon Clubs in Virginia";
         break;
      case "state=wa" :
	    map.setCenter(new GLatLng(47.427017,-120.513541), 7);
//         map.centerAndZoom(new GPoint( -120.513541, 47.427017), 10);
         pagelink = '<a href="'+document.URL+'">Triathlon Clubs in Washington</a>';
	     document.title = "TRImapper.com - Washington Triathlon Club Finder, Triathlon Clubs in Washington";
         break;
      case "state=wv" :
	    map.setCenter(new GLatLng(38.993115,-80.235537), 7);
//         map.centerAndZoom(new GPoint( -80.235537, 38.993115), 10);
         pagelink = '<a href="'+document.URL+'">Triathlon Clubs in West Virginia</a>';
	     document.title = "TRImapper.com - West Virginia Triathlon Club Finder, Triathlon Clubs in West Virginia";
         break;
      case "state=wi" :
	    map.setCenter(new GLatLng(44.523452,-89.533419), 7);
//         map.centerAndZoom(new GPoint( -89.533419, 44.523452), 10);
         pagelink = '<a href="'+document.URL+'">Triathlon Clubs in Wisconsin</a>';
	     document.title = "TRImapper.com - Wisconsin Triathlon Club Finder, Triathlon Clubs in Wisconsin";
         break;
      case "state=ab" :
	    map.setCenter(new GLatLng(54.239550,-114.697265), 5);
//         map.centerAndZoom(new GPoint( -114.697265, 54.239550), 12);
         pagelink = '<a href="'+document.URL+'">Triathlon Clubs in Alberta</a>';
	     document.title = "TRImapper.com - Alberta Triathlon Club Finder, Triathlon Clubs in Alberta";
         break;
      case "state=bc" :
	    map.setCenter(new GLatLng(54.239550,-126.958007), 5);
//         map.centerAndZoom(new GPoint( -126.958007, 54.239550), 12);
         pagelink = '<a href="'+document.URL+'">Triathlon Clubs in British Columbia</a>';
	     document.title = "TRImapper.com - British Columbia Triathlon Club Finder, Triathlon Clubs in British Columbia";
         break;
      case "state=mb" :
	    map.setCenter(new GLatLng(54.239550,-96.811523), 5);
//         map.centerAndZoom(new GPoint( -96.811523, 54.239550), 12);
         pagelink = '<a href="'+document.URL+'">Triathlon Clubs in Manitoba</a>';
	     document.title = "TRImapper.com - Manitoba Triathlon Club Finder, Triathlon Clubs in Manitoba";
         break;
      case "state=nb" :
	    map.setCenter(new GLatLng(46.377254,-65.797119), 7);
//         map.centerAndZoom(new GPoint( -65.797119, 46.377254), 10);
         pagelink = '<a href="'+document.URL+'">Triathlon Clubs in New Brunswick</a>';
	     document.title = "TRImapper.com - New Brunswick Triathlon Club Finder, Triathlon Clubs in New Brunswick";
         break;
      case "state=ns" :
	    map.setCenter(new GLatLng(45.290346,-63.050537), 7);
//         map.centerAndZoom(new GPoint( -63.050537, 45.290346), 10);
         pagelink = '<a href="'+document.URL+'">Triathlon Clubs in Nova Scotia</a>';
	     document.title = "TRImapper.com - Nova Scotia Triathlon Club Finder, Triathlon Clubs in Nova Scotia";
         break;
      case "state=on" :
	    map.setCenter(new GLatLng(49.066668,-84.418945), 5);
//         map.centerAndZoom(new GPoint( -84.418945, 49.066668), 12);
         pagelink = '<a href="'+document.URL+'">Triathlon Clubs in Ontario</a>';
	     document.title = "TRImapper.com - Ontario Triathlon Club Finder, Triathlon Clubs in Ontario";
         break;
      case "state=qc" :
	    map.setCenter(new GLatLng(50.092393,-70.883789), 5);
//         map.centerAndZoom(new GPoint( -70.883789, 50.092393), 12);
         pagelink = '<a href="'+document.URL+'">Triathlon Clubs in Quebec</a>';
	     document.title = "TRImapper.com - Quebec Triathlon Club Finder, Triathlon Clubs in Quebec";
         break;
      case "state=sk" :
	    map.setCenter(new GLatLng(54.239550,-105.776367), 5);
//         map.centerAndZoom(new GPoint( -105.776367, 54.239550), 12);
         pagelink = '<a href="'+document.URL+'">Triathlon Clubs in Saskatchewan</a>';
	     document.title = "TRImapper.com - Saskatchewan Triathlon Club Finder, Triathlon Clubs in Saskatchewan";
         break;
      default :
	    map.setCenter(new GLatLng(40.580584,-104.941406), 3);
//         map.centerAndZoom(new GPoint( -104.941406, 40.580584), 14);
         pagelink = '<a href="'+document.URL+'">Triathlon Clubs in North America</a>';
         break;
   }
}
resetMapPosition();

var baseIcon = new GIcon();
//    baseIcon.image = "icons/marker.png";
//    baseIcon.shadow = "icons/shadow50.png";
//    baseIcon.iconSize = new GSize(20, 34);
baseIcon.iconSize = new GSize(12, 20);
//    baseIcon.shadowSize = new GSize(37, 34);
baseIcon.iconAnchor = new GPoint(6, 20);
baseIcon.infoWindowAnchor = new GPoint(6, 6);

var info = document.getElementById("sc4");

// TODO - maybe make this one array of objects ?
var markerArray = new Array();
var markerTitles = new Array();
var markerPointsArray = new Array();
var markerCallbacks = new Array();
var markerTagStrings = new Array();
var markerAddresses = new Array();
var markerCity = new Array();
var markerState = new Array();
var markerCountry = new Array();
var markerType = new Array();
var markersShown = new Array();
var markerLength = 0;
var tagToCountTable = {
}
;

function addTagToList(newTag) {
   if (tagToCountTable[newTag]) {
      tagToCountTable[newTag] ++ ;
   }
   else {
      tagToCountTable[newTag] = 1;
   }
}

function sortByCount(a, b) {
   return tagToCountTable[b] - tagToCountTable[a];
}

function myEncodeURI(source) {
   // Do the javascript thing, but encode a space as a +
   var nextSpace = source.indexOf(' ');
   while (nextSpace != - 1) {
      source = source.substring(0, nextSpace) + "+" + source.substring(nextSpace + 1);
      nextSpace = source.indexOf(' ');
   }
   return encodeURI(source);
}

function zoomIN(cord1, cord2){
   // 	alert("cord1:" + cord1 + " cord2:" + cord2);
   map.centerAndZoom(new GPoint(cord2, cord1), 16);
}

function createMarker(point, caption, index, markerColor) {

   // new code to change the marker color
   var icon = new GIcon(baseIcon);
   icon.image = "http://www.trimapper.com/images/cmarker_" + markerColor + ".png";
   var marker = new GMarker(point, icon);

   // Show this marker's index in the info window when it is clicked
   GEvent.addListener(marker, "click", function() {
      marker.openInfoWindowHtml(caption);
   }
   );


   markerCallbacks[index] = function() {
      markerArray[index].openInfoWindowHtml(caption);
   }

   return marker;
}

function filterTags(tag) {
   if (tag == '') {
      // special case - show all
      for (var i = 0; i < markerLength; i ++ ) {
         if (markersShown[i] == false) {
            // Display it.
            markersShown[i] = true;
            map.addOverlay(markerArray[i]);
            var divInfo = document.getElementById("entry" + i);
            divInfo.style.display = "";
         }
      }
      return;
   }
// var tagRE = new RegExp("\\|" + tag + "\\|");
   var tagRE = tag;
   for (var i = 0; i < markerLength; i ++ ) {
      if (markerTagStrings[i].match(tagRE)) {
         // Display the text and marker
         if (markersShown[i] == false) {
            // We need to display it.
            markersShown[i] = true;
            map.addOverlay(markerArray[i]);
            var divInfo = document.getElementById("entry" + i);
            divInfo.style.display = "";
         }
      }
      else {
         // Hide text and marker
         if (markersShown[i] == true) {
            // Hide it.
            markersShown[i] = false;
            map.removeOverlay(markerArray[i]);
            var divInfo = document.getElementById("entry" + i);
            divInfo.style.display = "none";
         }
      }
   }
}

var request = GXmlHttp.create();
request.open("GET", xmlFileName, true);
request.onreadystatechange = function() {
   if (request.readyState == 4) {
      var xmlDoc = request.responseXML;
      var markers = xmlDoc.documentElement.getElementsByTagName("marker");
      markerLength = markers.length;
      for (var i = 0; i < markers.length; i ++ ) {
         markerPointsArray[i] = new GPoint(parseFloat(markers[i].getAttribute("lng")), parseFloat(markers[i].getAttribute("lat")));
         var colorMarker = new String(markers[i].getAttribute("color"));
         markerTitles[i] = new String(markers[i].getAttribute("title"));
         var latText = new String(markers[i].getAttribute("lat"));
         var lngText = new String(markers[i].getAttribute("lng"));
         markerCity[i] = new String(markers[i].getAttribute("city"));
         markerState[i] = new String(markers[i].getAttribute("state"));
         markerCountry[i] = new String(markers[i].getAttribute("country"));
         // 			markerType[i] = new String(markers[i].getAttribute("tag"));
         var url = new String(markers[i].getAttribute("url"));
         /*            var raceid = new String(markers[i].getAttribute("raceid")); */

         var clubloc = '<p class="tiny">Location: ' + markerCity[i] + ', ' + markerState[i] + '</p><br>';
         var website = '<a href="' + url + '" target="_blank" class="tiny">Website</a>';
         var zoomin = '&nbsp;|&nbsp;<a href="javascript:zoomIN'+markerPointsArray[i]+';" class="tiny">Zoom In</a>';

         /* var report = '&nbsp;|&nbsp;<a href="mailto:admin@trimapper.com?subject=Update/Bad%20TRI&body=Update/Bad%20TRI:  Race ID: '+raceid+'  Tri: '+markerTitles[i]+'" class="tiny">Update/Bad TRI</a>';
         */


         if (document.getElementById('loadingMessage')){
            document.getElementById('loadingMessage').innerHTML = "Loading " + i + "of " + markerLength;
         }

         markerArray[i] = createMarker(markerPointsArray[i], "<br><b><u>" + markerTitles[i] + "</u></b><br>" + clubloc + website + zoomin, i, colorMarker);
         map.addOverlay(markerArray[i]);
         markerTagStrings[i] = new String(markers[i].getAttribute("tag"));
         var entry = document.createElement("div");
         entry.setAttribute("id", "entry" + i);
         entry.setAttribute("style", "");
         var boldPart = document.createElement("b");
         var linkPart = document.createElement("a");
         linkPart.setAttribute("href", "javascript:callback" + i + "();");
         var boldText = document.createTextNode(markerTitles[i]);
         boldPart.appendChild(boldText);
         linkPart.appendChild(boldPart);

//         var captionPart = document.createTextNode(" - " + markerCity[i] + ", " + markerState[i]);
			var captionLoc = document.createTextNode(markerCity[i] + ", " + markerState[i]);
			var br = document.createElement("br");


         // Find the tags.
         var tagPart = document.createTextNode(" Tags: ");
         var tagsPart = document.createElement("span");
         var tempString = markerTagStrings[i];

         var nextTag = tempString;
         addTagToList(nextTag);
         // Add links to tags
         var tempLinkPart = document.createElement("a");
         tempLinkPart.setAttribute("href", "javascript:filterTags('" + nextTag + "');");
         var tempLinkText = document.createTextNode(nextTag);
         var space = document.createTextNode(" ");
         tempLinkPart.appendChild(tempLinkText);
         tagsPart.appendChild(tempLinkPart);
         tagsPart.appendChild(space);
         //                    }
         //                }

         entry.appendChild(linkPart);
//         entry.appendChild(captionPart);
         //                entry.appendChild(tagPart);
         //                entry.appendChild(tagsPart);
                info.appendChild(entry);
				entry.appendChild(br);
				info.appendChild(entry);
				entry.appendChild(captionLoc);
				info.appendChild(entry);
      }
      // Sort the tags.
      allTags = new Array();
      var j = 0;
      for (tag in tagToCountTable) {
         allTags[j] = tag;
         j ++ ;
      }
      // Use this to sort by count
      // allTags.sort(sortByCount);
      allTags.sort();

      // Add the list of all tags
      var tags = document.getElementById("sc1");
      var tagAllEntry = document.createElement("a");
      tagAllEntry.setAttribute("href", "javascript:filterTags('');");
      var tagAllText = document.createTextNode('(All)(' + markerLength + ')');
      tagAllEntry.appendChild(tagAllText);
      tags.appendChild(tagAllEntry);
      var space = document.createTextNode(' ');
      tags.appendChild(space);

      // And insert them.
      var space = document.createTextNode(' ');
      for (var j = 0; j < allTags.length; j ++ ) {
         var tempLinkEntry = document.createElement("a");
         tempLinkEntry.setAttribute("href", "javascript:filterTags('" + allTags[j] + "');");
         var tempLinkText = document.createTextNode(allTags[j] + "(" + tagToCountTable[allTags[j]] + ")");
         tempLinkEntry.appendChild(tempLinkText);
         tags.appendChild(tempLinkEntry);
         var space = document.createTextNode(' ');
         tags.appendChild(space);
      }
      for (var j = 0; j < markerLength; j ++ ) {
         markersShown[j] = true;
         eval('callback' + j + ' = function() {markerCallbacks[' + j + ']();}');
      }

   }
}
request.send(null);
// ]] >
