var totalSlides = 0;
var currentSlide = 0;
var initialLoad = true;
var copyVisible = true;
var copyInitialLoad = true;
var slideShowActive = false;
var slideShowInterval;

// LOAD A NEW SLIDE
function loadPhoto (id) {

	if (!initialLoad) {
		
		// ON NEW PAGE LOAD, HIDE COPY ON FIRST CLICK ACTION
		if (copyInitialLoad) {
			$('slideShowCopy').tween('height',30);
			$('slideCopyToggle').removeClass('open');
			copyInitialLoad = false;
			copyVisible = false;
		};
		
		// TWEEN OBJECT FOR CURRENT SLIDE
		var lastSlide = new Fx.Tween($('ph_' + currentSlide), {duration: 400, onComplete:function(){hideSlides(id);newSlide.start('opacity', 1)}});
		
		// TWEEN OBJECT FOR NEW SLIDE
		var newSlide = new Fx.Tween($('ph_' + id), {duration: 400});
		
		// HIDE CURRENT COPY AND SHOW NEW COPY
		$('cp_' + currentSlide).setStyle('display', 'none');
		$('cp_' + id).setStyle('display', 'block');
		
		
		$('ph_' + id).setStyles({
			'display':'block',
			'opacity':0
		});
		
		lastSlide.start('opacity', 0);
		
		// RESIZE COPY BLOCK IF VISIBLE
		if (copyVisible) {
			var toResize = $('cp_' + id).getSize().y + $('slideShowTitle').getSize().y;
			$('slideShowCopy').tween('height',toResize);
		};
		
	} else {
	
		$('ph_' + id).setStyles({
			'display':'block',
			'opacity':0
		});
	
		$('ph_' + id).tween('opacity', 1);
		// show copy for slide
		
		$('cp_' + id).setStyle('display', 'block');
		
		$('slideShowCopy').setStyle('height', $('cp_' + id).getSize().y + $('slideShowTitle').getSize().y);
	
	};
	
	// PUT ID IN HASH FOR BOOKMARKING OR LINKING
	var sc = Number(id) + 1;
	document.location.hash = id;
	
	// CHANGE INDICATOR ON LINKS
	$('sl_' + currentSlide).removeClass('active');
	$('sl_' + id).addClass('active');
	
	currentSlide = id;
	
	initialLoad = false;
};

// HIDE ALL SLIDES EXCEPT NEW SLIDE (FOR RAPID CLICKING FIX) 
function hideSlides (id) {

	$$('.slideShowPhoto').each (function(div){
		div.setStyle('display', 'none');
	});
	
	$('ph_' + id).setStyle ('display','block');

};

// LOAD NEXT PHOTO
function loadNextPhoto () {
	if (Number(currentSlide) + 1 < totalSlides) {
		loadPhoto(Number(currentSlide) + 1);
	} else {
		loadPhoto(0);
	}
};


// SHOW AND HIDE THE PREVIEW THUMBNAILS

function showSlidePreview(id) {
	var text = $('img_' + id).getProperty('src');
	$('slideThumb').setProperty('src', text);
	var newLeft = ($('sl_' + id).getLeft() - $('pageContainer').getLeft()) - 40;
	$('slidePreview').setStyle('left',newLeft);
	$('slidePreview').setStyle('display', 'block');
};

function hideSlidePreview() {
	$('slidePreview').setStyle('display', 'none');
	$('slideThumb').setProperty('src', '');
};
	
window.addEvent('domready', function() {

	// PRELOAD IMAGES
	var p = new Preloader();
	
	$$('.slideShowPhoto img').each(function(img){
		p.addEventOnLoad(img.src, function() {
			img.getParent().setStyle('background', 'none');
			img.setStyle('display', 'block')
			img.setStyle('opacity', 0)
			img.tween('opacity',1);
		});
		p.addToQueue(img.src);
	});

	// ADD CLICK AND HOVER ACTION FOR EACH SLIDE BUTTON
	$$('#slideButtons a').each(function(link){
		link.addEvent ('mouseover', function(event) {
			e = new Event(event);
			showSlidePreview(this.id.split("_")[1]);
			e.stop();
		});
		link.addEvent ('mouseout', function(event) {
			e = new Event(event);
			hideSlidePreview();
			e.stop();
		});
		link.addEvent ('click', function(event) {
			e = new Event(event);
			var num = this.id.split("_")[1];
			if (num != currentSlide) {
				loadPhoto(num);
			};
			currentSlide = num;
			this.blur();
			e.stop();
		});
		totalSlides++;
	});
	
	$('slideShowPrev').addEvent('click', function(event) {
		e = new Event(event);
		if (currentSlide > 0) {
			loadPhoto(currentSlide - 1);
		} else {
			loadPhoto(totalSlides - 1);
		}
		this.blur();
		e.stop();
	});
	
	$('slideShowNext').addEvent('click', function(event) {
		e = new Event(event);
		loadNextPhoto();
		this.blur();
		e.stop();
	});
	
	$('slideCopyToggle').addEvent('click', function(event) {
		
		e = new Event(event);
		
		if (copyVisible) {
		
			$('slideShowCopy').tween('height',30);
			this.removeClass('open');
			copyVisible = false;
			
		} else {
			
			var toResize = $('cp_' + currentSlide).getSize().y + $('slideShowTitle').getSize().y;
			$('slideShowCopy').tween('height',toResize);
			this.addClass('open');
			copyVisible = true;
		}
		if(copyInitialLoad) {
			copyInitialLoad = false;
		}
		this.blur();
		e.stop();
	});
	
	// LOAD PHOTO FROM DOCUMENT HASH IF IT EXISTS
	var h = document.location.hash;
	
	if (h=='') {
		h = 0;
	} else {
		h = h.split('#')[1];
	}
	
	loadPhoto(h);
			
});
