j(document).ready(function() {
	var linkArray = [];
	var imageArray = [];
	var totalImages = 0;
	var captionArray = []; 
	var tempArray = [];
	var startPos = 0;
	j('div.gallery_single_image').css('display', 'none');
	j('div.gallery_index a').click(function() {
		linkArray = j('div.gallery_index a').get();
		tempArray = j('div.gallery_index a img').get();
		for( i=0; i<linkArray.length; i++ ) {
		    imageArray[i] = '/client_files/alternate_images/' + linkArray[i].rel;
		    captionArray[i] = tempArray[i].alt;
			totalImages++;
			if( j(linkArray[i]).html() == j(this).html() ) {
				startPos = i;
			}
		}
		constructLightbox( imageArray, captionArray, totalImages, startPos );
		totalImages = 0;
		j('#logo').addClass('disable_logo');
		return false;
	});
	
	// accordion
	j('.accordion ul.linklist').parent().hide();
	j('.accordion h3').click(function() {
		j(this).toggleClass('open').parent().next('span').slideToggle('fast');
	});
});

function constructLightbox( imageArray, captionArray, totalImages, startPos ) {
	// instantiate position variables
	var currentPosition = startPos;
	var currentHumanPosition = startPos + 1;
	var currentImage = imageArray[startPos];
	var currentCaption = captionArray[startPos];

	// create lightbox object
	var lightbox =  '<div id="lightbox">';
			lightbox += '<div id="lightbox_masthead">';
				lightbox += '<a href="/" id="lightbox_logo">Shea</a>';
				lightbox += '<div id="caption">' + currentCaption + '</div>';
				lightbox += '<div id="lightbox_controls">';
					lightbox += '<a id="prev">Previous</a>';
					lightbox += '<span><em>' + currentHumanPosition + '</em> of ' + totalImages + '</span>';
					lightbox += '<a id="next">Next</a>';
					lightbox += '<a id="close">Close Photo Viewer</a>';
				lightbox += '</div>';
				lightbox += '<div class="clear"></div>';
			lightbox += '</div>';
			lightbox += '<img src="' + currentImage + '" alt="" id="lightbox_portfolio_image" />';
	    lightbox += '</div>';
	    
	// insert the lightbox object into the DOM
	j(lightbox).appendTo('body');
	j('#lightbox').hide();
	j('#lightbox').css('position', 'absolute');
	j('#lightbox_portfolio_image').css({ position: "absolute", left: "-9999px" });
	var doc_height = j(document).height();
	j('#lightbox').height(doc_height);
	
	// check curPos for initial button states
	if (currentPosition == imageArray.length-1) {
		j('#next').addClass('disabled');
	}
	if (currentPosition == 0) {
		j('#prev').addClass('disabled');
	}
	
	// fade the lightbox into view
	var displayLightbox = function() {
		j('#lightbox').hide();
		j('#lightbox_portfolio_image').css({ position: "relative", left: "auto" });
		j('#lightbox').fadeIn(700);
	}
	q = setTimeout( displayLightbox, 500 );
	
	
	

	// assign handlers for next/prev functionality
	j('#next').click( function() {
		j(this).blur();
		
		previousPosition = currentPosition;
		currentPosition++;
		
		if (currentPosition > imageArray.length-1) {
			currentPosition = imageArray.length-1;
		}
		
		swapImage = function() {
			currentImage = imageArray[currentPosition];
			j('#lightbox_portfolio_image').fadeOut(300);
			a = setTimeout( function() {
				j('#lightbox_portfolio_image').css({ position: "absolute", left: "-9999px" });
			}, 400);
			b = setTimeout( function() {
				j('#lightbox_portfolio_image').attr('src', currentImage);
			}, 500);
			var nextImage = function() {
				j('#lightbox_portfolio_image').css({ position: "relative", left: "auto" });
				j('#lightbox_portfolio_image').fadeIn(300);
			}
			c = setTimeout( nextImage, 1000 );
		}
		
		if (currentPosition == imageArray.length-1) {
			j('#next').addClass('disabled');
			j('#prev').removeAttr('class');
			
			if (previousPosition != currentPosition) {
				swapImage();
			}
		} else if (currentPosition == imageArray.length) {
			return;
		} else {
			j('#prev').removeAttr('class');
			if (previousPosition != currentPosition) {
				swapImage();
			}
		}

		currentCaption = captionArray[currentPosition];
		j('#caption').html(currentCaption);
		
		currentHumanPosition = currentPosition + 1;
		j('#lightbox span em').html(currentHumanPosition);
		
		return;
	});
	
	j('#prev').click( function() {
		j(this).blur();
		
		swapImage = function() {
			currentImage = imageArray[currentPosition];
			j('#lightbox_portfolio_image').fadeOut(300);
			a = setTimeout( function() {
				j('#lightbox_portfolio_image').css({ position: "absolute", left: "-9999px" });
			}, 400);
			
			b = setTimeout( function() {
				j('#lightbox_portfolio_image').attr('src', currentImage);
			}, 500);
			var prevImage = function() {
				j('#lightbox_portfolio_image').css({ position: "relative", left: "auto" });
				j('#lightbox_portfolio_image').fadeIn(300);
			}
			c = setTimeout( prevImage, 1000 );
		}
		
		previousPosition = currentPosition;
		currentPosition--;
		
		if (currentPosition < 0) {
			currentPosition = 0;
		}
		
		if (currentPosition == 0) {
			j('#prev').addClass('disabled');
			j('#next').removeAttr('class');
			if (previousPosition != currentPosition) {
				swapImage();
			}
		} else {
			j('#next').removeAttr('class');
			swapImage();
		}
				
		currentCaption = captionArray[currentPosition];
		j('#caption').html(currentCaption);
		
		currentHumanPosition = currentPosition + 1;
		j('#lightbox span em').html(currentHumanPosition);
		
		return;
	});
	
	// close button destroys lightbox, reset vars
	j('#close').click( function() {
		j('#lightbox').fadeOut(400);
		var timeoutRemove = setTimeout('j("#lightbox").remove()', 400);
		j('body').css('overflow-x', 'auto');
		j('#logo').removeAttr('class');
	});
	
	// ensure no horizontal scroll bars
	j('body').css('overflow-x', 'hidden');
}