function addEvent(oTarget, sEventName, fAttachFunc) 
{ if (window.attachEvent) oTarget.attachEvent("on" + sEventName, fAttachFunc); else oTarget.addEventListener(sEventName, fAttachFunc, false); }

var SLIDES = 0;
var SLIDESHOW = 1;
var SLIDEWIPE = 2;
var WIPEINITOFFSET = 3;
var WIPECURROFFSET = 4;
var CURRENTSLIDE = 5;
var LASTSLIDE = 6;
var STATE = 7;
var STATECOUNTER = 8;

var g_aShows = new Array();
//var g_aSlideList = new Array();
//var g_oSlideShowHead = null;
//var g_oSlideShowWipe = null;

//var g_iWipeInitOffset = 0;
//var g_iWipeCurrOffset = 0;

//var g_iCurrSlide = 1;
//var g_iLastSlide = 0;
//var g_iTimerDelay = 25;
var g_iTimerDelay = 15;

//var g_iState = 0;
//var g_iStateCounter = 0;

function initSlideShow()
{
	//tpcSlideShow
	aDivs = window.document.getElementsByTagName("div");

	for(iLoop1 = 0; iLoop1 < aDivs.length; iLoop1++)
	{
		oSlideShowHead = aDivs[iLoop1];
		if (oSlideShowHead.className.match(/^tpcSlideShow$/))
		{
			aSlideList = new Array();
			oSlideShowWipe = null;
			aDivsShow = oSlideShowHead.getElementsByTagName("div");
			for (iLoop2 = 0; iLoop2 < aDivsShow.length; iLoop2++)
			{
				oCurDiv = aDivsShow[iLoop2];
				if (oCurDiv.className.match(/^tpcSlide$/)) { aSlideList[aSlideList.length] = oCurDiv; }
				else if (oCurDiv.className.match(/^tpcSlideWipe$/)) { oSlideShowWipe = oCurDiv; }
			}
			if (aSlideList.length > 0)
			{
				iIdx = g_aShows.length;
				g_aShows[iIdx] = new Array();
				g_aShows[iIdx][SLIDES] = aSlideList;
				g_aShows[iIdx][SLIDESHOW] = oSlideShowHead;
				g_aShows[iIdx][SLIDEWIPE] = oSlideShowWipe;

				g_aShows[iIdx][SLIDEWIPE].style.display = "block";
				g_aShows[iIdx][WIPECURROFFSET] = g_aShows[iIdx][WIPEINITOFFSET] = g_aShows[iIdx][SLIDEWIPE].offsetTop;
				g_aShows[iIdx][SLIDEWIPE].style.display = "none";

				g_aShows[iIdx][CURRENTSLIDE] = 0;
				g_aShows[iIdx][LASTSLIDE] = g_aShows[iIdx][SLIDES].length - 1;

				g_aShows[iIdx][SLIDES][g_aShows[iIdx][CURRENTSLIDE]].style.zIndex = 4;
				g_aShows[iIdx][SLIDES][g_aShows[iIdx][LASTSLIDE]].style.zIndex = 3;

				g_aShows[iIdx][STATE] = 0;
				g_aShows[iIdx][STATECOUNTER] = 0;
			}
		}
	}


	//wait until all init done
	window.setInterval(new Function("timerEvent();"), g_iTimerDelay);
}


