function webCamRegisterCam(camName, camURL) {
	
	if (typeof webCamURL != "object") {
		webCamURL = new Array();
		webCamName = new Array();
	}

	var idx = webCamName.length;
	
	webCamName[idx] = camName;
	webCamURL[idx] = camURL;
}

webCamWidth = 345;
webCamHeight = 240;
webCamUpdateInterval = 1;

//Camera 0:  Error
webCamRegisterCam("Error",        "imgs/webcam_default.gif");

//Camera 1 - Camera 10:  Manhattan to Bronx
webCamRegisterCam("HHBridgeEntr", "http://webcam.mta.info/btimg/172.28.204.8/2/image.jpg");
webCamRegisterCam("TriBrdgeQnBx", "http://webcam.mta.info/btimg/172.28.202.8/1/image.jpg");
webCamRegisterCam("Error",        "imgs/webcam_default.gif");
webCamRegisterCam("Error",        "imgs/webcam_default.gif");
webCamRegisterCam("Error",        "imgs/webcam_default.gif");
webCamRegisterCam("Error",        "imgs/webcam_default.gif");
webCamRegisterCam("Error",        "imgs/webcam_default.gif");
webCamRegisterCam("Error",        "imgs/webcam_default.gif");
webCamRegisterCam("Error",        "imgs/webcam_default.gif");
webCamRegisterCam("Error",        "imgs/webcam_default.gif");

//Camera 11 - Camera 20:  Manhattan to Brooklyn
webCamRegisterCam("BBridgeEntr",   "http://207.251.86.248/images/cams/govt_property/cctv14.jpg");
webCamRegisterCam("MBridgeEntr",   "http://207.251.86.248/images/cams/govt_property/cctv13.jpg");
webCamRegisterCam("WBridge",       "http://207.251.86.248/cctv43.jpg");
webCamRegisterCam("BBridgeFDR",    "http://207.251.86.248/images/cams/govt_property/cctv22.jpg");
webCamRegisterCam("BTunnelFDR",    "http://207.251.86.248/cctv64.jpg");
webCamRegisterCam("BTunnelEntr",   "http://207.251.86.248/images/cams/govt_property/cctv63.jpg");
webCamRegisterCam("BTunnelMnBk",   "http://webcam.mta.info/btimg/172.28.208.8/2/image.jpg");
webCamRegisterCam("Error",         "imgs/webcam_default.gif");
webCamRegisterCam("Error",         "imgs/webcam_default.gif");
webCamRegisterCam("Error",         "imgs/webcam_default.gif");

//Camera 21 - Camera 30:  Manhattan to Queens
webCamRegisterCam("WBridge",       "http://207.251.86.248/cctv43.jpg");
webCamRegisterCam("QBridgeEntr",   "http://207.251.86.248/images/cams/govt_property/cctv3.jpg");
webCamRegisterCam("QBridgeUL",     "http://207.251.86.248/cctv54.jpg");
webCamRegisterCam("MTunnelEntr",   "http://207.251.86.248/images/cams/govt_property/cctv4.jpg");
webCamRegisterCam("MTunnelQn1",    "http://207.251.86.248/cctv55.jpg");
webCamRegisterCam("TriBridgeAppr", "http://207.251.86.250/images/cams/govt_property/cctv108.jpg");
webCamRegisterCam("TriBridgeQnBx", "http://webcam.mta.info/btimg/172.28.202.8/1/image.jpg");
webCamRegisterCam("MTunnelQnAppr", "http://webcam.mta.info/btimg/172.28.207.8/2/image.jpg");
webCamRegisterCam("MTunnelQn2",    "http://webcam.mta.info/btimg/172.28.207.8/1/image.jpg");
webCamRegisterCam("Error",         "imgs/webcam_default.gif");

