var curImg = 0;
var timerId = -1;
var intervalf = 3000;
var intervalm = 4500;
var intervals = 6000;
var interval = intervalm;
var isPlaying = 1;

var filterNames = new Array(16), filters = new Array(16);
filterNames[0] = 'Blend';
filters[0] = 'progid:DXImageTransform.Microsoft.Fade(duration=1)';
filterNames[1] = 'Blinds';
filters[1] = 'progid:DXImageTransform.Microsoft.Blinds(duration=1,bands=20)';
filterNames[2] = 'Checkerboard';
filters[2] = 'progid:DXImageTransform.Microsoft.Checkerboard(duration=1,squaresX=20,squaresY=20)';
filterNames[3] = 'Diagonal';
filters[3] = 'progid:DXImageTransform.Microsoft.Strips(duration=1,motion=rightdown)';
filterNames[4] = 'Doors';
filters[4] = 'progid:DXImageTransform.Microsoft.Barn(duration=1,orientation=vertical)';
filterNames[5] = 'Gradient';
filters[5] = 'progid:DXImageTransform.Microsoft.GradientWipe(duration=1)';
filterNames[6] = 'Iris';
filters[6] = 'progid:DXImageTransform.Microsoft.Iris(duration=1,motion=out)';
filterNames[7] = 'Pinwheel';
filters[7] = 'progid:DXImageTransform.Microsoft.Wheel(duration=1,spokes=12)';
filterNames[8] = 'Pixelate';
filters[8] = 'progid:DXImageTransform.Microsoft.Pixelate(duration=1,maxSquare=10)';
filterNames[9] = 'Radial';
filters[9] = 'progid:DXImageTransform.Microsoft.RadialWipe(duration=1,wipeStyle=clock)';
filterNames[10] = 'Rain';
filters[10] = 'progid:DXImageTransform.Microsoft.RandomBars(duration=1,orientation=vertical)';
filterNames[11] = 'Slide';
filters[11] = 'progid:DXImageTransform.Microsoft.Slide(duration=1,slideStyle=push)';
filterNames[12] = 'Snow';
filters[12] = 'progid:DXImageTransform.Microsoft.RandomDissolve(duration=1,orientation=vertical)';
filterNames[13] = 'Spiral';
filters[13] = 'progid:DXImageTransform.Microsoft.Spiral(duration=1,gridSizeX=40,gridSizeY=40)';
filterNames[14] = 'Stretch';
filters[14] = 'progid:DXImageTransform.Microsoft.Stretch(duration=1,stretchStyle=push)';
filterNames[15] = 'RANDOM';
filters[15] = 'RANDOM';

function random_int(i) {
	return Math.floor(i*(Math.random()%1));
}

function MM_preloadImages() { //v3.0
  	var d=document; 
	if(d.images){ 
		if(!d.MM_p) {
			d.MM_p=new Array();
		}
   		var i,j=d.MM_p.length,a=MM_preloadImages.arguments; 
		for(i=0; i<a.length; i++) {
	   		if (a[i].indexOf("#")!=0) {
				d.MM_p[j]=new Image; 
				d.MM_p[j++].src=a[i];
			}
		}
	}
}

function apply_filter(filterstyle1) {
	if (document.getElementById('filter')) {
		filterstyle1 = document.getElementById('filter').selectedIndex
	}
	var oView = document.getElementById("view_photo");
	if ( ( filterstyle1 >=0 ) && ( filterstyle1 <=14 ) ) {
		oView.style.filter = filters[filterstyle1];
	} else {
		oView.style.filter = filters[random_int(filters.length-1)];
	}
	oView.filters[0].apply();
	oView.filters[0].play(1.5);
}

function  write_fade()
{
	if (navigator.family=='ie4') {
		document.write('<select id="filter">');
		for (i = 0; i < filterNames.length; i++) {
			document.write('<option>'+filterNames[i]);
		}
		document.write('<'+'/select>'); // in 2 pieces for valid HTML4.01
	}
}

function replaceNum()
{
  var input = SHOWINGSTRING;
  var output = input;
  var idx = output.indexOf("%slideNum");
  if (idx > -1) {
    output = input.substring(0, idx);
    output += eval(curImg+1);
    output += input.substr(idx+9);
  }
  return output;
}

