var slideDelay = 6000;
var slideImageList = [];
var slideFirstImage = [];
var slideSourceList = [];
var slideParentNode = null;

var slidePause = false;
var slideTimer = null;

var currentSlide = null;
var oldSlide = null;

function preloadImages(imagesPath, imgList, parentNode)
{
	slideImageList[parentNode] = [];
	
	for(var i = 0; i < imgList.length; i ++ )
	{
		var img = new Image();
		
		if( typeof imagesPath != 'undefined' )
		{
			imgList[i] = imagesPath	+ imgList[i];
		}
		
		img.src = imgList[i];
		
		slideImageList[parentNode].push(img);
	} 
}

function renderImages(imagesPath, imgList, parentNode, norandom)
{
	preloadImages(imagesPath, imgList, parentNode);
	
	var firstIdx = Math.round(Math.random() * (imgList.length - 1));

	if( norandom )
	{
		firstIdx = 0;
	}
	
	currentSlide = firstIdx;
	
	slideSourceList = imgList;
	slideParentNode = parentNode;
	
	slideFirstImage[parentNode] = firstIdx;
	
	for( var i = 0; i < imgList.length; i ++ )
	{
		renderImage(imgList[i], parentNode, parentNode + "slideimage" + i, (slideFirstImage[parentNode] != i) );
	}
	
	imageShown(firstIdx);
	
	incrementSlide();
}

function renderImage(img, parentNode, id, hidden)
{
	parentNode = document.getElementById(parentNode);
	
	var d = document.createElement('div');
	d.id = id;
	
	d.style.position = "absolute";
	d.className = "photocontainer";
	
	var im = document.createElement('img');
	im.src =img;
	with(im.style)
	{
		width = parentNode.style.width;
		height = parentNode.style.height;
	}
	
	d.appendChild(im);
	
	
	if( hidden )
	{
		Valraiso.util.changeOpacity(d, 0);
	}
	
	parentNode.appendChild(d);
}

function slideImages(imgList, parentNode, delay)
{
   	if( imgList.length < 2 )
	{
		return;	
	}
	
	if( typeof parentNode == 'string' )
	{
		parentNode = document.getElementById(parentNode);
	}
	
	if( delay != null )
	{
		slideDelay = delay;	
	}
		
	if( slideImageList[parentNode.id] == null || !slideImageList[parentNode.id][currentSlide].complete )
	{
		setTimeout( function() { slideImages(imgList, parentNode, slideDelay) } , 200 );
		return;
	}	
	
	Valraiso.util.fading(parentNode.id + "slideimage" + oldSlide, 100, 0, 600);
	Valraiso.util.fading(parentNode.id + "slideimage" + currentSlide, 0, 100, 600);
	
	setTimeout( function() { imageHidden(currentSlide); }, 10);	
	setTimeout( function() { imageShown(currentSlide); }, 500);	
	
	incrementSlide();
	
	if( !slidePause )
	{		
		slideTimer = setTimeout(function() { slideImages(imgList, parentNode, slideDelay); }, slideDelay);
	}
    	
}


function stopSlide()
{
	if( slidePause )
	{
		EL('slidePause').src = EL('slidePause').src.replace("play", "pause");
		slidePause = false;
		slideImages(slideSourceList, slideParentNode);
		
	}
	else
	{	
		clearTimeout(slideTimer);
		slidePause = true;
		
		EL('slidePause').src = EL('slidePause').src.replace("pause", "play");
	}
}

function nextSlide()
{
	if( !slidePause )
	{
		stopSlide();
	}
	
	slideImages(slideSourceList, slideParentNode);

}

function incrementSlide()
{
	oldSlide = currentSlide;

	currentSlide ++;
	
	if( currentSlide > slideSourceList.length - 1 )
	{
		currentSlide = 0;
	}
}

function decrementSlide()
{
	oldSlide = currentSlide;
	
	currentSlide --;
	
	if( currentSlide < 0 )
	{
		currentSlide = slideSourceList.length - 1;
	}
}

function previousSlide()
{
	if( !slidePause )
	{
		stopSlide();
	}
	
	decrementSlide();
	decrementSlide();
		
	slideImages(slideSourceList, slideParentNode);
}

function imageHidden()
{
	
}

function imageShown()
{
		
}