// USGS_NATMAP_regions.js
// base partially in concept on USGS_ZoomRegion_Tool.js from EDC by Chris Rusanowski

nmRegionsPresent = true;

// two arrays that have named Partners and corresponding envelope
// envelope value is comma separated list of minX,minY,maxX,maxY
// which is suitable for passing as an argument to zoomToEnvelope defined in aimsMap.js with the followin syntax
// must use eval('zoomToEnvelope(' + PartnerEnvelope[i] + ')');
// to avoid the entire array being treated as the first arg of zoomToEnvelope
// Coord order: minx, miny, maxx, maxy
var PartnerName = new Array();
var PartnerEnvelope = new Array();
var i=0;
PartnerName[i] = 'Alabama - William B. Bankhead National Forest'; PartnerEnvelope[i++] = '-87.8,33.9,-86.9,34.4';
PartnerName[i] = 'Arkansas - AR-KS-MO Regional National Map Project'; PartnerEnvelope[i++] = '-94.6,33.0,-89.6,36.5';
PartnerName[i] = 'Arkansas - Benton County'; PartnerEnvelope[i++] = '-94.62,36.102,-93.86,36.49';
PartnerName[i] = 'Arkansas - City of Fort Smith'; PartnerEnvelope[i++] = '-94.44,35.22,-94.25,35.45';
PartnerName[i] = 'Arkansas - Washington County'; PartnerEnvelope[i++] = '-94.54,35.76,-93.89,36.24';
PartnerName[i] = 'California - Lake Tahoe Partnership Project'; PartnerEnvelope[i++] = '-120.65,38.28,-119.31,39.8';
PartnerName[i] = 'California - Sacramento Area Council of Governments'; PartnerEnvelope[i++] = '-122.410,38.096,-119.873,39.629';
PartnerName[i] = 'Colorado - Denver Partnership Project'; PartnerEnvelope[i++] = '-105.4,39.4,-104.6,40.6';
PartnerName[i] = 'Colorado - Pike National Forest'; PartnerEnvelope[i++] = '-105.3,38.6,-104.7,39.3';
PartnerName[i] = 'Colorado - Rocky Mountain National Park'; PartnerEnvelope[i++] = '-105.9,40.1,-105.4,40.5';
PartnerName[i] = 'Delaware - Delaware Partnership Project'; PartnerEnvelope[i++] = '-75.8,38.45,-75.03,39.83';
PartnerName[i] = 'District of Columbia - Comprehensive Urban Ecosystems Studies(CUES)'; PartnerEnvelope[i++] = '-79.8,37.5,-75.3,40.3';
PartnerName[i] = 'District of Columbia - National Capital Region Partnership Project'; PartnerEnvelope[i++] = '-79.8,37.5,-75.3,40.3';
PartnerName[i] = "Hawaii - Hawai'i (Big Island)"; PartnerEnvelope[i++] = '-156.054,18.915,-154.799,20.275';
PartnerName[i] = "Hawaii - Kaua'i"; PartnerEnvelope[i++] = '-159.788,21.865,-159.280,22.236';
PartnerName[i] = "Hawaii - Maui"; PartnerEnvelope[i++] = '-156.697,20.571,-155.990,21.043';
PartnerName[i] = "Hawaii - Moloka'i"; PartnerEnvelope[i++] = '-157.31,21.04,-156.69,21.23';
PartnerName[i] = "Hawaii - O'ahu"; PartnerEnvelope[i++] = '-158.27,21.25,-157.68,21.70';
PartnerName[i] = 'Idaho - Washington-Idaho Partnership Project'; PartnerEnvelope[i++] = '-117.8,47.2,-116.1,49.1';
PartnerName[i] = 'Iowa - Department of Natural Resources'; PartnerEnvelope[i++] = '-96.64,40.37,-90.14,43.50';
PartnerName[i] = 'Iowa - Story County'; PartnerEnvelope[i++] = '-93.7,41.86,-93.23,42.21';
PartnerName[i] = 'Kansas - AR-KS-MO Regional National Map Project'; PartnerEnvelope[i++] = '-102.052,36.989,-94.601,40.003';
PartnerName[i] = 'Kansas - Data Access & Support Center (DASC)'; PartnerEnvelope[i++] = '-102.052,36.989,-94.601,40.003';
PartnerName[i] = 'Kansas - Finney County';  PartnerEnvelope[i++] = '-101.10,37.73,-100.22,38.26';
PartnerName[i] = 'Kansas - Sedgwick County'; PartnerEnvelope[i++] = '-97.80,37.47,-97.14,37.91';
PartnerName[i] = 'Kentucky - The Commonwealth Map'; PartnerEnvelope[i++] = '-89.57,36.50,-81.96,39.14';
PartnerName[i] = 'Louisiana - Regional Application Center (RAC)'; PartnerEnvelope[i++] = '-94.0,28.9,-89.0,33.0';
PartnerName[i] = 'Minnesota - MetroGIS'; PartnerEnvelope[i++] = '-94.04,44.47,-92.74,45.41';
PartnerName[i] = 'Minnesota - Land Management Information Center (LMIC)'; PartnerEnvelope[i++] = '-97.2,43.5,-89.5,49.4';
PartnerName[i] = 'Missouri - AR-KS-MO Regional National Map Project'; PartnerEnvelope[i++] = '-95.8,36.0,-89.1,40.6';
PartnerName[i] = 'Missouri - University of Missouri-Columbia Office of Space Planning and Management'; PartnerEnvelope[i++] = '-95.77,35.99,-89.11,40.61';
PartnerName[i] = 'Missouri - Spatial Data Information Service (MSDIS)'; PartnerEnvelope[i++] = '-95.8,36.0,-89.1,40.6';
PartnerName[i] = 'Missouri - St. Louis County'; PartnerEnvelope[i++] = '-90.7,38.3,-90.1,38.8';
PartnerName[i] = 'Montana - Bozeman / Gallatin'; PartnerEnvelope[i++] = '-111.8,44.47,-110.79,46.2';
PartnerName[i] = 'Montana - Missoula County'; PartnerEnvelope[i++] = '-114.8,46.62,-113.3,47.61';
PartnerName[i] = 'Montana - National Resource Information System (NRIS)'; PartnerEnvelope[i++] = '-116.1,44.4,-104.0,49.0';
PartnerName[i] = 'Montana - UM College of Forestry and Conservation'; PartnerEnvelope[i++] = '-113.74, 46.77,-113.19,47.03';
PartnerName[i] = 'Nebraska - Nebraska Department of Natural Resources'; PartnerEnvelope[i++] = '-104.056,39.993,-95.309,43.003';
PartnerName[i] = 'Nevada - Lake Tahoe Partnership Project'; PartnerEnvelope[i++] = '-120.65,38.28,-119.31,39.8';
PartnerName[i] = 'Nevada - Tahoe Integrated Information Management System'; PartnerEnvelope[i++] = '-120.65,38.28,-119.31,39.8';
PartnerName[i] = 'New Jersey - Office of Information Technology'; PartnerEnvelope[i++] = '-75.57,38.96,-73.90,41.35';
PartnerName[i] = 'New Mexico - Albuquerque'; PartnerEnvelope[i++] = '-107.16,34.84,-105.99,35.39';
PartnerName[i] = 'New Mexico - Cibola National Forest-Sandia Ranger District'; PartnerEnvelope[i++] = '-106.52,34.95,-106.28,35.30';
PartnerName[i] = 'North Carolina - NC OneMap'; PartnerEnvelope[i++] = '-84.3,33.9,-75.5,36.6';
PartnerName[i] = 'North Carolina - Buncombe County'; PartnerEnvelope[i++] = '-82.88,35.42,-82.17,35.82';
PartnerName[i] = 'North Carolina - Cabarrus County'; PartnerEnvelope[i++] = '-80.813,35.158,-80.262,35.531';
PartnerName[i] = 'North Carolina - Henderson County'; PartnerEnvelope[i++] = '-82.74,35.15,-82.26,35.50';
PartnerName[i] = 'North Carolina - Johnston County'; PartnerEnvelope[i++] = '-78.77,35.82,-77.97,35.25';
PartnerName[i] = 'North Carolina - Mecklenburg County'; PartnerEnvelope[i++] = '-81.87,34.35,-79.74,36.24';
PartnerName[i] = 'North Carolina - Wake County'; PartnerEnvelope[i++] = '-79.00,35.52,-78.25,36.07';
PartnerName[i] = 'Oklahoma - Oklahoma GEO'; PartnerEnvelope[i++] = '-102.9,33.6,-94.4,37.0';
PartnerName[i] = 'South Carolina - Charleston County'; PartnerEnvelope[i++] = '-81.08,32.26,-79.13,33.73';
PartnerName[i] = 'South Carolina - York County'; PartnerEnvelope[i++] = '-81.4,34.7,-80.8,35.2';
PartnerName[i] = 'Texas - Texas Natural Resources Information System (TNRIS)'; PartnerEnvelope[i++] = '-106.650,25.846,-93.507,36.494';
PartnerName[i] = 'Utah - Utah Partnership Project'; PartnerEnvelope[i++] = '-110.1,38,-109.1,39';
PartnerName[i] = 'Vermont - Vermont Center for Geographic Information (VCGI)'; PartnerEnvelope[i++] = '-73.44,42.73,-71.51,45.01';
PartnerName[i] = 'Virginia - Loudoun County'; PartnerEnvelope[i++] = '-79.2,37.7,-75.7,39.7';
PartnerName[i] = 'Virginia - Shenandoah National Park'; PartnerEnvelope[i++] = '-79.13,38.0,-78.0,39.0';
PartnerName[i] = 'Virginia - US Census / VDOT'; PartnerEnvelope[i++] = '-78.37,38.12,-76.24,39.46';
PartnerName[i] = 'Virginia - Virginia Dept. of Transportation'; PartnerEnvelope[i++] = '-83.68,36.54,-75.24,39.46';
PartnerName[i] = 'Washington - Seattle-Tacoma Partnership Project'; PartnerEnvelope[i++] = '-124.607,45.543,-119.866,49.000';
PartnerName[i] = 'Washington - Washington-Idaho Partnership Project'; PartnerEnvelope[i++] = '-117.8,47.2,-116.1,49.1';

