
var fadeInItems = new Array();

//to prevent actions from past events
var currentEventNumber = 0;

function fadeIn(item, fromOpacity)
{
	item.setAttribute('opacity', fromOpacity);
	
	//store the items in an array
	var found = false;
	for (var i = 0; i < fadeInItems.length; i++)
	{
		if(fadeInItems[i] == item)
		{ 
			var found = true;
			break;
		}
	}
	
	if(!found)
	{
		fadeInItems.push(item);
		i = fadeInItems.length - 1;
	}
	
	continueFadeIn(i);
	
}

function continueFadeIn(i)
{
	var item = fadeInItems[i];
	var opacity = item.getAttribute('opacity');
	
	var newOpacity = 6 + ( 1 * opacity);
	
	item.setAttribute('opacity', newOpacity);
	setItemOpacity(item, newOpacity);
	
	if (opacity < 94)
	{
		setTimeout("continueFadeIn(" + i + ")", 20);
	}
	else
	{
		setItemOpacity(item, 100);
	}
}

function setItemOpacity(item, newOpacity)
{
	item.style.MozOpacity 	= newOpacity / 100;
	item.style.opacity    	= newOpacity / 100;
	item.style.KhtmlOpacity = (newOpacity/ 100);
 	item.style.filter 		= "alpha(opacity=" + newOpacity + ")"; 
}

var currentGalleryId;
var currentLink;
var currentPreviewSrc;
var isMovingLeft = false;
var isMovingRight = false;
var pendingLoadGalleryCall = false;

//For the gallery page
function setCurrentGallery(id, linkObject)
{
	if(!currentLink)
	{
		currentLink = document.getElementById('galleryTitleCurrent');
	}
	
	if (currentGalleryId == id)
	{
		return;
	}
	resetPreview();
	showImageLoading();
	
	currentEventNumber ++;
	
	currentLink.id = '';
	
	currentLink   		  = linkObject;
	
	currentLink.id = 'galleryTitleCurrent';
	
	currentGalleryId = id;
	
	
	setTimeout('loadCurrentGalleryPreview('+ currentEventNumber +')', 600);
	
	
	if(document.getElementById('galleryImagePreviewImage'))
	{
		document.getElementById('galleryImagePreviewImage').style.left = '410px';
	}
}


function resetPreview()
{
	var galleryImagePreviewImage = document.getElementById('galleryImagePreviewImage');
	
	if(galleryImagePreviewImage)
	{
		galleryImagePreviewImage.style.left = 460 + 'px';
	}
}
	

function loadCurrentGalleryPreview(eventNumber)
{
	if(eventNumber < currentEventNumber)
	{
		return;
	}
	
	var id = currentGalleryId;
	
	pendingLoadGalleryCall = false;
	
	imgPreloader = new Image();

	currentPreviewSrc = galleryPreviews[id];
	
	isMovingLeft = false;
	
	
	// once image is preloaded, resize image container
	imgPreloader.onload=function()
	{
		if(isCurrentPreview(galleryPreviews[id]))
		{
			document.getElementById('galleryImagePreview').innerHTML = '<a href="' +  currentLink.toString() +  '"><image id="galleryImagePreviewImage" height="400" width="400" src="' + galleryPreviews[id] + '"/></a>';
			resetPreview();
			
			if(!isMovingLeft)
			{
				fadeInPreview();
				hideImageLoading();
				//two calls makes ff smoother
				setTimeout('moveInPreviewFromRight(' + eventNumber + ')', 140);
				setTimeout('moveInPreviewFromRight('  + eventNumber + ')', 100);
			}
		}
	}
	
	imgPreloader.src = galleryPreviews[id];
}


function showImageLoading()
{
	var imageLoading = document.getElementById('imageLoading');
	
	if(imageLoading.style.display != 'block')
	{
		imageLoading.style.display = 'block';
	}

}

function hideImageLoading()
{
	document.getElementById('imageLoading').style.display = 'none';
}

function isCurrentPreview(src)
{
	if (src == currentPreviewSrc)
	{
		return true;
	}
	else
	{
		return false;
	}
}

function fadeInPreview()
{
	fadeIn(document.getElementById('galleryImagePreview'), 0);
}

function moveInPreviewFromRight(eventNumber)
{
	
	if(eventNumber < currentEventNumber)
	{
		return;
	}
	
	isMovingLeft = true;
	
	var galleryImagePreviewImage = document.getElementById('galleryImagePreviewImage');
	
	if(!galleryImagePreviewImage)
	{
		return;
	}
	
	if(galleryImagePreviewImage.offsetLeft > 50)
	{
		newOffset = galleryImagePreviewImage.offsetLeft - 50;
		setTimeout('moveInPreviewFromRight(' + eventNumber +')', 50);
	}
	else
	{
		newOffset    = 0;
		isMovingLeft = false;
	}
	
	galleryImagePreviewImage.style.left = newOffset + 'px';
}


