// JavaScript Document

// Number of photos in this gallery
var photoNum = photoArray.length;
// initial counter
var counter = 0;
// current height of image
var currentheight = photoArray[counter][2];
// current height of image
var currentwidth = photoArray[counter][1];
// current caption
var currentcaption = photoArray[counter][3];
// transition speed
var speed = 500;
//	var to check if busy doing transition
var transition_busy = 0;


// prevPhoto
function prevPhoto(number) {
	// only if not busy doing a transition
	if (transition_busy == 0) {
		// decrease counter if there is not a direct number
		if (number == null) {counter --} else {counter = (number-1)};
		// loop to end if we hit below 0
		if (counter < 0) { counter = photoNum-1 };
		//document.getElementById('mooshow_caption').innerHTML = counter;
		// now resize image container
		loadPhoto(counter);
	}
}



// nextPhoto
function nextPhoto(number) {
	// only if not busy doing a transition
	if (transition_busy == 0) {
		// decrease counter if there is not a direct number
		if (number == null) {counter ++} else {counter = (number-1)};
		// loop to end if we hit below 0
		if (counter == photoNum) { counter = 0 };
		// now resize image container
		loadPhoto(counter);
	}
}

// loads new photo
function loadPhoto() {
	// update navigation if navigation on
	if(document.getElementById('mooshow_navigation')){navigation();}
	// hide overlay nav and caption
	hide_elements();
	// show laoding animation
	document.getElementById('mooshow_loading').style.display = 'inline';
	// load in new image
	imgPreloader = new Image();
	// if image is preloaded
	imgPreloader.onload=function(){
		// when loaded
		// hide laoding animation
		document.getElementById('mooshow_loading').style.display = 'none';	
		// hide current photo
		//document.getElementById('mooshow_image').style.opacity = 0;
		new Fx.Style('mooshow_image', 'opacity').set(0);
		// resize container to new size
		resize();
	}
	// preloader src
	imgPreloader.src = photoArray[counter][0];
}


// resize image container
function resize() {
	// get current photo width and height
	currentwidth = document.getElementById('mooshow_image').width;
	currentheight = document.getElementById('mooshow_image').height;
	// call moo.fx effect
	resizeContatinerHeight.start(currentheight,photoArray[counter][2]);
	resizeContatinerWidth.start(currentwidth,photoArray[counter][1]);
}



// hide various mooShow elements
function hide_elements() {
	// clear cpation. fill with space
	if(document.getElementById('mooshow_caption')){
	document.getElementById('mooshow_caption').innerHTML = '&nbsp;';}
	// overlay navigation
	document.getElementById('mooshow_prev').style.display = 'none';
	document.getElementById('mooshow_next').style.display = 'none';
}



function switch_photo() {
	document.getElementById('mooshow_image').src=photoArray[counter][0];
	document.getElementById('mooshow_image').alt=photoArray[counter][3];
	document.getElementById('mooshow_image').width=photoArray[counter][1];
	document.getElementById('mooshow_image').height=photoArray[counter][2];
	document.getElementById('mooshow_image').name=counter;
	// update caption  if it exists
	if(document.getElementById('mooshow_caption')){caption();}
	
	// show new image
	show_elements();
}



// show various mooShow elements
function show_elements() {
	// fade in photo
	fade_in('mooshow_image',speed);
	// fade in caption if captions on
	if(document.getElementById('mooshow_caption')){fade_in('mooshow_caption',speed);}
}


// show nav elements
function show_nav_overlay() {
	// overlay navigation
	document.getElementById('mooshow_prev').style.display = 'inline';
	document.getElementById('mooshow_next').style.display = 'inline';
}


// build navigation
function navigation(){
	// clear current links
	document.getElementById('mooshow_navigation').innerHTML = '';
	var i=0
	for (i=0;i< photoNum;i++) {
		// get current content	
		var content = document.getElementById('mooshow_navigation').innerHTML;
		// write links
		if(i==counter){
			document.getElementById('mooshow_navigation').innerHTML = content + ' <span id="mooshow_selected">'+(i+1)+'</span> ';}
			else {
			document.getElementById('mooshow_navigation').innerHTML = content + ' <a href=\'#' +(i+1)+ '\' onclick=\"nextPhoto('+(i+1)+');\">'+(i+1)+'</a> ';}
		// add | between links
		if(i < photoNum-1) {
			var content = document.getElementById('mooshow_navigation').innerHTML; 
			document.getElementById('mooshow_navigation').innerHTML = content;}
		}
	//update next / prev links
	if (counter == photoNum-1) {document.getElementById('nextphoto').href = '#1'} else {document.getElementById('nextphoto').href = '#' + (counter+2)};
	if (counter == 0) {document.getElementById('prevphoto').href = '#'+photoNum} else {document.getElementById('prevphoto').href = '#' + (counter)};
}


// caption
function caption(){
	// uodate caption
	var caption;
	// add &nbsp; if no caption otherwise dive jumps
	if(photoArray[counter][3]=='') {caption='&nbsp;'} else {caption=photoArray[counter][3]}
	document.getElementById('mooshow_caption').innerHTML = caption;
}



// moo.fx

// resize
window.onload = function() {
	transition_busy = 1;
	resizeContatinerHeight = new Fx.Style($('mooshow_image_container'), 'height', {'duration': speed, 'wait': false, onComplete:function() {
	// display new image etc.
	switch_photo();
	transition_busy = 0;
	}});
	
	//resizeContatinerWidth = new fx.Width('mooshow_container', {duration: speed});	
	resizeContatinerWidth = new Fx.Style($('mooshow_container'), 'width', {'duration': speed, 'wait': false});
	//resizeContatinerWidth= new Fx.Styles($('mooshow_container'), {'duration': speed, 'wait': false});
	
	// load first photo
	transition_busy = 0;
	nextPhoto(1);
} 


// fader effect
function fade_in(element,speed) { 
	new Fx.Style(element, 'opacity', {'duration': speed, 'wait': false, onComplete:function() {
		show_nav_overlay();		
	}}).start(0,1);
}


