var slideList = Array('quackville','qach');//,'flap');
var currentSlide = 0;
var startQuackville = Array();
var startQach = Array();
//var startFlap = Array();
var animationTO = Array();
var stopAnimation = false;

$(document).ready(function(){

	// get all animation starting positions for resets
	$('#quackvilleSlide').find('div').each(function(){
		var id = $(this).attr('id');
		var xPos = $(this).css('right');
		var yPos = $(this).css('bottom');
		var display = $(this).css('display');
		startQuackville.push(Array(id,xPos,yPos,display));
	});
	
	$('#qachSlide').find('div').each(function(){
		var id = $(this).attr('id');
		var xPos = $(this).css('right');
		var yPos = $(this).css('bottom');
		var display = $(this).css('display');
		startQach.push(Array(id,xPos,yPos,display));
	});
	
	/*$('#flapSlide').find('div').each(function(){
		var id = $(this).attr('id');
		var xPos = $(this).css('left');
		var yPos = $(this).css('bottom');
		var display = $(this).css('display');
		startFlap.push(Array(id,xPos,yPos,display));
	});*/

	
	
	// Stop animation on mouse over 
	$('.slide').live('mouseleave',function(){
		stopAnimation = false;
	});
	$('.slide').live('mouseenter',function(){
		stopAnimation = true;
	});
	
	var throbPos = 0;
	setInterval(function(){
		$('#loading').css('background-position','0px -'+throbPos*40+'px');
		throbPos = throbPos + 1;
	},100);
	
	preloadImages(startSlides, animateQuackville); /* preloads images animation with callback */
});

function changeSlide(){
	if(stopAnimation){
		return;
	}
	var slideName = slideList[currentSlide];
	//alert(currentSlide);
	clearAllTimeouts(); // clears all current animations
	switch(currentSlide)
	{
		case 0: // hide quackville, show qach
		  removeSlides();
		  
		  // put qach stuff back
		 for (var i = 0; i < startQach.length; i++) {
			var id = startQach[i][0];
			var xPos = startQach[i][1];
			var yPos = startQach[i][2];
			var display = startQach[i][3];
			
			$('#qachSlide #' + id).css('right',xPos);
			$('#qachSlide #' + id).css('bottom',yPos);
			$('#qachSlide #' + id).css('display',display);
		 }
		 
		 
		  $('#qachSlide').css('display','block');
		  animateQach();
		  currentSlide++;
		  startSlides();
		  break;
		/*case 1: // hide qach, show flap
			removeSlides();
		  
		  // put flap stuff back
		 for (var i = 0; i < startFlap.length; i++) {
			var id = startFlap[i][0];
			var xPos = startFlap[i][1];
			var yPos = startFlap[i][2];
			var display = startFlap[i][3];
			
			$('#flapSlide #' + id).css('left',xPos);
			$('#flapSlide #' + id).css('bottom',yPos);
			$('#flapSlide #' + id).css('display',display);
		 }
		 
		 
		  $('#flapSlide').css('display','block');
		  animateFlap();
		  currentSlide++;
		  startSlides();
		  break;*/
		case 1: // hide flap, show quackville
		 removeSlides();
		 
		 // put quackville stuff back
		 for (var i = 0; i < startQuackville.length; i++) {
			var id = startQuackville[i][0];
			var xPos = startQuackville[i][1];
			var yPos = startQuackville[i][2];
			var display = startQuackville[i][3];
			
			$('#quackvilleSlide #' + id).css('right',xPos);
			$('#quackvilleSlide #' + id).css('bottom',yPos);
			$('#quackvilleSlide #' + id).css('display',display);
		 }
		 
		 
		 $('#quackvilleSlide').css('display','block');
		 animateQuackville();
		 currentSlide = 0;
		 startSlides();
		  break;
		default:
		  alert('default');
	}
	
	
}



function animateQuackville(){
	
		// slide geese
		$('#quackvilleSlide #geese').animate({
			'left' 	:	'0px',
			'bottom': 	'-12px'
		},1000);
		
		// slide duck
		animationTO['asd'] = setTimeout(function(){
			$('#quackvilleSlide #duck').animate({
				'bottom' 	:	'-100px',
				'right'		: 	'0px'
			},600);
		},600);
		
		// pop title
		animationTO['sdf'] = setTimeout(function(){
			$('#quackvilleSlide #flash').fadeIn(200,function(){
				$('#quackvilleSlide #quackvilleTitle').css('display','block');
				$('#quackvilleSlide #flash').fadeOut(400);
			});
			
			
		},1200);
}

function animateQach(){
	// drop gang
	animationTO['dfg'] = setTimeout(function(){
		$('#qachSlide #gang').animate({
			'bottom' : '0px'
		});
		$('#qachSlide #qachTitle').animate({
			'bottom' : '280px'
		});
	},2000);
	
	/*animationTO['fgh'] = setTimeout(function(){
		
	},2500);*/

	// egg wave
	var waveCount = 1;
	$('#qachSlide .egg').each(function(){
		var el = $(this);
		var startPos = $(this).css('bottom');
		animationTO['ghj'] = setTimeout(function(){
			el.animate({
				'bottom':'200px'
			},500,function(){
				el.animate({
					'bottom': startPos
				},800);
			});
		},200*waveCount);

		waveCount++;
	});
}

function animateFlap(){
	$('#flapSlide #smallDuck').animate({ // small duck fall
		'bottom':'210px',
		'left':'200px'
	},600,function(){
		$('#flapSlide #smallDuck').animate({ // small duck bounce
			'bottom':'600px',
			'left':'300px'
		},400,function(){ 
			$('#flapSlide #largeDuck').animate({ // large duck down
				'bottom':'0px',
				'left': '450px'
			},300,function(){
				
				$('#flapSlide #flash').fadeIn(200,function(){ // flash
					$('#flapSlide .title').css('display','block'); // show title
					$('#flapSlide #flash').fadeOut(400);
				});
				
			});
		});
	});
}

function slide(dir){
	
	if(dir == 'next'){ // next slide
		
		if(currentSlide == slideList.length - 1){
			currentSlide = 0;
		} else {
			currentSlide = currentSlide + 1;
		}
		
	} else if (dir == 'prev') { // previous slide
		
		if(currentSlide >= slideList.length - 1){
			currentSlide = 0;
		} else {
			currentSlide = currentSlide + 1;
		}
	}
	
	clearAllTimeouts();
	changeSlide(currentSlide);
}

function clearAllTimeouts(){  
  for(key in animationTO ){  
    clearTimeout(animationTO[key]);  
  }  
}

function startSlides(){
	animationTO['main'] = setInterval(function(){
		changeSlide();
	},6000);
}

function removeSlides(){
	$('.slide').css('display','none');
}

/* pre loading images ============== */

function preloadImages(callBack1, callBack2){
	$('#mainContent').css('display','none');
	$('#throbber').css('display','block');
	var images = new Array(); // holds array of all images in animation
	
	$('.slide *').each(function(){
		images.push($(this).css('background-image'));
	});
	
	var i = 0;
	
	while (i <= images.length){
		//console.log(images[i]);
		if(images[i] != 'none'){
			$('<img>').attr({ src: images[i] }).load();
		}
		i = i + 1;
		
		if(i == images.length){
			
			/* fade out throbber */
			
			$('#throbber').fadeOut(500,function(){
				$('#mainContent').fadeIn(1000,function(){
					callBack1();
					callBack2();
				});
			});
		}
	}
}
