/**** $Id: cinemanow.js,v 1.1 2007/11/07 19:20:00 sschuhmann Exp $****/

// CinemaNow Javascript functions




var basePath = 'http://www.cinemanow.com/';


// Initialize CinemaNow's MediaManager
function InitMM()
{
	InitMediaManager();
	if (_mm_appid && _mm_appver && _mm_location)
	{
		return true;
	}
	else
	{
		return false;
	}
}

// Fix Download XML 
function FixXML(xml)
{
	xml = xml.replace(/&amp;/g, "&");
	xml = xml.replace(/&lt;/g, "<");
	xml = xml.replace(/&gt;/g, ">");
	xml = xml.replace(/\'/g, "&#39;");
	xml = xml.replace(/\\/g, "\\\\");
	xml = "'" + xml + "'";

	return xml;
}

// Load Featured Items via AJAX
function GetFeatures(genre_id)
{
	new SynAjax().update('features',
	                     'components/features.php',
	                     {
	                       method: 'get',
	                       parameters: 'id=' + genre_id,
	                       onComplete: ClearTitleDiv 
	                     }
	                    );
}

// Load Trailer Block via AJAX
function GetTrailers(genre_id)
{
	new SynAjax().update('trailers',
	                     'components/trailers.php',
	                     {
	                       method: 'get',
	                       parameters: 'id=' + genre_id
	                     }
	                    );
}

// Load current Search Results Set
function GetSearchResults(id_list, term, page, sort_field, sort_order)
{
	new SynAjax().update('search_results',
	                     'components/search_results.php',
	                     {
	                       method: 'post',
	                       parameters: 'id_list=' + id_list +
	                                   '&term=' + term +
	                                   '&page=' + page +
	                                   '&sort_field=' + sort_field +
	                                   '&sort_order=' + sort_order
	                     }
	                    );
}

// Sort Search Results
function SortSearchResults(id_list, term, page, sort_option)
{
	switch (sort_option)
	{
		case 'best':
			GetSearchResults(id_list, term, page, '', '0');
			break;
		case 'title_asc':
			GetSearchResults(id_list, term, page, 'title', '1');
			break;
		case 'title_desc':
			GetSearchResults(id_list, term, page, 'title', '0');
	}
}

// Load Title Details Component via AJAX 
function GetTitle(title_id, type, div)
{
	switch (type)
	{
		case 'tv_show':
			GetTVBundle(title_id, type, div);
			break;
		case 'tv_season':
			GetTVBundle(title_id, type, div);
			break;
		case 'title':
		new SynAjax().update('title_'+div,
		                     'components/title.php',
		                     {
		                       method: 'get',
		                       parameters: 'title_id=' + title_id +
		                       '&div=' + div +
		                       '&ajax=1',
		                       onComplete: ShowTitleDiv(div)
		                     }
		                    );
	}
}

// Load TV Bundle Component via AJAX
function GetTVBundle(title_id, type, div)
{
	new SynAjax().update('title_'+div,
	                     'components/tv_bundle.php',
	                     {
	                       method: 'get',
	                       parameters: 'title_id=' + title_id +
	                                   '&type=' + type +
	                                   '&div=' + div +
	                                   '&ajax=1',
	                       onComplete: ShowTitleDiv(div)
	                     }
	                    );
}

// Prepare item for download
function PrepareDownload(pass_id, title_id)
{
	// Check for IE
	if (navigator.userAgent.indexOf('MSIE') == -1)
	{
		document.getElementById('message').innerHTML = 'You Must Use Internet Explorer for Downloads.';
		return false;
	}

	// Check for MediaManager
	if (!InitMM())
	{
		document.getElementById('message').innerHTML = 'You Must Download MediaManager to Continue.';
		show_modal('modal_download_cont');
		return false;
	}

	document.getElementById(pass_id).innerHTML = 'Starting Download...';

	new SynAjax().update('download_xml',
	                     'components/prepare_download.php',
	                     {
	                       method: 'get',
	                       parameters: 'title_id=' + title_id +
	                                   '&pass_id=' + pass_id +
	                                   '&app_id=' + _mm_appid +
	                                   '&version=' + _mm_appver +
	                                   '&location=' + _mm_location,
	                       onComplete: StartDownload 
	                     }
	                    );
}

// Replace Search Result entry with Title Details
function ShowTitleDiv(div)
{
	document.getElementById('search_'+div).style.display = 'none';
	document.getElementById('title_'+div).style.display  = 'block';
}

// Clear div containing Title Details
function ClearTitleDiv()
{
	document.getElementById('title').innerHTML = '';
}

// Clear div containing Trailer Block and Featured Items 
function ClearGenreDivs()
{
	document.getElementById('trailers').innerHTML = '';
	document.getElementById('features').innerHTML = '';	
}

// Initiate download via MediaManager
function StartDownload()
{
	var xml = document.getElementById('download_xml').innerHTML;

	if (!xml)
	{
		document.getElementById('message').innerHTML = 'Error preparing download';
		return false;
	}
	xml.match(/pass pid="(\d+)"/i);
	WSmmDoAction('download', RegExp.$1, FixXML(xml));

	return true;
}

// Check for supported features (for embedded player)
function CheckSupportedFeatures()
{
	var featureArray = new Array('pause', 'volume');

	for (var i = 0; i < featureArray.length; i++)
	{
		if (!player.featureSupported(featureArray[i]))
		{
			document.getElementById(featureArray[i] + '_img').style.display = 'none';
		}
		else
		{
			document.getElementById(featureArray[i] + '_img').style.display = 'inline';
		}
	}
}

// Show title information for current trailer
function PlayStateChangeHandler(state)
{
	if (state == '3') // playing
	{
		if (player.using_playlist)
		{
			document.getElementById('title_div').innerHTML = document.getElementById('title_' + player.current_index).innerHTML;
		}
	}
}

// Play trailer in embedded player
function PlayTrailer(url, title_id)
{
	player.stop();
	player.setMedia('video/x-ms-asf', url);
	document.getElementById('title_div').innerHTML = document.getElementById('title_' + title_id).innerHTML;
	player.play();
}