//Camera 31 - Camer 40:  Brooklyn to Manhattan
webCamRegisterCam("BBridgeEntr",   "http://207.251.86.248/images/cams/govt_property/cctv14.jpg");
webCamRegisterCam("MBridgeEntr",   "http://207.251.86.248/images/cams/govt_property/cctv13.jpg");
webCamRegisterCam("WBridge",       "http://207.251.86.248/cctv43.jpg");
webCamRegisterCam("BTunnelEntr",   "http://207.251.86.248/images/cams/govt_property/cctv63.jpg");
webCamRegisterCam("BTunnelMn",     "http://webcam.mta.info/btimg/172.28.208.8/1/image.jpg");
webCamRegisterCam("BTunnelMnBk",   "http://webcam.mta.info/btimg/172.28.208.8/2/image.jpg");
webCamRegisterCam("Error",         "imgs/webcam_default.gif");
webCamRegisterCam("Error",         "imgs/webcam_default.gif");
webCamRegisterCam("Error",         "imgs/webcam_default.gif");
webCamRegisterCam("Error",         "imgs/webcam_default.gif");

//Camera 41 - Camer 50:  Brooklyn to Queens
webCamRegisterCam("CxIsldPkwy",    "http://207.251.86.250/images/cams/govt_property/cctv118.jpg");
webCamRegisterCam("VWExpy",        "http://207.251.86.248/cctv52.jpg");
webCamRegisterCam("BQExpy",        "http://207.251.86.248/cctv45.jpg");
webCamRegisterCam("MPBridgeEntr",  "http://webcam.mta.info/btimg/172.28.206.8/2/image.jpg");
webCamRegisterCam("MPBridgeBk",    "http://webcam.mta.info/btimg/172.28.206.8/1/image.jpg");
webCamRegisterCam("Error",         "imgs/webcam_default.gif");
webCamRegisterCam("Error",         "imgs/webcam_default.gif");
webCamRegisterCam("Error",         "imgs/webcam_default.gif");
webCamRegisterCam("Error",         "imgs/webcam_default.gif");
webCamRegisterCam("Error",         "imgs/webcam_default.gif");


//Camera 51 - Camer 60:  Brooklyn to Staten Island
webCamRegisterCam("VBridgeAppr1",  "http://207.251.86.250/images/cams/govt_property/cctv103.jpg");
webCamRegisterCam("VBridgeAppr2",  "http://207.251.86.250/images/cams/govt_property/cctv62.jpg");
webCamRegisterCam("VBridgeSI",     "http://webcam.mta.info/btimg/172.28.211.8/2/image.jpg");
webCamRegisterCam("Error",         "imgs/webcam_default.gif");
webCamRegisterCam("Error",         "imgs/webcam_default.gif");
webCamRegisterCam("Error",         "imgs/webcam_default.gif");
webCamRegisterCam("Error",         "imgs/webcam_default.gif");
webCamRegisterCam("Error",         "imgs/webcam_default.gif");
webCamRegisterCam("Error",         "imgs/webcam_default.gif");
webCamRegisterCam("Error",         "imgs/webcam_default.gif");

//Camera 61 - Camera 70:  Queens to Bronx
webCamRegisterCam("TriBridgeAppr", "http://207.251.86.250/images/cams/govt_property/cctv108.jpg");
webCamRegisterCam("TNBridgeAppr1", "http://207.251.86.248/images/cams/govt_property/cctv120.jpg");
webCamRegisterCam("TNBridgeAppr2", "http://207.251.86.248/cctv33.jpg");
webCamRegisterCam("TNBridgeExit",  "http://webcam.mta.info/btimg/172.28.209.8/2/image.jpg");
webCamRegisterCam("Error",         "imgs/webcam_default.gif");
webCamRegisterCam("Error",         "imgs/webcam_default.gif");
webCamRegisterCam("Error",         "imgs/webcam_default.gif");
webCamRegisterCam("Error",         "imgs/webcam_default.gif");
webCamRegisterCam("Error",         "imgs/webcam_default.gif");
webCamRegisterCam("Error",         "imgs/webcam_default.gif");

//Camera 71 - Camera 80:  Queens to Brooklyn
webCamRegisterCam("CxIsldPkwy",    "http://207.251.86.250/images/cams/govt_property/cctv118.jpg");
webCamRegisterCam("VWExpy",        "http://207.251.86.248/cctv52.jpg");
webCamRegisterCam("BQExpy",        "http://207.251.86.248/cctv45.jpg");
webCamRegisterCam("MPBridgeExit",  "http://webcam.mta.info/btimg/172.28.206.8/1/image.jpg");
webCamRegisterCam("Error",         "imgs/webcam_default.gif");
webCamRegisterCam("Error",         "imgs/webcam_default.gif");
webCamRegisterCam("Error",         "imgs/webcam_default.gif");
webCamRegisterCam("Error",         "imgs/webcam_default.gif");
webCamRegisterCam("Error",         "imgs/webcam_default.gif");
webCamRegisterCam("Error",         "imgs/webcam_default.gif");

