var Slideshow = {
	AUTOSLIDE_TIME: 4000,
	ANIMATION_DURATION: 900,
	slideWidth: 0,
	slideHeight: 0,
	currentSlide: 0,
	prevSlide: 0,
	nextSlide: 1,
	sliding: false,
	slide: null,
	slideAmnt: 0,
	randomSlide: [],
	random: false,
	trackingPixel: "",
	
	init: function() {
		Slideshow.slide = $('.slide');
		Slideshow.slideAmnt = Slideshow.slide.length;
		
		Slideshow.calculateSize();
		
		Slideshow.prevSlide = $(Slideshow.slide).length - 1
		
		Slideshow.bindControls();
		
		Slideshow.setRandomArray();
		
		$(Slideshow.slide).css("left", Slideshow.slideWidth);
		
		$(Slideshow.slide[Slideshow.getSlide(0)]).show();
		$(Slideshow.slide[Slideshow.getSlide(0)]).css("z-index", 2);
		
		$("#currentslide").html('This is: <a href="' + $(Slideshow.slide[Slideshow.getSlide(0)]).children('a').attr('href') + '">' + $(Slideshow.slide[Slideshow.getSlide(0)]).find('img').attr('alt') + "</a>");
		
		Slideshow.checkForAd();
		
		Slideshow.sliding = true;
		$(Slideshow.slide[Slideshow.getSlide(0)]).delay(400).animate({left: 0}, Slideshow.ANIMATION_DURATION, function() {
			Slideshow.sliding = false;
		});
		
		Slideshow.start();
	},
	
	getSlide: function(slide) {
		if (Slideshow.random == false) {
			return slide;
		}
		else {
			return Slideshow.randomSlide[slide];
		}
	},
	
	calculateSize: function() {
		Slideshow.slideWidth = $(window).width();
		Slideshow.slideHeight = $(window).height();
		
		$('#slides-container').css("width", Slideshow.slideWidth);
		$('#slides-container').css("height", Slideshow.slideHeight);
		$(Slideshow.slide).css("width", Slideshow.slideWidth);
		$('.slide > a > img').css("width", Slideshow.slideWidth);
		
		$('.slide:hidden').css("left", Slideshow.slideWidth);
	},
	
	bindControls: function() {
		$(window).bind("resize", function(){
			Slideshow.calculateSize();
		});
		
		$("#next-slide").click(function() {
			if (!Slideshow.sliding) {
				Omniture.track(showName, "Jumbotron Image");
				Nielsen.track();
				Slideshow.nextJumbotron();
			}
		});
		
		$("#prev-slide").click(function() {
			if (!Slideshow.sliding) {
				Omniture.track(showName, "Jumbotron Image");
				Nielsen.track();
				Slideshow.prevJumbotron();
			}
		});
		
		$(window).keyup(function(E) {
            if (E.keyCode == 37) {
				$("#prev-slide").click();
            }
            else if (E.keyCode == 39) {
				$("#next-slide").click();
            }
        });
	},
	
	start: function() {
		$(window).everyTime(Slideshow.AUTOSLIDE_TIME, function() {
		  	Slideshow.nextJumbotron();
		}, 0);
	},
	
	stop: function() {
		$(window).stopTime();
	},
	
	nextJumbotron: function() {
		Slideshow.sliding = true;
		Slideshow.stop();
		
		Slideshow.setCurrentSlide("plus");
		
		$(Slideshow.slide[Slideshow.getSlide(Slideshow.currentSlide)]).show();
		
		$(Slideshow.slide[Slideshow.getSlide(Slideshow.currentSlide)]).css("z-index", 2);
		$(Slideshow.slide[Slideshow.getSlide(Slideshow.prevSlide)]).css("z-index", 1);
		
		$(Slideshow.slide[Slideshow.getSlide(Slideshow.currentSlide)]).animate({left: 0}, Slideshow.ANIMATION_DURATION, function() {
			$(Slideshow.slide[Slideshow.getSlide(Slideshow.prevSlide)]).hide();
			$(Slideshow.slide[Slideshow.getSlide(Slideshow.prevSlide)]).css("left", Slideshow.slideWidth);
			
			$("#currentslide").html('This is: <a href="' + $(Slideshow.slide[Slideshow.getSlide(Slideshow.currentSlide)]).children('a').attr('href') + '">' + $(Slideshow.slide[Slideshow.getSlide(Slideshow.currentSlide)]).find('img').attr('alt') + "</a>");
			
			Slideshow.checkForAd();
			
			Slideshow.sliding = false;
			Slideshow.start();
		});
	},
	
	prevJumbotron: function() {
		Slideshow.sliding = true;
		Slideshow.stop();
		
		Slideshow.setCurrentSlide("minus");
		
		$(Slideshow.slide[Slideshow.getSlide(Slideshow.currentSlide)]).show();
		
		$(Slideshow.slide[Slideshow.getSlide(Slideshow.currentSlide)]).css("z-index", 2);
		$(Slideshow.slide[Slideshow.getSlide(Slideshow.nextSlide)]).css("z-index", 1);
		
		$(Slideshow.slide[Slideshow.getSlide(Slideshow.currentSlide)]).css("left", -(Slideshow.slideWidth));
		
		$(Slideshow.slide[Slideshow.getSlide(Slideshow.currentSlide)]).animate({left: 0}, Slideshow.ANIMATION_DURATION, function() {
			$(Slideshow.slide[Slideshow.getSlide(Slideshow.nextSlide)]).hide();
			$(Slideshow.slide[Slideshow.getSlide(Slideshow.nextSlide)]).css("left", Slideshow.slideWidth);
			
			$("#currentslide").html('This is: <a href="' + $(Slideshow.slide[Slideshow.getSlide(Slideshow.currentSlide)]).children('a').attr('href') + '">' + $(Slideshow.slide[Slideshow.getSlide(Slideshow.currentSlide)]).find('img').attr('alt') + "</a>");
			
			Slideshow.checkForAd();
			
			Slideshow.sliding = false;
			Slideshow.start();
		});
	},
	
	setCurrentSlide: function(direction) {
		if (direction == "plus") {
			if ((Slideshow.currentSlide + 1) == Slideshow.slideAmnt) {
				Slideshow.currentSlide = 0;
			}
			else {
				Slideshow.currentSlide++;
			}
		}
		else if (direction == "minus") {
			if (Slideshow.currentSlide == 0) {
				Slideshow.currentSlide = Slideshow.slideAmnt - 1;
			}
			else {
				Slideshow.currentSlide--;
			}
		}
		
		Slideshow.setPrevSlide();
		Slideshow.setNextSlide();
	},
	
	setPrevSlide: function() {
		if (Slideshow.currentSlide == 0) {
			Slideshow.prevSlide = Slideshow.slideAmnt - 1;
		}
		else {
			Slideshow.prevSlide = Slideshow.currentSlide - 1;
		}
	},
	
	setNextSlide: function() {
		if ((Slideshow.currentSlide + 1) == Slideshow.slideAmnt) {
			Slideshow.nextSlide = 0;
		}
		else {
			Slideshow.nextSlide = Slideshow.currentSlide + 1;
		}
	},
	
	checkForAd: function() {
		if ($(Slideshow.slide[Slideshow.getSlide(Slideshow.currentSlide)]).hasClass("ad-tracking-slide")) {
			if ($('#ad-347002').attr('id') != "ad-347002") {
				$("#slides-container").append('<div id="ad-347002" align="center" style="padding: 0; margin: 0; border: 0;"></div>');
			}
			
			generateTrackingPixel();
			
			$("#ad-347002").append(Slideshow.trackingPixel);
		}
	},
	
	setRandomArray: function() {
		var found = false;
		var maxValue = $('.slide').length - 1; //(Example 2 is equal to: 0,1,2)
		var numUnique = $('.slide').length;  //The number of unique numbers required
		var count = 0;
		Slideshow.randomSlide = new Array(numUnique);
		
		getUnique();
		
		function getUnique() {
			for (i = 0; count < numUnique; count++) {
				found = false;
				var rndValue = getRandom();
				var j = 0;
				for (j = 0; j < Slideshow.randomSlide.length; j++) {
					if (Slideshow.randomSlide[j] == rndValue) {
						found = true;
						break;
					}
				}
				if (found) {
					count--;
				} 
				else {
					Slideshow.randomSlide[count] = rndValue;
				}
			}
		}
			
		function getRandom() {
			var ranNum = Math.round(Math.random() * maxValue);
			return ranNum;
		}
	}
}

var SelectMenu = {
	init: function() {
		$(".showsList select").change(function() {
            window.location = $(this).val()
        });
	}
}

var RandomNumber = {
	generate: function() {
		var num = 0;
		num = Math.floor(Math.random() * 10000000);
		return num;
	}
}

$(document).ready(function() {
	Slideshow.init();
	SelectMenu.init();
	Utilities.log('init')
})

