window.onload=initialize;

var iconBlank = new GIcon(); 
iconBlank.image = '';
iconBlank.shadow = '';
iconBlank.iconSize = new GSize(32, 32);
iconBlank.shadowSize = new GSize(22, 20);
iconBlank.iconAnchor = new GPoint(16, 16);
iconBlank.infoWindowAnchor = new GPoint(16, 16);

var zones = {
	'Box 62-1' : [new GLatLng(40.114407, -75.418526), new GLatLng(40.110058, -75.411636), new GLatLng(40.107578, -75.419037), new GLatLng(40.108006, -75.423050), new GLatLng(40.111897, -75.420845), new GLatLng(40.114407, -75.418526)],
	'Box 62-2' : [new GLatLng(40.114498, -75.418526), new GLatLng(40.125164, -75.407364), new GLatLng(40.117977, -75.393288), new GLatLng(40.110035, -75.411743), new GLatLng(40.114498, -75.418526)],
	'Box 62-3' : [new GLatLng(40.125130, -75.407234), new GLatLng(40.130974, -75.401489), new GLatLng(40.131348, -75.397842), new GLatLng(40.131561, -75.390457), new GLatLng(40.128872, -75.392906), new GLatLng(40.128315, -75.393379), new GLatLng(40.127823, -75.393333), new GLatLng(40.127262, -75.393204), new GLatLng(40.126640, -75.393166), new GLatLng(40.125786, -75.393204), new GLatLng(40.124672, -75.393250), new GLatLng(40.123917, -75.393379), new GLatLng(40.122967, -75.393250), new GLatLng(40.121819, -75.392860), new GLatLng(40.120472, -75.392387), new GLatLng(40.119816, -75.391830), new GLatLng(40.119289, -75.391319), new GLatLng(40.118435, -75.390800), new GLatLng(40.118107, -75.390717), new GLatLng(40.117748, -75.393333), new GLatLng(40.118141, -75.393723), new GLatLng(40.125130, -75.407234)],
	'Box 62-4' : [new GLatLng(40.131531, -75.390411), new GLatLng(40.132153, -75.386253), new GLatLng(40.132252, -75.383934), new GLatLng(40.132446, -75.380844), new GLatLng(40.132381, -75.379341), new GLatLng(40.132481, -75.378181), new GLatLng(40.130711, -75.375008), new GLatLng(40.128933, -75.376793), new GLatLng(40.127193, -75.373940), new GLatLng(40.126030, -75.375160), new GLatLng(40.121189, -75.379898), new GLatLng(40.118187, -75.381233), new GLatLng(40.118137, -75.390717), new GLatLng(40.119270, -75.391380), new GLatLng(40.120518, -75.392471), new GLatLng(40.121468, -75.392799), new GLatLng(40.123108, -75.393250), new GLatLng(40.123604, -75.393417), new GLatLng(40.124912, -75.393379), new GLatLng(40.126423, -75.393204), new GLatLng(40.127094, -75.393227), new GLatLng(40.127426, -75.393356), new GLatLng(40.127670, -75.393356), new GLatLng(40.128063, -75.393394), new GLatLng(40.128525, -75.393272), new GLatLng(40.130032, -75.391914), new GLatLng(40.131531, -75.390411)],
	'Box 62-5' : [new GLatLng(40.130840, -75.401443), new GLatLng(40.138092, -75.393974), new GLatLng(40.142258, -75.389771), new GLatLng(40.140354, -75.387108), new GLatLng(40.139206, -75.385910), new GLatLng(40.136845, -75.383163), new GLatLng(40.132481, -75.378014), new GLatLng(40.132351, -75.381142), new GLatLng(40.132088, -75.386169), new GLatLng(40.131496, -75.390503), new GLatLng(40.131268, -75.394066), new GLatLng(40.131279, -75.397713), new GLatLng(40.130840, -75.401443)],
	'Box 62-6' : [new GLatLng(40.142193, -75.389687), new GLatLng(40.148819, -75.383247), new GLatLng(40.153248, -75.378700), new GLatLng(40.153488, -75.378654), new GLatLng(40.153980, -75.377930), new GLatLng(40.150276, -75.370331), new GLatLng(40.153687, -75.366554), new GLatLng(40.151489, -75.362732), new GLatLng(40.149277, -75.365135), new GLatLng(40.146786, -75.367798), new GLatLng(40.144127, -75.370499), new GLatLng(40.142879, -75.371658), new GLatLng(40.141273, -75.373291), new GLatLng(40.139767, -75.374840), new GLatLng(40.138847, -75.375778), new GLatLng(40.137894, -75.376678), new GLatLng(40.137402, -75.377151), new GLatLng(40.136745, -75.378311), new GLatLng(40.136154, -75.379684), new GLatLng(40.135696, -75.380928), new GLatLng(40.135433, -75.381493), new GLatLng(40.136681, -75.383293), new GLatLng(40.137829, -75.384232), new GLatLng(40.138912, -75.385353), new GLatLng(40.139832, -75.386467), new GLatLng(40.140587, -75.387543), new GLatLng(40.141373, -75.388741), new GLatLng(40.142193, -75.389687)],
	'Box 62-7' : [new GLatLng(40.153442, -75.366554), new GLatLng(40.157249, -75.374710), new GLatLng(40.153969, -75.377838), new GLatLng(40.150230, -75.370285), new GLatLng(40.153442, -75.366554)],
	'Box 62-8' : [new GLatLng(40.151478, -75.362862), new GLatLng(40.148983, -75.357887), new GLatLng(40.142456, -75.364326), new GLatLng(40.143208, -75.365952), new GLatLng(40.141472, -75.367584), new GLatLng(40.140488, -75.365952), new GLatLng(40.130592, -75.374924), new GLatLng(40.132004, -75.377197), new GLatLng(40.133465, -75.379257), new GLatLng(40.135433, -75.381447), new GLatLng(40.135925, -75.380463), new GLatLng(40.136253, -75.379730), new GLatLng(40.136581, -75.378738), new GLatLng(40.136974, -75.377930), new GLatLng(40.137665, -75.376900), new GLatLng(40.138519, -75.375999), new GLatLng(40.139275, -75.375313), new GLatLng(40.140488, -75.373940), new GLatLng(40.141537, -75.373032), new GLatLng(40.142750, -75.371658), new GLatLng(40.144161, -75.370499), new GLatLng(40.145737, -75.368912), new GLatLng(40.147308, -75.367325), new GLatLng(40.148720, -75.365784), new GLatLng(40.151478, -75.362862)],
	'Box 62-9' : [new GLatLng(40.129082, -75.372215), new GLatLng(40.129166, -75.372047), new GLatLng(40.131626, -75.369598), new GLatLng(40.138355, -75.362991), new GLatLng(40.147289, -75.354279), new GLatLng(40.149128, -75.358147), new GLatLng(40.142487, -75.364281), new GLatLng(40.143208, -75.366081), new GLatLng(40.141602, -75.367584), new GLatLng(40.140453, -75.365952), new GLatLng(40.134811, -75.371277), new GLatLng(40.133266, -75.372604), new GLatLng(40.131496, -75.374321), new GLatLng(40.130905, -75.375053), new GLatLng(40.130821, -75.375137), new GLatLng(40.130920, -75.375053), new GLatLng(40.130001, -75.373718), new GLatLng(40.129082, -75.372215)],
	'Box 62-10' : [new GLatLng(40.147190, -75.354408), new GLatLng(40.144096, -75.348999), new GLatLng(40.143177, -75.348183), new GLatLng(40.142750, -75.346985), new GLatLng(40.142159, -75.346085), new GLatLng(40.141502, -75.345139), new GLatLng(40.132381, -75.353806), new GLatLng(40.134186, -75.356300), new GLatLng(40.135139, -75.357925), new GLatLng(40.136124, -75.359604), new GLatLng(40.137699, -75.361832), new GLatLng(40.138058, -75.362648), new GLatLng(40.138256, -75.363075), new GLatLng(40.147190, -75.354408)],
	'Box 62-11' : [new GLatLng(40.132282, -75.353806), new GLatLng(40.130119, -75.356171), new GLatLng(40.129299, -75.356941), new GLatLng(40.128510, -75.357803), new GLatLng(40.127426, -75.358658), new GLatLng(40.126774, -75.359261), new GLatLng(40.126312, -75.359818), new GLatLng(40.124966, -75.361191), new GLatLng(40.123852, -75.362350), new GLatLng(40.123589, -75.362602), new GLatLng(40.129265, -75.372307), new GLatLng(40.130577, -75.370804), new GLatLng(40.131760, -75.369728), new GLatLng(40.135269, -75.366127), new GLatLng(40.138321, -75.363075), new GLatLng(40.137512, -75.361534), new GLatLng(40.136745, -75.360458), new GLatLng(40.135895, -75.359131), new GLatLng(40.134792, -75.357330), new GLatLng(40.134090, -75.355957), new GLatLng(40.132282, -75.353806)],
	'Box 62-12' : [new GLatLng(40.123589, -75.362602), new GLatLng(40.120964, -75.365227), new GLatLng(40.119324, -75.362389), new GLatLng(40.118370, -75.363251), new GLatLng(40.118076, -75.363548), new GLatLng(40.117714, -75.363808), new GLatLng(40.117123, -75.363632), new GLatLng(40.116795, -75.363632), new GLatLng(40.116268, -75.363632), new GLatLng(40.115780, -75.369690), new GLatLng(40.117451, -75.375954), new GLatLng(40.118076, -75.378487), new GLatLng(40.118271, -75.381271), new GLatLng(40.121159, -75.379898), new GLatLng(40.127232, -75.374153), new GLatLng(40.129101, -75.376984), new GLatLng(40.130512, -75.375313), new GLatLng(40.130821, -75.374969), new GLatLng(40.130447, -75.374451), new GLatLng(40.128738, -75.371407), new GLatLng(40.123589, -75.362602)],
	'Box 62-13' : [new GLatLng(40.116302, -75.363678), new GLatLng(40.115746, -75.359390), new GLatLng(40.115253, -75.355827), new GLatLng(40.114498, -75.353210), new GLatLng(40.113415, -75.350975), new GLatLng(40.112530, -75.349258), new GLatLng(40.111382, -75.346985), new GLatLng(40.110394, -75.345268), new GLatLng(40.109871, -75.345268), new GLatLng(40.109707, -75.345482), new GLatLng(40.109543, -75.345955), new GLatLng(40.109573, -75.347244), new GLatLng(40.109707, -75.348701), new GLatLng(40.109642, -75.349861), new GLatLng(40.109642, -75.350845), new GLatLng(40.109871, -75.351921), new GLatLng(40.110199, -75.353165), new GLatLng(40.110790, -75.354881), new GLatLng(40.111317, -75.356384), new GLatLng(40.111938, -75.357803), new GLatLng(40.112595, -75.359299), new GLatLng(40.113350, -75.361191), new GLatLng(40.113708, -75.362648), new GLatLng(40.114006, -75.365181), new GLatLng(40.114235, -75.366554), new GLatLng(40.114697, -75.367760), new GLatLng(40.115253, -75.368660), new GLatLng(40.115681, -75.369431), new GLatLng(40.115910, -75.369560), new GLatLng(40.115910, -75.368317), new GLatLng(40.116009, -75.367065), new GLatLng(40.116039, -75.365952), new GLatLng(40.116203, -75.364967), new GLatLng(40.116302, -75.363678)]
};

