var gallery, prev_bt, next_bt, thumbs, overlay;

$(photogallery_init);


function photogallery_init () {

	gallery = $("#photo-gallery");
	prev_bt = $(".prev-link", gallery);
	next_bt = $(".next-link", gallery);
	thumbs = $(".gallery li a", gallery);
	
	
	
	var thumb_width = $(".gallery li:first-child img", gallery).width() + 10;
	var thumb_count = $(".gallery li", gallery).length;
		
	$(".gallery ul", gallery).width(thumb_width * thumb_count);

	overlay = $("<div id='overlay'><div id='overlay_bg'>&nbsp;</div><div id='img-holder'></div></div>")
				.css({
					'position': 'absolute',
					'display': 'none', 
					'width': '100%', 
					'height': '100%',
					'top': '0',
					'left': '0',
					'z-index': '1230'
				})
				.appendTo("body")
				.click(hideGalleryOverlay);
	
	$("#overlay_bg", overlay).css({
		'background-color': '#000',
		'opacity': '0.9',		
		'filter': 'alpha(opacity=90)',
		'width': '100%',
		'height': '100%',
		'z-index': '1231'
	});
	
	$("#img-holder", overlay).css({
		'position': 'absolute',
		'z-index': '1234'
	});
	
	
	$(prev_bt).click(gallery_prev);
	$(next_bt).click(gallery_next);
	$(thumbs).click(showGalleryOverlay);

}



function gallery_prev (){
	var gallery_ul = $("#photo-gallery .gallery ul"),
		gallery_pos = $(gallery_ul).css("margin-left"),
		gallery_width = $("#photo-gallery .gallery").width();
		
	if (gallery_pos != "0" && gallery_pos != "0px" && gallery_pos != undefined){
		$(gallery_ul).animate({marginLeft: "+="+gallery_width+"px"}, 500);
	}
	return false;
}



function gallery_next (){
	var gallery_ul = $("#photo-gallery .gallery ul"),
		gallery_pos = $(gallery_ul).css("margin-left"),
		gallery_ul_width = $(gallery_ul).width(),
		gallery_width = $("#photo-gallery .gallery").width(),
		max_page = Math.ceil(gallery_ul_width / gallery_width),
		current_page;
		
		
	// Calculate the page based on the left margin	
	if (gallery_pos === "0" || gallery_pos === "0px" || gallery_pos === undefined){
		gallery_pos = 0;
		current_page = 1;
	}else{
		gallery_pos = parseFloat(gallery_pos.substr(0, gallery_pos.indexOf("px")));
		current_page = Math.ceil(Math.abs(gallery_pos) / gallery_width) + 1;
	}
	
	if (current_page < max_page){
		$(gallery_ul).animate({marginLeft: "-="+gallery_width+"px"}, 500);
	}
	

	return false;
}



function showGalleryOverlay (){
	var caption = $("img", this).attr("alt");
	var src = $(this).attr("href");
	var screenHeight = $(window).height();
	var screenWidth = $(window).width();
	
	
	$("#img-holder", overlay).html("");
	$("#img-holder", overlay).css("visibility", "hidden");
	
	var newImg = $("<img src='"+src+"' alt='"+caption+"' />").appendTo("#img-holder", overlay);
	$(newImg).css({
		'margin': '0 0 15px 0', 
		'border': '2px solid #FFF'
	})

	
	$("#img-holder", overlay).append("<p>"+caption+"</p>").css({'color': '#FFF'});
			
	newImg.load(function (){
		var imgHeight = $(newImg).height(),
			imgWidth = $(newImg).width(),
			imgTop = Math.floor((screenHeight/2) - (imgHeight/2)) + 'px',
			imgLeft = Math.floor((screenWidth/2) - (imgWidth/2)) + 'px';
			
		$("#img-holder", overlay)
		.css({
			'top': imgTop,
			'left': imgLeft,
			'width': imgWidth,
			'visibility': "visible"
		});
		
	});
	
			
	$(overlay)
		.css('top', $(document).scrollTop() + 'px')
		.show();
	
	$("body").css('overflow', 'hidden');
	return false;
}


function hideGalleryOverlay (){
	$(overlay).hide();
	$("body").css('overflow', 'scroll');
	return false;
}