
var isInternetExplorer = navigator.appName.indexOf("Microsoft") != -1;
var tiempo = 0
var intervalo
// Handle all the FSCommand messages in a Flash movie.
function FlashLoad_DoFSCommand(command,args) {
	//var LoadObj = isInternetExplorer ? document.all.FlashLoad : document.FlashLoad;	
	switch(command)
	{
		case "comprobarconexion":
			var resp= mm_adl_API.LMSGetValue("cmi.suspend_data") 					
			document.FlashLoad.SetVariable("conectado",resp)			
			break;
		case "exit":			
			comprobarestadoventana();
			break;
		case "cerrar":	
			cerrarventana();
			break;
		case "encontrarAPI":
			obtenAPI();
			break;
		case "guardartrazacurso":			
			mm_adl_API.LMSSetValue("cmi.suspend_data",args) 					
			obtenererror()
			break;
		case "obtenertraza":
			var traza= mm_adl_API.LMSGetValue("cmi.suspend_data") 			
			document.FlashLoad.SetVariable("sttrazascorm",traza)
			obtenererror();
			break;	
		case "GetEstadoLeccion":
			var estado= mm_adl_API.LMSGetValue("cmi.core.lesson_status");
			document.FlashLoad.SetVariable("stestadoleccion",estado);
			//alert("Se obtiene lesson_status: "+estado);
			obtenererror();			
			break;
		case "SetEstadoLeccion":
			var  resp = mm_adl_API.LMSSetValue("cmi.core.lesson_status",args);
			//alert("Se cambia lesson_status: " + args + "\nRespuesta:" + resp)
			obtenererror();
			break;
		case "idalumno":			
			obtenerAlumno();
			break;	
		case "nombreAlumno":	
			obtenerNombre();
			break;	
		case "nomleccion":
			obtenerLeccion();
			break;
		case "personaje":			
			mm_adl_API.LMSSetValue("cmi.core.lesson_location",args)	
			obtenererror()
			break;	
		case "obtenerpersonaje":			
			var personajeteacher = mm_adl_API.LMSGetValue("cmi.core.lesson_location");
			document.FlashLoad.SetVariable("stpersonaje",personajeteacher);
			obtenererror();
			break;
		case "alert":
			alert(args)
			break;							
		default:
			alert("Error javascript  El command " + command +" enviado por Flash no coincide con ninguno implementado")
	}
	
}
function cerramos() {	
	var preview = document.FlashLoad.GetVariable("bopreview")	
	if (preview=="false")	
	{
		var settime = calculartiempo();	
		mm_adl_API.LMSSetValue("cmi.core.session_time",settime);			
		mm_adl_API.LMSSetValue("cmi.core.exit","suspend");			
		mm_adlOnunload();
	}
}

function cronotiempo (){
	intervalo = window.setInterval(cuentaT,1000);	
}
function cuentaT(){
	tiempo++;
}

function calculartiempo() {	
	var nhoras = 0;
	var nminutos= Math.floor(tiempo/60);
	if (nminutos>=60 ) {
		nhoras = Math.floor(nminutos/60);
		var nminutos = nminutos-(60*nhoras);
	}
	var nresto = tiempo-(60*nminutos);	
	var sttiempo = comprobarceros(String(nhoras),"horas")+":"+comprobarceros(String(nminutos),"minutos")+":"+comprobarceros(String(nresto),"segundos");
	return sttiempo;	
}

function comprobarceros (num,tipo) {	
	switch (tipo)
	{
		case "horas":	
			var result = rellenarceros(num,4-num.length);	 	
			return result 
			break;
		case "minutos":
		case "segundos":
			var result = rellenarceros(num,2-num.length);			
			return result
			break;		
	}		
}
function rellenarceros (numero,numceros){
	switch(numceros)
	{
		case 1:
			return "0"+numero;
			break;
		case 2:
			return "00"+numero;
			break;
		case 3:
			return "000"+numero;
			break;
		case 4:
			return "0000"+numero;		
			break;
		case 0:
			return numero;
			break;
	}	
}