var zoneInfo = {
	'Box 62-1' : {'box': 1, 'usage': 'Residential', 'notable':'Valley Forge NHP, Betzwood Picnic Area, a portion of U.S. 422, The Lofts at Valley Forge, Riverview Landing'},
	'Box 62-2' : {'box': 2, 'usage': 'Residential', 'notable':'The Mews at Valley Forge'},
	'Box 62-3' : {'box': 3, 'usage': 'Commercial', 'notable':'Home Depot, Quest Diagnostics, Walmart'},
	'Box 62-4' : {'box': 4, 'usage': 'Residential with some commercial', 'notable':'Jefferson Fire Company, Montgomery County Youth Center, Genuardis Shopping Center, Westover Country Club'},
	'Box 62-5' : {'box': 5, 'usage': 'Residential with some commercial', 'notable':'Willowbrook, Jefferson Golf Course, Jefferson Villa, Main Street Shopping'},
	'Box 62-6' : {'box': 6, 'usage': 'Residential', 'notable':'Oakland Park'},
	'Box 62-7' : {'box': 7, 'usage': 'Commerical/Industrial', 'notable':'West Norriton Business Park'},
	'Box 62-8' : {'box': 8, 'usage': 'Residential', 'notable':'West Norriton Little League, Norristown Area High School'},
	'Box 62-9' : {'box': 9, 'usage': 'Residential', 'notable':'Norristown Area School District Admin Facilities, Stronybrook, Whitehall Elementary School'},
	'Box 62-10' : {'box': 10, 'usage': 'Public/Institutional', 'notable':'Norristown Farm Park, Norristown State Hospital'},
	'Box 62-11' : {'box': 11, 'usage': 'Residential with some commercial', 'notable':'Center Ave, Northridge Estates, Jefferson, Marshall Street Elementary, Westgate Arms, Westover Village, West Norriton Township Building'},
	'Box 62-12' : {'box': 12, 'usage': 'Residential', 'notable':'Riverside Cemetary, Montgomery Cemetary'},
	'Box 62-13' : {'box': 13, 'usage': 'Waterway/Industrial', 'notable':'Schuykill River, Barbadose Island'}
};