//Camera 81 - Camera 90:  Queens to Manhattan
webCamRegisterCam("WBridge",       "http://207.251.86.248/cctv43.jpg");
webCamRegisterCam("QBridgeEntr",   "http://207.251.86.248/images/cams/govt_property/cctv3.jpg");
webCamRegisterCam("QBridgeUL",     "http://207.251.86.248/cctv54.jpg");
webCamRegisterCam("QBridgeExt",    "http://207.251.86.248/images/cams/govt_property/cctv16.jpg");
webCamRegisterCam("MTunnelQ1",     "http://207.251.86.248/cctv55.jpg");
webCamRegisterCam("TriBridgeAppr", "http://207.251.86.250/images/cams/govt_property/cctv108.jpg");
webCamRegisterCam("Error",         "imgs/webcam_default.gif");
webCamRegisterCam("Error",         "imgs/webcam_default.gif");
webCamRegisterCam("Error",         "imgs/webcam_default.gif");
webCamRegisterCam("Error",         "imgs/webcam_default.gif");

//Camera 91 - Camera 100:  Bronx to Manhattan
webCamRegisterCam("HHBridgeExit",  "http://webcam.mta.info/btimg/172.28.204.8/1/image.jpg");
webCamRegisterCam("TriBrdgeMn",    "http://webcam.mta.info/btimg/172.28.202.8/2/image.jpg");
webCamRegisterCam("Error",         "imgs/webcam_default.gif");
webCamRegisterCam("Error",         "imgs/webcam_default.gif");
webCamRegisterCam("Error",         "imgs/webcam_default.gif");
webCamRegisterCam("Error",         "imgs/webcam_default.gif");
webCamRegisterCam("Error",         "imgs/webcam_default.gif");
webCamRegisterCam("Error",         "imgs/webcam_default.gif");
webCamRegisterCam("Error",         "imgs/webcam_default.gif");
webCamRegisterCam("Error",         "imgs/webcam_default.gif");

//Camera 101 - Camera 110:  Bronx to Queens
webCamRegisterCam("TriBridgeAppr", "http://207.251.86.250/images/cams/govt_property/cctv108.jpg");
webCamRegisterCam("TNBridgeAppr1", "http://207.251.86.248/images/cams/govt_property/cctv120.jpg");
webCamRegisterCam("TNBridgeAppr2", "http://207.251.86.248/cctv33.jpg");
webCamRegisterCam("TNBridgeEntr",  "http://webcam.mta.info/btimg/172.28.209.8/1/image.jpg");
webCamRegisterCam("TNBridgeBx",    "http://webcam.mta.info/btimg/172.28.209.8/2/image.jpg");
webCamRegisterCam("TriBridgeQn",   "http://webcam.mta.info/btimg/172.28.201.8/2/image.jpg");
webCamRegisterCam("WSBridgeQn",    "http://webcam.mta.info/btimg/172.28.203.8/1/image.jpg");
webCamRegisterCam("WSBridgeBx",    "http://webcam.mta.info/btimg/172.28.203.8/2/image.jpg");
webCamRegisterCam("Error",         "imgs/webcam_default.gif");
webCamRegisterCam("Error",         "imgs/webcam_default.gif");

//Camera 111 - Camera 120:  Staten Island to Brooklyn
webCamRegisterCam("VBridgeAppr1",  "http://207.251.86.250/images/cams/govt_property/cctv103.jpg");
webCamRegisterCam("VBridgeAppr2",  "http://207.251.86.250/images/cams/govt_property/cctv62.jpg");
webCamRegisterCam("Error",         "imgs/webcam_default.gif");
webCamRegisterCam("Error",         "imgs/webcam_default.gif");
webCamRegisterCam("Error",         "imgs/webcam_default.gif");
webCamRegisterCam("Error",         "imgs/webcam_default.gif");
webCamRegisterCam("Error",         "imgs/webcam_default.gif");
webCamRegisterCam("Error",         "imgs/webcam_default.gif");
webCamRegisterCam("Error",         "imgs/webcam_default.gif");
webCamRegisterCam("Error",         "imgs/webcam_default.gif");

