var diff, speed, sldtime, exptime, timeslice;
var begin=new Date();

//////////////////////////////////////// Not very accurate, but
//estimate average slide download time// better than a slap in
//////////////////////////////////////// the teeth.
function conspd()
	{
	var end=new Date();	
	diff=end.getTime()-begin.getTime();
	speed=(45000/diff); //Download Size divided by Time Taken (KB/s)
	sldtime=22.5/speed; //Ave. Slide File Size divided by speed (s/slide)
	}

////////////////////////////////
//global Variable declarations//
////////////////////////////////
var maxslds=12;	//PROBABLY Need to Reposition Elements if Changed.
											
var folders=new Array("ps/", "pr/", "bt/", "cr/", "bc/", "th/"), slds=new Array(5, 2, 3, 2, 4, 5);							

var folderpos=Math.round(Math.random()*(folders.length-1));

var photo=new Array();

var contents, contplus, count, currentset, i, irelandheight, loaded;

var  picnum, pointer, rand_slide, sld, sldnum, source, step, tn_name;

var c0="#cc9", c1="#996", c2="#686", c3="#663", c4="#f93", cb="#000",cw="#fff";

var running=new Boolean(); running=false;

var grabid=document.getElementById;

var start=new Image(); start.src="images/gifs/start.gif";
var stop=new Image(); stop.src="images/gifs/stop.gif";

for(count=0; count<folders.length; count++)
	{eval("var "+folders[count].substr(0,2)+"=new Array("+slds[count]+");");
	for(i=0; i<slds[count]; i++)
		{eval(folders[count].substr(0,2)+"["+i+"]=new Image(500,400)")}
	}

//////////////////////////////
//Set window status bar text//
//////////////////////////////
function winstat() 
{
window.status = "http://www.ni-causewaycoast.co.uk";
setTimeout("winstat()", 25);
}

winstat();

//////////////////////////
//Find Live Canvas Width//
//////////////////////////
function findlivewidth()
	 {
	if (document.body.clientWidth != null)
		{return document.body.clientWidth;}
	if (window.innerWidth != null)
		{return window.innerWidth;}
	return null;
	}

///////////////////////////
//Find Live Canvas Height//
///////////////////////////
function findliveheight()
	{
	if (document.body.clientHeight != null)
		{return document.body.clientHeight;}
	if (window.outerHeight != null)
		{return window.outerHeight;}
	return null;
	}

////////////////////////////////////////////////////////////////
//Set div layout and return consolwidth for image map re-align//
////////////////////////////////////////////////////////////////
function setdivs()
	{
	var livewidth=findlivewidth();
	var liveheight=findliveheight();
	var theflixwidth=0.98*livewidth;
	if(liveheight>800)
		{var theflixheight=0.39*livewidth;
		var slideholderwidth=1.25*theflixheight;
		var consolwidth=theflixwidth-slideholderwidth-30;
		}
	else
		{if(liveheight<400)
			{var theflixheight=0.55*liveheight;
			var slideholderwidth=1.25*theflixheight;
			var consolwidth=0.49*theflixwidth;
			}
		else
			{var theflixheight=0.55*liveheight;
			var slideholderwidth=1.25*theflixheight;
			var consolwidth=theflixwidth-slideholderwidth-35;
			}
		}
	var slideholderheight=theflixheight;
	var slidewidth=slideholderwidth;
	var slideheight=0.8*slidewidth;
	var consolheight=slideholderheight;
	var tomthumbwidth=consolwidth;
	var tomthumbheight=1.6*((tomthumbwidth/6)-2)+4;
	var thumbholderwidth=(tomthumbwidth/6)-3;
	var thumbholderheight=0.8*(thumbholderwidth-6)+6;
	irelandheight=0.93*liveheight-theflixheight-10;
		
	grabid("theflix").style.height=theflixheight+"px";
	grabid("slideholder").style.height=slideholderheight+"px";
	grabid("slideholder").style.width=slideholderwidth+"px";
	grabid("slide").style.height=slideheight+"px";
	grabid("slide").style.width=slidewidth+"px";
	grabid("consol").style.width=consolwidth+"px";
	grabid("tomthumb").style.height=tomthumbheight+"px";
	grabid("tomthumb").style.width=tomthumbwidth+"px";
	var id1;
	for(count=1;count<=maxslds;count++)
		{
		id="holder"+count;
		grabid(id).style.height=thumbholderheight+"px";
		grabid(id).style.width=thumbholderwidth+"px";
		}
	grabid("imgmap").style.height=0.33*consolwidth+"px";
	grabid("imgmap").style.width=consolwidth+"px";
	grabid("ireland").style.height=irelandheight+"px";
	return consolwidth;
	}



////////////////////////////////////////////////////
//Set pointer and variables for initial slide etc.//
////////////////////////////////////////////////////
function init(source)
	{
	
	currentset=source.substr(0,2);
	pointer="images/"+source;
	var pos;
	for(count=0;count<=folders.length-1;count++)				
		{if(folders[count]==source)						
			{pos=count;
			contents=slds[pos];
			contplus=contents+1;
			sld=Math.round(Math.random()*(slds[pos]-1)+1);
			rand_slide=pointer+sld+".jpg";
			assignphoto(sld);
			break;
			}
		}
	}

/////////////////////////////////////////////////
//assign single photo to array cell and display//
/////////////////////////////////////////////////
function assignphoto(sldnum)
	{
	var setsrc=currentset+"["+(sldnum-1)+"].src="+"'"+pointer+sldnum+".jpg';";
	var dspimg="grabid('slide').src="+currentset+"["+(sldnum-1)+"].src;";
	eval(setsrc);
	if(grabid("slide"))
		{eval(dspimg)}
	}

