function onChangePageComboBox(){
	ShowImage(event.srcElement.options[event.srcElement.selectedIndex].value);
}

window.onload = onLoadSlideShow;

var curImage=0;
var Interval=null;

var fsImagesSrc = new Array();
var ImagePages = new Array("","","","","","","");
var IndexPages = new Array("","","","","","","");

var Images = new Array();
var	bWrap = 1;
var bPlay = 1;      
var nDirect = 0;

var F = new Array();
var t=-1;
F[0] = "Barn(orientation=horizontal, motion=out)"
F[1] = "Barn(orientation=horizontal, motion=in)"
F[2] = "Barn(orientation=vertical, motion=out)"
F[3] = "Barn(orientation=vertical, motion=in)"
F[4] = "Blinds(bands=8,direction='right')"
F[5] = "Blinds(bands=8,direction='left')"
F[6] = "Blinds(bands=8,direction='up')"
F[7] = "Blinds(bands=8,direction='down')"
F[8] = "Checkerboard(squaresX=12,squaresY=8,direction='RIGHT',duration=1)"
F[9] = "Checkerboard(squaresX=12,squaresY=8,direction='LEFT',duration=1)"
F[10] = "Checkerboard(squaresX=12,squaresY=8,direction='UP',duration=1)"
F[11] = "Checkerboard(squaresX=12,squaresY=8,direction='DOWN',duration=1)"
F[12] = "Fade(duration=1.0,overlap=1.0)"
F[13] = "Fade(duration=1.0,overlap=0.0)"
F[14] = "gradientWipe(duration=1, wipestyle=0, gradientsize=0.5)"
F[15] = "gradientWipe(duration=1, wipestyle=1, gradientsize=0.5)"
F[16] = "Inset( )"
F[17] = "Iris(irisStyle=diamond, motion=in, duration=1)"
F[18] = "Iris(irisStyle=diamond, motion=out, duration=1)"
F[19] = "Iris(irisStyle=circle, motion=in, duration=1)"
F[20] = "Iris(irisStyle=circle, motion=out, duration=1)"
F[21] = "Iris(irisStyle=cross, motion=in, duration=1)"
F[22] = "Iris(irisStyle=cross, motion=out, duration=1)"
F[23] = "Iris(irisStyle=plus, motion=in, duration=1)"
F[24] = "Iris(irisStyle=plus, motion=out, duration=1)"
F[25] = "Iris(irisStyle=square, motion=in, duration=1)"
F[26] = "Iris(irisStyle=square, motion=out, duration=1)"
F[27] = "Iris(irisStyle=star, motion=in, duration=1)"
F[28] = "Iris(irisStyle=star, motion=out, duration=1)"
F[29] = "Pixelate(maxSquare=5,duration=1, enabled='false')"
F[30] = "Pixelate(maxSquare=10,duration=1, enabled='false')"
F[31] = "Pixelate(maxSquare=20,duration=1, enabled='false')"
F[32] = "RadialWipe(duration=1, wipeStyle='clock')"
F[33] = "RadialWipe(duration=1, wipeStyle='wedge')"
F[34] = "RadialWipe(duration=1, wipeStyle='radial')"
F[35] = "RandomBars(orientation='horizontal') ]"
F[36] = "RandomBars(orientation='vertical') "
F[37] = "RandomDissolve()"
F[38] = "Slide(slideStyle='hide', bands=1)"
F[39] = "Slide(slideStyle='push', bands=1)"
F[40] = "Slide(slideStyle='swap', bands=1)"
F[41] = "Slide(slideStyle='hide', bands=5)"
F[42] = "Slide(slideStyle='push', bands=5)"
F[43] = "Slide(slideStyle='swap', bands=5)"
F[44] = "Slide(slideStyle='hide', bands=10)"
F[45] = "Slide(slideStyle='push', bands=10)"
F[46] = "Slide(slideStyle='swap', bands=10)"
F[47] = "Spiral(GridSizeX=10, GridSizeY=10)"
F[48] = "Spiral(GridSizeX=50, GridSizeY=50)"
F[49] = "Stretch(stretchStyle='hide')"
F[50] = "Stretch(stretchStyle='spin')"
F[51] = "Stretch(stretchStyle='push')"
F[52] = "Strips(Duration=1, Motion='leftdown')"
F[53] = "Strips(Duration=1, Motion='leftup')"
F[54] = "Strips(Duration=1, Motion='rightdown')"
F[55] = "Strips(Duration=1, Motion='rightup')"
F[56] = "Wheel(duration=1,spokes=2)"
F[57] = "Wheel(duration=1,spokes=5)"
F[58] = "Wheel(duration=1,spokes=10)"
F[59] = "Wheel(duration=1,spokes=20)"
F[60] = "Wipe(duration=1, GradientSize=0.25, motion=forward, wipeStyle=0)"
F[61] = "Wipe(duration=1, GradientSize=0.25, motion=forward, wipeStyle=1)"
F[62] = "Wipe(duration=1, GradientSize=0.25, motion=reverse, wipeStyle=0)"
F[63] = "Wipe(duration=1, GradientSize=0.25, motion=reverse, wipeStyle=1)"
F[64] = "Zigzag(GridSizeX=10, GridSizeY=10)"
F[65] = "Zigzag(GridSizeX=50, GridSizeY=50)"

