// lesson viewer

var currentLesson = null;
var lastLoginRequest = 0;
var flashPlayerVersion = $.flashPlayerVersion;		
var videoPlayer;
var access_granted = false;
var access_denied = false;		
var currentFocus = null;
var ctrlIsDown = false;
var ctrlTimeout;

function hasFlashPlayerVersion(dVer)
{
	var dVerA = dVer.split(",");
	for(var i = 0; i < flashPlayerVersion.length; i++)
	{
		var dVInt = parseInt(dVerA[i]);
		var	vInt = parseInt(flashPlayerVersion[i]);
		//alert(vInt + "<" + dVInt);
		if (vInt < dVInt)
			return false;
		if (vInt > dVInt)
			return true;

	}
	return true;
}

function loadPlayer(partId, first, num)
{

	if (!hasFlashPlayerVersion(demandFlashPlayerVersion))
	{

		if (hasFlashPlayerVersion(expressInstallVersion))
		{
			$("#videoPlayer").flash({
				swf: "/lessonviewer/playerProductInstall.swf",
				id: "expressInstall",
				name: "expressInstall",
				width: 700,
				height: 462,
				params: {bgcolor: "#FFFFFF"},
				allowScriptAccess: "sameDomain"
			});
			
			
		}
		else
		{
			document.getElementById("videoPlayer").style.display = "none";
			document.getElementById("noFlash").style.display = "block";
		}
		
		return false;
	}

	if (currentLesson != partId)
	{

		currentLesson = partId;

		var params = {};
			params.bgcolor = "#FFFFFF";
			params.allowFullscreen = "true";
			
		var flashvars = {};
				
		if (partId == "access_denied")
		{
			flashvars.xml = "lesson.xml?denied=true";
		}
		else
		{
			if (!LM2)
			{
				flashvars.xml = "lessono.xml?u=" + partId;
			}
			else
			{
				flashvars.xml = "lesson.xml?u=" + settingsPrefix + "-" + partId;
			}
		}

		params.flashvars = flashvars;

		$("#videoPlayer").flash({
			name: "videoPlayerName",
			id: "videoPlayerId",
			swf: "/lessonviewer/videoPlayer" + gmcPlayerVersion + ".swf",
			width: 700,
			height: 462,
			params: params,
			allowScriptAccess: "always"
		});				
		
		videoPlayer = thisMovie("videoPlayerId");
		
		setTimeout("focusFlash()", 500);
		
		if (!first)
		{					
			var url, file;
			if (LM2)
			{
				url = "/lessonviewer/tabs/lessondetails/lesson" + settingsPrefix + ".php";
			}
			else
			{
				url = "/lessonviewer/tabs/lessondetails/lesson.php";
			}

			if (LM2)
			{
				file = partId;
			}
			else
			{
				var tmp = partId.split("-");
				var file = tmp[1];
			}
			
			$.ajax({ 
				type: "GET",
				url: url,
				data: {
					ajax: "true", 
					id: lessonId,
					file: file
				}, 
				success: function(response)
				{ 
					target = document.getElementById("tabBox_lessondetails_content_0");
					target.innerHTML = response;
					tabBoxChangeTab("tabBox_lessondetails", 0);
				} 
			}); 
		}
	}		
}

function thisMovie(movieName)
{
	if (navigator.appName.indexOf("Microsoft") != -1)
	{
		return window[movieName];
	}
	else
	{
		return document[movieName];
	}
}

function showLessonClip(partId, first, free, num)
{
	if (!num)
	{
		num = 0;
	}
	var i = 0;
	while(document.getElementById("lessonPartThumb"+i))
	{
			var element = document.getElementById("lessonPartThumb"+i);
			if (i == num){
				if (element.className.indexOf("freePart") != -1){
					var classT = "lessonPartThumb freePart lessonPartThumbSelected";
				}
				else
				{
					var classT = "lessonPartThumb lessonPartThumbSelected";
				}	
				element.className = classT;
			}
			else
			{
				if (element.className == "lessonPartThumb freePart" || element.className == "lessonPartThumb freePart lessonPartThumbSelected")
				{
					var classT = "lessonPartThumb freePart";
				}
				else
				{
					var classT = "lessonPartThumb";
				}
					
				element.className = classT;
			}
		
		i++;
	}
	
	if (currentLesson != partId)
	{

		if (!first && !free && access_granted == false)
		{ // try to login
					
			var date = new Date();
			
			if (date.getTime() < lastLoginRequest + 200) // check if last check was less than 2 secs ago to prevent double request
			{
				return false;
			}
									
			lastLoginRequest = date.getTime();
								
			$.ajax({
				type: "GET",
				url: "/members-only-loginlm2.php",
				error: function(e)
				{
					loadPlayer("access_denied", false);
					access_denied = true;
				},
				success: function(response)
				{
					access_granted = true;
					loadPlayer(partId, first);
				}
			});

		}
		else
		{ // access not needed	
			loadPlayer(partId, first, num);
		}
	}			
}

function selectPart(part)
{
	document.getElementById("lessonPartThumb"+part).onclick();
}

function focusFlash()
{
	videoPlayer.focus();
}



document.onkeydown = function(event)
{
	if (event)
	{
		if(event.keyCode == 17)
		{
			ctrlIsDown = true;
			ctrlTimeout = setTimeout("ctrlTimeoutF();", 1000);
		}
	}
}

document.onkeyup = function(event)
{
	if(event.keyCode == 17)
	{
		ctrlIsDown = false;
		clearTimeout(ctrlTimeout);
	}
}

function ctrlTimeoutF()
{
	ctrlIsDown = false;
}





function listenToTextBoxes()
{


	$('input,textarea').focus(function() 
	{ 
		currentFocus = this; 
	}).blur(function()
	{ 
		currentFocus = null; 
	});


}

$(function()
{

	listenToTextBoxes();

});

$(document).ready(function()
{
	showLessonClip(firstPart, true);	

});

$(document).keydown(function(event) // send key codes to flash as backup if focus is lost
{ 

	if(!ctrlIsDown){
		if (currentFocus == null){ // send key codes only if a textarea or input field does not have focus
			if ((event.keyCode >= 96 && event.keyCode <= 105) || (event.keyCode >= 48 && event.keyCode <= 57)){
				if (event.keyCode < 96)
					var part = event.keyCode - 48;
				else
					var part = event.keyCode - 96;
				selectPart(part);
				return false;
			}
			var keyCodes = new Array(0, 32, 88, 37, 39, 70, 77); // catch whese key codes (array must start with 0)
	
			if (jQuery.inArray(event.keyCode, keyCodes) > 0)
			{
				if (event.keyCode == 70)
				{ // hack for giving window enough focus to allow fullscreen
					window.blur();
					window.focus();
				}
				videoPlayer.focus();

				if (navigator.appName != "Microsoft Internet Explorer")
				{
					videoPlayer.sendToActionScript(event.keyCode); // does not work in IE
				}
				
				return false;
			}
		}
	}
	
});