// two arrays that have States and corresponding envelope
// envelope value is comma separated list of minX,minY,maxX,maxY
// which is suitable for passing as an argument to zoomToEnvelope defined in aimsMap.js with the following syntax
// must use eval('zoomToEnvelope(' + StateEnvelope[i] + ')');
// to avoid the entire array being treated as the first arg of zoomToEnvelope
var StateName = new Array();
var StateEnvelope = new Array();
StateName[0] = 'Alabama'; StateEnvelope[0] = '-88.5,30.2,-84.9,35.0';
StateName[1] = 'Alaska'; StateEnvelope[1] = '-178.2,51.6,-130.0,71.4';
StateName[2] = 'Arizona'; StateEnvelope[2] = '-114.8,31.3,-109.0,37.0';
StateName[3] = 'Arkansas'; StateEnvelope[3] = '-94.6,33.0,-89.6,36.5';
StateName[4] = 'California'; StateEnvelope[4] = '-124.4,32.5,-114.1,42.0';
StateName[5] = 'Colorado'; StateEnvelope[5] = '-109.1,37.0,-102.0,41.0';
StateName[6] = 'Connecticut'; StateEnvelope[6] = '-73.7,41.0,-71.8,42.0';
StateName[7] = 'Delaware'; StateEnvelope[7] = '-75.8,38.4,-75.0,39.8';
StateName[8] = 'District of Columbia'; StateEnvelope[8] = '-77.1,38.8,-76.9,39.0';
StateName[9] = 'Florida'; StateEnvelope[9] = '-87.6,25.0,-80.1,31.0';
StateName[10] = 'Georgia'; StateEnvelope[10] = '-85.6,30.4,-80.9,35.0';
StateName[11] = 'Hawaii'; StateEnvelope[11] = '-160.2,18.9,-154.8,22.2';
StateName[12] = 'Idaho'; StateEnvelope[12] = '-117.2,42.0,-111.0,49.0';
StateName[13] = 'Illinois'; StateEnvelope[13] = '-91.5,37.0,-87.5,42.5';
StateName[14] = 'Indiana'; StateEnvelope[14] = '-88.1,37.8,-84.8,41.8';
StateName[15] = 'Iowa'; StateEnvelope[15] = '-96.6,40.4,-90.1,43.5';
StateName[16] = 'Kansas'; StateEnvelope[16] = '-102.1,37.0,-94.6,40.0';
StateName[17] = 'Kentucky'; StateEnvelope[17] = '-89.6,36.5,-82.0,39.1';
StateName[18] = 'Louisiana'; StateEnvelope[18] = '-94.0,28.9,-89.0,33.0';
StateName[19] = 'Maine'; StateEnvelope[19] = '-71.1,43.1,-67.0,47.5';
StateName[20] = 'Maryland'; StateEnvelope[20] = '-79.5,38.0,-75.0,39.7';
StateName[21] = 'Massachusetts'; StateEnvelope[21] = '-73.5,41.2,-69.9,42.9';
StateName[22] = 'Michigan'; StateEnvelope[22] = '-90.4,41.7,-82.4,48.2';
StateName[23] = 'Minnesota'; StateEnvelope[23] = '-97.2,43.5,-89.5,49.4';
StateName[24] = 'Mississippi'; StateEnvelope[24] = '-91.6,30.2,-88.1,35.0';
StateName[25] = 'Missouri'; StateEnvelope[25] = '-95.8,36.0,-89.1,40.6';
StateName[26] = 'Montana'; StateEnvelope[26] = '-116.1,44.4,-104.0,49.0';
StateName[27] = 'Nebraska'; StateEnvelope[27] = '-104.1,40.0,-95.3,43.0';
StateName[28] = 'Nevada'; StateEnvelope[28] = '-120.0,35.0,-114.0,42.0';
StateName[29] = 'New Hampshire'; StateEnvelope[29] = '-72.6,42.7,-70.7,45.3';
StateName[30] = 'New Jersey'; StateEnvelope[30] = '-75.6,39.0,-73.9,41.4';
StateName[31] = 'New Mexico'; StateEnvelope[31] = '-109.1,31.3,-103.0,37.0';
StateName[32] = 'New York'; StateEnvelope[32] = '-79.8,40.5,-71.9,45.0';
StateName[33] = 'North Carolina'; StateEnvelope[33] = '-84.3,33.9,-75.5,36.6';
StateName[34] = 'North Dakota'; StateEnvelope[34] = '-104.1,45.9,-96.6,49.0';
StateName[35] = 'Ohio'; StateEnvelope[35] = '-84.8,38.4,-80.5,42.0';
StateName[36] = 'Oklahoma'; StateEnvelope[36] = '-103.0,33.6,-94.4,37.0';
StateName[37] = 'Oregon'; StateEnvelope[37] = '-124.6,42.0,-116.5,46.2';
StateName[38] = 'Pennsylvania'; StateEnvelope[38] = '-80.5,39.7,-74.7,42.3';
StateName[39] = 'Rhode Island'; StateEnvelope[39] = '-71.9,41.3,-71.1,42.0';
StateName[40] = 'South Carolina'; StateEnvelope[40] = '-83.4,32.1,-78.6,35.2';
StateName[41] = 'South Dakota'; StateEnvelope[41] = '-104.1,42.5,-96.4,45.9';
StateName[42] = 'Tennessee'; StateEnvelope[42] = '-90.3,35.0,-81.7,36.7';
StateName[43] = 'Texas'; StateEnvelope[43] = '-106.7,25.8,-93.5,36.5';
StateName[44] = 'Utah'; StateEnvelope[44] = '-114.0,37.0,-109.0,42.0';
StateName[45] = 'Vermont'; StateEnvelope[45] = '-73.4,42.7,-71.5,45.0';
StateName[46] = 'Virginia'; StateEnvelope[46] = '-83.7,36.5,-75.2,39.5';
StateName[47] = 'Washington'; StateEnvelope[47] = '-124.7,45.5,-116.9,49.0';
StateName[48] = 'West Virginia'; StateEnvelope[48] = '-82.6,37.2,-77.7,40.6';
StateName[49] = 'Wisconsin'; StateEnvelope[49] = '-92.9,42.5,-87.0,47.0';
StateName[50] = 'Wyoming'; StateEnvelope[50] = '-111.1,41.0,-104.1,45.0';

