var theFeaturePodController = new featuredController();
var localDate = new Date();
var featuredUtc = localDate.getTime() + (localDate.getTimezoneOffset() * 60000);
var pstDate = new Date(featuredUtc + (3600000*(-7)));
var dateArray = new Array();
var setNumber = 0;
var numberOfSets;
var featuredSets;


// BEGIN ARRAY SHUFFLE JQUERY PLUGIN
(function($){
  $.fn.shuffle = function() {
    return this.each(function(){
      var items = $(this).children();
      return (items.length)
        ? $(this).html($.shuffle(items))
        : this;
    });
  }
 
  $.shuffle = function(arr) {
    for(
      var j, x, i = arr.length; i;
      j = parseInt(Math.random() * i),
      x = arr[--i], arr[i] = arr[j], arr[j] = x
    );
    return arr;
  }
})(jQuery);
// END ARRAY SHUFFLE JQUERY PLUGIN			

function featuredController(){
    this.itemArray = new Array();
    this.shuffledItemArray = new Array(0,1,2,3,4,5,6,7);
	this.imageArray = new Array();
	this.currentSelection = 0;
	this.randomItemCyclePosition = 0;
	this.randomItemCycleInterval;
	this.randomItemCycleDelayTimeout;
	
    this.addItem = function(itemObj){
        this.itemArray.push(itemObj);
    }
    
    this.init = function(){
        for (var i = 0; i < this.itemArray.length; i++) {
			this.imageArray[i] = new Image();
			this.imageArray[i].src = theFeaturePodController.itemArray[i].largeImageUrl;
			
			/*
			this.imageArray[i].onload = function() {
				alert(this.src);
			}
			*/
			
            $j('#featuredNavCell' + i + ' .featuredThumb').css({
                backgroundImage: "url(" + this.itemArray[i].thumbImageUrl + ")"
            });
			
            //add alt text to image overlaying thumbs
            $j('#featuredNavCell' + i + ' .featuredCorners img').attr({
            	alt: theFeaturePodController.itemArray[i].title
            });
             
			$j('#featuredNavCell' + i + ' .featuredCorners').click(function () {
				clearInterval(theFeaturePodController.randomItemCycleInterval);
				window.top.location=theFeaturePodController.itemArray[(parseInt(this.id.replace("featuredCellCorner",'')))].linkUrl;
			});
			
			$j('#featuredNavCell' + i + ' .featuredCorners').mouseover(function () {
				theFeaturePodController.hightlightThumbMouseover(parseInt(this.id.replace("featuredCellCorner",'')));
				theFeaturePodController.activateSelection(parseInt(this.id.replace("featuredCellCorner",'')),true);
				clearTimeout(theFeaturePodController.randomItemCycleDelayTimeout);
				clearInterval(theFeaturePodController.randomItemCycleInterval);
			});
			
			$j('#featuredNavCell' + i + ' .featuredCorners').mouseout(function () {
				theFeaturePodController.clearInactiveThumbs(-1,false);
				clearTimeout(theFeaturePodController.randomItemCycleDelayTimeout);
				clearInterval(theFeaturePodController.randomItemCycleInterval);
				theFeaturePodController.setClickTimer(0);
			});
			
			$j('#featuredNavCell' + i + ' .featuredCorners').css({
				cursor: "pointer"
			});
        }
		
		$j("#thumbNavReset").mouseover(function() {
			theFeaturePodController.clearInactiveThumbs(-1,false);
			clearTimeout(theFeaturePodController.randomItemCycleDelayTimeout);
			clearInterval(theFeaturePodController.randomItemCycleInterval);
			theFeaturePodController.setClickTimer(0);
		});
		
		$j("#featuredMainDiv").mouseover(function() {
			theFeaturePodController.clearInactiveThumbs(-1,false);
			clearTimeout(theFeaturePodController.randomItemCycleDelayTimeout);
			clearInterval(theFeaturePodController.randomItemCycleInterval);
		});
		
		$j("#featuredMainDiv").mouseout(function() {
			theFeaturePodController.setClickTimer(2);
		});
		
		this.shuffledItemArray = $j.shuffle(this.shuffledItemArray);
		this.activateSelection(0,false);
		$j('.featuredCustomMarkupSize').css({visibility:"visible"});
		this.setClickTimer(4);
    }
    
    this.setRandomItemCycleInterval = function() {
    	clearInterval(theFeaturePodController.randomItemCycleInterval);
    	this.randomItemCycleInterval = setInterval("theFeaturePodController.showNextRandomItem()", 4000);
    }
    
    this.setClickTimer = function(numberOfSeconds) {
    	clearTimeout(theFeaturePodController.randomItemCycleDelayTimeout);
    	this.randomItemCycleDelayTimeout = setTimeout("theFeaturePodController.setRandomItemCycleInterval()", (numberOfSeconds * 1000));
    }
    
    this.incrementRandomItemPosition = function () {
		this.randomItemCyclePosition++;
		if (this.randomItemCyclePosition > 7) {
			this.randomItemCyclePosition = 0;
		}
    }
	
	this.showNextRandomItem = function() {
		if (this.currentSelection == this.shuffledItemArray[this.randomItemCyclePosition]) {
			this.incrementRandomItemPosition();
		}
		this.activateSelection(this.shuffledItemArray[this.randomItemCyclePosition],false);
		this.incrementRandomItemPosition();
	}
	
	this.hightlightThumbMouseover = function(selectionNumber) {
		$j('#featuredNavCell' + selectionNumber + ' .featuredFrameHover').css({display:"block"});
	}
	
	this.activateSelection = function(selectionNumber,clicked) {
		this.currentSelection = selectionNumber;
		$j('#featuredNavCell' + selectionNumber + ' .featuredFrame').css({display:"block"});
		$j('#featuredNavCell' + selectionNumber + ' .featuredOverlay').css({display:"block"});
		$j('#featuredMainImage').attr({src:this.imageArray[selectionNumber].src});
		$j('#featuredHeadlineLink').attr({href:this.itemArray[selectionNumber].linkUrl});
		$j('#mainFeatureImageLink').attr({href:this.itemArray[selectionNumber].linkUrl});
		$j('#featuredHeadlineLink').html(this.itemArray[selectionNumber].title);
		$j('#featuredTextCopy').html(this.itemArray[selectionNumber].textCopy);
		$j('#featuredCustomMarkupBg').height($j('#featuredCustomMarkup').height());
		theFeaturePodController.clearInactiveThumbs(selectionNumber,clicked);
	}
	
	this.clearInactiveThumbs = function(exception,clicked) {
		for (var i=0; i<this.itemArray.length; i++) {
			if (!clicked) {
				$j('#featuredNavCell' + i + ' .featuredFrameHover').css({display:"none"});
			}
			if ((i != this.currentSelection) && (i != exception)) {
				$j('#featuredNavCell' + i + ' .featuredFrame').css({display:"none"})
				$j('#featuredNavCell' + i + ' .featuredOverlay').css({display:"none"})
			}
		}
	}
	
	this.populateFeaturedNav = function(setNumber){
		var selectedSetArray = featuredSets[setNumber];
		for (var i = 0; i < selectedSetArray.length; i++) {
			this.addItem(selectedSetArray[i]);
		};
		this.init();
	}
}

function parseVal(val) {
	if (val == "00") {
		return "0";
	} else {
		while (val.charAt(0) == "0")
		val = val.substring(1, val.length);
    	return val;
    }
}

function formatArrays(){
	numberOfSets = dateArray.length;
	featuredSets = new Array();
	for (var i = 0; i < numberOfSets; i++) {
		featuredSets[i] = new Array();
		dateArray[i] = getDateObject(dateArray[i].startDate, dateArray[i].startTime);
		if (pstDate >= dateArray[i]) {
			setNumber = i;
		}
	}
}

function getDateObject(startDate,startTime) {
	var startMonth = parseInt(parseVal(startDate.substring(0,2))) - 1;
	var startDay = parseInt(parseVal(startDate.substring(2,4)));
	var startYear = parseInt(parseVal(startDate.substring(4,8)));
	var startHour = parseInt(parseVal(startTime.substring(0,2)));
	var startMinute = parseInt(parseVal(startTime.substring(2,4)));
	var startDate = new Date();
	startDate.setFullYear(startYear,startMonth,startDay);
	startDate.setHours(startHour,startMinute);
	return startDate;			
}

$j(document).ready(function(){
	initController();
});
