/**
 * @author Peter Riet
 */
function cFotoalbum() {
	var _self = this;
	this.blnDiashowGestart = false;
	this.divPhoto;
	this.imgAfbeelding;
	this.preload_images = new Array();
	this.intCurrentPhotoIndex = 0;
	this.intPrevPhotoIndex = 0;
	this.strPhotoBaseURL;
	this.arrPhotos = new Array();
	this.arrFotoOmschrijvingen = new Array();
	
	this.intFotoX = 0;
	this.intFotoY = 0;
	this.intDiashowSnelheid = 3500;
	this.intDiashowSnelheidStappen = 500;
	
	// Elements
	this.divOmschrijving;
	this.aFotoalbumNavigatieVorige;
	this.aFotoalbumNavigatieVolgende;
	this.aFotoalbumNavigatieDiashow;
	this.imgFotoalbumDiashowStart;
	this.imgFotoalbumDiashowStop;
	this.aFotoalbumNavigatieTrager;
	this.aFotoalbumNavigatieSneller;
	this.pFotoalbumDiashowSnelheid;
	this.pFotoalbumNavigatieOmschrijving;	
	
	this.init = function() {
		_self.divPhoto = document.getElementById("divFotoalbumFoto");
		_self.imgFotoalbumDiashowStart = document.getElementById("imgFotoalbumDiashowStart");
		_self.imgFotoalbumDiashowStop = document.getElementById("imgFotoalbumDiashowStop");
		_self.divOmschrijving = document.getElementById("divFotoalbumFotoOmschrijving");
		_self.aFotoalbumNavigatieVorige = document.getElementById("aFotoalbumNavigatieVorige");
		_self.aFotoalbumNavigatieDiashow = document.getElementById("aFotoalbumNavigatieDiashow");
		_self.aFotoalbumNavigatieVolgende = document.getElementById("aFotoalbumNavigatieVolgende");
		_self.aFotoalbumNavigatieTrager = document.getElementById("aFotoalbumNavigatieTrager");
		_self.aFotoalbumNavigatieSneller = document.getElementById("aFotoalbumNavigatieSneller");
		_self.pFotoalbumDiashowSnelheid = document.getElementById("pFotoalbumDiashowSnelheid");
		_self.pFotoalbumNavigatieOmschrijving = document.getElementById("pFotoalbumNavigatieOmschrijving");
	}
	
	this.autostartDiashow = function() {
		// Doe niks bij laatste foto
		if (_self.intCurrentPhotoIndex == _self.arrPhotos.length - 1) return;

		_self.updateKnoppenStartDiashow();
		
		_self.blnDiashowGestart = true;				
	}
	
	this.clickTegel = function(strHref) {
		window.location.href = strHref;	
	}
	
	this.startStopDiashow = function() {
		if (!_self.blnDiashowGestart) {
			_self.updateKnoppenStartDiashow();				
			_self.blnDiashowGestart = true;

			// Toon volgende foto
			setTimeout("objFotoalbum.diaShowVolgende();", 500);
		}
		else {
			// Verander de knop
			_self.imgFotoalbumDiashowStart.style.display = "inline";
			_self.imgFotoalbumDiashowStop.style.display = "none";

			_self.blnDiashowGestart = false;

			// Toon navigatie knoppen
			_self.updateNavigatieKnoppen();
		}
	}	
	
	this.diaShowVolgende = function() {
		if (!_self.blnDiashowGestart) return false;
		
		_self.toonVolgendeFoto();
	}

	this.toonFoto = function(intPhotoIndex, strSrc) {
		if (_self.intCurrentPhotoIndex == intPhotoIndex) return;
		
		_self.intCurrentPhotoIndex = intPhotoIndex;
		
		var blnFade = true;
		
		if (!blnFade) {
			if (!_self.imgAfbeelding) _self.imgAfbeelding = document.getElementById("imgFotoalbumFoto")
			
			_self.imgAfbeelding.src = _self.strPhotoBaseURL + strSrc;
		}
		else {
			var i = _self.preload_images.length;
			_self.preload_images[i] = document.createElement("img");
			_self.preload_images[i].className = "foto";
			_self.preload_images[i].src = _self.strPhotoBaseURL + strSrc + "?" + Math.random();			
			_self.preload_images[i].id = "preload_image_" + i;

			var imgNew = $(_self.preload_images[i]);
			
			if ($.browser.msie && i == 0) {
				var img = $("#imgBlank");
				var offset = img.offset();
				_self.intFotoX = offset.left + 12;
				img.remove();
			}

			if (i > 0) {
				$("#preload_image_" + (i - 1)).fadeOut("slow");
			}
			
			imgNew.hide();
			_self.divPhoto.appendChild(_self.preload_images[i]);
			
			if ($.browser.version == "6.0") {
				$("#preload_image_" + (i - 1)).hide();
				imgNew.css({
					left: _self.intFotoX - (imgNew.width() / 2)
				});
				_self.divPhoto.style.height = imgNew.height() + "px";
				imgNew.show();
			}
			
			imgNew
				.css({
					position: "absolute"
				})
				.load(function() {
					if ($.browser.msie) {
						$(this).css("left", _self.intFotoX - ($(this).width() / 2));
					}
					$(this).fadeIn("slow");

					// Positioneer omschrijving		
					_self.divPhoto.style.height = parseInt(this.height, 10) + "px";
					
					// Als diashow loopt dan weer verder gaan: start timer opnieuw
					if (_self.blnDiashowGestart) {
						setTimeout("objFotoalbum.diaShowVolgende()", _self.intDiashowSnelheid);
					}
				})
			;
		}
		
		objPhotoScroll.scrollToPhotoIndex(intPhotoIndex);
		_self.updateFotoOmschrijving();
	}
	
	this.initFotoPositie = function() {
		var img = document.getElementById("preload_image_" + (_self.preload_images.length - 1));
		if (!img) { alert("Preload afbeelding niet gevonden"); return; }
		
		var img = document.getElementById("imgBlank");
		
		var pos = findPos(img);
		_self.intFotoX = pos[0];
		_self.intFotoY = pos[1];
		
		img.style.display = "none";
	}
	
	this.insert_image = function() {
		var img = document.getElementById("preload_image_" + (_self.preload_images.length - 1));
		
		// Positioneer afbeelding
		var intAfwijking = ($.browser.msie) ? 2 : -8;
		img.style.left = (_self.intFotoX - img.width / 2 + intAfwijking) + "px";
		//img.style.top = _self.intFotoY + "px";
		alert($(img).scrollLeft());
		// Positioneer navigatie		
		_self.divPhoto.style.height = parseInt(img.height, 10) + "px";
		
		$(img).fadeIn("slow");

		// Als diashow loopt dan weer verder gaan: start timer opnieuw
		if (_self.blnDiashowGestart) {
			setTimeout("objFotoalbum.diaShowVolgende()", _self.intDiashowSnelheid);
		}
	}

	this.toonVorigeFoto = function() {
		if (_self.intCurrentPhotoIndex == 0) return;
		
		var intPhotoIndex = _self.intCurrentPhotoIndex - 1;
		
		_self.toonFoto(intPhotoIndex, _self.arrPhotos[intPhotoIndex]);
		if (!_self.blnDiashowGestart) _self.updateNavigatieKnoppen();
		objPhotoScroll.scrollPhotoLeft();
	}
	
	this.toonVolgendeFoto = function() {
		if (_self.intCurrentPhotoIndex == _self.arrPhotos.length - 1) return;
		
		var intPhotoIndex = _self.intCurrentPhotoIndex + 1;
			
		_self.toonFoto(intPhotoIndex, _self.arrPhotos[intPhotoIndex]);
		if (!_self.blnDiashowGestart) _self.updateNavigatieKnoppen();
		objPhotoScroll.scrollPhotoRight();
	}

	
	this.updateFotoOmschrijving = function() {
		var strOmschrijving = (_self.arrFotoOmschrijvingen[_self.intCurrentPhotoIndex].length > 0) ? _self.arrFotoOmschrijvingen[_self.intCurrentPhotoIndex] : "&nbsp;";
		_self.divOmschrijving.innerHTML = strOmschrijving;
	}
	
	this.updateNavigatieKnoppen = function() {
		// Verberg of toon vorige knop ivm begin bereikt
		_self.aFotoalbumNavigatieVorige.style.visibility = (_self.intCurrentPhotoIndex == 0) ? "hidden" : "visible";

		// Verberg play knop bij laatste foto		
		_self.aFotoalbumNavigatieDiashow.style.visibility = (_self.intCurrentPhotoIndex == (_self.arrPhotos.length - 1)) ? "hidden" : "visible";
		
		// Verberg of toon vorige knop ivm einde bereikt
		_self.aFotoalbumNavigatieVolgende.style.visibility = (_self.intCurrentPhotoIndex == (_self.arrPhotos.length - 1)) ? "hidden" : "visible";
		
		// Verbergen als de diashow niet loopt
		_self.aFotoalbumNavigatieTrager.style.visibility = (_self.blnDiashowGestart) ? "visible" : "hidden";
		_self.aFotoalbumNavigatieSneller.style.visibility = (_self.blnDiashowGestart) ? "visible" : "hidden";
	}
	
	this.updateNavigatieTooltip = function(el) {
		var strTooltip;
		
		if (!el || typeof el.alt == "undefined")
			strTooltip = "&nbsp;"; 
		else if  (el.alt != "") { //}(!el.alt_org || el.alt_org == "") {
			strTooltip = el.alt;
			
			el.alt_org = el.alt;
			el.alt = "";
			
		}
		else if (typeof el.alt_org != "undefined") {
			var strTooltip = el.alt_org;
			
			el.alt = el.alt_org;
			el.alt_org = "";			
		}
		else
			strTooltip = "&nbsp;";
		
		_self.pFotoalbumNavigatieOmschrijving.innerHTML = strTooltip; 
	}
	
	this.updateKnoppenStartDiashow = function() {
		// Verander de knop
		_self.imgFotoalbumDiashowStart.style.display = "none";
		_self.imgFotoalbumDiashowStop.style.display = "inline";
		
		// Verberg navigatie knoppen
		_self.aFotoalbumNavigatieVorige.style.visibility = "hidden";
		_self.aFotoalbumNavigatieVolgende.style.visibility = "hidden";
		
		// Snelheid diashow
		_self.aFotoalbumNavigatieTrager.style.visibility = "visible";
		_self.aFotoalbumNavigatieSneller.style.visibility = "visible";
	}
	
	this.toonDiashowSnelheid = function() {
		_self.pFotoalbumDiashowSnelheid.innerHTML = (_self.intDiashowSnelheid / 1000).toString().replace(".", ",") + " seconden per foto";
		setTimeout("objFotoalbum.pFotoalbumDiashowSnelheid.innerHTML = '&nbsp;'", 1000);
	}
	
	this.verhoogSnelheidDiashow = function() {
		if ((_self.intDiashowSnelheid - _self.intDiashowSnelheidStappen) <= 0) return;
		
		_self.intDiashowSnelheid -= _self.intDiashowSnelheidStappen;
		_self.toonDiashowSnelheid();
	}

	this.verlaagSnelheidDiashow = function() {
		_self.intDiashowSnelheid += _self.intDiashowSnelheidStappen;
		_self.toonDiashowSnelheid();
	}
	
}

var objFotoalbum = new cFotoalbum();
