/**
 * @author ezdermam
 * 
 * This class will respond to the video player events in the video-detail page
 */
if(typeof NICK == "undefined" || !NICK) var NICK = {};

NICK.namespace("videoPlayer");
	
var player;
var controller;

//used by a workaround for player primes embed code - temp fix, should be removed when prime supports player.getEmbedCode()
NICK.videoPlayer.getSiteName = function() {
	return NICK.config.SITE_NAME;
}

NICK.videoPlayer.init = function(playerName){
	controller = new MTVNPlayerController(playerName, 'NICK.videoPlayer.onPlayerLoaded');
}

NICK.videoPlayer.onPlayerLoaded = function (controller){
    player = controller.player;
    player.addEventListener('READY', 'NICK.videoPlayer.onReady');
    player.addEventListener('METADATA', 'NICK.videoPlayer.onMetaData');
    player.addEventListener('STATE_CHANGE', 'NICK.videoPlayer.onStateChange');
    player.addEventListener('PLAYHEAD_UPDATE', 'NICK.videoPlayer.onPlayheadUpdate');
    player.addEventListener('NO_AD', 'onNoAd');
    player.addEventListener('AD_PACKAGE_LOADED', 'NICK.videoPlayer.onAdPackageLoaded');
    player.addEventListener('MEDIA_ENDED', 'NICK.videoPlayer.onMediaEnded');
    player.addEventListener('PLAYLIST_COMPLETE', 'NICK.videoPlayer.onPlaylistComplete');
    player.addEventListener('PLAYLIST_ERROR', 'NICK.videoPlayer.onPlaylistError');
    $(document).trigger("PlayerEvent.ON_PLAYER_LOADED", player); 
};

NICK.videoPlayer.onReady = function(){
	$(document).trigger("PlayerEvent.ON_READY");
	
	//OAP Ad Muting Code
	if(NICK.config.SITE_NAME == 'nick'){
		forcedMutePlayerCheck("nickVideoPlayPage");	
	}

	if(NICK.config.SITE_NAME == 'nicktoons'){
		forcedMutePlayerCheck("nicktoonsVideoPlayPage");	
	}

	if(NICK.config.SITE_NAME == 'nickatnite'){
		forcedMutePlayerCheck("nanVideoPlayPage");	
	}
	
	
};

NICK.videoPlayer.onMetaData = function(metadata){
	$(document).trigger("PlayerEvent.ON_META_DATA", metadata); 
    //alert("Now watching: " + metadata.franchise);
};

NICK.videoPlayer.onStateChange = function(playState){
	$(document).trigger("PlayerEvent.ON_STATE_CHANGE", playState); 
    //alert("playstate change");
};

NICK.videoPlayer.onPlayheadUpdate = function(info){
	$(document).trigger("PlayerEvent.ON_PLAYHEAD_UPDTAE", info); 
    //alert("playhead update");
};

NICK.videoPlayer.onNoAd = function(info){
	$(document).trigger("PlayerEvent.ON_NO_AD", info); 
    //alert("no ad");
};

NICK.videoPlayer.onAdPackageLoaded = function(info){
	$(document).trigger("PlayerEvent.ON_AD_PACKAGE_LOADED", info); 
    //alert("onAdPackageLoaded");
};

NICK.videoPlayer.onMediaEnded = function(info){
	NICK.utils.doLog("player.getMetadata().isAd:"+player.getMetadata().isAd);
	NICK.utils.doLog("player.getMetadata().isBumper:"+player.getMetadata().isBumper);
	if(player.getMetadata().isAd!=true && player.getMetadata().isBumper!=true){		
		$(document).trigger("PlayerEvent.ON_MEDIA_ENDED", info); 
	}
};

NICK.videoPlayer.onPlaylistComplete = function (info){
	$(document).trigger("PlayerEvent.ON_PLAYLIST_COMPLETE", info); 
    //player.playIndex(0, 0);
};

NICK.videoPlayer.onPlaylistError = function(info){
	$(document).trigger("PlayerEvent.ON_PLAYLIST_ERROR", info); 
    //alert("onPlaylistError");
};

NICK.videoPlayer.nextVideo = function(){
	$(document).trigger("PlayerEvent.ON_PLAYHEAD_UPDTAE", info); 
    if (player && !player.getMetadata().isAd && !player.getMetadata().isBumper) {
        player.next();
    }
};

NICK.videoPlayer.prevVideo = function(){
    if (player && !player.getMetadata().isAd && !player.getMetadata().isBumper) {
        player.previous();
    }
};

NICK.videoPlayer.getCMSIDfromGUID = function(guid){
    var a = guid.split(":");
    return (a[4]);
};

NICK.videoPlayer.playVideo = function(index){
    //alert("playvideo = " + index);
    if (player && !player.getMetadata().isAd && !player.getMetadata().isBumper) {
        player.playIndex(index, 0);
    }
};

NICK.videoPlayer.thisMovie = function(movieName){
    if (navigator.appName.indexOf("Microsoft") != -1) {
        return window[movieName];
    }
    else {
        return document[movieName];
    }
}

//coad
NICK.videoPlayer.mtvnSetCoad = function(adObject){
	try{
		if(KIDS.get("videoType").length>0 || KIDS.get("isPlayList")=="true"){
		    //alert("video ad, set coad");
			var src = adObject.url;
		    var w = adObject.width;
		    var h = adObject.height;
		    var clickTag = adObject.clickUrl;
		    document.getElementById("ad-300x250IF").src = src;
		    $("#ad-300x250IF").attr("id","coad300x250");
		}
	}catch(e){KIDS.utils.doLog("NICK.videoPlayer.mtvnSetCoad failed:" + e.toString());}
};
mtvnSetCoad = NICK.videoPlayer.mtvnSetCoad;

NICK.videoPlayer.isReady = function() {
	return player && !player.getMetadata().isAd && !player.getMetadata().isBumper;
}
NICK.videoPlayer.overlayPause = function () {
	try{
		if (player && !player.getMetadata().isAd && !player.getMetadata().isBumper && player.getPlayState() == 'playing') {
			player.pause();
		}else if (cpPlayer){
			if(!cpPlayer.currentMetadata.isAd && !cpPlayer.currentMetadata.isBumper && cpPlayer.state == 'playing'){
				cpPlayer.pause();
			}
		}
	}catch(e){KIDS.utils.doLog('NICK.videoPlayer.overlayPause failed: ' + e.toString());}

}

NICK.videoPlayer.overlayUnpause = function () {
	try{
		if (player && !player.getMetadata().isAd && !player.getMetadata().isBumper && player.getPlayState() == 'paused') {
			player.unpause();
		}else if (cpPlayer){
			if(!cpPlayer.currentMetadata.isAd && !cpPlayer.currentMetadata.isBumper && cpPlayer.state == 'paused'){
				cpPlayer.play();
			}
		}
	}catch(e){KIDS.utils.doLog('NICK.videoPlayer.overlayUnpause failed: ' + e.toString());}
}
