if(typeof NICK == "undefined" || !NICK) var NICK = {};
NICK.namespace("largeMarge");

NICK.largeMarge.rotate = function() {
	if(NICK.largeMarge.activePromo >= NICK.largeMarge.numPromos) {
		NICK.largeMarge.scrollTo(1);
	} else {
		NICK.largeMarge.scrollTo(NICK.largeMarge.activePromo+1);
	}			
};	

NICK.largeMarge.scrollTo = function(i) {
	NICK.largeMarge.activePromo = i;	
	NICK.largeMarge.container.find('.promo-item').fadeOut("slow").eq(i-1).fadeIn("slow");

	var animators = NICK.largeMarge.navigation.children( '.large-marge-animator' );
	var bullets   = NICK.largeMarge.navigation.children( '.large-marge-bullet ' );
	var active    = bullets.eq(i - 1);

	animators.filter(":visible").animate({
		left: "+=" + active.width() / 2,
		top:  "+=" + active.height() / 2,
		width: 0,
		height: 0
	}, 450, function() {
		bullets.removeClass("active");
	}).addClass("hidden").end().css({
		left: active.position().left + active.width() / 2,
		top: active.height() / 2,
		width: 0,
		height: 0
	}).not(".hidden").delay(100).animate({
		left: active.position().left,
		top: 0,
		width: active.width(),
		height: active.height()
	}, 450).end().removeClass("hidden");
};

NICK.largeMarge.startTimer = function() {
	NICK.largeMarge.stopTimer();
	NICK.largeMarge.timer = setInterval( function() { NICK.largeMarge.rotate(); }, NICK.largeMarge.rotationTime);
};

NICK.largeMarge.stopTimer = function() {
	clearInterval(NICK.largeMarge.timer);
	NICK.largeMarge.timer = null;
};	

NICK.largeMarge.onPlayerLoaded = function (controller){
	NICK.largeMarge.player = controller.player;
	NICK.largeMarge.player.addEventListener('READY', 'NICK.largeMarge.onMediaReady');
	NICK.largeMarge.player.addEventListener('STATE_CHANGE','NICK.largeMarge.onMediaStateChange');
	NICK.largeMarge.player.addEventListener('MEDIA_ENDED', 'NICK.largeMarge.onMediaEnded');
	musicPlayer.addEventListener('STATE_CHANGE','onMPStateChange');
};

NICK.largeMarge.onMediaReady = function(){
    if (NICK.largeMarge.player && !NICK.largeMarge.player.getMetadata().isAd && !NICK.largeMarge.player.getMetadata().isBumper) {	    	 
    	//mute mp3 show page module 
    	if( typeof musicPlayer != "undefined" ){
    		pauseMusicPlayer();
    	}
    }
};

NICK.largeMarge.onMediaStateChange = function(playState){
	//alert("state change: " + NICK.largeMarge.player.getPlayState())
	if ( NICK.largeMarge.player.getPlayState() == "playing") {
		//mute mp3 show page module 
    	if( typeof musicPlayer != "undefined" ){
    		pauseMusicPlayer();
    	}
	}  
};

NICK.largeMarge.onMediaEnded = function(info){
    if (NICK.largeMarge.player && !NICK.largeMarge.player.getMetadata().isAd && !NICK.largeMarge.player.getMetadata().isBumper) {	    	 
    	NICK.largeMarge.removePlayer();
    }
};

NICK.largeMarge.removePlayer = function() {		
	$("#sidebar-player #video-player-endslate").show();		
};	

$(document).ready(function() {
	NICK.largeMarge.numPromos = $("#promo-container .promo-item").size();
	NICK.largeMarge.activePromo = 1;
	NICK.largeMarge.timer = null;
	NICK.largeMarge.rotationTime = 5000;
	NICK.largeMarge.player = null;
	NICK.largeMarge.playerController = null;
	NICK.largeMarge.isLMPlayerPaused = false;

	/* Elements */
	NICK.largeMarge.container  = $("#large-marge");
	NICK.largeMarge.navigation = NICK.largeMarge.container.children("#large-marge-navigation");

	if ( NICK.largeMarge.numPromos > 1 ) {
		var bullet = $( '<a />' ).addClass( 'large-marge-bullet' ).addClass('no-adfree');

		for( var i = 0; i < NICK.largeMarge.numPromos; i++ ) {
			bullet.clone().appendTo( NICK.largeMarge.navigation );
		}

		NICK.largeMarge.navigation.find( '.large-marge-bullet' ).click(function() {
			$(this).addClass("active");
			NICK.largeMarge.scrollTo(NICK.largeMarge.navigation.children('.large-marge-bullet').index($(this)) + 1);
		});
	}
	
	$("#large-marge .btn-nav").click(function() {
		var btnName = $(this).attr('id');
		if (btnName == "btn-prev-overlay") {
			if(NICK.largeMarge.activePromo <= 1) {
				NICK.largeMarge.scrollTo(NICK.largeMarge.numPromos);
			} else {
				NICK.largeMarge.scrollTo(NICK.largeMarge.activePromo - 1);
			}
		} else {
			if(NICK.largeMarge.activePromo >= NICK.largeMarge.numPromos) {
				NICK.largeMarge.scrollTo(1);
			} else {
				NICK.largeMarge.scrollTo(NICK.largeMarge.activePromo + 1);
			}				
		}	
	});	

	NICK.largeMarge.container.find(".btn-nav").hover(function(){	
		var btnName = $(this).attr('id');	
		if (btnName == "btn-prev-overlay") {
			NICK.largeMarge.container.find("#btn-prev").addClass("prev-hover"); 
		} else {
			NICK.largeMarge.container.find("#btn-next").addClass("next-hover"); 
		}		  
	},function(){
		var btnName = $(this).attr('id');
	   	if (btnName == "btn-prev-overlay") {
	   		NICK.largeMarge.container.find("#btn-prev").removeClass("prev-hover"); 
		} else {
			NICK.largeMarge.container.find("#btn-next").removeClass("next-hover");  
		}	
	});

	$("#sidebar-player #video-player-endslate").click(function() {
		$(this).hide();	
		$(this).siblings("#video-player").show();
		NICK.largeMarge.player.playIndex(0);
	});	

	//hookup player js api
	NICK.largeMarge.playerController = new MTVNPlayerController('videoplayer', 'NICK.largeMarge.onPlayerLoaded');	

	//make first promo visible
	NICK.largeMarge.container.find("#promo"+ NICK.largeMarge.activePromo).removeClass('hidden');

	if (NICK.largeMarge.numPromos > 1) {
		//have autorotation pause when interacting with the promos
		NICK.largeMarge.container.hover(NICK.largeMarge.stopTimer, NICK.largeMarge.startTimer);

		//highlight first promo in nav;
		NICK.largeMarge.activePromo = 1;
		NICK.largeMarge.startTimer();
	}
});
