var G_slideTimer = 0;
var G_transTimer = 0;
var G_slide = 0;
var G_transId = '';
var G_s_interval = 7000;
var G_t_interval = 50;
var G_slidesLoaded = 0;

window.onload = init;

document.write('<style type="text/css">div#SD_image_holder img{display:none}</style>');

function init()
{
	// preload images
	for (var x = 0; x < 13; x++)
	{
		eval('var image'+x+' = new Image();');
		eval('image'+x).src = 'img/walkthrough/'+SLIDESHOW+'/slide_'+x+'.jpg';
		eval('image'+x).onload = loadSlides;
	}
	
	// set up image holder
	var img_hold = document.getElementById('SD_image_holder');
	var img1 = img_hold.getElementsByTagName('img')[0];
	img_hold.style.position = 'relative';
	img1.style.position = 'absolute';
	img1.top = '0px';
	img1.left = '0px';
	// set up second image
	var img2 = document.createElement('img');
	img2.id = 'SD_image1';
	img2.style.position = 'absolute';
	img2.style.top = '0px';
	img2.style.left = '0px';
	changeOpacity(img2,0);
	img_hold.appendChild(img2);
}

function loadSlides()
{
	G_slidesLoaded++;
	
	if (G_slidesLoaded == G_slides) 
	{
		// display slides
		document.getElementById('SD_image_holder').getElementsByTagName('img')[0].style.display = 'block';
		document.getElementById('SD_image_holder').getElementsByTagName('img')[1].style.display = 'block';
		
		// set up events
		document.getElementById('SD_bk').onclick = function(){SD_goBack();return false};
		document.getElementById('SD_pp').onclick = function(){SD_playPause(this);return false};
		document.getElementById('SD_fw').onclick = function(){SD_goForward();return false};
		
		G_slideTimer = setTimeout('SD_goForward()',3500);	
	}
}

function SD_playPause(dom_obj)
{
	if (G_slideTimer)
	{
		clearTimeout(G_slideTimer);
		G_slideTimer = 0;
		
		dom_obj.innerHTML = 'play';
	}
	else
	{
		if (G_slide == G_slides)
		{
			G_slide = 0;
			document.getElementById('SD_image_holder').getElementsByTagName('img')[0].src = 'img/walkthrough/'+SLIDESHOW+'/slide_'+(G_slide)+'.jpg';
		}
		
		G_slideTimer = setTimeout('SD_goForward()',G_s_interval);
		
		dom_obj.innerHTML = 'pause';
	}
}

function SD_goForward()
{
	if (G_transTimer)
	{
		clearTimeout(G_transTimer);
		SD_endTransition();
	}
	
	if (G_slide < G_slides)
	{
		if (G_slideTimer)
		{
			clearTimeout(G_slideTimer);
			G_slideTimer = 0;
			
			SD_startTransition(++G_slide);
		
			G_slideTimer = setTimeout('SD_goForward()',G_s_interval);
		}
		else SD_startTransition(++G_slide);
	}
	else
	{
		if (G_slideTimer)
		{
			clearTimeout(G_slideTimer);
			G_slideTimer = 0;
		}
		
		document.getElementById('SD_pp').innerHTML = 'restart';
	}
}

function SD_goBack()
{
	if (G_transTimer)
	{
		clearTimeout(G_transTimer);
		SD_endTransition();
	}
	
	if (G_slide > 0)
	{
		if (G_slideTimer)
		{
			clearTimeout(G_slideTimer);
			G_slideTimer = 0;
			
			SD_startTransition(--G_slide);
			
			G_slideTimer = setTimeout('SD_goForward()',G_s_interval);
		}
		else SD_startTransition(--G_slide);
	}
}

function SD_startTransition(slide)
{
	var img1 = document.getElementById('SD_image_holder').getElementsByTagName('img')[0];
	var img2 = document.getElementById('SD_image_holder').getElementsByTagName('img')[1];
	
	if (slide % 2) img2.src = 'img/walkthrough/'+SLIDESHOW+'/slide_'+(slide)+'.jpg';
	else img1.src = 'img/walkthrough/'+SLIDESHOW+'/slide_'+(slide)+'.jpg';

	img2.style.zIndex = (slide % 2)? 10 : 9;
	img1.style.zIndex = (slide % 2)? 9 : 10;
	
	G_transId = (slide%2)?img2.id:img1.id;
	G_transTimer = setTimeout('SD_transition(0)',G_t_interval);
}

function SD_transition(opacity)
{
	if (opacity < 1)
	{
		changeOpacity(document.getElementById(G_transId),(opacity+0.1));
		opacity += 0.1;
		
		G_transTimer = setTimeout('SD_transition('+opacity+')',G_t_interval);
	}
	else SD_endTransition();
}


function SD_endTransition()
{
	var img1 = document.getElementById('SD_image_holder').getElementsByTagName('img')[0];
	var img2 = document.getElementById('SD_image_holder').getElementsByTagName('img')[1];
	
	changeOpacity(document.getElementById(G_transId),0.999999);

	if (G_transId == img1.id) changeOpacity(img2,0);
	else changeOpacity(img1,0);
	
	G_transId = '';
	G_transTimer = 0;
}

function changeOpacity(dom_obj,opacity)
{
	try {dom_obj.style.opacity = opacity}
	catch(e){}
	if (document.all) dom_obj.style.filter = "progid:DXImageTransform.Microsoft.Alpha(opacity = "+(opacity*100)+")";
}
