/*
 * jQuery simpleLightbox v1.0.0 
 *
 * Copyright (c) 2008 Taranets Aleksey
 * email: aleks_tar@ukr.net
 * Licensed under the MIT License:
 * http://www.opensource.org/licenses/mit-license.php
 */

jQuery.fn.simpleLightbox = function(_options){
	// defaults options	
	var _options = jQuery.extend({
		lightboxContentBlock: '.lightbox',
		faderOpacity: .5,
		faderBackground: '#000000',
		closeLink:'a.close'
	},_options);

	return this.each(function(){
		var _this = jQuery(this);
		_this.lightboxContentBlock = _options.lightboxContentBlock;
		_this.faderOpacity = _options.faderOpacity;
		_this.faderBackground = _options.faderBackground;
		_this.closeLink = _options.closeLink;
		var _fader;
		
		var _lightbox = $(_this.lightboxContentBlock);
		if (!jQuery('div.lightbox-fader').length)
			_fader = $('body').append('<div class="lightbox-fader"></div>');
		
		_fader = jQuery('div.lightbox-fader');
		_lightbox.css('zIndex',999);
		_fader.css({
			opacity:_this.faderOpacity,
			backgroundColor:_this.faderBackground,
			display:'none',
			position:'absolute',
			top:0,
			left:0,
			zIndex:998,
			textIndent: -9999
		}).text('$nbsp');
		
		_this.click(function(){
			
			$(this).parent().addClass('current');
			$(this).parent().siblings().removeClass('current');
			
			_fader.fadeIn(300, function(){
				jQuery('.lightbox').fadeOut(400);
				_lightbox.fadeIn(400);
				jQuery.fn.simpleLightbox.positionLightbox();
			});
			
			showIMG();
			
			return false;
		});
		
		function showIMG() {
			var _href = $('li.current a').attr('href');
			var _img = $('img.lightbox-img').attr('src',_href);			
			var _imgLoad = new Image();
			_imgLoad.src = _href;			
			_imgLoad.onload = InitFade;
			if (_imgLoad.complete) _imgLoad.onload(); 
			
			function InitFade() {
				var _height = _imgLoad.height;
				var _width = _imgLoad.width;
				setTimeout(function(){
					correctPosition(_width, _height);
				}, 500);
				
			}
		}
		var _zzz = 0;
		function correctPosition(_w, _h) {
			var _lw = _lightbox.width();
			var _lh = _lightbox.height();
			var _dW = (_w - _lw);
			var _dH = (_h - _lh);
			var _l = parseInt(_lightbox.css('left'));
			var _t = parseInt(_lightbox.css('top'));
			
			var _temp = setPosition((_lw + _dW + (37*2)), (_lh + _dH + 40 + 39 + 27));
			
			_lightbox.animate({
				top:_temp.top,
				left:_temp.left,
				width:(_lw + _dW + 20),
				height:(_lh + _dH + 40)
			},{queue:false, duration:400, complete: function() {
				$('div.note p').text($('li.current div.information').text());
				$('span.onload').css('display','none');
				$('img.lightbox-img').css('visibility','visible');
				
				$('div.note').css('visibility','visible');
				showArrows(_h);
			}})
			$('div.image', _lightbox).animate({
				height:(_lh + _dH)
			},{queue:false, duration:400})
		}
		
		function setPosition (_widthL, _heightL) {
			
			var _height = 0;
			var _width = 0;
			var _backTop, _backLeft;
			var _minWidth = $('body').outerWidth();
			if (window.innerHeight) {
				_height = window.innerHeight;
				_width = window.innerWidth;
			} else {
				_height = document.documentElement.clientHeight;
				_width = document.documentElement.clientWidth;
			}
			if (_lightbox.length) {
				_backTop = ( (_height - _heightL) / 2)
				_backLeft = (_width - _widthL) / 2
			}
			return {top:_backTop, left:_backLeft}
		}
		
		function showArrows(_h) {
			_h = _h/3;
			if ($('li.current').next().is('li')) {
				$('a.btn-next', _lightbox).show();
			}
			if ($('li.current').prev().is('li')) {
				$('a.btn-prev', _lightbox).show();
			}
			$('a.btn-next, a.btn-prev', _lightbox).css('top',_h);
		}
		$('a.btn-next', _lightbox).unbind('click');
		$('a.btn-prev', _lightbox).unbind('click');
		
		$('a.btn-next', _lightbox).bind('click', function() {
			hideLB();
			$('li.current').removeClass('current').next('li').addClass('current');
			showIMG();
			return false;
		});
		$('a.btn-prev', _lightbox).bind('click', function() {
			hideLB();
			$('li.current').removeClass('current').prev('li').addClass('current');
			showIMG();
			return false;
		});
		
		function hideLB() {
			$('img.lightbox-img').css('visibility','hidden');
			$('div.note').css('visibility','hidden');
			$('span.onload').css('display','inline');
			$('a.btn-next, a.btn-prev', _lightbox).hide();
		}
		
		jQuery(_this.closeLink).click(function(){
			_lightbox.fadeOut(400, function(){
				_fader.fadeOut(300);
				hideLB();
			});
			return false;
		});
		
		jQuery.fn.simpleLightbox.positionLightbox = function () {
			var _height = 0;
			var _width = 0;
			var _minWidth = $('body > div').outerWidth();
			if (window.innerHeight) {
				_height = window.innerHeight;
				_width = window.innerWidth;
			} else {
				_height = document.documentElement.clientHeight;
				_width = document.documentElement.clientWidth;
			}
			var _page = $('body');
			if (_lightbox.length) {
				if (_height > _page.innerHeight()) _fader.css('height',_height); else _fader.css('height',_page.innerHeight());
				if (_width < _minWidth) {_fader.css('width',_minWidth);} else {_fader.css('width','100%');}
				if (_height > _lightbox.innerHeight()) {
					if (!window.innerHeight) {
						_lightbox.css({
							position:'absolute',
							top: (document.documentElement.scrollTop + (_height - _lightbox.outerHeight()) / 2)+"px"
						});
					} else {
						_lightbox.css({
							position:'fixed',
							top: ((_height - _lightbox.outerHeight()) / 2)+"px"
						});
					}
				}
				else {
					_lightbox.css({
						position:'absolute',
						top: 0
					});
				}
				if (_width > _lightbox.outerWidth()) _lightbox.css({left:(_width - _lightbox.outerWidth()) / 2 + "px"});
				else _lightbox.css({position:'absolute',left: 0});
			}
		}
		
		jQuery(window).resize(function(){
			jQuery.fn.simpleLightbox.positionLightbox();
		});
		
		jQuery.fn.simpleLightbox.positionLightbox();
		
	});
}
$(document).ready(function(){
	$('div.gallery div.gallery-holder ul li a').simpleLightbox({
		lightboxContentBlock:'div.popup-holder',
		closeLink:'a.btn-close'
	});
});



	