// wait for the DOM to load using jQuery
function nextVideo()
{
	if($f("player") != null){
		$f("player").getPlugin("playNext").css({display:'none'});
		var clipIndex = $f("player").getClip().index + 1;
		if(clipIndex < $f("player").getPlaylist().length){
			$f("player").play(clipIndex);
		}else{
		 	$f("player").play(1);
		}
	}
}

function prevVideo()
{
	if($f("player") != null){
		var clipIndex = $f("player").getClip().index - 1;
		if(clipIndex >= 0){
			$f("player").play(clipIndex);
		}else{
			var lastClip = $f("player").getPlaylist().length - 1;
			$f("player").play(lastClip);
		}
	}
}

function resumeVideo()
{
	if($f("player") != null && $f("player").isPaused()){
		$f("player").resume();
	}
}

function replayVideo()
{
	if($f("player") != null){
		$f("player").seek(0);
		$f("player").play();
	}
}

function startList()
{
	if($f("player") != null){
		$f().getPlugin("startPlay").hide();
		$f("player").play(1);
	}
}

function configurePlayer(json) { 
	$f("player", "../swf/flowplayer.commercial-3.1.1.swf",json);
	$f("player").playlist("div.clips:first", {loop:false}); 
}

function resizeCinematic() {
	//$f().getPlugin("playNext").hide();
	//$f().getPlugin("startPlay").hide();
	$('#player').css({width: 790, height: 410});
	$('.clips .clipInfo').hide();
	$('#playlistFilter').hide();
	$('#playlistExpand').show();
	$('#playlistContainer').css({"width":"110px"});
}

function resizeStandard() {
	//$f().getPlugin("playNext").hide();
	//$f().getPlugin("startPlay").hide();
	$('#player').css({width: 565, height: 410});
	$('.clips .clipInfo').show();
	$('#playlistFilter').show();
	$('#playlistExpand').hide();
	$('#playlistContainer').css({"width":"345px"});
}

function adjustPlayerSize(clip) {
	var w = parseInt(clip.metaData.width, 10);
	var h = parseInt(clip.metaData.height, 10);
	var cinematic = false;
	
	if( (w/h) >= (16/9) ) {
		cinematic = true;
	}
	
	if(cinematic) {
		resizeCinematic();
	} else {
		resizeStandard();
	}
}

function customOnStart(clip) {
	// override if needed
}

function submitVideoViewed() {
	$.ajax({
		type: "GET",
		url: "/cscommerce/video/submitVideoViewed.jsp",
		data: {
			videoId: $("#videoId").val()
		}
	});
}


