﻿//this is essentially the same as imagecycle.js except there are no captions, are more images, 
//and no pop-up function. I haven't bothered to annotate it for this reason.

var isStopped = false;

var changeTimeDelay = 10; 
changeTimeDelay *= 400;

var currentTimeDelay = 0; 
var changespeed = new Array();
changespeed[0] = .25;
changespeed[1] = .5;
changespeed[2] = 1;
changespeed[3] = 4;
changespeed[4] = 8;
changespeed[5] = .25;
changespeed[6] = .5;
changespeed[7] = 1;
changespeed[8] = 4;
changespeed[9] = 8;
changespeed[10] = .25;
changespeed[11] = .5;
changespeed[12] = 1;
changespeed[13] = 4;
changespeed[14] = 8;

var pfiles = new Array ();
var startpix = new Array ();

i = 0; 
pfiles[i] = "hansen.gif";
i++;
pfiles[i] = "ethnicmap.gif";
i++;
pfiles[i] = "oppenheimer.gif";
i++;
pfiles[i] = "autopsy.gif";
i++;
pfiles[i] = "heads.gif";
i++;
pfiles[i] = "stockton.gif";
i++;
pfiles[i] = "randomdigits.gif";
i++;
pfiles[i] = "nytimesbomb.gif";
i++;
pfiles[i] = "heads.gif";
i++;
pfiles[i] = "fwhatch.gif";
i++;
pfiles[i] = "galtonrecord.gif";
i++;
pfiles[i] = "atomsuspicion.gif";
i++;
pfiles[i] = "classified.gif";
i++;
pfiles[i] = "hornigpatent.gif";
i++;
pfiles[i] = "plutoniumpatent.gif";
i++;
pfiles[i] = "galtondice.gif";
i++;
pfiles[i] = "sonoma.gif";
i++;
pfiles[i] = "sovietbombs.gif";
i++;
pfiles[i] = "sterilizationform.gif";
i++;
pfiles[i] = "darwin.jpg";
i++;
pfiles[i] = "rapatronic.jpg";
i++;
pfiles[i] = "bradburygadget.jpg";
i++;
pfiles[i] = "KodakFilmFogged.gif";
i++;
pfiles[i] = "DixieDancer.gif";
i++;
pfiles[i] = "GreenglassDiagram.gif";



var intervalIDs = new Array();
var Pix = new Array (new Array ());
var totalImages = 8; //number of image slots on the page
var howMany = pfiles.length;
var PicCurrentNum = new Array();
var PicCurrent = new Array();
var emptyArray = new Array(new Array());
var blankArray = new Array();

for(a=0;a<howMany;a++) {
	blankArray[a] = a;
};

for(i=0;i<totalImages;i++) {
	emptyArray[i] = blankArray;
};

for(i=0;i<totalImages;i++) { //initialize arrays
	Pix[i] = arrayshuffle(emptyArray[i]);
	PicCurrentNum[i]=-1;
	PicCurrent[i]= new Image();
	PicCurrent[i].src = "../imagecycle-small/" + pfiles[Pix[i][0]];
};

function startPix() { //initialize the slideshow
	changespeed = arrayshuffle(changespeed);
	for (i=0;i<totalImages;i++) {
		thisDelay = changespeed[i];
		thisDelay *= 400;
		intervalIDs[i] = setInterval("slideshow(" + i + ")", thisDelay);
	};
	if(getCookie('wellerst_images')==1) {
		stopPix();
	};
	setInterval("changedelays()", changeTimeDelay);
}

function changedelays() { //changes the slideshow delay intervals
	var ii;
	changespeed = arrayshuffle(changespeed);
	for (ii=0;ii<totalImages;ii++) {	
		thisDelay = changespeed[ii];
		thisDelay *= 400;
		clearInterval(intervalIDs[ii]);
		intervalIDs[ii] = setInterval("slideshow("+ii+")", thisDelay);
	};
}

function slideshow(x) { 
	if(!isStopped) {
		PicCurrentNum[x]++;
		if (PicCurrentNum[x] == howMany) {
			PicCurrentNum[x] = 0;
		};
		PicCurrent[x].src = "../imagecycle-small/" + pfiles[Pix[x][PicCurrentNum[x]]];
		document["ChangingPix[" + x + "]"].src = PicCurrent[x].src;
	}
}

function arrayshuffle(shuffarray) { 
	var thisarray = new Array();
	var cc; var xx; var bb;
	for(cc=0;cc<shuffarray.length;cc++) {
		thisarray[cc] = shuffarray[cc];
	};	
	xx = thisarray.length-1;
	for(bb=0;bb<=xx;bb++){
		Temp = thisarray[bb];
		RandomElem = Math.floor(Math.random() * (xx+1));
		thisarray[bb]=thisarray[RandomElem];
		thisarray[RandomElem] = Temp;
	};
	return thisarray;
};

function stopPix() {
	if(!isStopped) {
		isStopped = true;
		document.getElementById("stoppixbutton").innerHTML = "Start images";
		setStopCookie(1);
	} else {
		isStopped = false;
		document.getElementById("stoppixbutton").innerHTML = "Stop images";
		setStopCookie(0);
	}
}

function setStopCookie(value) {
	var exdate=new Date();
	var expiredays = 365;
	var c_name = "wellerst_images";
	exdate.setDate(exdate.getDate()+expiredays);
	document.cookie=c_name+ "=" +escape(value)+((expiredays==null) ? "" : ";expires="+exdate.toGMTString());
}

function getCookie(c_name) {
	if (document.cookie.length>0)
	  {
	  c_start=document.cookie.indexOf(c_name + "=");
	  if (c_start!=-1)
	    {
	    c_start=c_start + c_name.length+1;
	    c_end=document.cookie.indexOf(";",c_start);
	    if (c_end==-1) c_end=document.cookie.length;
	    return unescape(document.cookie.substring(c_start,c_end));
	    }
	  }
	return "";
}