var playerDiv = "#cwpPlayerDiv";
var akamaiRoot = "http://a123.g.akamai.net/f/123/41524/60m/webdata.globaltv.com/";
var ScriptRoot = akamaiRoot + "ScriptBuilder.ashx";

function cwpPlaySingleVideo(pid){
	var rel = cwpManager.getRelease("PID", pid);
	if (rel){rel.requestVideoPlay();}
	// If a particular function is defined (in this case, on the media page) call it to register the playing release
	if(typeof(singlePlayerInitCall) == "function"){singlePlayerInitCall(rel);}
}

function initializePlayerTemplate(data){
	initData = {
		PID:data.PID,
		pidList:data.pidList,
		adParameters:data.adParameters,
		site:data.site,
		siteZone:data.siteZone,
		playAllInCat:data.playAllInCat,
		disableOmniture:data.disableOmniture
	};
	// initialize Canwest Player object
	cwpInitializeManager(initData);

	cwpManager.relOnVideoStart(function(rel,pdkEvent){
		// If the ad synching library is available, we will let it handle companion ads
		if (typeof adSync == "object"){
			adSync.TriggerVideoAdSynch(pdkEvent);
		}
	});

	cwpManager.OnPlayClick = function(){
		var rel = cwpManager.rootCats[0].getFirstRelease();
		if (rel){rel.requestVideoPlay();}
	};

	var constructedZone = location.href.replace(/^(?:http\:\/{2})?[^\/]+\//,"").replace(/\?.*$/,"").replace(/\#.*$/,"").replace(/[^\/]*$/,"").replace(/[^\/]+\/\d+\//,"") + "story";
	
	cwpManager.getReleasesFromPidList(constructedZone);
	cwpAjaxLinks();
	if (data.autoPlay){
		cwpPlaySingleVideo(data.pidList[0]);
	}
}

function insertScript(data, extraSwfParams){
	if (!data.skipFlash){
		var parsedLocation = window.location.href.replace(/[?].*/,"");
		var rootURL = parsedLocation.match(/^[^\/]*\/\/[^\/]*/);
		var playerURL = "&playerURL=" + escape(parsedLocation + "?releasePID={releasePID}");
		/* No RSS on single player
		var rssURL = "&RSSURL=";
		if (data.rssURL){rssURL += escape(data.rssURL);}
		else{rssURL += escape(akamaiRoot + "MRSS.ashx?U=" + parsedLocation);}
		*/

		var sbStr = ScriptRoot + "?doNotRegister=true&type=Video&u=" + escape(parsedLocation) + playerURL /* + rssURL */ + ((data.theme == "default")?"":"&theme="+data.theme) + "&width=" + data.videoWidth + "&height=" + data.videoHeight + "&PID=" + data.PID + "&playerTag=" + data.playerTag;
		if (data.overlayImage){sbStr += "&plugin6=type=overlay|URL=http://webdata.globaltv.com/global/canwestPlayer/swf/ImageWithIconOverlayPlugin.swf|image_path=" + data.overlayImage + "|icon_path=http://webdata.globaltv.com/global/canwestPlayer/images/playIcon.png";}
		if(extraSwfParams) {sbStr += extraSwfParams;}
		logDebug("Scriptbuilder: " + sbStr);
		$.ajaxSetup({cache:true});
		$.getScript(sbStr,function(){
			$(document).ready(function(){initializePlayerTemplate(data);});
		});
		$.ajaxSetup({cache:false});
	}else{
		$(document).ready(function(){initializePlayerTemplate(data);});
	}
}

function cwpInsertPlayer(data){
	// set defaults
	if(!ScriptRoot){alert("ScriptRoot must be defined somewhere in the page or the template.");}
	if(!data.PID){alert("You must specify the PID.");return;}
	if(!data.site){alert("You must specify the site.");return;}
	data.theme = data.theme || "default";
	data.videoWidth = data.videoWidth || 400;
	data.videoHeight = data.videoHeight || Math.floor(data.videoWidth / 16 * 9 + 20);
	data.playAllInCat = (data.playAllInCat===true); // Assume false unless explicitly set true
	data.autoPlay = (data.autoPlay===true);
	data.disableOmniture = (data.disableOmniture===true);
	// If the user hasn't specified adParameters, look for a global adParameters object
	data.adParameters = data.adParameters || window["adParameters"] || null;
	$(playerDiv).before('<div class="commManager" id="commManagerDiv"></div>');

	insertScript(data);
}

function cwpTogglePause(doPause){
	if (cwpManager.currentPlay){
		doPause = doPause || true;
		cwpManager.currentPlay.pauseVideo(doPause);
	}
}