//Camera 121 - Camera 130:  Intraboro Bridges
webCamRegisterCam("CBBridgeEntr",  "http://webcam.mta.info/btimg/172.28.205.8/1/image.jpg");
webCamRegisterCam("CBBridgeExit",  "http://webcam.mta.info/btimg/172.28.205.8/2/image.jpg");
webCamRegisterCam("Error",         "imgs/webcam_default.gif");
webCamRegisterCam("Error",         "imgs/webcam_default.gif");
webCamRegisterCam("Error",         "imgs/webcam_default.gif");
webCamRegisterCam("Error",         "imgs/webcam_default.gif");
webCamRegisterCam("Error",         "imgs/webcam_default.gif");
webCamRegisterCam("Error",         "imgs/webcam_default.gif");
webCamRegisterCam("Error",         "imgs/webcam_default.gif");
webCamRegisterCam("Error",         "imgs/webcam_default.gif");

//Camera 131 - Camera 140:  Manhattan to New Jersey
webCamRegisterCam("LTunnel",       "http://207.251.86.250/images/cams/govt_property/cctv91.jpg");
webCamRegisterCam("HTunnel",       "http://207.251.86.250/images/cams/govt_property/cctv92.jpg");
webCamRegisterCam("WashBridgeCxB", "http://207.251.86.248/images/cams/govt_property/cctv29.jpg");
webCamRegisterCam("WashBridgeHen", "http://207.251.86.248/images/cams/govt_property/cctv28.jpg");
webCamRegisterCam("WashBridgeNJ",  "http://abclocal.go.com/three/wabc/webcam/skygwb.jpg");
webCamRegisterCam("Error",         "imgs/webcam_default.gif");
webCamRegisterCam("Error",         "imgs/webcam_default.gif");
webCamRegisterCam("Error",         "imgs/webcam_default.gif");
webCamRegisterCam("Error",         "imgs/webcam_default.gif");
webCamRegisterCam("Error",         "imgs/webcam_default.gif");

//Camera 141 - Camera 150:  Staten Island to New Jersey
webCamRegisterCam("OuterBrCx",     "http://207.251.86.250/images/cams/govt_property/cctv95.jpg");
webCamRegisterCam("GoethalsBrSI",  "http://207.251.86.250/images/cams/govt_property/cctv83.jpg");
webCamRegisterCam("GoethalsBrWS",  "http://207.251.86.250/images/cams/govt_property/cctv84.jpg");
webCamRegisterCam("Error",         "imgs/webcam_default.gif");
webCamRegisterCam("Error",         "imgs/webcam_default.gif");
webCamRegisterCam("Error",         "imgs/webcam_default.gif");
webCamRegisterCam("Error",         "imgs/webcam_default.gif");
webCamRegisterCam("Error",         "imgs/webcam_default.gif");
webCamRegisterCam("Error",         "imgs/webcam_default.gif");
webCamRegisterCam("Error",         "imgs/webcam_default.gif");

//Camera 151 - Camera 160:  New Jersey to Manhattan
webCamRegisterCam("WashBridgeNJ",  "http://abclocal.go.com/three/wabc/webcam/skygwb.jpg");
webCamRegisterCam("WashBridgeCxB", "http://207.251.86.248/images/cams/govt_property/cctv29.jpg");
webCamRegisterCam("WashBridgeHen", "http://207.251.86.248/images/cams/govt_property/cctv28.jpg");
webCamRegisterCam("Error",         "imgs/webcam_default.gif");
webCamRegisterCam("Error",         "imgs/webcam_default.gif");
webCamRegisterCam("Error",         "imgs/webcam_default.gif");
webCamRegisterCam("Error",         "imgs/webcam_default.gif");
webCamRegisterCam("Error",         "imgs/webcam_default.gif");
webCamRegisterCam("Error",         "imgs/webcam_default.gif");
webCamRegisterCam("Error",         "imgs/webcam_default.gif");

