// JavaScript Document
DG = new Object();

DG.dualGallery = new function(){
	//PUBLIC
	this.easeDuration = 1000;
	this.delay = 5000;
	this.autoCycle = true;
	
	
	//PRIVATE
	this.numberOfPanels;
	this.numberOfPanelPairs;
	this.marg;
	this.panelShift;
	this.dualCarouselPosition;
	this.pauseGallery;
	this.cycleTimer;
	this.loopDirection;
	this.currentPanel = 1;
	this.moving = false;
	this.panelOverlayHeight = 0;
	
	this.log = function(data){
		if (typeof console != "undefined"){
			console.log('DUAL GALLERY: '+data);
		}
	}
	
	
	this.init = function(){
		$.getScript('/sitewide/scripts/jquery/dualgallery/jquery.easing.compatibility.js', function() {
			$.getScript('/sitewide/scripts/jquery/dualgallery/jquery.easing.1.3.js', function() {
				DG.dualGallery.glowSlider();
				DG.dualGallery.log('init');
				DG.dualGallery.numberOfPanels = Number($('.gallery-dual .panels .slider .panel').size());
				DG.dualGallery.numberOfPanelPairs = Math.round(DG.dualGallery.numberOfPanels/2);
				DG.dualGallery.marg = Number($('.gallery-dual .panels .slider .panel').css('marginRight').replace('px',''));
				DG.dualGallery.panelShift = Number($('.gallery-dual .panels .slider .panel').width()*2) + Number(DG.dualGallery.marg*2);
				DG.dualGallery.useDuration = DG.dualGallery.easeDuration;
				DG.dualGallery.dualCarouselPosition = 0;
				
				$('.gallery-dual .panels .slider .panel').each(function(i){
					$(this).attr('_gid', i);
				});
				
				
				$('.gallery-dual .panels .slider .panel .panel-overlay .panel-overlay-content').each(function(i){
					var testValue = $(this).height();
					if(testValue > DG.dualGallery.panelOverlayHeight){
						DG.dualGallery.panelOverlayHeight = testValue;
					}
				});
				
				$('.gallery-dual .panels .slider .panel .panel-overlay .panel-overlay-content').each(function(i){
					$(this).height(DG.dualGallery.panelOverlayHeight)
				});
				
				//move the last 2 panels to the front and offset the panel shift
				//The purpose of this is if the user clicks to slide left they will be able to see the last panels with a flicker.
				$('.gallery-dual .panels .slider li.panel:first').before($('.gallery-dual .panels .slider li.panel:last'));
				$('.gallery-dual .panels .slider li.panel:first').before($('.gallery-dual .panels .slider li.panel:last'));
				$('.slider').css({'left' : '-'+String(DG.dualGallery.panelShift)+'px'});
				
				$('.gallery-dual #panelsForward').click(function() {  DG.dualGallery.slidePanel('forward');  });
				$('.gallery-dual #panelsBack').click(function() {  DG.dualGallery.slidePanel('back');  });
				$('.gallery-dual').mouseenter(function() {  DG.dualGallery.stopCycle(); DG.dualGallery.pauseGallery = true;  });
				$('.gallery-dual').mouseleave(function() {  DG.dualGallery.stopCycle(); DG.dualGallery.pauseGallery = false; DG.dualGallery.startCycle(); });
				var navMinHeight = Number($('.gallery-dual .navInfo').height())+Number($('.gallery-dual .navInfo span').css('paddingTop').replace('px',''))+Number($('.gallery-dual .navInfo span').css('paddingTop').replace('px',''));
				$('.gallery-dual .navInfo').css('minHeight', navMinHeight);
				DG.dualGallery.displayNavInfo();
				DG.dualGallery.startCycle();
			});  
		});
	}
	
	this.slidePanel=function(dir){
		if(DG.dualGallery.moving != true){
			$('.gallery-dual .navInfo span').fadeOut();
			DG.dualGallery.stopCycle();
			DG.dualGallery.moving = true;
			DG.dualGallery.loopDirection = dir;
			DG.dualGallery.glowSlider();
			if(dir == 'back'){
				var left_indent = parseInt($('.slider').css('left')) + DG.dualGallery.panelShift;
				$('.slider').animate({
					left:left_indent
				}, DG.dualGallery.useDuration, 'easeInOutExpo',  function() {
					$('.gallery-dual .panels .slider li.panel:first').before($('.gallery-dual .panels .slider li.panel:last'));
					$('.gallery-dual .panels .slider li.panel:first').before($('.gallery-dual .panels .slider li.panel:last'));
					$('.slider').css({'left' : '-'+String(DG.dualGallery.panelShift)+'px'});
					DG.dualGallery.moving = false;
					DG.dualGallery.displayNavInfo();
				});
			} else {
				var left_indent = parseInt($('.slider').css('left')) - DG.dualGallery.panelShift;
				$('.slider').animate({
					left:left_indent
				}, DG.dualGallery.useDuration, 'easeInOutExpo', function() {
					$('.gallery-dual .panels .slider li.panel:last').after($('.gallery-dual .panels .slider li.panel:first'));
					$('.gallery-dual .panels .slider li.panel:last').after($('.gallery-dual .panels .slider li.panel:first'));
					$('.slider').css({'left' : '-'+String(DG.dualGallery.panelShift)+'px'});
					DG.dualGallery.moving = false;
					DG.dualGallery.displayNavInfo();
				});
			}
		}
	}
	
	this.glowSlider = function(){
		$('.gallery-dual .panels .slider').animate({
                opacity: 0.95,
                filter: 'alpha(opacity=95)'
        }, 250,  function() {
			$('.gallery-dual .panels .slider').animate({
					opacity: 1,
					filter: 'alpha(opacity=100)'
			}, 250,  function() {
				
			});
		});	
	}
	
	this.displayNavInfo = function(){
		var firstNumber;
		var secondNumber;
		firstNumber = Number(Number($('.gallery-dual .panels .slider li.panel:nth-child(3n)').attr('_gid'))+1);
		secondNumber = Number(Number(firstNumber)+1);
		
		var metaString = String(firstNumber)+' - '+String(secondNumber)+' of '+DG.dualGallery.numberOfPanels;
		$('.gallery-dual .navInfo span').html(metaString);
		$('.gallery-dual .navInfo span').fadeIn();
		DG.dualGallery.startCycle();
	}
	
	this.startCycle = function(){
		if(DG.dualGallery.autoCycle == true && DG.dualGallery.pauseGallery != true){
			DG.dualGallery.log('start cycle timer');
			DG.dualGallery.cycleTimer = setTimeout( "DG.dualGallery.slidePanel('next')", DG.dualGallery.delay );
		}
	}
	
	this.stopCycle = function(){
		DG.dualGallery.moving = false;
		DG.dualGallery.log('request stop cycle timer');
		clearTimeout(DG.dualGallery.cycleTimer);
	}
}

