//-------------hideshow

function show(id) {
var e = document.getElementById(id);
e.style.display = 'block';
}

function hide(id) {
var e = document.getElementById(id);
e.style.display = 'none';
}

//adapted from
// Spry Pre-Release 1.5
//
// Copyright (c) 2006. Adobe Systems Incorporated.

//-------------global 

var gThumbWidth;
if (gThumbWidth == undefined)
	gThumbWidth = 8;
  
var gThumbHeight;
if (gThumbHeight == undefined)
	gThumbHeight = 8;

var gSlideShowInterval;
if (gSlideShowInterval == undefined)
	gSlideShowInterval = 3000; 
	
var gAutoStartSlideShow;
if (gAutoStartSlideShow == undefined)
	gAutoStartSlideShow = true;

var gBehaviorsArray = [];
var gSlideShowOn = false;
var gSlideShowTimer = null;
var gImageLoader = null;

//-------------observers

dsPhotos.addObserver(function(nType, notifier, data) {
	if (nType == "onPreLoad")
		StopSlideShow();
});


Spry.Data.Region.addObserver("thumbnails", function(nType, notifier, data) {
	if (nType == "onPostUpdate")
	{
		ShowCurrentImage();
		if (gAutoStartSlideShow)
			StartSlideShow(true);
	}
});

//-------------set the image

function SetMainImage(imgPath, width, height, tnID)
{
	var img = document.getElementById("mainImage");
	if (!img)
		return;

	CancelBehavior("mainImage");

	Spry.Utils.SelectionManager.clearSelection("thumbnailSelection");

	if (tnID)
		Spry.Utils.SelectionManager.select("thumbnailSelection", document.getElementById(tnID), "selectedThumbnail");

	if (gImageLoader)
	{
		gImageLoader.onload = function() {};
		gImageLoader = null;
	}

	gBehaviorsArray["mainImage"] = new Spry.Effect.Opacity(img, 1, 0, { duration: 600,
		finish: function()
		{
					gImageLoader = new Image();
					gImageLoader.onload = function()
					{
						img.src = gImageLoader.src;
						gImageLoader = null;
						gBehaviorsArray["mainImage"] = new Spry.Effect.Opacity(img, 0, 1, { duration: 600,
							finish: function()
							{
								gBehaviorsArray["mainImage"] = null;

								img.style.opacity = "";
								img.style.filter = "";
								
								if (gSlideShowOn)
									SetSlideShowTimer();
							}});
						gBehaviorsArray["mainImage"].start();
					};
					gImageLoader.src = imgPath;
				}
	});
	gBehaviorsArray["mainImage"].start();
}


function CancelBehavior(id)
{
	if (gBehaviorsArray[id])
	{
		gBehaviorsArray[id].cancel();
		gBehaviorsArray[id] = null;
	}
}

function SizeAndPosition(id, toX, toY, toWidth, toHeight, callback)
{
	CancelBehavior(id);
	var effectCluster = new Spry.Effect.Cluster( { finish: callback } );
	var ele = Spry.Effect.getElement(id); 
	var moveEffect = new Spry.Effect.Move(ele, Spry.Effect.getPosition(ele), { x: toX, y: toY, units: "px" }, { duration: 300 });
	var sizeEffect = new Spry.Effect.Size(ele, Spry.Effect.getDimensions(ele), { width: toWidth, height: toHeight, units: "px" }, { duration: 300 });
	
	effectCluster.addParallelEffect(moveEffect);
	effectCluster.addParallelEffect(sizeEffect);
	
	
	gBehaviorsArray[id] = effectCluster;
	gBehaviorsArray[id].start();
}

//-------------thumb nails

function GrowThumbnail(img, width, height)
{
	Spry.Utils.addClassName(img, "inFocus");
	
	var id = img.getAttribute("id");
	
	var twidth = Math.floor(width * 1.5);
	var theight = Math.floor(height* 1.5);
	var tx = (gThumbWidth - twidth) / 2;
	var ty = (gThumbHeight - theight) / 2;
	
	SizeAndPosition(id, tx, ty, twidth, theight, function(b){gBehaviorsArray[id] = null;});
}



function ShrinkThumbnail(img)
{
	Spry.Utils.addClassName(img, "inFocus");
	
	var id = img.getAttribute("id");
	
	SizeAndPosition(id, 0, 0, gThumbWidth, gThumbHeight, function(b){gBehaviorsArray[id] = null; Spry.Utils.removeClassName(img, "inFocus");});
}


function ShowCurrentImage()
{
	var curRow = dsPhotos.getCurrentRow();
	SetMainImage("img/" + curRow["@path"], curRow["@width"], curRow["@height"], "tn" + curRow["ds_RowID"]);
}


function AdvanceToNextImage(moveBackwards)
{
	var rows = dsPhotos.getData();
	var curRow = dsPhotos.getCurrentRow();
	
	if (rows.length < 1)
		return;
	
	for (var i = 0; i < rows.length; i++)
	{
		if (rows[i] == curRow)
		{
			if (moveBackwards)
				--i;
			else
				++i;
			break;
		}
	}
	
	if (!moveBackwards && i >= rows.length)
		i = 0;
	else if (moveBackwards && i < 0)
		i = rows.length - 1;
	
	curRow = rows[i];
	dsPhotos.setCurrentRow(curRow["ds_RowID"]);
	ShowCurrentImage();
}
//-------------slide show

function SetSlideShowTimer()
{
	KillSlideShowTimer();
	gSlideShowTimer = setTimeout(function(){ gSlideShowTimer = null; AdvanceToNextImage(false); }, gSlideShowInterval);
}

function KillSlideShowTimer()
{
	if (gSlideShowTimer)
		clearTimeout(gSlideShowTimer);
	gSlideShowTimer = null;
}


function StartSlideShow(skipTimer)
{
	gSlideShowOn = true;
	if (!skipTimer)
		SetSlideShowTimer();
	var playLabel = document.getElementById("playLabel");
	if (playLabel)
		playLabel.firstChild.data = "Pause";
}


function StopSlideShow()
{
	gSlideShowOn = false;
	KillSlideShowTimer();
	var playLabel = document.getElementById("playLabel");
	if (playLabel)
		playLabel.firstChild.data = "Play";
}

function HandleThumbnailClick(id)
{
	StopSlideShow();
	dsPhotos.setCurrentRow(id);
	ShowCurrentImage();
}