////////////////////////////////////////
//set source and hide extra thumbnails//
////////////////////////////////////////
function setsource(source)
	{
	if(running){preload_photos()}
	init(source);
	show_tn_focus(sld);
	var picnum;
	for(count=1;count<=maxslds;count++)
		{picnum=count%contents;
		if(picnum==0)
			{picnum=contents}
		grabid(eval(count)).style.visibility="visible";
		grabid(eval(count)).src=pointer+picnum+"t.jpg";
		if(count>contents)
			{grabid(eval(count)).style.visibility="hidden"}
		}
	}

/////////////////////////////////////////////////////
//highlight thumbnail associated with current slide//
/////////////////////////////////////////////////////
function show_tn_focus(sldnum)
	{
	var id1, id2
	for(count=1;count<=maxslds;count++)
		{id1="holder"+count;
		if(count<=contents)
			{grabid(id1).style.border="solid #666 1px"}
		else
			{grabid(id1).style.border=""}
		}
	id2="holder"+sldnum;
	grabid(id2).style.border="solid #f00 1px";
	}

////////////////
//back 1 slide//
////////////////
function back()
	{
	sld=sld-1;
	if(sld<1)
		{sld=contents}
	assignphoto(sld);
	show_tn_focus(sld);
	}

///////////////////
//forward 1 slide//
///////////////////
function next()
	{
	sld++;
	if(sld>contents)
		{sld=1}
	assignphoto(sld);
	show_tn_focus(sld);
	}

/////////////////////////////////
//response to thumbnail click.///
/////////////////////////////////
function tn_click(tn_name)
	{
	if(tn_name==""){return}
	assignphoto(tn_name);
	show_tn_focus(tn_name);
	sld=tn_name;
	}

/////////////////////////
//start/stop slide show//
/////////////////////////
function on_off()
	{
	step=1;	
	if(running)
		{running=false;
		grabid("show").src=start.src;
		step=contplus;
		clearTimeout(timer1)
		sldshow();	
		}
	else
		{
		running=true;
		grabid("show").src=stop.src;
		sldshow();
		}
	}

/////////////////////////////////
//display download progress bar//
/////////////////////////////////
function progress(width)
	{
	var newwidth=grabid("pleasewait").offsetWidth*0.90*width/50;
	grabid("countdown").style.width=newwidth;
	width++;
	if(width<51)
		{setTimeout("progress("+width+")",timeslice)}
	return
	}

//////////////////////////////////////////
//display please wait message and option//
//////////////////////////////////////////
function pleasewait(exptime, mode, toload)
	{
	timeslice=Math.floor(20*exptime);
	if(mode==1 && exptime>5)
		{
		grabid("imgmap").style.visibility="hidden";
		grabid("controls").style.visibility="hidden";
		grabid("pleasewait").style.visibility="visible";
		progress(0);
		}
	else
		{
		grabid("imgmap").style.visibility="visible";
		grabid("controls").style.visibility="visible";
		grabid("pleasewait").style.visibility="hidden";
		if(toload==0)
			{on_off();}
		}
	}

///////////////////////////////////////////
//preload remaining photos for slide show//
///////////////////////////////////////////
function preload_photos()
	{
	if(!running)
		{
		for(count=0; count<eval(currentset+".length"); count++)
			{
			photo[count]=new Image(500,400);
			eval("if("+currentset+"["+count+"])");
				{photo[count].src=eval(currentset+"["+count+"].src;")}
			}	
		var ind=0;
		var toload=new Array();
		for(count=0; count<=contents-1; count++)
			{if(photo[count].src.indexOf(".jpg")==-1)
				{toload[ind]=count+1;ind++}
			}
		if(toload.length>0)
			{
			exptime=sldtime*toload.length+1;
			pleasewait(exptime, 1, toload.length);
				for(count=0; count<toload.length; count++)
					{photo[toload[count]-1]=new Image(500,400);
					photo[toload[count]-1].src=pointer+toload[count]+".jpg"
					}
			for(count=0; count<eval(currentset+".length"); count++)
				{eval(currentset+"["+count+"].src=photo["+count+"].src;")}
			setTimeout('pleasewait(0,0,0)',exptime*1000);
			}
		else
			{on_off()}
		}
	else
		{on_off()}
	}

//////////////////
//run slide show//
//////////////////
function sldshow()
	{
	if(step==contplus)
		{grabid("slide").src=photo[sld-1].src;
		show_tn_focus(sld);
		running=false;
		grabid("show").src=start.src;
		}
	else
		{grabid("slide").src=photo[step-1].src;
		show_tn_focus(step);
		step++;
		timer1=setTimeout('sldshow()',4000);
		}
	}
/*
//////////////////////////////
//get current map dimensions//
//////////////////////////////
function mapdims()
	{
	mapw=grabid("imgmap").offsetWidth;
	maph=grabid("imgmap").offsetHeight;
	//alert(mapw);
	//alert(maph);
	//alert('<area shape="rect" coords="'+Math.round(mapw*0.278)+','+Math.round(maph*0.632)+','+Math.round(mapw*0.29)+','+Math.round(maph*0.667)+'" href="#" onClick=\'setsource("tr/")\' alt="Portstewart">');
	}
*/
//////////////////////////////////////////////////
/////////////////let's get to it//////////////////
//////////////////////////////////////////////////

window.onresize = function (evt) { location.reload()}

init(folders[folderpos]);
