var url = parseLocation();
var cvpcontext = setPlayerContext();
var adjheight = parseInt(url['height']) + 30;
var currVideoId = '';
var nba_article_player = new CVP({
	id : 'cvp_articleplayer',
	width : url['width'],
	height : adjheight,
	flashVars : {
		contentId : url['videoID'],
		context : cvpcontext
	},

	embed : {
		containerSwf : 'http://i.cdn.turner.com/nba/nba/.element/swf/1.1/cvp/nba_container.swf',
		expressInstallSwf : 'http://i.cdn.turner.com/v5cache/turnerplayer/flash/expressInstall.swf',
		options : {
			quality : 'high',
			bgcolor : '#000000',
			wmode   : 'transparent',
			allowFullScreen : 'true',
			allowScriptAccess : 'always'
		}
	},

	onContentBegin : function(videoId) {
		currVideoId = videoId;
		var myJSONText = this.getContentEntry(videoId);
		var myObject = myJSONText.evalJSON();
		document.getElementById('headline').innerHTML = '<b>' + myObject.headline + '</b>';
		document.getElementById('description').innerHTML = myObject.description;
	},

	onContentDataLoaded : function(videoId) {
		if (videoId==currVideoId || currVideoId=='') {
			var myJSONText = this.getContentEntry(videoId);
			var myObject = myJSONText.evalJSON();
			document.getElementById('headline').innerHTML = '<b>' + myObject.headline + '</b>';
			document.getElementById('description').innerHTML = myObject.description;
		}
	},

	onPlayerReady : function() {
		// set team section for freewheel
		var urlpath = document.location.pathname;
		if (urlpath.match('teamarticleplayer')) {
			var fwID = getTeamSSID();
			if (fwID) {
				this.setAdSection(fwID);
			}
		}
		this.setAdKeyValue("roadblock", "1");
	},

	onAdPrerollUrl : function(videoId, adUrl) {},
	onAdPostrollUrl : function(videoId, adUrl) {},
	onAdStarted : function(token) {
		var width=300; var height=250;
		var compSize = '300x250';
		adTag= this.getCompanionAd(compSize);
		/*
		document.getElementById('myDoubleClickAd').innerHTML = '<iframe src="' + adTag + '" id="companion' + compSize + '" width="' + 
		width + '" height="' + height + '" ' + 'marginwidth=0 marginheight=0 hspace=0 vspace=0 frameborder=0 scrolling=no></iframe>';
		*/
	},
	onAdFinished : function(token) {},
	onAdSensitive : function (videoId) {
		//log('Ad Sensitive Event for ' + videoId);
	},
	onVideoPlayerBegin : function(videoId, json) {},
	onVideoPlayerPlay : function(videoId) {
		document.getElementById('adCountdown').innerHTML = '';
	},
	onVideoPlayerStop : function(videoId) {},
	onAdError : function(message) {},
	onVideoPlayerError : function(message) {},
	onContentError : function(errorMessage) {},
	onContentPlayHead : function() {},
	onContentPlay : function(videoId) {
		if (window.top != window.self && !window.w && !window.s) {
			window.w = window.top;
			window.s = window.w.s;
		}

		//Omniture Implementation
		var videoMetaData = this.getContentEntry(videoId).evalJSON(true);
		w.nbaOmCurrentVideo = videoMetaData.id;
		if (cvpcontext=="nba_league_article_player") {
			nbaOmEvent.videoSource = 'L';
		} else {
			nbaOmEvent.videoSource = 'T';
		}
		nbaOmEvent.videoContext = 'A';
		nbaOmEvent.videoId = videoMetaData.id;
		nbaOmEvent.videoTitle = videoMetaData.headline;
		nbaOmEvent.videoRunTime = videoMetaData.trt;
		nbaOmEvent.videoPlayerType = 'CVP';
		var tempFolders = videoMetaData.category.split('/');
		var sectionName = tempFolders[tempFolders.length-1];
		nbaOmEvent.videoCategory = (w.nbaOmSuiteInfo.currentTeam ? w.nbaOmSuiteInfo.currentTeam : w.nbaOmSuiteInfo.currentLeague)+':'+sectionName;
		nbaOmEvent.onStreamStart();
	},
	onContentStop : function(videoId) {},
	onContentPause : function(videoId, paused) {},
	onContentCompleted : function() {},

	/************************
	    Tracking callbacks
	 ************************/
	onVideoTrackingAdClick : function(videoId, url) {},
	onVideoTrackingProgress : function(videoId, percent) {},
	onVideoTrackingLifetime : function(seconds) {},
	onVideoTrackingFullscreen : function(videoId, fullscreen) {},
	onVideoTrackingMuted : function(videoId, muted) {},
	onVideoTrackingPaused : function(videoId, paused) {},
	onVideoTrackingCompleted : function(videoId) {},
	onVideoTrackingReplay : function(videoId) {},
	onVideoTrackingPlay : function(videoId) {},
	onContentTrackingAdCountdown : function(secs) {}
});

