$(document).ready(function() {
	
	jQuery(function(){
		jQuery('.main-nav ul').superfish();
	});
	
	$('#header-left').click(function(){
		window.location = 'venues/';
	});
	
	$('#billboard-copy').click(function(){
		window.location = 'special-offers/';
	});
	
	$('#header-center').click(function(){
		window.location = '../'; // go home
	});
	
	
	Greenery.billboard.interval = 8000;
	Greenery.billboard.cycleLimit = 2;
	Greenery.billboard.startCycle();
	
	   
	// advance manually
	$('#forward-button > a').click(function(){
	
		Greenery.billboard.stopCycle();
		
		if (navigator.appName=='Microsoft Internet Explorer'){
			switch($('#billboard-copy').css('background-position-x')){
				case '0px':
				case 'left':
					Greenery.billboard.showNext('-280px 0px', '-640px 0px', true);
					break;
				case '-280px':
					Greenery.billboard.showNext('-560px 0px', '-1280px 0px', true);
					break;
				case '-560px':
					Greenery.billboard.showNext('-840px 0px', '-1920px 0px', true);
					break;   
				case '-840px':
					Greenery.billboard.showNext('-1120px 0px', '-2560px 0px', true);
					break;
				case '-1120px':
					Greenery.billboard.reset();
					break;
			}
		}
		else {
			switch($('#billboard-copy').css('backgroundPosition')){
				case '0px 0px':
				case '0% 50%':
					Greenery.billboard.showNext('-280px 0px', '-640px 0px', true);
					break;
				case '-280px 0px':
					Greenery.billboard.showNext('-560px 0px', '-1280px 0px', true);
					break;
				case '-560px 0px':
					Greenery.billboard.showNext('-840px 0px', '-1920px 0px', true);
					break;  
			 	case '-840px 0px':
					Greenery.billboard.showNext('-1120px 0px', '-2560px 0px', true);
					break;  
				case '-1120px 0px':
					Greenery.billboard.reset();
					break;
			}
		}

		return false;
	});
});

var Greenery = {};
Greenery.billboard = (function(name){
	return{
		interval : 6000,
		intervalCnt : 0,
		cycles : 0,
		setIntervalRef : null,
		billboardCopyOffset : 280,
		billboardImageOffset : 640,
		cycleLimit : 3,
		advance: function(){			
			if(Greenery.billboard.intervalCnt < 5){
				var copyXPos = (Greenery.billboard.billboardCopyOffset * Greenery.billboard.intervalCnt),
					imageXPos = (Greenery.billboard.billboardImageOffset * Greenery.billboard.intervalCnt);
				Greenery.billboard.showNext( '-'+copyXPos+'px 0px', '-'+imageXPos+'px 0px' );
			}else{
				clearInterval(Greenery.billboard.setIntervalRef);
				// console.log('finished...');
				Greenery.billboard.reset();
				
				if(Greenery.billboard.cycles < Greenery.billboard.cycleLimit){
					// console.log('recycling...'+Greenery.billboard.cycles);
					Greenery.billboard.intervalCnt = 0;
					Greenery.billboard.startCycle();
				}
				
				Greenery.billboard.cycles++;
			}
			Greenery.billboard.intervalCnt++;
			// console.log('advancing...'+Greenery.billboard.intervalCnt);
		},
		showNext: function(copyXPos, imageXPos, fromClick){
			$('#billboard-copy').animate({
				backgroundPosition: copyXPos,
				opacity: (Greenery.billboard.intervalCnt > 0) || fromClick  ? 0 : 1
			}, 450, 'swing', function(){
				$('#billboard-copy').animate({opacity: 1}, 500, 'swing');
			});

			$('#billboard-image').animate({
				backgroundPosition: imageXPos,
				opacity: (Greenery.billboard.intervalCnt > 0) || fromClick ? 0 : 1
			}, 500, 'swing', function(){
				$('#billboard-image').animate({opacity: 1}, 500, 'swing');
			});
		},
		startCycle: function(){
			// console.log('starting...');
			Greenery.billboard.setIntervalRef = setInterval( this.advance, this.interval );
		},
		reset: function(){
			// console.log('resetting...');
			$('#billboard-copy').animate({
				backgroundPosition: '-0px 0px'
			}, 500, 'swing', function(){});

			$('#billboard-image').animate({
				backgroundPosition: '-0px 0px'
			}, 500, 'swing', function(){});
		},
		stopCycle: function(){
			clearInterval(Greenery.billboard.setIntervalRef);
		}
	};
}());