/**
 * Checks where the user clicked on the map,
 * if click is within an envelope defined in PartnerEnvelope,
 * map zooms to that extent otherwise alter message shown
 * PartnerEnvelope extent searched sequentially,
 * so first intersecting envelope is used in the case of overlapping envelopes
 */
function zoomToPartnerbyClick(e) {
  var buffer=.5;
  var foundRegion = false;
  var theX = mouseX;
  var theY = mouseY;
	var theEnvelope;
	getMapXY(theX,theY);
	for (var i = 0; i < PartnerName.length; i++) {
		theEnvelope = (PartnerEnvelope[i]).split(',');
		for (var j = 0; j < theEnvelope.length; j++) {
			//force the strings to numbers
			theEnvelope[j] = theEnvelope[j] - 0;
		}
		if (theEnvelope[0] - buffer <= mapX &&
				theEnvelope[2] + buffer >= mapX && 
				theEnvelope[1] - buffer <= mapY &&
				theEnvelope[3] + buffer >= mapY) {
			// the click is within the region
			alert('Zooming to : ' + PartnerName[i]);
			eval('zoomToEnvelope(' + PartnerEnvelope[i] + ')');
			foundRegion = true;
			break;
		}										 
	}
	if (!foundRegion) {
		alert('No partners are available at the clicked location \n mapX = ' + mapX + ' mapY = ' + mapY);
	}
}

function zoomToPartnerByIndex(theIndex) {
	if (theIndex >= 0 && theIndex < PartnerEnvelope.length) {
		eval('zoomToEnvelope(' + PartnerEnvelope[theIndex] + ')');
	} else {
		alert ('No Parter Selected');
	}
}

function zoomToStateByIndex (theIndex) {
	if (theIndex >= 0 && theIndex < StateEnvelope.length) {
		eval('zoomToEnvelope(' + StateEnvelope[theIndex] + ')');
	} else {
		alert ('No State Selected');
	}
}
