/**
 * @author justin
 */
var gallerySlider = {

	activePageClass: 'gallery-slider-active-page',
	
	init: function()
	{
		this.frame = $('#gallery_slider .component').css({position: 'absolute', overflow: 'hidden', width: 940, height: 260});
		this.slider = this.frame.find('.slider').css({position: 'absolute', left: 0, top: 0, width: 940, height: 167, overflow: 'hidden'});

		this.slider.find('.gallery-slider-page:first-child').addClass(this.activePageClass);
		this.initPagerLinks();
		return this;
	},
		
	progress: function(data)
	{
		
		currentPage = gallerySlider.getCurrentPage();
		currentPage.removeClass(gallerySlider.activePageClass);
		currentPage.next().addClass(gallerySlider.activePageClass);
		
		delta = currentPage.outerWidth();
		
		gallerySlider.slider.animate({left: '-=' + delta},1500, 'easeInOutQuart', function(){
				$('#gallery_slider .component .pager-links').replaceWith($(data).find('div.pager-links'));
				gallerySlider.initPagerLinks();
			});
		
	},
	
	rewind: function(data)
	{
		
		currentPage = gallerySlider.getCurrentPage(); 
		currentPage.prev().addClass(gallerySlider.activePageClass);
		currentPage.removeClass(gallerySlider.activePageClass);
		
		delta = currentPage.prev().outerWidth();
		
		gallerySlider.slider.animate({left: '+=' + delta},1500,'easeInOutQuart', function(){
			$('#gallery_slider .component .pager-links').replaceWith($(data).find('div.pager-links'));
			gallerySlider.initPagerLinks();
		});
		
	},
	
	getCurrentPage: function()
	{
		return this.slider.find('.' + this.activePageClass);
	},
	
	initPagerLinks: function()
	{
		$('#gallery_slider .pager-links a').click(function(){
			
			$(this).unbind().click(function(){return false;});
			
			if ($(this).hasClass('mf-button-next'))
			{
				currentPage = gallerySlider.getCurrentPage();
				
				if (currentPage.next().length > 0)
				{
					$.get($(this).attr('href'), function(data){
						gallerySlider.progress(data);
					});
				}
				else 
				{
					$.ajax({
						url: $(this).attr('href'),
						async: false,
						success: function(data){
				
						page = $('<div class="gallery-slider-page"></div>');
						
						$(data).find('.gallery-item').each(function(){
							$(this).appendTo(page);
						});
						
						currentWidth = 0;
						
						$('#gallery_slider .gallery-slider-page').children().each(function(){
							currentWidth += $(this).outerWidth(true);
						});
						
						page.css({position: 'absolute', left: currentWidth, top: 0, width: 0})
							.hide()
							.appendTo(gallerySlider.slider)
							.fadeIn('slow', function(){
								
									sliderWidth = gallerySlider.frame.width();
									
									gallerySlider.slider.children().each(function(){
										pageWidth = 0;
										$(this).children().each(function(){
											pageWidth += $(this).outerWidth(true);
										});
										$(this).width(pageWidth);
										sliderWidth += $(this).outerWidth();
									});

									gallerySlider.slider.width(sliderWidth);
									
									gallerySlider.progress(data);
									
								});
							}
						});
				}
				
			}
			else 
			{
				$.get($(this).attr('href'), gallerySlider.rewind);
			}
			return false;
		});
	}
		
};

$(function(){
    $('.events-block .mf-button-more').click(function(){
  	  $("#homepage_tabs").tabs('select',2);
  	  return false;
    });
  	galleryBlockLoadSuccess();
  	gallerySlider.init();
});

function galleryBlockLoadSuccess()
{
	$('.gallery-block .component .pager-links a').click(function(){
			$('.gallery-block .component').load(
					$(this).attr('href'),
					galleryBlockLoadSuccess
			);
			return false;
	});
};


