﻿/**
* Record when JW players are instantiated and tell them to trap state changes and errors
*
*/

var ldm_JWplayers = new Array();

function playerReady(obj) {

	var nexti = ldm_JWplayers.length;

	ldm_JWplayers[nexti] = new Array();
	ldm_JWplayers[nexti].who = obj.id;
	ldm_JWplayers[nexti].state = "CREATED";

	var field = obj.id;
	field = field.replace(/[^0-9]+/g, "");
	ldm_JWplayers[nexti].error = "jwerror" + field;

	var playerid = document.getElementById(obj.id);

	playerid.addModelListener("STATE", "ldm_JWstateTracker");

	playerid.addControllerListener("ERROR", "ldm_JWerrorListener");
	playerid.addModelListener("ERROR", "ldm_JWerrorListener");
	playerid.addViewListener("ERROR", "ldm_JWerrorListener");

};

/**
* Track what JW players are doing and tell everyone else to stop
* when someone starts playing
*
*/

function ldm_JWstateTracker(obj) {
	if (obj.newstate == "PLAYING") {
		for (var i=0; i<ldm_JWplayers.length; i++) {
			if (ldm_JWplayers[i].who == obj.id) {
				ldm_JWplayers[i].state = obj.newstate;
			}
			else {
				if (ldm_JWplayers[i].state == "PLAYING") {
					var playerid = document.getElementById(ldm_JWplayers[i].who);
					playerid.sendEvent("PLAY", false);
					ldm_JWplayers[i].state = "STOPPED";
				}
			}
		}
	}
	else {
		for (var i=0; i<ldm_JWplayers.length; i++) {
			if (ldm_JWplayers[i].who == obj.id) {
				ldm_JWplayers[i].state = obj.newstate;
			}
		}
	}
};

function ldm_JWerrorListener(obj) {
	message = obj.message;
	for (var i=0; i<ldm_JWplayers.length; i++) {
		if (ldm_JWplayers[i].who == obj.id) {
			ldm_JWplayers[i].state = obj.newstate;
			var playerid = document.getElementById(ldm_JWplayers[i].who);
			playerid.sendEvent("PLAY", false);
			var errorvar = ldm_JWplayers[i].error;
			var errorid = document.getElementById(errorvar);
			if (errorid) {
				errorid.innerHTML = "<span class='highlight'>Unable to proceed - Error generated by JW player</span>";
			}
		}
	}
}

