/* Flash Videos supporting routines */


function getFlashVideoData(holdingImage, video_colour, videoArray) {
		var xml = '<playerRoot><holdingImageUrl><![CDATA['+holdingImage+']]></holdingImageUrl><linkColour>#' + video_colour + '</linkColour><videos>';
		for (var i = 0; i < videoArray.length; i++) {
			xml += '<video><videoTitle>' + videoArray[i][0] + '</videoTitle><videoUrl><![CDATA[' + videoArray[i][1] + ']]></videoUrl></video>';
		}
		xml += '</videos></playerRoot>';
		return xml;
}


/**
  *	Functions to support the flash navigation component
  */

//these 2 are needed in order to remove xml tags from the template
function GetNavChannelRootTagName(){return "<navRoot>";}
function GetNavChannelRootClosingTagName(){return "</navRoot>";}

function NavChannel( displayName, color, navUrl, active, selected)
{
	this._children = new Array();
	this._displayName = displayName;
	this._color = color;
	this._navUrl = navUrl;
	this._active = active;
	this._selected = selected;
}
NavChannel.prototype = 
{
	AddChild:function(child)
	{
		this._children[this._children.length] = child;
	},
	
	BuildXml:function()
	{
		if(this._displayName == null)
		{
			var xml = "";
			for(var i=0;i<this._children.length;i++)
			{
				xml += this._children[i].BuildXml();
			}
			return xml;
		}
		else
		{
			var xml = "<channel>";
			xml += this._AddElement("displayName", encodeURIComponent(this._displayName));
			xml += this._AddElement("colour", this._color);
			xml += this._AddElement("navUrl", this._navUrl);
			xml += this._AddElement("active", this._active);
			xml += this._AddElement("selected", this._selected); 
	  
			if(this._children.length == 0)
				xml += "<children />";
			else
			{
				xml += "<children>";
				for(var i=0;i<this._children.length;i++)
				{
					xml += this._children[i].BuildXml();
				}
				xml += "</children>";
			}
			xml += "</channel>";
			return xml;
		}
	},
	
	_AddElement:function(name, value)
	{
		if(value == null)
			return "";
		else
			return "<" + name + ">" + value + "</" + name + ">";
	}
}


var _state = "";
function setBreadcrumb(c_name, value)
{
	try
	{
		var newval = value.replace("&", "%26");
		if(_state.indexOf(c_name + "=") != -1)
		{
			_state = _state.substring(0, _state.indexOf(c_name)) + _state.substring(_state.indexOf(';', _state.indexOf(c_name))+1, _state.length);
		}
		
		_state += c_name + "=" + escape(newval) + ";";
	}
	catch(e)
	{
		CliDebug("Error setting breadcrumb: " + e.message);	
	}
	
}

function getBreadcrumb(c_name)
{
	try
	{
		if(c_name == null)
			c_name = "pspmenu";
		if(_state != null && _state.indexOf(c_name) != -1)
		{
			var start = _state.indexOf(c_name) + c_name.length + 1;
			var end = _state.indexOf(';', _state.indexOf(c_name));
			var state = _state.substring(start,end);
			if(state)
				return decodeURIComponent(state);
			else
				return "";
		}
		else    
			return "";
	}
	catch(e)
	{
		CliDebug("Error getting breadcrumb: " + e.message);
		return "";
	}
}

function flashAjaxCall(c_name, command )
{
	try
	{
		Fade.showWaiting();
		ajaxAnywhere.getAJAX(command, 'content');
		setBreadcrumb('pspmenu', c_name);
	}
	catch(e)
	{
		CliDebug("Error occurred redirecting: " + e.message);
	}
}