﻿
var lastimage=-1;
var images = [];
var imageid= [];
var imagenum = [];
var imageback=[];
var imageorder =[];
var imagesleft =[];
var k;
var currentimage=0;
var preloadimage= new Image(25,25);
var curleft=0;
var ZFront=0;
var ZBack=-2;
//specify all images here
images[0]=["/PublishingImages/Bface1-1.jpg","/PublishingImages/Bface1-2.jpg","/PublishingImages/Bface1-3.jpg"];
imageid[0]="image1";
imagenum[0]=0;
imageback[0]=1;
images[1]=["/PublishingImages/Bface2-1.jpg","/PublishingImages/Bface2-2.jpg","/PublishingImages/Bface2-3.jpg"];
imageid[1]="image2";
imagenum[1]=0;
imageback[1]=1;
images[2]=["/PublishingImages/Bface3-1.jpg","/PublishingImages/Bface3-2.jpg","/PublishingImages/Bface3-3.jpg"];
imageid[2]="image3";
imagenum[2]=0;
imageback[2]=1;
images[3]=["/PublishingImages/Bface4-1.jpg","/PublishingImages/Bface4-2.jpg","/PublishingImages/Bface4-3.jpg"];
imageid[3]="image4";
imagenum[3]=0;
imageback[3]=1;
images[4]=["/PublishingImages/Bface5-1.jpg","/PublishingImages/Bface5-2.jpg","/PublishingImages/Bface5-3.jpg"];
imageid[4]="image5";
imagenum[4]=0;
imageback[4]=1;



//specify all images before this line

function loadimageorder()
{
	for(k=0;k<images.length;k++)
	{
		imagesleft[k]=k;
	}
	for(k=0;k<images.length;k++)
	{
		var img=0;
		img=Math.floor(Math.random()*imagesleft.length);
		if(imageorder.length==0 && lastimage==imagesleft[img])
		{
			//If its the same as the last image on the first to be put in the array, chooses the next one.
			img=(img+1)%imagesleft.length;
		}
		
		imageorder[k]=imagesleft[img];
		imagesleft.splice(img,1);
	}
}

loadimageorder();


//randomly select next image to change
//currentimage=Math.floor(Math.random()*images.length);

for(i=0; i < images.length; i++)
{
	//randomly select next image to change to for all images
	imagenum[i] = Math.floor(Math.random()*images[i].length);
	//preload next image for all
	preloadimage.src=images[i][(imagenum[i]+1)%images[i].length];
}


function returnObjById( id )
{
    if (document.getElementById)
        var returnVar = document.getElementById(id);
    else if (document.all)
        var returnVar = document.all[id];
    else if (document.layers)
        var returnVar = document.layers[id];
    return returnVar;
}

function fadeChangeImage(fore,back,newimage)
{
	var millisec=400;
    var speed = Math.round(millisec / 100); 
    var timer = 0; 
	var opacStart =0;
	var opacEnd = 100;
    //Back to front by fading foreground image
    changeOpac(0,back);
   	changeImage(back,newimage);
    returnObjById(fore).style.zIndex=ZBack;
    returnObjById(back).style.zIndex=ZFront;




    for(i = 0; i <= 100; i++) { 
    	//setTimeout("changeOpac(" + 100-i + ",'" + id+fore + "')",(timer * speed)); 
    	setTimeout("changeOpac(" + i + ",'" + back + "')",(timer * speed)); 
        timer++; 
    } 
     


}
function changeImage(id,image)
{
	eval("returnObjById(id).src = '"+image+"';");
}

function opacity(id, opacStart, opacEnd, millisec) { 
    //speed for each frame 
    var speed = Math.round(millisec / 100); 
    var timer = 0; 

    //determine the direction for the blending, if start and end are the same nothing happens 
    if(opacStart > opacEnd) { 
        for(i = opacStart; i >= opacEnd; i--) { 
            setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed)); 
            timer++; 
        } 
    } else if(opacStart < opacEnd) { 
        for(i = opacStart; i <= opacEnd; i++) 
            { 
            setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed)); 
            timer++; 
        } 
    } 
} 

//change the opacity for different browsers 
function changeOpac(opacity, id) { 
    var object = returnObjById(id).style; 
    object.opacity = (opacity / 100); 
    object.MozOpacity = (opacity / 100); 
    object.KhtmlOpacity = (opacity / 100); 
    object.filter = "alpha(opacity=" + opacity + ")"; 
} 

function rotateImages()
{
	//add code to prevent rotating the same image twice in a row when done test single image rotation
	//currentimage=Math.floor(Math.random()*images.length);
//	while(currentimage==lastimage)
//	{
//		currentimage=Math.floor(Math.random()*images.length);
//	}
	if(imageorder.length < 1)
		loadimageorder();
	currentimage=imageorder.pop();
	lastimage=currentimage;
	
	if (document.images) 
	{
		var back="";
		var fore="";
		//images[1][2] = (images[1][2]+1)%(images[1].length-2);
		imagenum[currentimage]=(imagenum[currentimage]+1)%images[currentimage].length;
		//opacity change to 0
		//eval("returnObjById(imageid[currentimage]).src = '"+images[currentimage][imagenum[currentimage]]+"';");
		if(imageback[currentimage]==0)
		{
			back="_0";
			fore="_1";
			imageback[currentimage]=1;
		}
		else
		{
			back="_1";
			fore="_0";
			imageback[currentimage]=0;
		}
		fadeChangeImage(imageid[currentimage]+fore,imageid[currentimage]+back,images[currentimage][imagenum[currentimage]]);
		//Should preload next image here
		preloadimage.src=images[currentimage][(imagenum[currentimage]+1)%images[currentimage].length];
		setTimeout("rotateImages()",4000);
	}
}
function getimage( curimage )
{
	var returnVar;
	returnVar="<div style='position:relative;left:"+curleft+"px;'><img id='"+imageid[curimage]+"_0' src='"+images[curimage][imagenum[curimage]]+"' style='position:absolute;top:0;left:0;z-index:"+ZFront+";'/><img id='"+imageid[curimage]+"_1' src='"+images[curimage][imagenum[curimage]]+"' style='position:absolute;top:0;left:0;z-index:"+ZBack+";'/></div>";
	curleft+=183;
	return returnVar;
}
//Run this in the body onload event
function runPhotoChange()
{
	setTimeout("rotateImages()",4000);
}

