var camRefresh = 0;
var MAXREFRESHES = 30;
var PUBTOKEN;
var refreshesLeft = MAXREFRESHES;
var refCamNum = 0;
var refCamNumTL = 0;
var refCamURLTL = "";
var refCamDis = 0;
var refCamGroup = "";
var refCamId = 0;
var zoomCamId = 0;
var x = document.domain.split('.')[0];
var arrGlbCamList = new Array();
var arrMCCamNums = new Array();
var arrTLCamNums = new Array();
var arrTLCamDis = new Array();
var camTSMsg = "";
var jar = new CookieJar({  
	expires:7776000,   // seconds   
	path: '/'  
});
if (jar.get("firtTimeUse") != null) {
	jar.put("firtTimeUse",{first:1});
};
if (jar.get("MDOTCameraList") != null) {
	jar.put("MDOTCameraList",jar.get("MDOTCameraList"));
};
function setPubtoken (tl_pubtoken, jsvar) {
	arrMCCamNums = jsvar["mc_video"];
	arrTLCamNums = jsvar["tl_id"];
	arrTLFullImage = jsvar["tl_fullimage"];
	arrTLCamDis = jsvar["tl_cam_disabled"];
	PUBTOKEN = tl_pubtoken;
};
function loadCamImg(camNum, camGroup, camId, refresh) {
	var arrloc = 0;
	for(var i=0;i<arrMCCamNums.length;i++) {
		if (arrMCCamNums[i] == camNum) {
			arrloc = i;
			break;
		}
	}
	var camNumTL = arrTLCamNums[arrloc];
	var camURLTL = arrTLFullImage[arrloc];
	var camDis = arrTLCamDis[arrloc];
	var camDiv = document.getElementById("camImg" + camGroup + camId);
	var camDDL = document.getElementById("chooseCam" + camGroup + camId);
	if (refresh) {
		refreshesLeft--;
		refCamNum = camNum;
		refCamNumTL = camNumTL;
		refCamURLTL = camURLTL;
		refCamDis = camDis;
		refCamGroup = camGroup;
		refCamId = camId;
	} else {
		refreshesLeft = MAXREFRESHES;
	}
	stopTimer();
	if ((camGroup == 'p') && (camId == 2)) {
	} else {
		arrGlbCamList = getCamerasFromCookie(jar);
		var ac = document.getElementById("addCam"+camGroup+camId);
		var cilm = document.getElementById("camInListMsg"+camGroup+camId);
		if ((arrGlbCamList.length > 0) && (camNum != 0) && (arrGlbCamList.toString().indexOf(camNum) >= 0)) {
			var camPosInList = 0;
			for (i=0;i<arrGlbCamList.length;i++) {
				if (arrGlbCamList[i] == camNum) {
					camPosInList = i + 1;
					break;
				}
			}
			ac.style.display = "none";
			var oc = camNum + ',"' + camGroup + '",' + camId;
			cilm.innerHTML = "This is camera number " + camPosInList + " in your personalized list.  <input type='button' class='buttn1' value='Remove' onclick='deletePersonalizedCamera(" + oc + ");' />";
			cilm.style.display = "block";
		} else if (camNum == 0){
			ac.style.display = "none";
			cilm.style.display = "none";
		} else {
			ac.style.display = "block";
			cilm.style.display = "none";
		}
	}
	if (camNum == 0) {
		camDiv.src = "images/select_a_camera.gif";
		camDiv.alt = "Select a Camera";
		camDiv.title = "Select a Camera"; 
		document.getElementById("refMsg"+camGroup).style.display = "none";	
		camDDL.selectedIndex = 0;	
		document.getElementById("camReplay").style.display = "none";	
	} else if ((x == 'wastest') || (x == 'mdotwas1') || (x == 'apps') || (x == 'localhost')) {
		if (refreshesLeft < 1) {
			stopTimer();
			document.getElementById("camReplay").style.display = "block";	
		} else if (camDis == "1") {
			camDiv.src = "images/missing.gif";
			stopTimer();
			document.getElementById("camReplay").style.display = "none";	
			document.getElementById("refMsg"+camGroup).style.display = "none";
			cilm.innerHTML = "this cam is not working";
			cilm.style.display = "block";
		} else {
			var now = new Date();
			document.getElementById("camReplay").style.display = "none";	
			camDiv.src = camURLTL + "&" + now.getTime();
			camDiv.alt = "Camera Image for " + camDDL.options[camDDL.selectedIndex].text;
			camDiv.title = "Camera Image for " + camDDL.options[camDDL.selectedIndex].text;
			camDiv.onerror = function (evt) {
				camDiv.src = "images/missing.gif";
				stopTimer();
				document.getElementById("refMsg"+camGroup).style.display = "none";
			};
			camDiv.onload = function (evt) {
				stopTimer();
				if ((camDiv.src.indexOf("images/missing.gif") < 0) && (camDiv.src.indexOf("images/select_a_camera.gif") < 0)) {
					camRefresh = setInterval("loadCamImg('" + camNum + "', '" + camGroup + "', " + camId + ", true)", 2000);		
					document.getElementById("refMsg"+camGroup).style.display = "block";	
				} else {
					document.getElementById("refMsg"+camGroup).style.display = "none";	
				}
			};
		}
	} else {
		camDiv.src = "images/missing.gif";
		stopTimer();
		document.getElementById("refMsg"+camGroup).style.display = "none";
	}
};
function restartCam() {
	refreshesLeft = MAXREFRESHES;
	loadCamImg(refCamNum, refCamGroup, refCamId, true);
};
function activateCamera(camGroup, camId, camRte) {
	var camImg;
	var camImgClose;
	switch (camGroup) {
		case "d":
			loadCamImg("0",camGroup,camId,false);
			for(i=1;i<8;i++) {
				document.getElementById("camera"+camGroup+i).style.display = "none";
				document.getElementById("shield"+camGroup+i).className = "shieldNotSelected";
				imgSrc = document.getElementById("shieldImg"+camGroup+i).src.replace("_selected.gif", ".gif");
				document.getElementById("shieldImg"+camGroup+i).src = imgSrc;
			}
			document.getElementById("shield"+camGroup+camId).className = "shieldSelected";
			document.getElementById("shieldImg"+camGroup+camId).src = "images/" + camRte + "_selected.gif";
			break;
		case "gr":
			loadCamImg("0",camGroup,camId,false);
			for(i=1;i<4;i++) {
				document.getElementById("camera"+camGroup+i).style.display = "none";
				document.getElementById("shield"+camGroup+i).className = "shieldNotSelected";
				imgSrc = document.getElementById("shieldImg"+camGroup+i).src.replace("_selected.gif", ".gif");
				document.getElementById("shieldImg"+camGroup+i).src = imgSrc;
			}
			document.getElementById("shield"+camGroup+camId).className = "shieldSelected";
			document.getElementById("shieldImg"+camGroup+camId).src = "images/" + camRte + "_selected.gif";
			break;
		case "other":
			loadCamImg("0",camGroup,camId,false);
			/*
			for(i=1;i<4;i++) {
				document.getElementById("camera"+camGroup+i).style.display = "none";
				document.getElementById("shield"+camGroup+i).className = "shieldNotSelected";
				imgSrc = document.getElementById("shieldImg"+camGroup+i).src.replace("_selected.gif", ".gif");
				document.getElementById("shieldImg"+camGroup+i).src = imgSrc;
			}
			document.getElementById("shield"+camGroup+camId).className = "shieldSelected";
			document.getElementById("shieldImg"+camGroup+camId).src = "images/" + camRte + "_selected.gif";
			*/
			break;
		case "p":
			stopTimer();
			arrGlbCamList = getCamerasFromCookie(jar);
			if (arrGlbCamList.length == 0) {
				document.getElementById("persCamHelp").style.display = "block";
				document.getElementById("clrAll").style.display = "none";
				document.getElementById("camMsg").style.display = "none";
				document.getElementById("refbtn").style.display = "none";
			} else {
				document.getElementById("camBGBlocker").style.display="none";
				document.getElementById("camzoom").style.display="none";
				document.getElementById("camzoomReplay").style.display = "none";	
				document.getElementById("persCamHelp").style.display = "none";
				document.getElementById("clrAll").style.display = "block";
				document.getElementById("camMsg").style.display = "block";
				document.getElementById("refbtn").style.display = "block";
			}
			for(i=0;i<9;i++) {
				camImg = document.getElementById("camImgp1"+i);
				camImgClose = document.getElementById("camImgp1"+i+"Close");
				if (arrGlbCamList.length == 0) {
					camImg.src = "";
					camImg.style.display = "none";
					camImgClose.style.display = "none";
				} else {
					camImg.style.display = "block";
					if (arrGlbCamList.length <= i) {
						camImg.src = "images/spacer.gif";
						camImg.style.cursor = "auto";
						camImg.style.title = "";
						camImgClose.style.display = "none";
					} else {
						var now = new Date();
						camImgClose.style.display = "block";
						camImgClose.onclick = function(event)
						{ 
							if (deletePersonalizedCamera(arrGlbCamList[this.id.substr(8,1)])) {
								activateCamera('p', 1, 'M039');
							}
						};
						var arrloc = 0;
						for(var j=0;j<arrMCCamNums.length;j++) {
							if (arrMCCamNums[j] == arrGlbCamList[i]) {
								arrloc = j;
								break;
							}
						}
						camImg.src = arrTLFullImage[arrloc] + "&" + now.getTime();
						camImg.title = "Click to zoom in.";
						camImg.style.cursor = "pointer";
 					}
				}
			}
			var d = new Date();
			camTSMsg = "Camera image timestamp: " + d.toLocaleString();
			document.getElementById("camMsg").innerHTML = camTSMsg;
			break;
		default:
			break;
	}
	document.getElementById("camera"+camGroup+camId).style.display = "block";
	document.getElementById("camReplay").style.display = "none";
};
function stopTimer() {
	if (camRefresh != 0) {
		clearInterval(camRefresh);
		camRefresh = 0;
	}
};
function getCamerasFromCookie(j) {
	var arrCams;
	(j.get("MDOTCameraList") == null)?arrCams = new Array():arrCams = j.get("MDOTCameraList").cameras;
	return arrCams
};
function showZoomCam (id) {
	if (document.getElementById("camImgp1" + id).src.indexOf("spacer.gif") >= 0) return;
	stopTimer();
	if (document.getElementById("camzoom").style.display=="block") {
		refreshesLeft--;
	} else {
		refreshesLeft = MAXREFRESHES;
		document.getElementById("camBGBlocker").style.display="block";
		document.getElementById("camzoom").style.display="block";
		zoomCamId = id;
	}
	if (refreshesLeft < 0) {
		document.getElementById("camzoomReplay").style.display = "block";	
	} else {
		arrGlbCamList = getCamerasFromCookie(jar);
		zoomcam = document.getElementById("camImgp2");
		var arrloc = 0;
		for(var i=0;i<arrMCCamNums.length;i++) {
			if (arrMCCamNums[i] == arrGlbCamList[id]) {
				arrloc = i;
				break;
			}
		}
		var now = new Date();
		zoomcam.src = arrTLFullImage[arrloc] + "&" + now.getTime();
		camRefresh = setInterval("showZoomCam(" + id + ")", 2000);	
		document.getElementById("camMsg").innerHTML = "Camera image timestamp: " + now.toLocaleString();
	}
};
function hideZoomCam () {
	stopTimer();
	document.getElementById('camzoom').style.display='none';
	document.getElementById('camImgp2').src="images/imageloading.gif";
	document.getElementById('camBGBlocker').style.display='none';
	document.getElementById("camMsg").innerHTML = camTSMsg;
	document.getElementById("camzoomReplay").style.display = "none";	
};
function restartZoomCam() {
	document.getElementById("camzoom").style.display="none";
	document.getElementById("camzoomReplay").style.display = "none";	
	showZoomCam(zoomCamId);
};
function testPersistentCookie () {
	jar.put("testPersistentCookie", "Enabled");
	if (jar.get("testPersistentCookie")=="Enabled") {
		jar.remove("testPersistentCookie");
		return true;
	} else {
		return false;
	}
};
function eraseCookie() {
	var answer = confirm("You have chosen to remove all of your selected cameras from your personalized list.  Are you sure?");
	if (answer) {
		jar.remove("MDOTCameraList");
		arrGlbCamList = null;
		activateCamera('p', 1, 'M039');
		alert("All cameras removed from your personalized list.");
	}
};
function getAllValues() {
	arrGlbCamList = getCamerasFromCookie(jar);
	alert(arrGlbCamList.length);
	alert(arrGlbCamList.toString());
};
function addPersonalizedCamera(camGroup, camId) {
	if (!testPersistentCookie()) {
		alert ("You currently have cookies disabled.  Please check your browser settings and enable persistent cookies.");
		return;
	}
	cc = document.getElementById("chooseCam" + camGroup + camId);
	if (cc.selectedIndex == 0) return;
	camNum = cc.options[cc.selectedIndex].value;
	arrGlbCamList = getCamerasFromCookie(jar);
	if (jar.get("firtTimeUse") == null) {
		var answer = confirm("In order to create a personalized list of cameras, a cookie must be written to your pc.  If you are unsure or do not want the cookie written, click cancel. You can read our privacy policy using the link at the bottom of the page.");
		if (!answer) {
			return;
		}
		jar.put("firtTimeUse",{first:1});
		arrGlbCamList.push(camNum);
		jar.put("MDOTCameraList",{cameras:arrGlbCamList});
		document.getElementById("addCam"+camGroup+camId).style.display = "none";
		var oc = camNum + ',"' + camGroup + '",' + camId;
		document.getElementById("camInListMsg"+camGroup+camId).innerHTML = "This is camera number 1 in your personalized list.  <input type='button' class='buttn1' value='Remove' onclick='deletePersonalizedCamera(" + oc + ");' />";
		document.getElementById("camInListMsg"+camGroup+camId).style.display = "block";
		alert ("Camera added to your list.");
	} else { 
		if (arrGlbCamList.length > 8) {
			alert("You have the maximum of 9 cameras currently in your list.  If you want this camera added to your list, you must remove a camera first.");
		} else {
			if (arrGlbCamList.toString().indexOf(camNum) >= 0) {
				alert("This camera is already in your list.");
			} else {
				arrGlbCamList.push(camNum);
				jar.put("MDOTCameraList",{cameras:arrGlbCamList});
				alert ("Camera added to your list.");
				var camPosInList = arrGlbCamList.length;
				document.getElementById("addCam"+camGroup+camId).style.display = "none";
				document.getElementById("camInListMsg"+camGroup+camId).innerHTML = "This is camera number " + camPosInList + " in your personalized list.  <input type='button' class='buttn1' value='Remove' onclick='deletePersonalizedCamera(" + camNum + ");' />";
				document.getElementById("camInListMsg"+camGroup+camId).style.display = "block";
			}
		}
	}
};
function deletePersonalizedCamera(camNum, camGroup, camId) {
	if (!testPersistentCookie()) {
		alert ("You currently have cookies disabled.  Please check your browser settings and enable persistent cookies.");
		return;
	}
	var answer = confirm("Remove this camera from your personalized list.  Are you sure?");
	if (answer) {
		arrGlbCamList = getCamerasFromCookie(jar);
		for (i=0;i<arrGlbCamList.length;i++) {
			if (arrGlbCamList[i] == camNum) {
				arrGlbCamList.splice(i,1);
			}
		}
		if (arrGlbCamList.length > 0) {
			jar.put("MDOTCameraList",{cameras: arrGlbCamList});
		} else {
			jar.remove("MDOTCameraList");
			arrGlbCamList = null;
		}
		if (camId) {
			document.getElementById("addCam"+camGroup+camId).style.display = "block";
			document.getElementById("camInListMsg"+camGroup+camId).style.display = "none";
		}
		return true;
	} else {
		return false;
	}
};
function viewDetroitCams() {
	if (document.getElementById("detroitCams").style.display == "none") {
		document.getElementById("helpDiv").style.display = "none";
		helpdisp = "none";
		document.getElementById("myCams").style.display = "none";
		document.getElementById("grCams").style.display = "none";
		document.getElementById("detroitCams").style.display = "block";
		document.getElementById("otherCams").style.display = "none";
		activateCamera('d', 1, 'I275');
	}
};
function viewMyCams() {
	if (document.getElementById("myCams").style.display == "none") {
		if (!testPersistentCookie()) {
			alert ("You currently have cookies disabled.  Please check your browser settings and enable persistent cookies.");
			(document.getElementById("grCams").style.display == "block")?viewGRCams():viewDetroitCams();
			return;
		}
		document.getElementById("helpDiv").style.display = "none";
		helpdisp = "none";
		document.getElementById("detroitCams").style.display = "none";
		document.getElementById("grCams").style.display = "none";
		document.getElementById("myCams").style.display = "block";
		document.getElementById("otherCams").style.display = "none";
		activateCamera('p', 1, 'M039');
	}
};
function viewGRCams() {
	if (document.getElementById("grCams").style.display == "none") {
		document.getElementById("helpDiv").style.display = "none";
		helpdisp = "none";
		document.getElementById("myCams").style.display = "none";
		document.getElementById("detroitCams").style.display = "none";
		document.getElementById("grCams").style.display = "block";
		document.getElementById("otherCams").style.display = "none";
		activateCamera('gr', 1, 'I196');
	}
};
function viewOtherCams() {
	if (document.getElementById("otherCams").style.display == "none") {
		document.getElementById("helpDiv").style.display = "none";
		helpdisp = "none";
		document.getElementById("myCams").style.display = "none";
		document.getElementById("detroitCams").style.display = "none";
		document.getElementById("grCams").style.display = "none";
		document.getElementById("otherCams").style.display = "block";
		activateCamera('other', 1, 'I75');
	}
};
var helpdisp = "none";
function toggleHelp() {
	if (helpdisp == "none") {
		document.getElementById('helpDiv').style.display = "block";
		helpdisp = "block";
	} else {
		document.getElementById('helpDiv').style.display = "none";
		helpdisp = "none";
	}
};

