/**
 * functions for handling the jw-flv-player
 */
var cookieNames = 		new Object();
var players =			new Object();
var buffered  = 		new Object();
var pause  = 			new Object();
var startPoints  = 		new Object();
var currentPositions = 	new Object();
var seekReady = 		new Object();

// is filled when the players are loaded
var entryPoints =		new Object();

/**
 * This function is called by the flash-player after is has been 
 * loaded.
 * 
 * @param obj	The dom-object of the flash player
 */
function playerReady(obj){
	cookieNames[obj.id] = obj.id + "_position";
	players[obj.id] = document.getElementById(obj.id);
	players[obj.id].addModelListener('LOADED', 'loadedMonitor');
	players[obj.id].addModelListener("TIME", "timeListener");
	players[obj.id].addModelListener("STATE", "stateListener");
	if(entryPoints[obj.id]){
		// if entry-point is required, set the cookie in the onunload-event
		$(window).unload(function(){$.cookie(cookieNames[obj.id], currentPositions[obj.id]);});
	}else{
		// else remove cookie
		$.cookie(cookieNames[obj.id], null);
	}
};

/**
 * This function is called by the ModelListener whenever the load-
 * state of the flash object changes. 
 * 
 * @param obj	The dom-object of the flash-player
 */
function loadedMonitor(obj){
	if(buffered[obj.id] != true){
		if($.cookie(cookieNames[obj.id]) != ""){
			// workaround for the bug that the screen turns black (if autoplay=true and controlbar=over)
			players[obj.id].sendEvent('STOP', 'true');
			players[obj.id].sendEvent('PLAY', 'true');
			startPoints[obj.id] = $.cookie(cookieNames[obj.id]);
		}
		if((obj.loaded <= (startPoints[obj.id] + 1)) && (pause[obj.id] != false)){
			players[obj.id].sendEvent('PLAY', 'false');
			pause[obj.id] = false;
		}else if(obj.loaded > (startPoints[obj.id] + 1)){
			seekReady[obj.id] = true;
			buffered[obj.id] = true;
			players[obj.id].sendEvent('PLAY', 'true');
		}
	}
};

/**
 * This function is called by the ModelListener each time, the player 
 * played 0.1 seconds of the film. 
 * 
 * @param obj	The dom-object of the flash-player
 */
function timeListener(obj){ 
	if(obj.position > 1){
		currentPositions[obj.id] = obj.position;
	}
}

/**
 * Wait until the movie has been started by the javascript, then jump 
 * to the required frame. 
 * 
 * @param obj
 */
function stateListener(obj){
	if(seekReady[obj.id] == true && obj.newstate == 'PLAYING'){
		seekReady[obj.id] = false;
		var start = (startPoints[obj.id] == undefined) ? 0 : startPoints[obj.id]; 
		setTimeout("players['" + obj.id + "'].sendEvent('SEEK', '" + start + "')", 100);
	}
}
