/*
	Title: ChookTV JavaScript [Version 2.5]
	Author: James Hartcher & Tim Keir
	Created: 3/2/2008
	Modified: 30/07/2009
	
	Copyright © 2009 Internet Design Studios Pty Ltd, All Rights Reserved
	www.idstudios.com.au
*/

// Embed Variables
var swfPath;
var eiSwfPath;
var BGColour = "#FFFFFF";
var ChookTVDebug = false;

// Declare Variables
var ParentID = '';
var ChannelID = '';
var VideoID = '';
var PlaylistID = '';
var Bitrate = '';
var SettingsURL = '';
var VideoURL = '';

// Container Variables
var Container;
var ContainerBG = '';
var ContainerWidth;
var ContainerHeight;
var ContainerURL;
var CoreURL;
var ContainerType;
var CoreURL = '';

// Playback and Tracking Variables
var scCI;
var scCG;
var PlaylistDisplay;
var ThumbnailURL;
var AutoPlay = false
var AutoPlayNext = true
var useSwfAddress = true;
var ShortSwfAddress = false;
var DeviceType;
var Hash;

// Video Player Variables
var VideoPlayer



// ---------------------------------------------------------------------
// Load & UnLoad Functions
// ---------------------------------------------------------------------

// Load Functions
function Hello() {
}

// Unload Functions
function Goodbye() {
	new Ajax.Request(
		ContainerURL + 'Core/XML/Tracking.asp?Type=StopVideo&Duration=' + GetCurrentTime(),
		{method:'post',asynchronous:true}
	);
}

// ---------------------------------------------------------------------
// Prepare & Render ChookTV (SWF) Functions
// ---------------------------------------------------------------------

// Render Player (Method)
function RenderChookTV(div) {
	// Prepare Container (Get Settings/Dimensions)
	PrepareContainer(div);
	// Define swf locations
	swfPath = CoreURL + "Core/Flash/Container.swf";
	eiSwfPath = ContainerURL + "Core/Flash/ExpressInstall.swf";
	// Check which version of swfObject to use and then embed
	if(typeof swfobject != "undefined") embedUsingSwfObject2(div);
	else if(typeof SWFObject != "undefined") embedUsingSwfObject(div);
	else alert("ChookTV: Incorrect or missing version of swfObject in use.");	
}

// Embed Flash using swfObject 2.0
function embedUsingSwfObject2(div) {
	if(ChookTVDebug) alert("swfObject 2");
	// Set Flash variables
	var flashvars = {
	  ParentID: ParentID,
	  ChannelID: ChannelID,
	  VideoID: VideoID,
	  PlaylistID: PlaylistID,
	  Bitrate: Bitrate,
	  ContainerBG: ContainerBG,
	  ContainerURL: ContainerURL,
	  CoreURL: CoreURL,
	  ContainerType: ContainerType,
	  CoreURL: CoreURL,
	  SettingsURL: SettingsURL,
	  scCI: scCI,
	  scCG: scCG,
	  PlaylistDisplay: PlaylistDisplay,
	  Thumbnail: ThumbnailURL,
	  AutoPlay: AutoPlay,
	  AutoPlayNext: AutoPlayNext,
	  SwfAddress: useSwfAddress,
	  ShortSwfAddress: ShortSwfAddress,
	  DeviceType: DeviceType,
	  VideoURL: VideoURL,
	  Hash: Hash
	};
	// Set Flash Parameters
	var params = {
	  menu: "false",
	  scale: "noscale",
	  salign: "t",
	  allowFullScreen: "true",
	  allowScriptAccess: "always",
	  bgcolor: BGColour,
	  wmode: "opaque"
	};
	// Set Flash Attributes
	var attributes = {
	  id: "ChookPlayer",
	  name: "ChookPlayer"
	};

	// Embed Flash
	swfobject.embedSWF(swfPath, div, ContainerWidth, ContainerHeight, "9.0.0", eiSwfPath, flashvars, params, attributes);
}

// Embed Flash using swfObject 1.5
function embedUsingSwfObject(div) {
	if(ChookTVDebug) alert("swfObject 1.5");
	// Embed Flash
	var so = new SWFObject(swfPath, "ChookPlayer", ContainerWidth, ContainerHeight, "9.0.28", BGColour);
		so.useExpressInstall(eiSwfPath);
		// Set Flash variables
		so.addVariable("ParentID", ParentID);
		so.addVariable("ChannelID", ChannelID);
		so.addVariable("VideoID", VideoID);
		so.addVariable("PlaylistID", PlaylistID);
		so.addVariable("Bitrate", Bitrate);
		so.addVariable("ContainerBG", ContainerBG);
		so.addVariable("ContainerURL", ContainerURL);
		so.addVariable("CoreURL", CoreURL);
		so.addVariable("ContainerType", ContainerType);
		so.addVariable("CoreURL", CoreURL);
		so.addVariable("SettingsURL", SettingsURL);
		so.addVariable("scCI", scCI);
		so.addVariable("scCG", scCG);
		so.addVariable("PlaylistDisplay", PlaylistDisplay);
		so.addVariable("Thumbnail", ThumbnailURL);
		so.addVariable("AutoPlay", AutoPlay);
		so.addVariable("AutoPlayNext", AutoPlayNext);
		so.addVariable("SwfAddress", useSwfAddress);
		so.addVariable("ShortSwfAddress", ShortSwfAddress);
		so.addVariable("DeviceType", DeviceType);
		so.addVariable("VideoURL", VideoURL);
		so.addVariable("Hash", Hash);
		// Set Flash Parameters
		so.addParam("menu", "false");
		so.addParam("wmode", "opaque");
		so.addParam("scale", "noscale");
		so.addParam("salign", "T");
		so.addParam("allowFullScreen", "true");
		so.addParam("allowScriptAccess", "always");
		so.addParam("wmode", "opaque");
		so.write(div);
}

// Get & Clean Background Style
function PrepareContainer(div) {
	// Get Container
	Container = document.getElementById(div);
	// Get Width
	if (ContainerWidth == null) ContainerWidth = Container.style.width.replace('px','');
	// Get Height
	if (ContainerHeight == null) ContainerHeight = Container.style.height.replace('px','');
}

// Change Island (Method)
function ChangeAdvertisement(url) {
	if(document.getElementById('VideoAdvertisement') != null) {
		//document.getElementById('VideoAdvertisement').src = url;
		var div = document.getElementById('VideoAdvertisement');			/* CURRENTLY FAILING!! :( */
		div.innerHTML = url;
		//alert("ADVERT: "+document.getElementById('VideoAdvertisement'));
		//alert("BANNER: "+div.innerHTML);
		//alert("CONTENT: "+url);
		return true;
	} else {
		return false;
	}
}

// Resize the Video Player and Container for use with FullPage mode (Double Size)
function ExpandVideoPlayer(nw, nh) {
	if(VideoPlayer == null) VideoPlayer = document.getElementById('ChookPlayer');
	Container.style.width = nw+'px';
	Container.style.height = nh+'px';
	VideoPlayer.style.width = nw+'px';
	VideoPlayer.style.height = nh+'px';
	return false;
}
// Having a unique Shrink function allows you to override this method to support external element resizing and repositioning
function ShrinkVideoPlayer(nw, nh) {
	return ExpandVideoPlayer(nw, nh);
}
