/*

home.js

Javascript for the home page. This includes the animation of the 
slide show and the text.

*/


var curImage = 0;
var curText = 0;
var curTextOpacity = 0;
var curImage1Opacity = 0;
var curImage2Opacity = 0;
var curMovement = 100;
var opaqueImage = 0;
var images = [ 
	'images/front_images/photo1.jpg',
	'images/front_images/photo5.jpg',
	'images/front_images/photo2.jpg',
	'images/front_images/photo3.jpg',
	'images/front_images/photo4.jpg',
	'images/front_images/photo9.jpg',
	'images/front_images/photo7.jpg',
	'images/front_images/photo8.jpg',
	'images/front_images/photo6.jpg'
];

function init() {
	setUpImages();
}

/* Sets up the initial image that appears in the slide show */
function setUpImages() {
	//images.sort(randOrd);
	var imgdiv = document.getElementById( "rotating_images" )
	imgdiv.innerHTML = '';
	var img = document.createElement("img");
	opaqueImage = 1;
	img.id = "image" + opaqueImage;
	img.src = images[0];
	img.style.width = "400px";
	img.style.height = "340px";
	img.style.mozOpacity = curImage1Opacity;
	img.style.filter = "alpha(opacity=" + curImage1Opacity * 100 + ")";
	img.style.opacity = curImage1Opacity;
	imgdiv.appendChild(img);
	startAnimation();
}

/* For sorting the images in a random order, if desired. */
function randOrd(){ 
	return (Math.round(Math.random())-0.5); 
}

/* Starts the animation of the images and text, immediately */
function startAnimation() {
	setTimeout(fadeInImage,0);
	curText = 1;
	setTimeout("fadeInText(" + curText + ")",0);
}

/* Fades in the first image, then sets up the 2nd image as transparent, then waits. */
function fadeInImage() {
	var img = document.getElementById( "image1" );
	curImage1Opacity += .1;
	img.style.mozOpacity = curImage1Opacity;
	img.style.filter = "alpha(opacity=" + curImage1Opacity * 100 + ")";
	img.style.opacity = curImage1Opacity;
	
	if ( curImage1Opacity <= 1.0 )
		setTimeout( fadeInImage, 30 );
	else {
		curImage1Opacity = 1;
		img.style.mozOpacity = curImage1Opacity;
		img.style.filter = "alpha(opacity=" + curImage1Opacity * 100 + ")";
		img.style.opacity = curImage1Opacity;
		
		var imgdiv = document.getElementById( "rotating_images" )
		var img2 = document.createElement("img");
		img2.id = "image2";
		curImage = (curImage >= images.length-1) ? 0 : curImage+1;
		img2.src = images[curImage];
		img2.style.width = "400px";
		img2.style.height = "340px";
		curImage2Opacity = 0;
		img2.style.mozOpacity = curImage2Opacity;
		img2.style.filter = "alpha(opacity=" + curImage2Opacity * 100 + ")";
		img2.style.opacity = curImage2Opacity;
		imgdiv.appendChild(img2);
		setTimeout( crossfadeImages, 1000 );
		curText++;
		setTimeout("fadeInText(" + curText + ")", 1000);
	}
}

/* Performs the crossfade of images, then sets up next image, and repeats, continuously. */
function crossfadeImages() {
	var img1 = document.getElementById( "image1" );
	var img2 = document.getElementById( "image2" );
	curImage1Opacity = (opaqueImage==1) ? curImage1Opacity-.1 : curImage1Opacity+.1;
	curImage2Opacity = (opaqueImage==2) ? curImage2Opacity-.1 : curImage2Opacity+.1;
	img1.style.mozOpacity = curImage1Opacity;
	img1.style.filter = "alpha(opacity=" + curImage1Opacity * 100 + ")";
	img1.style.opacity = curImage1Opacity;
	img2.style.mozOpacity = curImage2Opacity;
	img2.style.filter = "alpha(opacity=" + curImage2Opacity * 100 + ")";
	img2.style.opacity = curImage2Opacity;
	
	if ( ((opaqueImage==1) ? curImage1Opacity : curImage2Opacity) >= 0 ) {
		setTimeout( crossfadeImages, 30 );
	} else {
		curImage1Opacity = (opaqueImage==1) ? 0 : 1;
		curImage2Opacity = (opaqueImage==2) ? 0 : 1;
		img1.style.mozOpacity = curImage1Opacity;
		img1.style.filter = "alpha(opacity=" + curImage1Opacity * 100 + ")";
		img1.style.opacity = curImage1Opacity;
		img2.style.mozOpacity = curImage2Opacity;
		img2.style.filter = "alpha(opacity=" + curImage2Opacity * 100 + ")";
		img2.style.opacity = curImage2Opacity;
	
		opaqueImage = (opaqueImage==1) ? 2 : 1;
		var imgdiv = document.getElementById( "rotating_images" );
		if (opaqueImage==1)
			img2.parentNode.removeChild(img2);
		else
			img1.parentNode.removeChild(img1);
		var newImg = document.createElement("img");
		newImg.id = "image" + ((opaqueImage==1) ? 2 : 1);
		curImage = (curImage >= images.length-1) ? 0 : curImage+1;
		newImg.src = images[curImage];
		newImg.style.width = "400px";
		newImg.style.height = "340px";
		
		if (opaqueImage==1) {
			curImage2Opacity = 0;
			newImg.style.mozOpacity = curImage2Opacity;
			newImg.style.filter = "alpha(opacity=" + curImage2Opacity * 100 + ")";
			newImg.style.opacity = curImage2Opacity;
		} else {
			curImage1Opacity = 0;
			newImg.style.mozOpacity = curImage1Opacity;
			newImg.style.filter = "alpha(opacity=" + curImage1Opacity * 100 + ")";
			newImg.style.opacity = curImage1Opacity;
		}
		imgdiv.appendChild(newImg);
		curText++;
		if (curText <= 6)
			setTimeout( crossfadeImages, 1000 );
		else
			setTimeout( crossfadeImages, 3000 );
		if (curText <= 6)
			setTimeout("fadeInText(" + curText + ")", 1000);
	}
}

/* Fades in the text, one by one. */
function fadeInText(whichText) {
	var text = document.getElementById( "rotating_text_" + whichText );
	if (whichText < 6) {
		curMovement -= 10;
		text.style.marginLeft = ease(curMovement, 0, curMovement, 100) + 'px';
	}
	curTextOpacity += .1;
	text.style.mozOpacity = curTextOpacity;
	text.style.filter = "alpha(opacity=" + curTextOpacity * 100 + ")";
	text.style.opacity = curTextOpacity;
	
	if ( curTextOpacity <= 1.0 )
		setTimeout( "fadeInText(" + whichText + ")", 30 );
	else
		if (whichText < 6) {
			curMovement = 100;
			curTextOpacity = 0;
			//setTimeout( "fadeInText(" + (whichText+1) + ")", 500 );
		}
}

function ease (t,b,c,d) {
	t/=d/2;
	if(t<1)
		return c/2*t*t*t+b;
	t-=2;
	return c/2*(t*t*t+2)+b
}
