// WebcamCenter.nl verversingsscript voor netwerkcamera's
// www.WebcamCenter.nl
//

function webCamRegisterCam(camName, camURL) {
	
	if (typeof webCamURL != "object") {
		webCamURL = new Array();
		webCamName = new Array();
	}

	var idx = webCamName.length;
	
	webCamName[idx] = camName;
	webCamURL[idx] = camURL;
}





// ----- INSTELLINGEN -----
//

// breedte en hoogte van het camerabeeld
webCamWidth = 352;
webCamHeight = 288;

// tijd in seconden voor het verversen van de camerabeelden
webCamUpdateInterval = 5;

// Meerdere camera's kunnen op één scherm getoond worden. 
//
//  Voeg de camera's toe zoals hieronder getoond:
//
//   webCamRegisterCam(CAMERANAAM, CAMERABEELD);
//
// Het eerste beeld is het wachtbeeld
webCamRegisterCam("Error", "error.gif");

// De camerabeelden:
webCamRegisterCam("Eerste camera", "webcam/video.jpg");

// Eventuele volgende camera's:
//
//webCamRegisterCam("", "");

//
// ----- Einde instellingen. Hieronder niets wijzigen -----



// Stel uw pagina in om deze functie direct te laden via het  onload=  commando
//
function webCamInit() {
	webCamUpdateFunction();
	
	webCamUpdateTimeLeft = webCamUpdateInterval;
	webCamInterval = setInterval("webCamUpdate();", 1000);
}

// Gebruik de onderstaande functie om de beelden op uw pagina weer te geven.
//
// Gebruik:
//
//   webCamDraw(n);
//
//  n is het aantal camera's. 
//
// De standaard grootte van het camerabeeld kan hierin ook nog worden gewijzigd door  de volgende functie-parameters mee te geven:
//   webCamDraw(n, width, height, altText);
//
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 + "\">");
}

// Het aantal seconden tot de volgende verversing wordt in de statusbalk weergegeven.
//
function webCamUpdate() {
	webCamUpdateTimeLeft--;

	window.status = "WebcamCenter.nl: nieuw beeld na " + webCamUpdateTimeLeft + " seconden";
	
	if (webCamUpdateTimeLeft <= 0) {
		webCamUpdateFunction();
		webCamUpdateTimeLeft = webCamUpdateInterval;
	}
}

// Intelligente cachefunctie om beeldstoringen te voorkomen.
//
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));
			}
		}
	}
}


// Alternatieve versie voor het laden van de beelden.
//
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;


// Test of intelligente laadfunctie werkt.
//
function testImagePreload() {
	if (typeof this.src != "string") {
		webCamUpdateFunction = webCamUpdateNoPreload;
	}
}
testImage = new Image();
testImage.onload = testImagePreload;
testImage.src = webCamURL[0];