//Camera 161 - Camera 170:  New Jersey to Staten Island
webCamRegisterCam("OuterBrCx",     "http://207.251.86.250/images/cams/govt_property/cctv95.jpg");
webCamRegisterCam("GoethalsBrSI",  "http://207.251.86.250/images/cams/govt_property/cctv83.jpg");
webCamRegisterCam("GoethalsBrWS",  "http://207.251.86.250/images/cams/govt_property/cctv84.jpg");
webCamRegisterCam("Error",         "imgs/webcam_default.gif");
webCamRegisterCam("Error",         "imgs/webcam_default.gif");
webCamRegisterCam("Error",         "imgs/webcam_default.gif");
webCamRegisterCam("Error",         "imgs/webcam_default.gif");
webCamRegisterCam("Error",         "imgs/webcam_default.gif");
webCamRegisterCam("Error",         "imgs/webcam_default.gif");
webCamRegisterCam("Error",         "imgs/webcam_default.gif");

function webCamInit() {
	webCamUpdateFunction();
	
	webCamUpdateTimeLeft = webCamUpdateInterval;
	webCamInterval = setInterval("webCamUpdate();", 1000);
}

function webCamDraw(camNum, w, h, altText) {
	var wStr = " width='" + ((typeof w == "undefined") ? webCamWidth : w) + "'";
	var hStr = " height='" + ((typeof h == "undefined") ? webCamHeight : h) + "'";

	if (w == "") wStr = "";
	if (h == "") hStr = "";

	var altText = (typeof altText == "string") ? altText : ((camNum == 0 && typeof wc_spareImgAltText == "string" && wc_spareImgAltText != "") ? wc_spareImgAltText : webCamName[camNum]);

	var theDate = new Date();
	
	document.write("<img name='webCam_" + camNum + "' src='" + webCamURL[0] + "'" + wStr + hStr + " border='0' alt=\"" + altText + "\">");
}

function webCamUpdate() {
	webCamUpdateTimeLeft--;

	window.status = "WebCams: Reload in " + webCamUpdateTimeLeft + " seconds";
	
	if (webCamUpdateTimeLeft <= 0) {
		webCamUpdateFunction();
		webCamUpdateTimeLeft = webCamUpdateInterval;
	}
}

function webCamImagePreloaded() {
	document["webCam_" + this.camNum].src = document["webCamPreload_" + this.camNum].src;

	window.status = "WebCams: Reloaded " + webCamName[this.camNum];
}

function webCamImageError() {
	document["webCam_" + this.camNum].src = webCamURL[0];

	window.status = "WebCams: Error reloading " + webCamName[this.camNum];
}

function webCamPreloadImage(camNum, imgURL) {
	theImage = new Image();
	theImage.src = imgURL;
	theImage.onerror = webCamImageError;
	theImage.onload = webCamImagePreloaded;
	theImage.camNum = camNum;
	
	return theImage;
}

function webCamUpdateWithPreload() {
	if (document.images) {
		var theDate = new Date();

		for (var i = 1; i < webCamURL.length; i++) {
			if (typeof document["webCam_" + i] == "object" && typeof document["webCam_" + i].src == "string") {
				document["webCamPreload_" + i] = webCamPreloadImage(i, webCamURL[i] + "?" + parseInt(theDate.getTime() / 1000));
			}
		}
	}
}


function webCamUpdateNoPreload() {
	if (document.images) {
		var theDate = new Date();
		
		for (var i = 1; i < webCamURL.length; i++) {
			if (typeof document["webCam_" + i] == "object" && typeof document["webCam_" + i].src == "string") {
				document["webCam_" + i].src = webCamURL[i] + "?" + parseInt(theDate.getTime() / 1000);
			}
		}
	}
}


webCamUpdateFunction = webCamUpdateWithPreload;

function testImagePreload() {
	if (typeof this.src != "string") {
		webCamUpdateFunction = webCamUpdateNoPreload;
	}
}
testImage = new Image();
testImage.onload = testImagePreload;
testImage.src = webCamURL[0];