var v55=window.createPopup;

function onChangeFilter(nWhat) 
{
    if (v55==null) return; 
    var im = document.getElementById("slideshow_container");
    if(im==null) return;
    if(nWhat==0)
    {
		if(t<0)
			im.style.filter="progid:DXImageTransform.Microsoft."+F[Math.round((F.length-1)*Math.random())];
		else{
			im.style.filter="progid:DXImageTransform.Microsoft."+F[t++];
			if(t >= F.length) t = 0;
		}
        im.filters[0].apply();
    }
    else
        im.filters[0].play();
}

function DisplayImage()
{
	if(onSound(curImage) == 1)	// wait sound cashed
		return 1;
	
	if(!bPlay || Images[curImage].complete)
	{
		onChangeFilter(0);

		// Display image 
		var im = document.getElementById("slideshow_image");
		if(im != null){
			im.src=Images[curImage].src;
			im.width=ImagesCx[curImage];
			im.height=ImagesCy[curImage];
		}

		onChangeFilter(1);

		var tlt = document.getElementById("slideshow_title");
		if(tlt != null)
			tlt.innerHTML=TitlesSrc[curImage];

		return 2;
	}
	
	return 1;
}



function MaximizeWin()
{
	window.moveTo(0,0);
	if (document.all){
		top.window.resizeTo(screen.availWidth,screen.availHeight);
	}
	else 
	if (document.layers || document.getElementById){
		if (top.window.outerHeight < screen.availHeight ||
			top.window.outerWidth < screen.availWidth){
			top.window.outerHeight = screen.availHeight;
			top.window.outerWidth = screen.availWidth;
		}
	}
}

function onLoadSlideShow()
{
    MaximizeWin();

    for(var i=0;i<ImagesSrc.length;i++){
        Images[i] = new Image();
        Images[i].src = ImagesSrc[i];
    }

    paramsPos = window.location.toString().indexOf('?');
    if(paramsPos != -1){
        curImage = new Number(window.location.toString().substring(paramsPos + 1));
        DisplayImage();
    }
	else{
		switch( nDirect )
		{
			case 0:	 // forward 
				curImage=-1;
				break;
			case 1:	 // reverse 
				curImage=ImagesSrc.length;
				break;
		}
		onChangeTimer( );
	}
}

function onSound(nSound){ return -1; }
function onPlaySound( ){ }
function onStopSound( ){ }

function onPlay( )
{
    bPlay = 1;
    onChangeTimer( );
}

function onStop( )
{
    bPlay = 0;
    clearInterval(Interval);
}

function onStopAll( ){ onStop( ); }
function onPlayAll( ){ onPlay( ); }

function onChangeTimer( )
{
	switch( nDirect )
	{
		case 0:	 // forward 
			if(!DisplayNextImage(1))
				clearInterval(Interval);
			break;
		case 1:	 // reverse 
			if(!DisplayNextImage(-1))
				clearInterval(Interval);
			break;
		case 2:	 // random 
			if(!DisplayNextImage(0))
				clearInterval(Interval);
			break;
	}
}

function ShowImage(nDirect){ bPlay = 0; DisplayNextImage(nDirect); }

function DisplayNextImage(nDirect)
{
	var visImage = curImage;
	switch( nDirect )
	{
		case 2:	 // last 
			curImage = ImagesSrc.length - 1;
			break;
		case 1:	 // next
			if(curImage+1 < ImagesSrc.length)
				curImage=(curImage+1);
			else if(bWrap) curImage=0;
				 else return 0; 
			break;
		case -1:	 // prev
			if(curImage > 0)
				curImage=(curImage-1);
			else if(bWrap) curImage=ImagesSrc.length-1;
				 else return 0;
			break;
		case -2:	 // first 
			curImage = 0;
			break;
		case 0:	 // random 
			curImage=Math.round((ImagesSrc.length-1)*Math.random());
			break;
		case -3:	 // image page
			window.location=ImagePages[curImage]
			return 0;
		case -4:	 // index page
			window.location=IndexPages[curImage]
			return 0;
		case 3:	 // image 
			window.location=ImagesSrc[curImage]
			return 0;
		case 4:	 // full size image
			window.location=fsImagesSrc[curImage]
			return 0;
		default:
			if(nDirect > 99)
				curImage = nDirect - 100;
			else
				return 0;
	}
    clearInterval(Interval);

	var nCache = DisplayImage();

	if(bPlay)
		if(nCache==2){ // all datas loaded
			if(Durations[curImage] != 0)
			   Interval = setInterval("onChangeTimer()",Durations[curImage]);
			else
			   Interval = setInterval("onChangeTimer()",3000); // common duration
		}else{
			curImage = visImage;
			Interval = setInterval("onChangeTimer()",1000); // wait for loading
			return 1;
		}

	return 1;
}


function onClickImage()
{
  linkTo = 1;
  switch(linkTo)
  {
	case 0: // Image
		DisplayNextImage(3)
		break;
	case 2: // FullSize Image
		DisplayNextImage(4)
		break;
	case 3: // Image page
		DisplayNextImage(-3)
		break;
  }	
}