function comprobarestadoventana(){
	var preview = document.FlashLoad.GetVariable("bopreview")	
	if (preview== "true")	
	{
	   var ventana = window.self
	   ventana.opener = window.self
           ventana.close();
	}else{
	    cerramos();
	    top.close();
	}

}
function mandarURL() {
   var opciones="left=100,top=100,width=250,height=150"; 
   mi_ventana = window.open("cerrarPreview","",opciones); 
}
// Hook for Internet Explorer.
if (navigator.appName && navigator.appName.indexOf("Microsoft") != -1 && navigator.userAgent.indexOf("Windows") != -1 && navigator.userAgent.indexOf("Windows 3.1") == -1) {
	document.write('<script language=\"VBScript\"\>\n');
	document.write('On Error Resume Next\n');
	document.write('Sub FlashLoad_FSCommand(ByVal command, ByVal args)\n');
	document.write('	Call FlashLoad_DoFSCommand(command, args)\n');
	document.write('End Sub\n');
	document.write('</script\>\n');
}

//////////////////FUNCIONES QUE UTILIZA FLASH PARA PODER OBTENER DATOS///////////////////
function cerrarventana ()
{
	if (confirm("¿Está seguro que desea salir de Teacher?"))		
	{
		comprobarestadoventana();
	}	

}
function obtenererror()
{
	var diagnostic = mm_adl_API.LMSGetDiagnostic("")
	document.FlashLoad.SetVariable("diagnosticoerror",diagnostic )	
	var iderror= mm_adl_API.LMSGetLastError()	
	document.FlashLoad.SetVariable("sterror",iderror)					
}

function obtenAPI()
{	
	mm_getAPI();
}
function obtenerNombre()
{	
	var nom= mm_adl_API.LMSGetValue("cmi.core.student_name") 			
	document.FlashLoad.SetVariable("stnombreAlumno",nom)
	obtenererror()
}
function obtenerAlumno()
{	
	var idalumno = mm_adl_API.LMSGetValue("cmi.core.student_id") 		
	document.FlashLoad.SetVariable("stidalumno",idalumno)	
	obtenererror()
}
function obtenerLeccion()
{	
	var tipo= mm_adl_API.LMSGetValue("cmi.launch_data") 	
	document.FlashLoad.SetVariable("stnomleccion",tipo)	
	obtenererror()
}

/////////////////////////////////////////////////////////////////////////////////////////////////

// define global var as handle to API object
var mm_adl_API = null;



// returns LMS API object (or null if not found)
function findAPI(win)
{
  // look in this window
  if (typeof(win) != 'undefined' ? typeof(win.API) != 'undefined' : false)
  {
    if (win.API != null )  return win.API;
  }
  // look in this window's frameset kin (except opener)
  if (win.frames.length > 0)  for (var i = 0 ; i < win.frames.length ; i++);
  {
    if (typeof(win.frames[i]) != 'undefined' ? typeof(win.frames[i].API) != 'undefined' : false)
    {
	     if (win.frames[i].API != null)  return win.frames[i].API;
    }
  }  
  return null;

}

// mm_getAPI, which calls findAPI as needed
function mm_getAPI()
{
  var myAPI = null;
  var tries = 0, triesMax = 500;
  while (tries < triesMax && myAPI == null)
  {   
    myAPI = findAPI(window);
    if (myAPI == null && typeof(window.parent) != 'undefined') myAPI = findAPI(window.parent)
    if (myAPI == null && typeof(window.top) != 'undefined') myAPI = findAPI(window.top);
    if (myAPI == null && typeof(window.opener) != 'undefined') if (window.opener != null && !window.opener.closed) myAPI = findAPI(window.opener);
    tries++;
  }     
  if (myAPI == null || myAPI == 'undefined')
  {
    window.status = 'API not found';      
    window.close()
    top.close() 
    document.FlashLoad.SetVariable("stAPIencontrada","false")
  }
  else
  {
    mm_adl_API = myAPI;               
    estado = mm_adl_API.LMSInitialize("");        
    window.status = 'API found'     
    document.FlashLoad.SetVariable("stAPIencontrada","true")
  }
}

// call LMSInitialize()
function mm_adlOnload()
{
  if (mm_adl_API != null)
  {
    mm_adl_API.LMSInitialize("");    
  }
}

// call LMSFinish()
function mm_adlOnunload()
{
  if (mm_adl_API != null)
  {
    mm_adl_API.LMSCommit("");
    mm_adl_API.LMSFinish("");
  }
}

