// JavaScript Document
function slideShow(xml) {

var imgColl = xml.getElementsByTagName('image');
var currImg = 0;
var totalImgs = imgColl.length;

function getInnerText(node) {
	if (typeof node.textContent != 'undefined') {
		return node.textContent;
	}
	else if (typeof node.innerText != 'undefined') {
		return node.innerText;
	}
	else if (typeof node.text != 'undefined') {
		return node.text;
	}
	else 
	{
		switch (node.nodeType) {
			case 3:
			case 4:
				return node.nodeValue;
				break;
			case 1:
			case 11:
				var innerText = '';
				for (var i = 0; i < node.childNodes.length; i++) {
					innerText += getInnerText(node.childNodes[i]);
				}
				return innerText;
				break;
			default:
			return '';
		}
	}
}
	
function init() {

	// generate top link buttons
	$('#pLibNums').append('<div class="pLibLinkHldrCurrent"></div>');
	
	for (var i = 0; i < totalImgs; i++) {
	
		$('#pLibNums').append('<div class="pLibLinkHldr"><a href="#" class="pLibLink">'+(i+1)+'</a></div>');
	
	}
	
	$('a.pLibLink').each(function(i){
		$(this).click(function(){
			pause();
			goto(i);
			currImg = i;
		});
	});
	
	$('#pLibNums').append('<div class="clear"></div>');
	
	$('.pLibLinkHldrCurrent').css({
		left: $('a.pLibLink:first').position().left-1,
		top: $('a.pLibLink:first').position().top-1
	});
	
	// add play button
	$('ul.menu').css('width', '925px');
	$('li.forward').before('<li class="play" style="display: none;"><a href="#"><span>play</span></a></li><li class="pause"><a href="#"><span>pause</span></a></li>');
	
	$('li.play a').click(function(){
		next();
		play();
	});
	
	$('li.pause a').click(function(){
		pause();
	});

	$('li.forward a').click(function(){
		pause();
		next();
	});
	
	$('li.backward a').click(function(){
		pause();
		previous();
	});
	
	var initImg = new Image();
	initImg.onload = function() {
		
		$('#pLibImg1').attr('src', initImg.src).show();
		play();
		
	};
	
	initImg.src = 'images/photoLibrary/' + getInnerText(imgColl[currImg].getElementsByTagName('source')[0]);
	
}

function next() {
	currImg = (currImg == totalImgs-1) ? 0 : (currImg+1);
	goto(currImg);
}

function previous() {
	currImg = (currImg == 0) ? totalImgs-1 : currImg-1;
	goto(currImg);
}

function goto(imgNum)	{

	var newImg = new Image();
	var fadeSpeed = 1000;
	var newImgSrc = getInnerText(imgColl[imgNum].getElementsByTagName('source')[0]);
	var newImgDesc = getInnerText(imgColl[imgNum].getElementsByTagName('description')[0]);
	
	newImg.onload = function() {
	
		if ($('#pLibDesc').css('display') == 'block') {
			$('#pLibDesc').fadeOut(fadeSpeed/2, function(){
				if(newImgDesc != '') {
					$('#pLibDesc div.overlaybox-body').html('<p>'+newImgDesc+'</p>');
				}
			});
		}
		
		$('.pLibLinkHldrCurrent').animate({
			left: $('a.pLibLink:eq('+imgNum+')').position().left-1,
			top: $('a.pLibLink:eq('+imgNum+')').position().top-1
		}, fadeSpeed);
	
		if ($('#pLibImg1').css('display') == 'none') {
			$('#pLibImg1').attr('src',newImg.src).fadeIn(fadeSpeed);
			$('#pLibImg2').fadeOut(fadeSpeed);
		} else {
			$('#pLibImg2').attr('src',newImg.src).fadeIn(fadeSpeed);
			$('#pLibImg1').fadeOut(fadeSpeed);
		}
		
		if (newImgDesc != '') {
			$('#pLibDesc').fadeIn(fadeSpeed/2);		
		}
		
	}

	newImg.src = 'images/photoLibrary/' + newImgSrc;

}

function play() {
	$('li.play').hide();
	$('li.pause').css('display','block');
	myTimer = setInterval(function(){
		next();
	},5000);
}

function pause() {
	$('li.pause').hide();
	$('li.play').css('display','block');
	clearInterval(myTimer);
}

init();

}

$(document).ready(function(){
   // Your code here
	$.get('xml/photoLibrary.xml',function(data) {
		slideShow(data);
	}, 'xml');
});