var curImg = 0;
var timerId = -1;
var intervalf = 3000;
var intervalm = 4500;
var intervals = 6000;
var interval = intervalm;
var imgIsLoaded = false;
var arrPreload = new Array();
var _PRELOADRANGE = 20;
var playerState = 0;

function replaceNum(myinput, token, newstr)
{
    var input = myinput;
    var output = input;
    var idx = output.indexOf(token);
    if (idx > -1) 
	{
		output = input.substring(0, idx);
		output += newstr;
		output += input.substr(idx+token.length);
    }
    return output;
}

function changeSpeed(sidx)
{
    switch (sidx) 
	{
		case 0: interval = intervalm; break;
		case 1: interval = intervals; break;
		default: interval = intervalf;
    }
    if (timerId != -1) 
	{
		clearTimeout(timerId);
		timerId = setTimeout('forward();timerId=-1',interval);
    }
}

function preloadRange(intPic,intRange) {
	
	for (var i=intPic; i<intPic+intRange; i++) {
		arrPreload[i] = new Image();
		arrPreload[i].src = imageSrcArray[i];
	} 
	return true;
}

function imgLoadNotify()
{
	imgIsLoaded = true;
	if (timerId == -1 && playerState == 1) {
	  timerId = setTimeout('forward();timerId = -1',interval);
	}
}

function changeSlide(oncomplete)
{
    if (!oncomplete) oncomplete = 'imgLoadNotify()';
	imgIsLoaded = false;
	// how long
	blendimage('imgp', 'blendimage', imageSrcArray[curImg], 1000, imageWidthArray[curImg], imageHeightArray[curImg], bckWidthArray[curImg], bckHeightArray[curImg], curImg );
			
		
}

function forward()
{
	//if (!arrPreload[curImg+1])
	//{
		imgIsLoaded = false;
		//imgIsLoaded = (curImg+_PRELOADRANGE<numImgs)?preloadRange(curImg+1,_PRELOADRANGE):preloadRange(curImg+1,numImgs-curImg-1);
		curImg++;
		if (curImg >= numImgs) 
			{ 
				//finish(); 
				curImg = 0;
				timerId = -1;
				intervalf = 3000;
				intervalm = 4500;
				interval = intervalm;
				imgIsLoaded = false;
				arrPreload = new Array();
				_PRELOADRANGE = 20;
				playerState = 0;
				
			} 
				//how long the pic should display
				setTimeout("changeSlide()",3000); 
			
			
	//} else {
	//	curImg++;
	//	if (curImg >= numImgs) { finish(); } else { changeSlide(); }
	//}
}

function rewind()
{
	curImg--;
	if (curImg < 0)
//		curImg = numImgs - 1;
		finish();
	else
		changeSlide();
}


function stop()
{
    playerState = 0;
    window.clearInterval(timerId);
    if (timerId != -1) {
	clearTimeout(timerId);
	timerId = -1;
    }
    //document.playbtn.src = buttonImgPfx + buttonOffArray[0];
    //document.stopbtn.src = buttonImgPfx + buttonOnArray[1];
    imgIsLoaded = true;
}

function play()
{
    playerState = 1;
	if (timerId == -1) timerId = setTimeout('forward();timerId=-1',600);
	
    //document.playbtn.src = buttonImgPfx + buttonOnArray[0];
    //document.stopbtn.src = buttonImgPfx + buttonOffArray[1];
}



function finish()
{
	//stop();
	

	/*	
	if (typeof(slideshow_end_url) != "undefined")
	{
		if (interval == intervals)
			slideshow_end_url += "&.spd=1";
		else if (interval == intervalf)
			slideshow_end_url += "&.spd=3";
		document.location=slideshow_end_url;
	}
	*/
}
function blendimage(divid, imageid, imagefile, millisec, _width, _height, bckWidth, bckHeight, firstTime) { 
    var speed = Math.round(millisec / 100); 
    var timer = 0; 
     
	//alert(_width + "|" + _height +  "|" +bckWidth +  "|" +bckHeight ); 
    //set the current image as background 
	
	
	
	//document.getElementById(divid).style.width = document.getElementById(imageid).width;
	//document.getElementById(divid).style.height = document.getElementById(imageid).height;
   	document.getElementById(divid).style.backgroundImage = "url(" + document.getElementById(imageid).src + ")"; 


     
    //make image transparent 
    changeOpac(0, imageid); 
     
    //make new image 
	//document.getElementById(imageid).width = _width;
	//document.getElementById(imageid).height = _height;
    document.getElementById(imageid).src = imagefile; 

	

    //fade in image 
    for(i = 0; i <= 100; i++) { 
        setTimeout("changeOpac(" + i + ",'" + imageid + "')",(timer * speed)); 
        timer++; 
    } 
} 
function changeOpac(opacity, id) { 
    var object = document.getElementById(id).style; 
    object.opacity = (opacity / 100); 
    object.MozOpacity = (opacity / 100); 
    object.KhtmlOpacity = (opacity / 100); 
    object.filter = "alpha(opacity=" + opacity + ")"; 
} 

