// JavaScript Document

ajaxloader = function(){
	
	// lightbox settings
	var lightboxOverlayOpacity = .5;
	var slideSpeed = 300;
	var slideTimeout = 0; //disabled timeout
	var defaultLightboxWidth = 500;
	
	//var lightboxNavigation = "<div class='lightbox-navigation'><a href='' class='lightbox-nav nav-first'>First</a><a href='' class='lightbox-nav nav-prev'>Prev</a><a href='' class='lightbox-nav nav-next'>Next</a><a href='' class='lightbox-nav nav-last'>Last</a></div>";
	
	// init	
	var init = function(){
		$("#scrollbox").delegate(".module a", "click", moduleclick);						 
		$('body').delegate('.lightbox-overlay , .lightbox-close','click',hidePopup);
		//$('body').delegate('.slides','load', setupSlideshow);
	}	
	
	
	
	//methods
	var moduleclick = function(e){

		if( $(e.target).data("cancelclick") ){
			$(e.target).data("cancelclick", false);
			return;
		}
		
		e.preventDefault();
		var $this = $(this).closest("a");
		
		
		$('body')
			.append('<div class="lightbox-wrapper"><div class="lightbox-overlay"></div></div>')
			.find('.lightbox-overlay').fadeTo(350,lightboxOverlayOpacity, function(){
				if($this.siblings(".content").hasClass('content')){
					showPopup($this);
				}else{
					var contentPath = $this.attr('href');
					$.get(contentPath, function(data){ displayData($this, data) });
				}
			});
	} // /moduleclick
	
	var displayData = function(a, data){
		var	$this = a;
		$this.closest('.module').append(data);
		showPopup($this);
	} // /displayData
	
	var showPopup = function(a){
		var $this = a.closest("a");
		
		if($this.attr('rel').search(/lightbox/i) >= 0){
			var popupContent = $this.siblings('.content').html();
			$('.lightbox-wrapper')
				.append('<div class="lightbox"><a href="" class="lightbox-close"></a><div class="lightbox-inner"><div class="content">'+ popupContent +'</div></div></div>')
			.find('.lightbox')
				.fadeTo(100,1, function(){					
					
					$(this).css("filter", "");
					 if($('.lightbox .slides').hasClass('slides')){
						//$('.lightbox-navigation').fadeTo(1500,1); 
						setupSlideshow( $('.lightbox .slides') ); 
						
						
					}else{ 
						// no slideshow
						var $content = $('.lightbox .content');
						var lightboxHeight = ($content.height() + parseInt($content.css('padding-top'))) + parseInt($content.css('padding-bottom'));
						resizeLightbox(defaultLightboxWidth,lightboxHeight);	
					}
			});
		}else{
			//alert('this <A> doesnt have a rel of lightbox');
		}
	}
	
	var hidePopup = function(e){
		e.preventDefault();
		$('.lightbox-wrapper').fadeTo(250,0, function(){$('.slides').cycle('destroy'); $(this).remove()});
	}
	
	var setupSlideshow = function(ss){

		$(ss)
			.before('<div class="lightbox-pager"></div><a href="" class="lightbox-invisible-nav invisible-prev">Prev</a><a href="" class="lightbox-invisible-nav invisible-next">Next</a>')
			.cycle({
				fx: 'scrollHorz',
				timeout: slideTimeout,
				speed: slideSpeed,
				before: nextSlide,
				pager: '.lightbox-pager',
				next: '.invisible-next',
				prev: '.invisible-prev'

       	});
		/* $('.nav-last').click(function(e){
			e.preventDefault();
			var slidecount = $(this).closest('.lightbox').find('.slides li').length -1;
	 		$('.slides').cycle(slidecount);
		});
		
		$('.nav-first').click(function(e){
			e.preventDefault();
	 		$('.slides').cycle(0);
		}); */
	}

	var nextSlide = function(currentSlide, incomingSlide){
		
		if(window.console&&window.console.log){window.console.log("next slide")}
		
		$incomingSlide = $(incomingSlide).find('img');
		var lightboxHeight = $incomingSlide.attr("height");
		var lightboxWidth = 670; //$incomingSlide.attr("width");
		resizeLightbox(lightboxWidth,lightboxHeight);
	}
	
	var resizeLightbox = function(lightboxWidth,lightboxHeight){
		var lightboxMarginLeft = "-"+ (lightboxWidth / 2) +"px";
		//var lightboxMarginTop = "-"+ (lightboxHeight / 2) +"px";

		$('.lightbox').animate({
			width: lightboxWidth,
			height: lightboxHeight,
			marginLeft: lightboxMarginLeft,
			paddingBottom: '20px',
			paddingTop: '50px'
			//marginTop: lightboxMarginTop
		},250).find('.lightbox-inner').animate({
			width: lightboxWidth,
			height: lightboxHeight
			},250).end().find('.lightbox-invisible-nav').animate({
				height: lightboxHeight
				},250);
	}
	
	
	return {
	init: init
	}
}();



$( ajaxloader.init );
