
var tv = 
{
	currentPosition : undefined,
	currentVolume 	: undefined,
	currentItem 	: undefined,
	currentFilmId 	: undefined,
	currentState 	: undefined,
	currentTitle 	: undefined,
	sectionHasSegments : false,
	
	loadPlayList : function(channel)
	{
		tv.sendPlayerEvent('stop');
		$("mpl").loadFile({file:'/xml/rss/get_tv_playlist/'+channel});
		// Baffling...
		setTimeout("tv.sendPlayerEvent('playitem', 0)",1000);
	},
	
	sendPlayerEvent : function (typ,prm) 
	{ 
		$("mpl").sendEvent(typ,prm); 
	},
	
	getItemData : function(idx)
	{
		tv.itemdata = $("mpl").itemData(idx);
		//console.log(tv.itemdata);
		
		if (tv.itemdata && (tv.currentFilmId === undefined || !$('film_'+tv.currentFilmId) 
							|| tv.currentFilmId != tv.itemdata.id || !$('film_'+tv.currentFilmId).hasClassName('playing')) )
		{	
			tv.currentFilmId = tv.itemdata.id;
			tv.updateChannelView();
		}
		
		if (tv.itemdata && tv.itemdata.title && (tv.currentTitle === undefined || tv.currentTitle != tv.itemdata.title) )
		{	
			if (!$('description').visible())
			{
				Effect.SlideDown('description', {duration:0.2, transition: Effect.Transitions.linear});
			}
			
			tv.currentTitle = tv.itemdata.title;
			
			tv.updateSegmentView();
		}
		
		
	},
	
	updateChannelView : function()
	{
			//add a class to playing item. Remove the class from the old item id.
			$$('.playing').each(function(elm)
			{
				elm.removeClassName('playing');
			});

			if ($('film_'+tv.itemdata.id))
			{
				$('film_'+tv.itemdata.id).addClassName('playing');
			}
	},
	
	updateDescriptionView : function()
	{

		var title = tv.currentTitle.split('|');
		$('film-title').update(title[0]);

		// Don't want the subtitle updated unless this is a non-segmented clip
		if (tv.sectionHasSegments)
		{

			$('film-subtitle').update(title[1]);
		}
		
		$('film-description').update(tv.itemdata.description);
		
		if (tv.itemdata.link)
		{
			$('film-credit').update('<a target="_blank" href="'+tv.itemdata.link+'">'+tv.itemdata.author+'</a>');
		}
			
		$('film-segment-image').src = tv.itemdata.descimage;
		$('film-segment-image').show();

	},
	
	updateSegmentView : function()
	{
		new Ajax.Request('/ajax/get_tv_film_segments/'+tv.itemdata.category+'/'+tv.itemdata.id+'/'+tv.itemdata.segment+'/', 
		{
			method: 'get',
			onSuccess: function(transport) 
			{
				if (transport.responseText)
				{	
					tv.sectionHasSegments = true;
					
					$('segment-links-container').update(transport.responseText);
					
					channel.setUpFilmLinks();
						
					if (!$('film-segment-links').visible())
					{
						Effect.SlideDown('film-segment-links', {duration:0.2, transition: Effect.Transitions.linear});
						Effect.SlideDown('film-subtitle-holder', {duration:0.2, transition: Effect.Transitions.linear});
					}
				}
				else
				{
					tv.sectionHasSegments = false;
					
					if ($('film-segment-links').visible())
					{
						Effect.SlideUp('film-segment-links', {duration:0.2, transition: Effect.Transitions.linear});
						Effect.SlideUp('film-subtitle-holder', {duration:0.2, transition: Effect.Transitions.linear});
					}
				}
				console.log(tv.itemdata);
				if (tv.itemdata.link)
				{
					if (!$('film-credit-holder').visible())
					{
						Effect.SlideDown('film-credit-holder', {duration:0.2, transition: Effect.Transitions.linear});
					}
				}
				else
				{
					if ($('film-credit-holder').visible())
					{
						Effect.SlideUp('film-credit-holder', {duration:0.2, transition: Effect.Transitions.linear});
					}	
				}
				
				tv.updateDescriptionView();
				
			}
		});	
	}
}

// these functions are caught by the JavascriptView object of the player.
function getUpdate(typ,pr1,pr2,pid) 
{
	if(typ == "time") 
	{ 
		tv.currentPosition = pr1; 
	}
	else if(typ == "volume") 
	{ 
		tv.currentVolume = pr1; 
	}
	else if(typ == "item") 
	{ 
		tv.currentItem = pr1; setTimeout("tv.getItemData(tv.currentItem)",100); 
	}
	else if(typ == "state") 
	{ 
		tv.currentState = pr1;
	}

};