var isScrolling     = false;
var scrollDirection = false;

function scrollThumbsRight()
{
	if(isScrolling && scrollDirection == 'right')
	{
		return
	}
	isScrolling = true;
	
	scrollDirection = 'right';
	
	scrollThumbs();
	scrollThumbs();
	
	var thumbSlider = document.getElementById('thumbSlider');
	
}

function scrollThumbsLeft()
{
	if(isScrolling && scrollDirection == 'left')
	{
		return
	}
	
	isScrolling = true;
	
	scrollDirection = 'left';
	
	scrollThumbs();
	scrollThumbs();
}

function scrollThumbs()
{
	
	if(!isScrolling)
	{
		return
	}
	
	var thumbSlider = document.getElementById('thumbSlider');
	
	var slide = 5;
	
	if(scrollDirection == 'right')
	{
		thumbSlider.style.left = thumbSlider.offsetLeft - slide + 'px';
	}
	else
	{
		thumbSlider.style.left = thumbSlider.offsetLeft + slide + 'px';
	}
	
	if(thumbSlider.offsetLeft > 0)
	{
		thumbSlider.style.left = '0px';
		isScrolling = false;
	}
	else if (thumbSlider.offsetLeft + thumbSlider.offsetWidth - 388 < 0)
	{
		thumbSlider.style.left =  - thumbSlider.offsetWidth + 388 + 'px'
		
		isScrolling = false;
	}
	
	setTimeout('scrollThumbs()', 40);
}

function stopScroll()
{
	isScrolling = false;
}

var currentThumbObject;

//For the gallery page
function setCurrentThumb(thumbObject)
{
	
	fadeIn(thumbObject, 30);
	
	currentEventNumber ++;
	var eventNumber = currentEventNumber;
	
	var galleryImage = document.getElementById('galleryImage');
	var descHolder   = document.getElementById('itemDescription');
	var titleHolder  = document.getElementById('itemTitle');
	
	if(galleryImage && thumbObject.getAttribute('imageSrc') == galleryImage.src )
	{
		return;
	}
	
	descHolder.innerHTML = thumbObject.getAttribute('description');
	titleHolder.innerHTML = thumbObject.getAttribute('itemtitle');
	
	currentThumbObject = thumbObject;
	
	resetImage();
	showImageLoading();
	
	imgPreloader = new Image();
		
	// once image is preloaded, resize image container
	imgPreloader.onload=function()
	{
		
		setTimeout("fadeIn(document.getElementById('galleryImageHolder'), 30);", 10);
		
	
		var galleryImage = document.getElementById('galleryImage');
		
		if(galleryImage)
		{
			galleryImage.src = thumbObject.getAttribute('imageSrc');
			
		}
		else
		{
				document.getElementById('galleryImageHolder').innerHTML = '<image id="galleryImage" src="' + thumbObject.getAttribute('imageSrc') + '" />';

		}
		
		hideImageLoading();
		
		if(!isMovingLeft)
		{
			//two calls makes ff smoother
			setTimeout('moveInImageFromRight('+eventNumber+');', 60);
			setTimeout('moveInImageFromRight('+eventNumber+');', 30);
		}
	}
	
	imgPreloader.src = thumbObject.getAttribute('imageSrc');
}

function resetImage()
{
	
	var galleryImage = document.getElementById('galleryImage');
	
	if(galleryImage)
	{
		galleryImage.style.left = 590 + 'px';
	}
}

function moveInImageFromRight(eventNumber)
{
	if(eventNumber < currentEventNumber)
	{
		return;
	}
	
	isMovingLeft = true;
	
	var galleryImage = document.getElementById('galleryImage');
	
	if(!galleryImage)
	{
		return;
	}
	
	if(galleryImage.offsetLeft > 70)
	{
		newOffset = galleryImage.offsetLeft - 70;
		setTimeout('moveInImageFromRight(' + eventNumber + ')', 30);
	}
	else
	{
		newOffset    = 0;
		isMovingLeft = false;
	}
	galleryImage.style.left = newOffset + 'px';
}

function moveInImageFromLeft()
{
	isMovingRight = true;
	
	var galleryImage = document.getElementById('galleryImage');
	
	if(!galleryImage)
	{
		return;
	}
	
	if(galleryImage.offsetLeft < - 50)
	{
		newOffset = galleryImage.offsetLeft + 50;
		setTimeout('moveInImageFromRight()', 60);
	}
	else
	{
		newOffset    = 0;
		isMovingRight = false;
	}
	
	galleryImage.style.left = newOffset + 'px';
}