function timerEvent()
{
	//STATE
	// 0: slide hidden image
	// 1: slide shown
	// 2: slide moved
	// 3: slide done, hide slide, reset return to 0;
	for(iIdx = 0; iIdx < g_aShows.length; iIdx++)
	{

		if (g_aShows[iIdx][STATE] == 0)
		{
			g_aShows[iIdx][STATECOUNTER]++;
			if (1 == g_aShows[iIdx][STATECOUNTER])
			{
				g_aShows[iIdx][SLIDES][g_aShows[iIdx][LASTSLIDE]].style.zIndex = 2;
				g_aShows[iIdx][LASTSLIDE] = g_aShows[iIdx][CURRENTSLIDE];
				g_aShows[iIdx][CURRENTSLIDE]++;
				if (g_aShows[iIdx][CURRENTSLIDE] >= g_aShows[iIdx][SLIDES].length)
					g_aShows[iIdx][CURRENTSLIDE] = 0;
			}
			else if (g_aShows[iIdx][STATECOUNTER] > 100)
			{
				g_aShows[iIdx][STATE] = 1;
				g_aShows[iIdx][STATECOUNTER] = 0;
			}
		}
		else if (g_aShows[iIdx][STATE] == 1)
		{

			g_aShows[iIdx][STATECOUNTER]++;
			if (g_aShows[iIdx][STATECOUNTER] > 5)
			{
				g_aShows[iIdx][STATE] = 2;
				g_aShows[iIdx][STATECOUNTER] = 0;

				//s = '';
				//o = g_aShows[iIdx][SLIDES][g_aShows[iIdx][CURRENTSLIDE]].style;
				//for(i in o)
				//	s += i + ' -- ';
				//window.alert(s);
				//window.alert(g_aShows[iIdx][SLIDES][g_aShows[iIdx][CURRENTSLIDE]].style.height);

				g_aShows[iIdx][SLIDES][g_aShows[iIdx][CURRENTSLIDE]].style.height = '1px';

				//window.alert(g_aShows[iIdx][SLIDES][g_aShows[iIdx][CURRENTSLIDE]].style.height);

				g_aShows[iIdx][SLIDES][g_aShows[iIdx][LASTSLIDE]].style.zIndex = 3;
				g_aShows[iIdx][SLIDES][g_aShows[iIdx][CURRENTSLIDE]].style.zIndex = 4;

				g_aShows[iIdx][WIPECURROFFSET] = g_aShows[iIdx][WIPEINITOFFSET] - 2;

				g_aShows[iIdx][SLIDEWIPE].style.top = g_aShows[iIdx][WIPECURROFFSET];
			}
		}
		else if (g_aShows[iIdx][STATE] == 2)
		{
			g_aShows[iIdx][STATECOUNTER]++;
			if (g_aShows[iIdx][STATECOUNTER] <= g_aShows[iIdx][SLIDESHOW].clientHeight)
			{
				g_aShows[iIdx][WIPECURROFFSET] += 1;
				if (g_aShows[iIdx][STATECOUNTER] >= 9)
					g_aShows[iIdx][SLIDEWIPE].style.display = "block";

				if (g_aShows[iIdx][STATECOUNTER] < g_aShows[iIdx][SLIDESHOW].clientHeight - 1)
					g_aShows[iIdx][SLIDEWIPE].style.top = '' + g_aShows[iIdx][WIPECURROFFSET] + 'px';

				g_aShows[iIdx][SLIDES][g_aShows[iIdx][CURRENTSLIDE]].style.height = '' + g_aShows[iIdx][STATECOUNTER] + 'px';
			}
			else
			{
				g_aShows[iIdx][STATE] = 3;
				g_aShows[iIdx][STATECOUNTER] = 0;
			}
		}
		else if (g_aShows[iIdx][STATE] == 3)
		{
			g_aShows[iIdx][STATECOUNTER]++;
			if (g_aShows[iIdx][STATECOUNTER] > 5)
			{
				g_aShows[iIdx][STATE] = 0;
				g_aShows[iIdx][STATECOUNTER] = 0;
				g_aShows[iIdx][SLIDEWIPE].style.top = g_aShows[iIdx][WIPECURROFFSET] = g_aShows[iIdx][WIPEINITOFFSET] - 2;
				g_aShows[iIdx][SLIDEWIPE].style.display = "none";
			}
		}

	}
}

/*
 * when needed, convert g_xxx to g_aShows[idx][xxx]
 *

function nextSlide()
{
	if (g_oSlideShowWipe.style.display == "none")
	{
		g_aSlideList[g_iLastSlide].style.zIndex = 3;
		g_aSlideList[g_iCurrSlide].style.zIndex = 4;
	}
	else
	{
		g_aSlideList[g_iCurrSlide].style.height = g_oSlideShowHead.clientHeight;
		g_oSlideShowWipe.style.display = "none";
		g_oSlideShowWipe.style.top = g_iWipeCurrOffset = g_iWipeInitOffset;
	}

	g_iState = 0;
	g_iStateCounter = 0;
}

function prevSlide()
{
	if (g_oSlideShowWipe.style.display == "none")
	{
		g_aSlideList[g_iLastSlide].style.zIndex = 2;

		g_iCurrSlide = g_iLastSlide;
		g_iLastSlide--;
		if (g_iLastSlide < 0)
			g_iLastSlide = g_aSlideList.length - 1;

		g_aSlideList[g_iLastSlide].style.zIndex = 4;
		g_aSlideList[g_iCurrSlide].style.zIndex = 3;
	}
	else
	{
		g_aSlideList[g_iLastSlide].style.zIndex = 4;
		g_aSlideList[g_iCurrSlide].style.zIndex = 3;

		g_aSlideList[g_iCurrSlide].style.height = g_oSlideShowHead.clientHeight;
		g_oSlideShowWipe.style.display = "none";
		g_oSlideShowWipe.style.top = g_iWipeCurrOffset = g_iWipeInitOffset;
	}

	g_iState = 0;
	g_iStateCounter = 1;
}

function gotoSlide(i)
{
	if ((i < 0) || (i >= g_aSlideList.lengh))
		i = 0;

	if (g_oSlideShowWipe.style.display != "none")
	{
		g_aSlideList[g_iCurrSlide].style.height = g_oSlideShowHead.clientHeight;
		g_oSlideShowWipe.style.display = "none";
		g_oSlideShowWipe.style.top = g_iWipeCurrOffset = g_iWipeInitOffset;
	}

	g_aSlideList[g_iCurrSlide].style.zIndex = 2;
	g_aSlideList[g_iLastSlide].style.zIndex = 2;
	g_aSlideList[i].style.zIndex = 4;

	g_iLastSlide = i;
	g_iCurrSlide = i + 1;
	if (g_iCurrSlide >= g_aSlideList.length)
		g_iCurrSlide = 0;

	g_aSlideList[g_iCurrSlide].style.zIndex = 2;

	g_iState = 0;
	g_iStateCounter = 1;


}
*/


addEvent(window, "load", new Function("initSlideShow();"));


