/* FILE: flash-player.js
   Copyright (c) 2008 C-Span Archives

  private functions used by  flash player

*/


/*
  requires: swfobject
  requires: prototype
  requires: flash-player-config

*/


/** Displays the player in a dom element.
    extracts needed parameters from URL string and config vars.  
*/
function showPlayer(){
    
    var params={};
    var flashvars={};
    var attrs={};
    attrs.id = flashplayer_config.swf_id;
    attrs.name = flashplayer_config.swf_id;
    
    pid = url_parse("pid");
    if( "" == pid ) {
	alert("Error: Must specify program id.");
	return;
    } else {
	flashvars.pID = pid;
    }

		if ( url_parse("noautoplay") )
			flashvars.noautoplay = 1;

    function try_add_param( url_name, attr_name, default_value ) 
		{
			var p = url_parse(url_name);
			
			if( p != "" ) 
			{ 
					flashvars[attr_name] = p; 
					return p;
			}
			else if( default_value ) 
			{
					flashvars[attr_name] = default_value; 
					return default_value;
			}

			return null;
    }
    //alert(url_parse("width"));
    var width = try_add_param( "width", "width", flashplayer_config.default_width );
    var height = try_add_param( "height", "height", flashplayer_config.default_height );
    //alert( width);
    try_add_param( "start", "clipStart");
    try_add_param( "stop", "clipStop");
    try_add_param( "playBegin", "playBegin");
    try_add_param( "playEnd", "playEnd");
    try_add_param( "net", "net");
    try_add_param( "dev", "dev");

/*
    var width = url_parse("width");
    var height = url_parse("height");
    width = ("" == width) ? flashplayer_config.default_width : width;
    height = ("" == height) ? flashplayer_config.default_height : height;

    var start = url_parse("start");
    var stop = url_parse("stop");
    if( start != "" ) { flashvars.clipStart = start }
    if( stop != "" ) { flashvars.clipStop = stop }

    var playBegin = url_parse("playBegin");
    var playEnd = url_parse("playEnd");
    var net = url_parse("net");
    alert(playEnd);
    if( playBegin != "" ) { flashvars.playBegin = playBegin }
    if( net != "" ) { flashvars.net = net }
*/

    if( flashplayer_config.dev_config ) { flashvars.devConfig = "yes"; }

    params.allowscriptaccess = "sameDomain";
    params.allowFullScreen = "true";

    flashvars.showClose = "false";
    
    swfobject.embedSWF(flashplayer_config.swf_url, 
		       flashplayer_config.dom_id, 
		       width,
		       height,
		       flashplayer_config.swf_version,
		       flashplayer_config.express_install_url, 
		       flashvars, 
		       params,
		       attrs);

}


function findPlayer() {
    if( window.parent.myFlashPlayer ) 
	return window.parent.myFlashPlayer;
    if( window.parentFlashPlayer ) 
	return window.parentFlashPlayer;
    return null;
}
function findMovie() {
    if (navigator.appName.indexOf("Microsoft") != -1)   {
	return setTimeout(findMovieIE, 1500 ); //Lame hack to work in IE
    }
    return document.getElementById(flashplayer_config.swf_id);
}
function findMovieIE() {
    if( window.parent.myFlashPlayer ) {
	movie = window[flashplayer_config.swf_id];
	window.parent.myFlashPlayer.setMovie(movie);
	window.parent.myFlashPlayer.runHooks();
    }
    return window[flashplayer_config.swf_id];

}

/** Adds movie object to the FlashPlayer in containing window.

We do this backwards because it does not work to access the childs DOM from the parent.
*/
function registerPlayer() {
    var p = findPlayer();
    if( null == p ) return;
    p.setMovie( findMovie() );
    p.runHooks();
    
    /*if (navigator.appName.indexOf("Microsoft") != -1)   {
	setTimeout(registerPlayerIE, 1500 ); //Lame hack to work in IE
	return;
    }

    movie = document.getElementById(flashplayer_config.swf_id);
    if( window.parent.myFlashPlayer ) {
	window.parent.myFlashPlayer.setMovie(movie);
	window.parent.myFlashPlayer.runHooks();
    }else if (window.parentFlashPlayer) {
	window.parentFlashPlayer.setMovie(movie);
	window.parentFlashPlayer.runHooks();
    } else {
	alert("Couldn't find flash player object");
    }
*/
    

}

/*
function registerPlayerIE() {
    if( window.parent.myFlashPlayer ) {
	movie = window[flashplayer_config.swf_id];
	window.parent.myFlashPlayer.setMovie(movie);
	window.parent.myFlashPlayer.runHooks();
    }
}
*/

/**** AJAX monitoring functions ***/
var run = 0;

function monitorVideoStatus()
{
	if ( run == 1 )
	{
		checkVideoStatus();
	}
	else
	{
		run++;
	}

	t = setTimeout ('monitorVideoStatus()',15000); //repeat check every 15 seconds
}

function checkVideoStatus()
{
    var url = 'http://www.c-spanarchives.org/library/includes/modules/pages/product_video_info/checkVideoStatus.php';

    var myAjax = new Ajax.Request 
    (
	url,
	{
	    method: 'post',
	    parameters: { pid: getProgID(), tid: '' },
	    onComplete: updateDiv,
	    onFailure: reportError,
	    onException: reportExp
	});
}

function reportError(response)
{
    alert( "Error: " + response.responseText);
}

function reportExp(response)
{
    alert( "Exception: " + response.responseText);
}


