// JavaScript Document
var slides={}; 
var goFade={};
var fadePtr={};
var slidesCnt=new Array();
var loadCnt=new Array();
var opacityData=new Array(0,0,5,5,10,10,15,15,20,20,
						  25,25,30,30,35,35,40,40,45,45,50,50,
						  55,55,60,60,65,65,70,70,75,75,80,80,
						  85,85,90,90,95,95,
						  100,100,100,100,100,100,100,100,100,100,100,100,100,100,
						  100,100,100,100,100,100,100,100,100,100,100,100,100,100,
						  100,100,100,100,100,100,100,100,100,100,100,100,100,100,
						  100,100,100,100,100,100,100,100,100,100,100,100,100,100,
						  100,100,100,100,100,100,100,100,100,100,100,100,100,100,
						  100,100,100,100,100,100,100,100,100,100,100,100,100,100,
						  100,100,100,100,100,100,100,100,100,100,100,100,100,100,
						  100,100,100,100,100,100,100,100,100,100,100,100,100,100,
						  100,100,100,100,100,100,100,100,100,100,100,100,100,100,
						  100,100,100,100,100,100,100,100,100,100,100,100,100,100,
						  100,100,100,100,100,100,100,100,100,100,100,100,100,100,
						  100,100,100,100,100,100,100,100,100,100,100,100,100,100,
						  100,100,100,100,100,100,100,100,100,100,100,100,100,100,
						  100,100,100,100,100,100,100,100,100,100,100,100,100,100,
						  100,100,100,100,100,100,100,100,100,100,100,100,100,100,
						  100,100,100,100,100,100,100,100,100,100,100,100,100,100,
						  100,100,100,100,100,100,100,100,100,100,100,100,100,100,
						  100,100,100,100,100,100,100,100,100,100,100,100,100,100,
						  100,100,100,100,100,100,100,100,100,100,100,100,100,100,
						  100,100,100,100,100,100,100,100,100,100,100,100,100,100,
						  100,100,100,100,100,100,100,100,100,100,100,100,100,100,
						  100,100,100,100,100,100,100,100,100,100,100,100,100,100,
						  -1);

//#############################################################################
//#############################################################################
//##
//## SET IT ALL UP (WAIT TILL DOCUMENT HAS FINISHED LOADING BEFORE TRIGGERING)
//##
//#############################################################################
//#############################################################################

window.onload=function groupSlides()
	{
//LOAD ALL INSTANCES OF 'SPAN' TAG INTO ARRAY
	var container=document.getElementsByTagName("img");
	
//CYCLE THROUGH ALL INSTANCES OF SPAN FOR ANY OF CLASS 'slide' 
	for (var i = 0; i < container.length; i++)
		{
		if (container[i].className=="slide")
			{

//JAVASCRIPT DOESN'T HAVE 2D ASSOCIATIVE ARRAYS SO USE A JAVASCRIPT
//'OBJECT' TO SIMULATE THIS.
//'OBJECT'S MUST BE INITIALISED BEFORE USE SO CHECK TO SEE IF THEY EXIST
//EACH TIME THEY ARE ENCOUNTERED.

//INITIAIISE THE COLUMN COUNTER OF AN ASSOCIATIVE ARRAY IF THIS IS THE FIRST TIME
//THEY ARE ENCOUNTERED

			var vl=0;
			if (!slides[container[i].parentNode.id]) 
				{
				slides[container[i].parentNode.id]={};
				goFade[container[i].parentNode.id]={};
				fadePtr[container[i].parentNode.id]={};
				slidesCnt[container[i].parentNode.id]=0;
				loadCnt[container[i].parentNode.id]=0;
				vl=1;
				}

//STORE THE REFERENCE OBJECT FOR THE SPAN CONTAINING A SLIDE USING THE
//[CONTAINING PARENT DIV NAME][INCREMENTING COUNTER] AS AN INDEX 
			tmp=slidesCnt[container[i].parentNode.id];
			slides[container[i].parentNode.id][tmp]=container[i];
			goFade[container[i].parentNode.id][tmp]=vl;
			fadePtr[container[i].parentNode.id][tmp]=0;
			slidesCnt[container[i].parentNode.id]++;

//MODIFY CONTAINING DIV TO 'POSITION:RELATIVE'
			container[i].parentNode.style.position="relative";

//MODIFY EACH SLIDE TO 'POSITION:RELATIVE' (SO THEY STACK)
//AND SET OPACTIY TO 0 (INVISIBLE) AND VISIBILITY TO 'VISIBLE'
//BY CHANGING THE CLASS ATTRIBUTE
			container[i].style.opacity='0';
			container[i].style.filter='alpha(opacity=0)';
			container[i].style.position="absolute";
			container[i].className = 'slidevis'
			container[i].rel=container[i].parentNode.id;

//NOW COUNT NUMBER OF IMAGES TO BE LOADED SO THAT A LOADING GRAPHIC CAN
//BE DISPLAYED UNTIL ALL ARE LOADED
			//container[i].addEventListener('load', imgLoad, false); 
			//container[i].onload= function(){imgLoad(this.rel);};
			}
		}

//START TIMER TICKING
	t=setTimeout("runFade()",17);
	}

//#############################################################################
//#############################################################################
//##
//## RUN TIMER
//##
//#############################################################################
//#############################################################################

function runFade()
	{
	for(var key in slidesCnt) 
		{
//GET SLIDE SET KEY
		var numSlides = slidesCnt[key];

//RUN THROUGH ALL SLIDES IN SLIDE SET
		for (i=0;i<numSlides;i++)
			{

//IF THIS IS TRUE, THIS IS THE FADE-UP SLIDE
			if (goFade[key][i]>0)
				{				
				slides[key][i].style.zIndex=100;
				slides[key][i].style.visibility="visible";
				fadePtr[key][i]++;
				if (opacityData[fadePtr[key][i]]==-1)
					{
					goFade[key][i]=0;
					var nvl=i+1;

					if (nvl>=slidesCnt[key]) {nvl=0;}
						
					goFade[key][nvl]=1;
					fadePtr[key][i]--;
					}
				}
			else
				{
				slides[key][i].style.zIndex=0;
				if (fadePtr[key][i]>0) {fadePtr[key][i]--;}
				else {slides[key][i].style.visibility="hidden";}
				}
				
			slides[key][i].style.opacity=opacityData[fadePtr[key][i]]/100;
			slides[key][i].style.filter='alpha(opacity='+opacityData[fadePtr[key][i]]+')';
			}
		}

	clearTimeout(t);
	t=setTimeout("runFade()",17);		
	}