function processJSONResponse(jsonResponse) {
	var jsonObj = jsonResponse;
	var playerJSONConfig = {
  		key: '#$0d73eb5dc083768cc86',     // License for *.cellularsouth.com
  		//key: '#$2b5b6f5171f4181aedc',     // License for *.cellularsouth.net
  		clip: {
			autoBuffering: true,
   			autoPlay: false,
			//bufferLength: 30,
			//start: 2,
   			scaling: "fit",
   			onBegin: function(clip) {
    				customOnStart(clip);				
   			},
   			onStart: function(clip) {
				adjustPlayerSize(clip);
				$f().getPlugin("startPlay").css({opacity:0});
				$f().getPlugin("playNext").css({display:'none'});
   			},
   			onLastSecond:submitVideoViewed,
   			onPause: function(clip) {
				resizeStandard();
				$f().getPlugin("play").css({opacity:0.8});
   			},
			onFinish: function(clip){
				$f().getPlugin("play").css({opacity:0});
				$f().getPlugin("playNext").css({display:'block'});
			},
   			onResume: function(clip) {
    				adjustPlayerSize(clip);
				$f().getPlugin("play").css({opacity:0});
   			}
 		 },
		play: {
			opacity: 0
		},
  		onLoad: function() {
			//$f("player").addClip({url: 'http://csmediamanager.vmlapps.com/sites/default/files/Coaches_-_Ep1-Intro.flv.thumb1.png', scaling: 'fit', duration: 0},0);
   			updateContent(0);
			//$f("player").getPlugin("playNext").show();
			$f("player").getPlugin("play").hide();
			if($('a.clip:first')){$('a.clip:first').hide();}
			$('#playlistContainer').css("visibility","visible");
		 },
  		plugins: {
			startPlay: { 
				html: '<a href="javascript:startList()"><br/><br/><br/><br/><br/></a>',
	           		top:150,
		    		left:225, 
	     			opacity:1,
				border:'none',
				backgroundColor: 'transparent',
				backgroundImage: '/DiscoverCenter/images/play.png',
           			width: 83, 
	     			height: 83,
				borderRadius:83,
       	     		url: '../swf/flowplayer.content-3.1.0.swf'
        		},
			playNext: { 
				html: '<a href="javascript:nextVideo()"><br/><br/><br/><br/></a>',
           			top:175,
		    		left:'50%', 
		     		opacity:.8,
				display:'none',
				border:'none',
	           		width: 214, 
		     		height: 69,
				borderRadius: 69,
				backgroundColor: 'transparent',
				backgroundImage: '/DiscoverCenter/images/play_next.png',
       	     		url: '../swf/flowplayer.content-3.1.0.swf' 
        		},
   			controls: {
    				playlist: true,
    				tooltips: {buttons:true}
   			},
   			influxis: { 
    				url: 'flowplayer.rtmp-3.1.0.swf'
   			} 
  		}   
 };


	var mainPlaylist = new Array();
	
	var controlsDuringAds = {
		backgroundColor: '#95A1AE',
		progressColor: '#00ffff',
		bufferColor: 'CCFFFF',
		playlist: false,
		enabled: { scrubber:false }
	}
	if(!jsonObj.videos) {
		$("#playlistClips").html("No videos were found.");
		//$('#playlistContainer').css("visibility","visible");
		return;
	}
	
	for (var i=0; i < jsonObj.videos.length; i++) {
		var playlistEntry = new Object;
		var internalPlaylist = new Array();
	
		var urlStr = jsonObj.videos[i].flashUrl;
		if(urlStr.substring(0,4) == "rtmp") {
			var splitIndex = urlStr.lastIndexOf("/");
			var filename = urlStr.substring(splitIndex+1);
			playlistEntry.url = filename.replace(".flv","");
			playlistEntry.provider = "influxis";
			playlistEntry.netConnectionUrl = urlStr.substring(0,splitIndex);
		} else {
			playlistEntry.url = jsonObj.videos[i].flashUrl;
		}
		if(playlistEntry.url.indexOf(".jpg") > -1 || playlistEntry.url.indexOf(".png") > -1 || playlistEntry.url.indexOf(".gif")  > -1) {
			playlistEntry.duration = 0;
		}
		
		// Flowplayer has a bug that requires the apostrophe to be stripped out
		playlistEntry.title = jsonObj.videos[i].title.replace(/'/g,"");;
		playlistEntry.description = jsonObj.videos[i].description.replace(/'/g,"");
		playlistEntry.thumbnailUrl = jsonObj.videos[i].thumbnailUrl;
		playlistEntry.downloadUrl = jsonObj.videos[i].downloadUrl || null;

		playlistEntry.rating = jsonObj.videos[i].avgRating;
		playlistEntry.id = jsonObj.videos[i].id;
		playlistEntry.categoryId = jsonObj.videos[i].categoryId;
		playlistEntry.categoryName = jsonObj.videos[i].categoryName;
		
		for (var j=0; j < jsonObj.videos[i].videoAds.length; j++)  {
			var internalPlaylistEntry = new Object;
			internalPlaylistEntry.url = jsonObj.videos[i].videoAds[j].adUrl;
			internalPlaylistEntry.position = jsonObj.videos[i].videoAds[j].startPosition;
			
			internalPlaylistEntry.controls = controlsDuringAds;
			
			internalPlaylist[j] = internalPlaylistEntry;
		}
		
		
		if (internalPlaylist.length > 0) {
			playlistEntry.playlist = internalPlaylist;
		}
		mainPlaylist[i] = playlistEntry;
	}	
	playerJSONConfig.playlist = mainPlaylist;
	if ($f("player")) {
		$f("player").setPlaylist(mainPlaylist);
	} else {
		configurePlayer(playerJSONConfig);
	}
}
