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] = "Fade(duration=1.0,overlap=1.0)"

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()",6000); // common duration
		}else{
			curImage = visImage;
			Interval = setInterval("onChangeTimer()",2000); // 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;
  }	
}