/*  TREVOR's Custom Preloaded Lightbox JS
	Copyright 2008 — please don't take without permission

*/

$(document).ready(function(){
	
	var loadingImg = new Image;
	loadingImg.src = "/img/lightbox/loading.gif";

	var totalBoxes = $("a[rel='lightbox']").size();
	
/*	$("a[rel='lightbox']").each(function(){
		loadImages($(this).attr("href")); })
*/	
	$("a[rel='lightbox']").bind('click',function(){
		loadBox($(this).attr("href"),$("a[rel='lightbox']").index(this)+1,totalBoxes,$(this).attr("title")); return false; });

});

function loadImages(src) {
	if (src.indexOf(".jpg") || src.indexOf(".gif") || src.indexOf(".png")) {  // Would be nice to make this a regExp
		var loadImg = new Image; loadImg.src = src;		
	}
}

function loadBox(image,index,total,title) {
	
	$("body").append('<div id="shade"></div>');
	
	var isMSIE = /*@cc_on!@*/false;
	if (isMSIE) $("#shade").css("background","none");
	
	$("#shade").fadeIn();
	
	$("#shade").append('<div id="lightbox"><span class="top"><span class="left"></span><span class="right"></span></span><div class="viewer"></div><div id="lightbox-links"><span class="loading"></span><p></p><ul><li class="count"></li><li>Prev</li><li>Next</li><li class="close"><a href="#">Close</a></li></ul></div><span class="bottom"><span class="left"></span><span class="right"></span></span></div>');
	
	loadContent(image,index,total,title);
	
	bindClose();
	
}

function loadContent(img,idx,tot,ttl) {
	
	$("#lightbox .viewer").empty();

	$("#lightbox-links p").css("padding-left","18px");
	$("#lightbox .loading").show();
	
	if ($("#lightbox").is(":visible")) {
		$("#lightbox-links p").empty();
		$("#lightbox .viewer").empty();
		$("#lightbox-links .next").unbind('click');
		$("#lightbox-links .prev").unbind('click');
		var loaded = true;
	} else var loaded = false;

	$("#lightbox-links p").text(ttl);
	$("#lightbox-links li.count").html(idx+"&nbsp;of&nbsp;"+tot);

	if (idx != 1) {
		$("#lightbox-links li:contains(Prev)").html('<a href="#" class="prev">Prev</a>');
		$("#lightbox-links .prev").bind('click',function(){
			var prv = $("a[rel='lightbox']:eq("+(idx-2)+")");
			loadContent($(prv).attr("href"),(idx-1),tot,$(prv).attr("title"));
			return false;
		})
	} else { $("#lightbox-links li:contains(Prev)").html('Prev'); }
	
	if (idx != tot) {
		$("#lightbox-links li:contains(Next)").html('<a href="#" class="next">Next</a>');
		$("#lightbox-links .next").bind('click',function(){
			var nxt = $("a[rel='lightbox']:eq("+idx+")");
			loadContent($(nxt).attr("href"),idx+1,tot,$(nxt).attr("title"));
			return false;
		})
	} else { $("#lightbox-links li:contains(Next)").html('Next'); }
	
	if (img.indexOf(".html") == -1) {
		
		$("#lightbox .viewer").html('<img id="box-'+idx+'" src="'+img+'" alt="'+ttl+'" />');

		$("#lightbox .viewer").fadeIn();
		$("#lightbox").fadeIn();

		$("#box-"+idx).bind('load',function(){

			var widthNew = $("#lightbox img").width();
			var heightNew = $("#lightbox img").height();
			
			resizeBox($("#lightbox").width(),widthNew,heightNew);

		});

	} else if (img.indexOf(".html") != -1) {
		
		var src = img;

		$("#lightbox .viewer").html('<div id="box-'+idx+'" class="html"></div>');
		
		$("#lightbox .viewer").fadeIn(); $("#lightbox").fadeIn();
		
		$("#box-"+idx).load(src, function(){
			var widthNew = $(this).find("*[width]:eq(0)").attr("width");
			var heightNew = $(this).find("*[height]:eq(0)").attr("height");
			$(this).css({ width: "100%", height: "100%" });
			resizeBox($("#lightbox").width(),widthNew,heightNew);
		});

	}

	
}

function resizeBox(wnow,wnew,hnew) {
	
	var newTop = ($(window).height() - hnew - 50) / 2;
	$("#lightbox").animate({ marginTop: newTop });

	var linksWidth = 0
	$("#lightbox-links li").each(function(){
		linksWidth += $(this).width(); });
	if ((wnew - linksWidth) < $("#lightbox-links p").width())
		$("#lightbox-links p").hide();
	else $("#lightbox-links p").show();

	if (wnew != wnow) {
		$("#lightbox").animate({ width: wnew });
		/* $("#lightbox > span").animate({ width: wnew }); */ }
	$("#lightbox .viewer").animate({ height: hnew });
	
	var isMSIE = /*@cc_on!@*/false;
	if (isMSIE)	{
		$("#lightbox-links").css("width",wnew);
	}

	$("#lightbox .loading").fadeOut(200);
	setTimeout(function(){ $("#lightbox-links p").animate({ paddingLeft: 0 }); },200);

}

function bindClose() {
	$(document).unbind("keyup");
	$(document).bind("keyup", function(e){
		var k = e.keyCode || window.event.keyCode; if (k == 27) { hideShade(); return false; } });
	$("#lightbox-links li.close a").bind('click',function(){ hideShade(); return false; });
}

function hideShade() {
	var isMSIE = /*@cc_on!@*/false;
	if (!isMSIE) $("#shade").fadeOut(200,function(){ $(this).remove(); });
	else $("#shade").remove();
	
}