function changeSpeed()
{
  var sidx = document.getElementById('speedMenu').selectedIndex;
  if (sidx == 0) {
    interval = intervals;
  } else if (sidx == 1) {
    interval = intervalm;
  } else {
    interval = intervalf;
  }
  if (timerId != -1) {
    clearTimers();
  }
  play();
}

function imgLoadNotify()
{
  if (isPlaying == 1)
    setTimers();
}

function changeSlide()
{
  if (timerId != -1) {
    clearTimers();
  }
  var html = "<table border='0' cellpadding='0' cellspacing='0'> " +
       " <tr><td><table width='100%' border='0' cellspacing='1' cellpadding='4' class='BorderAllPro'><tr><td bgcolor='#1C4698'><div align='center'><img id='view_photo' src=" + imageSrcArray[curImg] + " alt=\""+ imageTitleArray[curImg] +"\"" +
       " border=0 style='filter:revealTrans(duration=2,transition=23)' onload=\"imgLoadNotify();\"></div></td></tr></table></td></tr></table> " 
  var pnumLine = "<font face=arial size=-1>";
  pnumLine += replaceNum();
  pnumLine += "</font>";
  var htmlDesc = "<table><tr><td><div align='justify'><span class=\"mainText\">" + imageDescArray[curImg] + /*"<br>" + imageDescArray[curImg] +*/ "</span></div></td></tr></table>";
  var htmlDate = imageDateArray[curImg];
  var htmlCpyright = imageProviderArray[curImg];
  
  switch(navigator.family) {
    case 'gecko':
      document.getElementById("imgDiv").innerHTML = html;
      document.getElementById("pnumDiv").innerHTML = pnumLine;
      document.getElementById("descDiv").innerHTML = htmlDesc;
      document.getElementById("dateDiv").innerHTML = htmlDate;
      document.getElementById("cpyrightDiv").innerHTML = htmlCpyright;
      break;
    case 'nn4':
      document.layers[1].document.imgDiv.document.open();
      document.layers[1].document.imgDiv.document.write(html);
      document.layers[1].document.imgDiv.document.close();

      document.layers[0].document.pnumDiv.document.open();
      document.layers[0].document.pnumDiv.document.write(pnumLine);
      document.layers[0].document.pnumDiv.document.close();

      document.layers[2].document.descDiv.document.open();
      document.layers[2].document.descDiv.document.write(htmlDesc);
      document.layers[2].document.descDiv.document.close();

      document.layers[3].document.dateDiv.document.open();
      document.layers[3].document.dateDiv.document.write(htmlDate);
      document.layers[3].document.dateDiv.document.close();

      document.layers[4].document.cpyrightDiv.document.open();
      document.layers[4].document.cpyrightDiv.document.write(htmlCpyright);
      document.layers[4].document.cpyrightDiv.document.close();
      break;
    case 'ie4':
      document.all.pem.innerHTML = pnumLine;
      document.all.imgp.innerHTML = html;
      document.all.desctxt.innerHTML = htmlDesc;
      //document.all.datetxt.innerHTML = htmlDate;
      //document.all.cpyrighttxt.innerHTML = htmlCpyright;
	  apply_filter(filterstyle);
      break;
  }
}

function forward()
{
  curImg++;
  if (curImg == numImgs)
    curImg = 0;
  changeSlide();
}

function rewind()
{
  curImg--;
  if (curImg < 0)
      curImg = numImgs - 1;
  changeSlide();
}

function stop()
{
  clearTimers();
  isPlaying = 0;
  document.playbtn.src = buttonImgPfx + buttonOffArray[0];
  document.stopbtn.src = buttonImgPfx + buttonOnArray[1];
}

function play()
{
  setTimers();
  startShow();
}

function startShow()
{
  isPlaying = 1;
  document.playbtn.src = buttonImgPfx + buttonOnArray[0];
  document.stopbtn.src = buttonImgPfx + buttonOffArray[1];
}

function setTimers()
{
  if (timerId == -1)
    timerId = window.setInterval('forward();', interval);
}

function clearTimers()
{
  window.clearInterval(timerId);
  timerId = -1;
}

function setButton(direction)
{
  if (direction == 0) {
    document.prevbtn.src = buttonImgPfx + buttonOnArray[2];
    window.setTimeout("document.prevbtn.src = buttonImgPfx + buttonOffArray[2];", 300);
  } else {
    document.fowdbtn.src = buttonImgPfx + buttonOnArray[3];
    window.setTimeout("document.fowdbtn.src = buttonImgPfx + buttonOffArray[3];", 300);
  }
}