function parseLocation() {
	var turl = ''+document.location;
	turl = turl.replace(/\&amp;/g, '&');

	turl = turl.slice(turl.indexOf('?')+1);
	ar = turl.split('&');
	b = { };
	for (var i = 0; i < ar.length; i++) {
		c = ar[i].split('=');
		b[c[0]] = c[1];
	}
	return b;
}

function setPlayerContext() {
	var leaguectx = 'nba_league_article_player';
	var urlpath = document.location.pathname;
	if (urlpath.match('dleaguearticleplayer')) {
		var width = url['width'];
		var height = url['height'];
		var ctxname = 'dleague' + '_' + width + 'x' + height;
		return ctxname;
	} else if (urlpath.match('leaguearticleplayer')){
	 	return leaguectx;
	} else if (urlpath.match('teamarticleplayer')) {
		var team = getTeamSection(url['videoID']);
		if (!team) {
			team = getTeamSection(top.location.pathname);
		}
		if (team) {
			var width = url['width'];
			var height = url['height'];
			var ctxname = team + '_' + width + 'x' + height;
			return ctxname;
		} else {
			return leaguectx;
		}
	}
}

function getTeamSection(videoID) {
	videoID = videoID.replace(/\/\d{4}.*$/, '');
	videoID = videoID.replace(/\/video\//, '');
	var arrSections = videoID.split('/');
	var ct = arrSections.length;
	for (var i=0; i < ct; i++) {
		if (isTeam(arrSections[i])) {
			return arrSections[i];
		}
	}
	return '';
}

function getTeamSSID() {
	var callingPath = top.location.pathname;
	callingPath = callingPath.replace(/^\//, '');
	var teamShortName = callingPath.replace(/\/.*$/, '');
	var ct = nbaLeagueTeams.length;
	for (var i=0; i < ct; i++) {
		if (nbaLeagueTeams[i]['shortName'] == teamShortName) {
			return nbaLeagueTeams[i]['fwArticleSSID'];
		}
	}
	return '';
}

function isTeam(strToCheck) {
	var ct = nbaLeagueTeams.length;
	for (var i=0; i < ct; i++) {
		if (nbaLeagueTeams[i]['shortName'] == strToCheck) {
			return true;
		}
	}
	return false;
}

// Play video and set queue
function playVideo(videoId, videoPlaylist) {
	var currVideoId = videoId;
	var currPlaylist = videoPlaylist;

	// Start with specific video id or first one by default
	if (videoId != null) {
		currVideoId = videoId;
	} else {
		currVideoId = videoPlaylist[0];
	}

	nba_article_player.play(currVideoId);

	var videoInPlaylist = false;
	for (var i=0; i<currPlaylist.length; i++) {
		if (videoInPlaylist) {
			nba_article_player.queue(currPlaylist[i]);
		}
		if (currVideoId == currPlaylist[i]) {
			videoInPlaylist = true;
		}
	}
}

function pauseVideo() {
	nba_article_player.pause();
}

function resumeVideo() {
	nba_article_player.resume();
}