/**
 NRJ SILVERLIGHT PLAYER
**/

/** ERRORS **/
function onSilverlightError(sender, args) {
	var appSource = "";
	if (sender != null && sender != 0) {
		appSource = sender.getHost().Source;
	}
	var errorType = args.ErrorType;
	var iErrorCode = args.ErrorCode;

	var errMsg = "Unhandled Error in Silverlight 2 Application " + appSource + "\n";

	errMsg += "Code: " + iErrorCode + "    \n";
	errMsg += "Category: " + errorType + "       \n";
	errMsg += "Message: " + args.ErrorMessage + "     \n";

	if (errorType == "ParserError") {
		errMsg += "File: " + args.xamlFile + "     \n";
		errMsg += "Line: " + args.lineNumber + "     \n";
		errMsg += "Position: " + args.charPosition + "     \n";
	}
	else if (errorType == "RuntimeError") {
		if (args.lineNumber != 0) {
			errMsg += "Line: " + args.lineNumber + "     \n";
			errMsg += "Position: " + args.charPosition + "     \n";
		}
		errMsg += "MethodName: " + args.methodName + "     \n";
	}

	throw new Error(errMsg);
}

/** ONLOAD **/
function onSilverlightLoad(sender) {
	if (Silverlight.IsVersionAvailableOnLoad(sender)) {
		InitializePlayerController();
	}
}

/** GET ELEMENTS **/
function $get(id) {
	 return document.getElementById(id);
}

/** GET SILVERLIGHT OBJECT **/
function GetSLObject() {
	return $get("slapp") != null && $get("slapp") != 'undefined' ? $get("slapp") : null;
}

/** GET SILVERLIGHT APP **/
function GetSLApp() {
	return GetSLObject() != null ? GetSLObject().content : null;
}

/** GET SILVERLIGHT CONTROLLER  **/
function GetSLPlayerController() {
	return GetSLApp() != null ? GetSLApp().PlayerController : null;
}

/** INIT CONTROLLER  **/
function InitializePlayerController() {
	GetSLPlayerController().MediaEnded = onSilverlightMediaEnded;
	GetSLPlayerController().MediaFailed = onSilverlightMediaFailed;
}

/** MEDIA END  **/
function onSilverlightMediaEnded(sender, args) {
	// Media Ended
	alert("Tu viens d'atteindre la fin du fichier video.");
}

/** MEDIA FAILED  **/
function onSilverlightMediaFailed(sender, args) {
	// Media Failed
	document.getElementById('error_notification').style.display = 'block';
}
