/* Developed by Tristan Brehaut for Yell Adworks */
/* center function */
jQuery.fn.center = function () {
	this.css('position','absolute');
	this.css('top', ( ($(window).height() - this.height()) / 2 ) + $(window).scrollTop() - 10 );
	this.css('left', ( ($(window).width() - this.width()) / 2 ) );
	return this;
}

/* lightbox and dimTheLights HTML */
var dimTheLightsHTML = '<div class="dimTheLights" id="dimTheLights"></div>';
var lightBoxHTML = '<div class="lightBox" id="lightBox"><div id="lightBoxLoading" class="lightBoxLoading"></div><div id="lightBoxIMGWrap" class="lightBoxIMGWrap"></div><div id="lightBoxCaption" class="lightBoxCaption"></div><div id="btnClose" class="btnClose"></div></div>';
var padding = 10;
	
$(document).ready( function(){
	/* append lightbox to page */
	$('body').append(dimTheLightsHTML, lightBoxHTML);
	
	
	/* lightbox activate on click */
	$('a[rel="lightbox"], a[lang="lightbox"]').click( function(){
		
		/* set dimTheLights to cover document/window, fade in elements */
		$('#dimTheLights').css( { height: $(document).height(), width: $(window).width(), opacity: '0.8' } );
		$('#dimTheLights, #lightBox, #lightBoxLoading').fadeIn( 'slow' );
		
		/* loading */
		$('#lightBox').css( { width: 200, height: 200 } ).center();
		
		/* set img src and caption from <a> attributes */
		$('#lightBoxIMGWrap').html( '<img src=' + $(this).attr('href') + ' id="lightBoxIMG" />');
		$('#lightBoxCaption').html( $(this).attr( 'title' ) );
		captionHeight = $('#lightBoxCaption').height();
		if( captionHeight >= 1 ) { captionHeight = captionHeight + padding;
		} else {
			captionHeight = 25;
		}
		$('#lightBoxIMG, #lightBoxCaption, #btnClose').css( 'display', 'none' );
		
				
		$('#lightBoxIMG').load( function(){
			/* remove loading */
			$('#lightBoxLoading').css( 'display', 'none' );
			/* reset height and width */
			imgWidth = $(this).width();
			imgHeight = $(this).height();
			lbTop = (($(window).height() - imgHeight) / 2) + $(window).scrollTop() - (captionHeight / 2) - 18;
			lbLeft = ($(window).width() - imgWidth) / 2;
			$('#lightBox').animate( { top: lbTop, left: lbLeft, width: imgWidth, height: imgHeight + captionHeight }, { queue: false, duration: 'slow', complete: function() { $('#lightBoxIMG, #lightBoxCaption, #btnClose').fadeIn( 'slow' ); } });
		});

		return false;
	});

	/* close functions on btnClose and dimTheLights click, preventing close on lightbox click */
	$('#dimTheLights, #btnClose').click(function(){
		$('#dimTheLights, #lightBox, #lightBoxLoading').fadeOut( 'slow' );
		return false;
	});
	
	$('#lightBox').click( function(){ return false; }).bind('contextmenu', function(){
		$('#dimTheLights, #lightBox, #lightBoxLoading').fadeOut( 'slow' );
		return false;
	});

	/* keep lightbox centered */
	$(window).scroll( function(){
		$('#dimTheLights').css( { height: $(document).height(), width: $(window).width() } );
		$('#lightBox').center();
	});
	$(window).resize( function(){
		$('#dimTheLights').css( { height: $(document).height(), width: $(window).width() } );
		$('#lightBox').center();
	});	

});
