var resizeRefresh = 0;
var currentHeight = 0;
var currentWidth = 0;
var mobilityMap;
var gotACookie;
window.onload=function() {
	// check for DOM
	if(!document.getElementById || !document.createTextNode){return;}
	getSize(true);
	loadPage();
}
function loadPage() {
	mobilityMap = new cgi_mapObj(document.getElementById('map'));
	var searchString = document.location.hash;
	// strip off the leading '?'
	searchString = searchString.substring(1);
	if (searchString.length > 0) {
		var nvPairs = searchString.split("&");
	} else {
		var nvPairs = "";
	}
	var value = "";
	for (i = 0; i < nvPairs.length; i++) {
		var nvPair = nvPairs[i].split("=");
		if (nvPair[0] == "loc") {
			value = nvPair[1];
		}
	}
	var coords = getLoc(value);
	mobilityMap.setlatlon(coords.lat,coords.long);
	mobilityMap.setzoom(coords.zoom);
	mobilityMap.setzoomrange(0,12);
	mobilityMap.setmaprestore(coords.lat,coords.long,'dd',coords.zoom);
	mobilityMap.add('zb',true);
	mobilityMap.add('sb',true);
	mobilityMap.add('cr','Copyright &copy; 2009 State of Michigan.&nbsp;&nbsp;Policies:&nbsp;<a href="http://www.michigan.gov/mdot/0,1607,7-151-12989-2301--,00.html" target="_blank">Security</a>&nbsp;|&nbsp;<a href="http://www.michigan.gov/mdot/0,1607,7-151-12987-2090--,00.html" target="_blank">Accessibility</a>&nbsp;|&nbsp;<a href="http://www.michigan.gov/mdot/0,1607,7-151-12985-2089--,00.html" target="_blank">Link</a>&nbsp;|&nbsp;<a href="http://www.michigan.gov/mdot/0,1607,7-151-12977-2088--,00.html" target="_blank">Privacy</a>');
	mobilityMap.add('lcarpnts',true);
	mobilityMap.add('mobpnts',true);
//		mobilityMap.drawlcars(true);
//		mobilityMap.add('traffic_sensors',prefLayerSpeed);
	mobilityMap.getmap();
}
function getSize(firsttime) {
	var map = document.getElementById("map");
	var db = document.getElementById("drivebody");
	var lay = document.getElementById("layersdiv");
	var hd = document.getElementById("helpDiv");
	var hdrdiv = document.getElementById("hdr");
	if (navigator.userAgent.indexOf("Gecko") != -1) {
		hei = window.innerHeight;
		wid = window.innerWidth;
		map.style.width = Math.max(633, wid - 160) + "px";
		map.style.height = Math.max(340, hei-105) + "px";
		lay.style.left = Math.max(462, wid - 294) + "px";
		hd.style.left = Math.max(350, wid - 446) + "px";
	} else if (navigator.userAgent.indexOf("Opera") != -1) {
		hei = window.innerHeight;
		wid = window.innerWidth;
		map.style.width = Math.max(578, wid - 160) + "px";
		map.style.height = Math.max(340, hei-105) + "px";
		lay.style.left = Math.max(384, wid - 306) + "px";
		hd.style.left = Math.max(195, wid - 465) + "px";
	} else {
		hei = document.documentElement.clientHeight;
		wid = document.documentElement.clientWidth;
		hdrdiv.style.width = Math.max(788, wid) + "px";
		/*db.style.width = Math.max(788, wid) + "px";*/
		map.style.width = Math.max(624, wid - 160) + "px";
		map.style.height = Math.max(338, hei-105) + "px";
		lay.style.left = Math.max(434, wid - 294) + "px";
		hd.style.left = Math.max(341, wid - 446) + "px";
	}
	if (firsttime) {
		currentHeight = hei;
		currentWidth = wid;
	} else {
		clearInterval(resizeRefresh);
		resizeRefresh = setInterval("resizeMapReload()", 3000);
	}
}
function resizeMapReload () {
	var wid = 0;
	var hei = 0;
	if (navigator.userAgent.indexOf("Gecko") != -1) {
		hei = window.innerHeight;
		wid = window.innerWidth;
	} else {
		hei = document.documentElement.clientHeight;
		wid = document.documentElement.clientWidth;
	}
	if ((wid != currentWidth) || (hei != currentHeight)) {
		currentWidth = wid;
		currentHeight = hei;
		mobilityMap.getmap();
	}
	clearInterval(resizeRefresh);
}
function loadGoto(loc) {
	var coords = getLoc(loc);
	if (coords.zoom >= 0) {
		mobilityMap.setlatlon(coords.lat,coords.long);
		document.getElementById(mobilityMap.divID + '_tickmark' + mobilityMap.mapZoomScale()).src = mobilityMap.skin() + 'tickmark.gif';
		document.getElementById(mobilityMap.divID + '_tickmark' + coords.zoom).src = mobilityMap.skin() + 'tickmark_on.gif';
		mobilityMap.setzoom(coords.zoom);
		mobilityMap.getmap();
	}
	document.getElementById("goto").options[0].selected = true;
}
function getLoc(loc) {
	var objCoords = new Object();
	switch(loc) {
		case 'm': // My View
		case '0': // My View
		case 0: // My View
			if (gotACookie) {
				objCoords = {lat:prefLatitude, long:prefLongitude, zoom:prefZoomLevel};
			} else {
				alert ("You need to save a view first.");
				if (loc == "m") {
					// default to Detroit
					objCoords = {lat:42.388473, long:-83.318253, zoom:3};
				} else {
					objCoords = {lat:0, long:0, zoom:-1};
				}
			}
			break;	
		case '1': // Alcona (x-west-to-east,y-south-to-north,zoom)
		case 1: // Alcona (x-west-to-east,y-south-to-north,zoom)
			objCoords = {lat:44.68412, long:-83.578888, zoom:4};
			break;	
		case '2': // Alger
		case 2: // Alger
			objCoords = {lat:46.424568, long:-86.490311, zoom:4};
			break;	
		case '3': // Allegan
		case 3: // Allegan
			objCoords = {lat:42.593811, long:-85.908432, zoom:4};
			break;	
		case '4': // Alpena
		case 4: // Alpena
			objCoords = {lat:45.03175, long:-83.574821, zoom:4};
			break;	
		case '5': // Antrim
		case 5: // Antrim
			objCoords = {lat:45.012558, long:-85.145691, zoom:4};
			break;	
		case '6': // Arenac
		case 6: // Arenac
			objCoords = {lat:44.137821, long:-83.865417, zoom:4};
			break;	
		case '7': // Baraga
		case 7: // Baraga
			objCoords = {lat:46.693081, long:-88.335381, zoom:4};
			break;	
		case '8': // Barry
		case 8: // Barry
			objCoords = {lat:42.59507, long:-85.308548, zoom:4};
			break;	
		case '9': // Bay
		case 9: // Bay
			objCoords = {lat:43.73777, long:-83.945007, zoom:4};
			break;	
		case '10': // Benzie
		case 10: // Benzie
			objCoords = {lat:44.645821, long:-86.03698, zoom:4};
			break;	
		case '11': // Berrien
		case 11: // Berrien
			objCoords = {lat:42.0014, long:-86.52388, zoom:4};
			break;	
		case '12': // Branch
		case 12: // Branch
			objCoords = {lat:41.916161, long:-85.05928, zoom:4};
			break;	
		case '13': // Calhoun
		case 13: // Calhoun
			objCoords = {lat:42.246288, long:-85.004578, zoom:4};
			break;	
		case '14': // Cass
		case 14: // Cass
			objCoords = {lat:41.915169, long:-85.992661, zoom:4};
			break;	
		case '15': // Charlevoix
		case 15: // Charlevoix
			objCoords = {lat:45.244221, long:-85.06176, zoom:4};
			break;	
		case '16': // Cheboygan
		case 16: // Cheboygan
			objCoords = {lat:45.464711, long:-84.469131, zoom:4};
			break;	
		case '17': // Chippewa
		case 17: // Chippewa
			objCoords = {lat:46.35939, long:-84.568642, zoom:4};
			break;	
		case '18': // Clare
		case 18: // Clare
			objCoords = {lat:43.988949, long:-84.847397, zoom:4};
			break;	
		case '19': // Clinton
		case 19: // Clinton
			objCoords = {lat:43.034879, long:-84.600647, zoom:4};
			break;	
		case '20': // Crawford
		case 20: // Crawford
			objCoords = {lat:44.682968, long:-84.610451, zoom:4};
			break;	
		case '21': // Delta
		case 21: // Delta
			objCoords = {lat:45.854671, long:-86.913399, zoom:4};
			break;	
		case '22': // Dickinson
		case 22: // Dickinson
			objCoords = {lat:45.968856, long:-87.875977, zoom:4};
			break;	
		case '23': // Eaton
		case 23: // Eaton
			objCoords = {lat:42.596008, long:-84.838043, zoom:4};
			break;	
		case '24': // Emmet
		case 24: // Emmet
			objCoords = {lat:45.530022, long:-84.92469, zoom:4};
			break;	
		case '25': // Genesee
		case 25: // Genesee
			objCoords = {lat:43.001839, long:-83.692749, zoom:4};
			break;	
		case '26': // Gladwin
		case 26: // Gladwin
			objCoords = {lat:43.987679, long:-84.386864, zoom:4};
			break;	
		case '27': // Gogebic
		case 27: // Gogebic
			objCoords = {lat:46.43153, long:-89.704376, zoom:4};
			break;	
		case '28': // Grand Traverse
		case 28: // Grand Traverse
			objCoords = {lat:44.75182, long:-85.575371, zoom:4};
			break;	
		case '29': // Gratiot
		case 29: // Gratiot
			objCoords = {lat:43.291851, long:-84.60688, zoom:4};
			break;	
		case '30': // Hillsdale
		case 30: // Hillsdale
			objCoords = {lat:41.88475, long:-84.59343, zoom:4};
			break;	
		case '31': // Houghton
		case 31: // Houghton
			objCoords = {lat:46.852989, long:-88.609818, zoom:4};
			break;	
		case '32': // Huron
		case 32: // Huron
			objCoords = {lat:43.869091, long:-83.042099, zoom:4};
			break;	
		case '33': // Ingham
		case 33: // Ingham
			objCoords = {lat:42.599251, long:-84.381721, zoom:4};
			break;	
		case '34': // Ionia
		case 34: // Ionia
			objCoords = {lat:42.918714, long:-85.074577, zoom:4};
			break;	
		case '35': // Iosco
		case 35: // Iosco
			objCoords = {lat:44.336712, long:-83.601639, zoom:4};
			break;	
		case '36': // Iron
		case 36: // Iron
			objCoords = {lat:46.170631, long:-88.554062, zoom:4};
			break;	
		case '37': // Isabella
		case 37: // Isabella
			objCoords = {lat:43.640549, long:-84.847382, zoom:4};
			break;	
		case '38': // Jackson
		case 38: // Jackson
			objCoords = {lat:42.247452, long:-84.424698, zoom:4};
			break;	
		case '39': // Kalamazoo
		case 39: // Kalamazoo
			objCoords = {lat:42.245312, long:-85.529846, zoom:4};
			break;	
		case '40': // Kalkaska
		case 40: // Kalkaska
			objCoords = {lat:44.684891, long:-85.090599, zoom:4};
			break;	
		case '41': // Kent
		case 41: // Kent
			objCoords = {lat:43.031391, long:-85.550079, zoom:4};
			break;	
		case '42': // Keweenaw
		case 42: // Keweenaw
			objCoords = {lat:47.340111, long:-88.111061, zoom:4};
			break;	
		case '43': // Lake
		case 43: // Lake
			objCoords = {lat:43.991009, long:-85.802231, zoom:4};
			break;	
		case '44': // Lapeer
		case 44: // Lapeer
			objCoords = {lat:43.10358, long:-83.222214, zoom:4};
			break;	
		case '45': // Leelanau
		case 45: // Leelanau
			objCoords = {lat:44.815202, long:-85.706757, zoom:4};
			break;	
		case '46': // Lenawee
		case 46: // Lenawee
			objCoords = {lat:41.89439, long:-84.063377, zoom:4};
			break;	
		case '47': // Livingston
		case 47: // Livingston
			objCoords = {lat:42.603401, long:-83.911247, zoom:4};
			break;	
		case '48': // Luce
		case 48: // Luce
			objCoords = {lat:46.499889, long:-85.550987, zoom:4};
			break;	
		case '49': // Mackinac
		case 49: // Mackinac
			objCoords = {lat:46.041279, long:-85.039413, zoom:4};
			break;	
		case '50': // Macomb
		case 50: // Macomb
			objCoords = {lat:42.67572, long:-82.90432, zoom:4};
			break;	
		case '51': // Manistee
		case 51: // Manistee
			objCoords = {lat:44.19815, long:-86.103218, zoom:4};
			break;	
		case '52': // Marquette
		case 52: // Marquette
			objCoords = {lat:46.448551, long:-87.616661, zoom:4};
			break;	
		case '53': // Mason
		case 53: // Mason
			objCoords = {lat:43.997211, long:-86.276962, zoom:4};
			break;	
		case '54': // Mecosta
		case 54: // Mecosta
			objCoords = {lat:43.673617, long:-85.32383, zoom:4};
			break;	
		case '55': // Menominee
		case 55: // Menominee
			objCoords = {lat:45.540352, long:-87.576286, zoom:4};
			break;	
		case '56': // Midland
		case 56: // Midland
			objCoords = {lat:43.64727, long:-84.387299, zoom:4};
			break;	
		case '57': // Missaukee
		case 57: // Missaukee
			objCoords = {lat:44.33045, long:-85.094559, zoom:4};
			break;	
		case '58': // Monroe
		case 58: // Monroe
			objCoords = {lat:41.90884, long:-83.477669, zoom:4};
			break;	
		case '59': // Montcalm
		case 59: // Montcalm
			objCoords = {lat:43.292893, long:-85.199043, zoom:4};
			break;	
		case '60': // Montmorency
		case 60: // Montmorency
			objCoords = {lat:45.028412, long:-84.12635, zoom:4};
			break;	
		case '61': // Muskegon
		case 61: // Muskegon
			objCoords = {lat:43.294922, long:-86.126007, zoom:4};
			break;	
		case '62': // Newaygo
		case 62: // Newaygo
			objCoords = {lat:43.555133, long:-85.802689, zoom:4};
			break;	
		case '63': // Oakland
		case 63: // Oakland
			objCoords = {lat:42.665369, long:-83.386391, zoom:4};
			break;	
		case '64': // Oceana
		case 64: // Oceana
			objCoords = {lat:43.643459, long:-86.289658, zoom:4};
			break;	
		case '65': // Ogemaw
		case 65: // Ogemaw
			objCoords = {lat:44.334789, long:-84.127022, zoom:4};
			break;	
		case '66': // Ontonagon
		case 66: // Ontonagon
			objCoords = {lat:46.681919, long:-89.376259, zoom:4};
			break;	
		case '67': // Osceola
		case 67: // Osceola
			objCoords = {lat:43.989231, long:-85.325813, zoom:4};
			break;	
		case '68': // Oscoda
		case 68: // Oscoda
			objCoords = {lat:44.681873, long:-84.129356, zoom:4};
			break;	
		case '69': // Otsego
		case 69: // Otsego
			objCoords = {lat:45.028339, long:-84.61219, zoom:4};
			break;	
		case '70': // Ottawa
		case 70: // Ottawa
			objCoords = {lat:42.985451, long:-86.026848, zoom:4};
			break;	
		case '71': // Presque Isle
		case 71: // Presque Isle
			objCoords = {lat:45.412258, long:-83.816833, zoom:4};
			break;	
		case '72': // Roscommon
		case 72: // Roscommon
			objCoords = {lat:44.335899, long:-84.61097, zoom:4};
			break;	
		case '73': // Saginaw
		case 73: // Saginaw
			objCoords = {lat:43.348549, long:-84.032333, zoom:4};
			break;	
		case '74': // Sanilac
		case 74: // Sanilac
			objCoords = {lat:43.422237, long:-82.811836, zoom:4};
			break;	
		case '75': // Schoolcraft
		case 75: // Schoolcraft
			objCoords = {lat:46.131321, long:-86.239738, zoom:4};
			break;	
		case '76': // Shiawassee
		case 76: // Shiawassee
			objCoords = {lat:42.954159, long:-84.145264, zoom:4};
			break;	
		case '77': // St. Clair
		case 77: // St. Clair
			objCoords = {lat:42.888168, long:-82.707237, zoom:4};
			break;	
		case '78': // St. Joseph
		case 78: // St. Joseph
			objCoords = {lat:41.915192, long:-85.541702, zoom:4};
			break;	
		case '79': // Tuscola
		case 79: // Tuscola
			objCoords = {lat:43.475151, long:-83.401672, zoom:4};
			break;	
		case '80': // Van Buren
		case 80: // Van Buren
			objCoords = {lat:42.24527, long:-86.063217, zoom:4};
			break;	
		case '81': // Washtenaw
		case 81: // Washtenaw
			objCoords = {lat:42.253297, long:-83.836731, zoom:4};
			break;	
		case '82': // Wayne
		case 82: // Wayne
			objCoords = {lat:42.240902, long:-83.210899, zoom:4};
			break;	
		case '83': // Wexford
		case 83: // Wexford
			objCoords = {lat:44.338631, long:-85.577942, zoom:4};
			break;	
		default: // Michigan
			objCoords = {lat:43.742691, long:-84.62162, zoom:1};
			break;	
	}
	return objCoords;
}
function centerMap(x,y) {
	var scale = 7;
	mobilityMap.setcenter(x,y);
	document.getElementById(mobilityMap.divID + '_tickmark' + mobilityMap.mapZoomScale()).src = mobilityMap.skin() + 'tickmark.gif';
	document.getElementById(mobilityMap.divID + '_tickmark' + scale).src = mobilityMap.skin() + 'tickmark_on.gif';
	mobilityMap.setzoom(scale);
	mobilityMap.getmap();
	if (document.getElementById('cbMajorProjects').checked == true) {
		document.getElementById('cbMajorProjects').checked = false;
		mobilityMap.drawcmap(false);
		if (document.getElementById('cbLaneClosures').checked) mobilityMap.drawlcars(true);
		if (document.getElementById('cbCurrentSpeed').checked) mobilityMap.drawsensors(true);
		if (document.getElementById('cbMessageSigns').checked) mobilityMap.markerdisplay('traffic_messages',true);
		document.getElementById('cbLaneClosures').disabled = false;
		document.getElementById('cbCameras').disabled = false;
		document.getElementById('cbCurrentSpeed').disabled = false;
		document.getElementById('cbIncidents').disabled = false;
		document.getElementById('cbMessageSigns').disabled = false;
	}
	document.getElementById('cbCameras').checked = true;
	mobilityMap.markerdisplay('traffic_cameras',true);
	document.getElementById('cbIncidents').checked = true;
	mobilityMap.markerdisplay('traffic_incidents',true);
}
function toggleLayers() {
	toggleTab("layersdiv");
	document.getElementById('helpDiv').style.display = "";
	document.getElementById('ssrDiv').style.display = "";
}
function toggleHelp() {
	toggleTab("helpDiv");
	document.getElementById('layersdiv').style.display = "";
	document.getElementById('ssrDiv').style.display = "";
}
function toggleSsr() {
	toggleTab("ssrDiv");
	document.getElementById('layersdiv').style.display = "";
	document.getElementById('helpDiv').style.display = "";
}
function toggleTab(whichLayer){
	if (document.getElementById){// this is the way the standards work
		var style2 = document.getElementById(whichLayer).style;
		style2.display = style2.display ? "" : "block";
	}
	else if (document.all){// this is the way old msie versions work
		var style2 = document.all[whichLayer].style;
		style2.display = style2.display? "" : "block";
	}
	else if (document.layers){// this is the way nn4 works
		var style2 = document.layers[whichLayer].style;
		style2.display = style2.display? "" : "block";
	}
}
function toggleMobility(obj) {
	if(obj.checked) {
		mobilityMap.drawcmap(true);
	} else {
		mobilityMap.drawcmap(false);
	}
}
function toggleLcars(obj) {
	if(obj.checked) {
		mobilityMap.drawlcars(true);
	} else {
		mobilityMap.drawlcars(false);
	}
}