function initialize() {
	if (GBrowserIsCompatible()) {
		map = new GMap2(document.getElementById("map_canvas"));
    		map.setCenter(new GLatLng(40.132,-75.383), 13);
      		map.addControl(new GSmallZoomControl3D() );
      		map.addControl(new GMenuMapTypeControl()  );
      		addZones(3,.75);
	}
}

function addZones(heavy, opacity) {
	for (zone in zones) {
		// Draw Outline
		var msgHtml = '<b>Usage: </b>'+zoneInfo[zone]['usage']+'<br /><b>Indludes: </b>'+zoneInfo[zone]['notable']+'<br /><p></p><p></p><p></p>';
		var newZone = createZone(zone, msgHtml, zones[zone], heavy, opacity);
		for (addThis in newZone) {
			map.addOverlay(newZone[addThis]);
		}		
	}
}

function createZone(zone, msg, polygon, heavy, opacity) {
	// Info box text (html)
	var html = '<div class="map_head">'+zone+'</div><hr /><div class="map_text">'+msg+'</div>';
	
	// Create zone outline
	var outline = new GPolygon(polygon, "#f33f00", heavy, opacity, "#ff0000", 0);
	
	// Find Center of zone
	var bounds = outline.getBounds();
	
	// Create Zone marker
	var marker = new LabeledMarker(bounds.getCenter(), {icon: iconBlank , labelText: zoneInfo[zone]['box'], labelClass: 'map_label', labelOffset: new GSize(-6, -10)});
	
	// Add event listener for marker
	GEvent.addListener(marker, "click", function() {
		marker.openInfoWindowHtml(html, {maxWidth: 290});
	});
	
	// Add event listener for zone
	GEvent.addListener(outline, "click", function() {
		marker.openInfoWindowHtml(html, {maxWidth: 290});
	});
	
	return {'zone':outline,'marker':marker};
}
