function createPreviewStructure(id) {
	return '<div class="thumbnail" style="background-image: url(access/media/library/view?mediaItem='+id+'&v=preview400);"> </div>';
}

function fetchPreviewCaption(id) {
	return $('media'+id).title;
}

function switchPreview(id) {
	new Element.update('preview', createPreviewStructure(id));
	new Element.update('descriptionWindow', fetchPreviewCaption(id));
}

function selectThumbnail(id) {
	switchPreview(id);

	var elements = $$('#thumbnails a.current');
	for(var i=0; i<elements.length; i++){
		var c = new Element.ClassNames(elements[i]);
		c.remove('current');
	}
	var c = new Element.ClassNames('media'+id);
	c.add('current');
}

function nextSlide() {
	var elements = $$('#thumbnails a.current');
	for(var i=0; i<elements.length; i++){
		var sibling = elements[i].nextSibling;
		if (sibling == null) sibling = elements[i].parentNode.firstChild;
		while (sibling.nodeName != "A") {
			if (sibling.nextSibling != null) sibling = sibling.nextSibling;
			else sibling = sibling.parentNode.firstChild;
		}
		var newID = sibling.id.substring(5);
		selectThumbnail(newID);
	}
}

function previousSlide() {
	var elements = $$('#thumbnails a.current');
	for(var i=0; i<elements.length; i++){
		var sibling = elements[i].previousSibling;
		if (sibling == null) sibling = elements[i].parentNode.lastChild;
		while (sibling.nodeName != "A") {
			if (sibling.previousSibling != null) sibling = sibling.previousSibling;
			else sibling = sibling.parentNode.lastChild;
		}
		var newID = sibling.id.substring(5);
		selectThumbnail(newID);
	}
}

function firstSlide() {
	var elements = $$('#thumbnails a.current');
	for(var i=0; i<elements.length; i++){
		var sibling = elements[i].parentNode.firstChild;
		while (sibling.nodeName != "A") {
			if (sibling.nextSibling != null) sibling = sibling.nextSibling;
			else sibling = sibling.parentNode.firstChild;
		}
		var newID = sibling.id.substring(5);
		selectThumbnail(newID);
	}
}

function lastSlide() {
	var elements = $$('#thumbnails a.current');
	for(var i=0; i<elements.length; i++){
		var sibling = elements[i].parentNode.lastChild;
		while (sibling.nodeName != "A") {
			if (sibling.previousSibling != null) sibling = sibling.previousSibling;
			else sibling = sibling.parentNode.lastChild;
		}
		var newID = sibling.id.substring(5);
		selectThumbnail(newID);
	}
}

var slideTimer;
function playSlideshow() {
	slideTimer = new PeriodicalExecuter(nextSlide, 5);
}

function pauseSlideshow() {
	slideTimer.stop();
	slideTimer = false;
}

function pausePlaySlideshow() {
	if (slideTimer) pauseSlideshow();
	else playSlideshow();
}

