// JavaScript Document

var npPortfolio = {
	
	initialise: function () {
		if (!document.getElementsByTagName || !document.getElementById)
			return;		
		
		npPortfolio.intUBound = npImages.intCount + 1;
		npPortfolio.intANIM_Alpha.push(100);
		npPortfolio.strANIM_State.push('full');
		objImage = document.getElementById('img1');
		objImage.style.display = 'block';
		for (i=2; i < npPortfolio.intUBound; i++) {
			npPortfolio.intANIM_Alpha.push(0);
			npPortfolio.strANIM_State.push('none');
			
			objImage = document.getElementById('img' + i);
			objImage.style.opacity = (0); 
		//	objImage.style.MozOpacity = (0); 
			objImage.style.KhtmlOpacity = (0); 
			objImage.style.filter = "alpha(opacity=0)";
		}

		// Set Listeners
		var btnPrevious = document.getElementById("btnPrevious");
		rwScript.addEvent(btnPrevious, 'click', npPortfolio.getClick(btnPrevious), false);
		rwScript.addEvent(btnPrevious, 'mouseover', npPortfolio.getMOver(btnPrevious), false);
		rwScript.addEvent(btnPrevious, 'mouseout', npPortfolio.getMOut(btnPrevious), false);
		
		var btnNext = document.getElementById("btnNext");
		rwScript.addEvent(btnNext, 'click', npPortfolio.getClick(btnNext), false);
		rwScript.addEvent(btnNext, 'mouseover', npPortfolio.getMOver(btnNext), false);
		rwScript.addEvent(btnNext, 'mouseout', npPortfolio.getMOut(btnNext), false);

		var btnPlay = document.getElementById("btnPlay");
		rwScript.addEvent(btnPlay, 'click', npPortfolio.getClickSlideshow(btnPlay), false);
		rwScript.addEvent(btnPlay, 'mouseover', npPortfolio.getMOver(btnPlay), false);
		rwScript.addEvent(btnPlay, 'mouseout', npPortfolio.getMOut(btnPlay), false);
		
		var btnStop = document.getElementById("btnStop");
		rwScript.addEvent(btnStop, 'click', npPortfolio.getClickSlideshow(btnStop), false);
		rwScript.addEvent(btnStop, 'mouseover', npPortfolio.getMOver(btnStop), false);
		rwScript.addEvent(btnStop, 'mouseout', npPortfolio.getMOut(btnStop), false);
		
		// set interval
		setInterval(npPortfolio.fadeImages, 10);
		
		// Update Number of Images
		var txtTotalImgs = document.getElementById("intTotalImgs");
		txtTotalImgs.firstChild.nodeValue = npImages.intCount;
	},

// Animation Functions
	fadeImages: function () {
		for (i=0; i < npImages.intCount; i++) {
			if (npPortfolio.strANIM_State[i] == "none" && npPortfolio.strANIM_State[i] == "full") {
				// do nothing
			} else {
				var imgPhoto = document.getElementById('img' + (i+1));
				
				if (npPortfolio.strANIM_State[i] == 'fadingOut') {
					npPortfolio.intANIM_Alpha[i] -= (npPortfolio.intANIM_Speed);
					if (npPortfolio.intANIM_Alpha[i] <= 0) {
						npPortfolio.strANIM_State[i] = 'none';
						imgPhoto.style.display = 'none';
						npPortfolio.intANIM_Alpha[i] = 0;
					}
				} else if (npPortfolio.strANIM_State[i] == 'fadingIn') {
					npPortfolio.intANIM_Alpha[i] += (npPortfolio.intANIM_Speed);
					if (npPortfolio.intANIM_Alpha[i] >= 100) {
						npPortfolio.strANIM_State[i] = 'full';
						npPortfolio.intANIM_Alpha[i] = 100;
					}
				}
				imgPhoto.style.opacity = (npPortfolio.intANIM_Alpha[i] / 100); 
			//	imgPhoto.style.MozOpacity = (npPortfolio.intANIM_Alpha[i] / 100); 
				imgPhoto.style.KhtmlOpacity = (npPortfolio.intANIM_Alpha[i] / 100); 
				imgPhoto.style.filter = "alpha(opacity=" + npPortfolio.intANIM_Alpha[i] + ")";
			}
		}
	},

	controlSlideshow: function (e, targetElement) {
		var el = window.event ? targetElement : e ? e.currentTarget : null;
		if (!el) return;
		
		if (el.id == "btnPlay") {
			npPortfolio.intSlideshowID = setInterval("npPortfolio.slideshow()", 4000);
			el.style.display = "none";
			var btnStop = document.getElementById("btnStop");
			btnStop.style.display = "inline";
		} else {
			clearInterval(npPortfolio.intSlideshowID);
			el.style.display = "none";
			var btnPlay = document.getElementById("btnPlay");
			btnPlay.style.display = "inline";
		}
	},
	getClickSlideshow: function (node) { return function(e) { npPortfolio.controlSlideshow(e, node); }; },

	slideshow: function() {
		if (npPortfolio.intCurrent < npImages.intCount) {
			var intOut = npPortfolio.intCurrent - 1;
			var intIn = npPortfolio.intCurrent;
			npPortfolio.intCurrent ++;
		} else {
			var intOut = npImages.intCount - 1;
			var intIn = 0;
			npPortfolio.intCurrent = 1;
		}

		npPortfolio.strANIM_State[intOut] = "fadingOut";
		var imgNew = document.getElementById("img" + (intIn+1));
		imgNew.style.display = 'block';
		npPortfolio.strANIM_State[intIn] = "fadingIn";

		var txtCurrentImg = document.getElementById("intCurrentImg");
		txtCurrentImg.firstChild.nodeValue = npPortfolio.intCurrent;
	},

// Click Function
	replacePhoto: function (e, targetElement) {
		var el = window.event ? targetElement : e ? e.currentTarget : null;
		if (!el) return;

		if (el.id == "btnPrevious") {
			if (npPortfolio.intCurrent > 1) {
				npPortfolio.strANIM_State[npPortfolio.intCurrent - 1] = "fadingOut";
				npPortfolio.intCurrent --;
				var imgNew = document.getElementById("img" + npPortfolio.intCurrent);
				imgNew.style.display = 'block';
				npPortfolio.strANIM_State[npPortfolio.intCurrent - 1] = "fadingIn";
			}
		} 
		if (el.id == "btnNext") {
			if (npPortfolio.intCurrent < npImages.intCount) {
				npPortfolio.strANIM_State[npPortfolio.intCurrent - 1] = "fadingOut";
				npPortfolio.intCurrent ++;
				var imgNew = document.getElementById("img" + npPortfolio.intCurrent);
				imgNew.style.display = 'block';
				npPortfolio.strANIM_State[npPortfolio.intCurrent - 1] = "fadingIn";
			}
		}
		var txtCurrentImg = document.getElementById("intCurrentImg");
		txtCurrentImg.firstChild.nodeValue = npPortfolio.intCurrent;
	},
	getClick: function (node) { return function(e) { npPortfolio.replacePhoto(e, node); }; },

// Mouse Over/Out Functions
	mOver: function (e, targetElement) {
		var el = window.event ? targetElement : e ? e.currentTarget : null;
		if (!el) return;

		switch (el.id) {
		case "btnPrevious":
			el.firstChild.src = "images/btnPrevious_over.gif";
			break;
		case "btnNext":
			el.firstChild.src = "images/btnNext_over.gif";
			break;
		case "btnPlay":
			el.firstChild.src = "images/btnPlay_over.gif";
			break;
		case "btnStop":
			el.firstChild.src = "images/btnStop_over.gif";
			break;
		}

	},
	getMOver: function (node) { return function(e) { npPortfolio.mOver(e, node); }; },

	mOut: function (e, targetElement) {
		var el = window.event ? targetElement : e ? e.currentTarget : null;
		if (!el) return;

		switch (el.id) {
		case "btnPrevious":
			el.firstChild.src = "images/btnPrevious.gif";
			break;
		case "btnNext":
			el.firstChild.src = "images/btnNext.gif";
			break;
		case "btnPlay":
			el.firstChild.src = "images/btnPlay.gif";
			break;
		case "btnStop":
			el.firstChild.src = "images/btnStop.gif";
			break;
		}

	},
	getMOut: function (node) { return function(e) { npPortfolio.mOut(e, node); }; },
	
	intUBound: 0,
	intCurrent: 1,
	intANIM_Speed: 3,
	intANIM_Alpha: [],
	strANIM_State: [],
	intSlideshowID: 0

};

rwScript.addEvent(window, 'load', npPortfolio.initialise, false);
rwScript.addEvent(window, 'unload', EventCache.flush, false);
