File "print.js"

Full path: /var/www/vhosts/msproyectoscloud.cl/siadrecursos.msproyectoscloud.cl/RECURSOS/recursos.siadspsminsal.cl/REAS/M4/story_content/WebObjects/6Y9JRuq6pNy/js/activities/TEST/print.js
File size: 8.93 KiB (9140 bytes)
MIME-type: text/plain
Charset: utf-8

Download   Open   Back

//==========================================================================================================================
//Funciones que vamos a utilizar para la versión imprimible del crucigrama (Propio del Test)
//==========================================================================================================================

//Cuando se carga la página imprimible, lanzamos la generación de la version para imprimir

window.onload = function(){
	//Esta variable será la ruta para los recursos necesarios
	rutaRecursos="/actividades/"+$(document).data("idActividad")+"/";rutaRecursosDownl="";
	//rutaRecursos = "";
	
	cargarDatosPrint();
	}

//Carga los datos necesarios desde el fichero XML de la actividad
  
    function cargarDatosPrint()
	{
		xmlDoc = cargarXMLJS();
		if ((xmlDoc != null)&&(xmlDoc != undefined))
		{
			//Extraemos los datos del XML para la versión de impresión
			try{extraerDatosPrint();}
			catch(e){
				errorXML();
				}
			//Creamos la versión de impresión
			crearPrint();
		}		
		else
		{
			errorXML();
		}					
	}
	
//Resgistra el error cuando no se puede leer el XML

	function errorXML()
	{
		$.get("/avisoEstructuraXml.php");
		$("#lienzo").html("<div id='errorXML'>"+$(document).data("loadingXmlError")+"</div>");
	}
				
//Carga el fichero XML
	
	function cargarXMLJS() {
		return jQuery.parseXML(DatosActividad);
	}

//Extraemos los datos necesarios de XML para la versión imprimible
	
	function extraerDatosPrint()
	{
	    try{
			origen_recursos = xmlDoc.getElementsByTagName("origen_recursos")[0].childNodes[0].nodeValue;
		}catch(e)
		{
			origen_recursos="";
		}
        
		if(origen_recursos){
			rutaRecursos = origen_recursos;
		}
		autor = xmlDoc.getElementsByTagName("autor")[0].childNodes[0].nodeValue;
		titulo = xmlDoc.getElementsByTagName("tituloActividad")[0].childNodes[0].nodeValue;
				
		orden_preguntas = xmlDoc.getElementsByTagName("orden_preguntas")[0].childNodes[0].nodeValue;
		numPreguntasTotal = xmlDoc.getElementsByTagName("numero_preguntas_totales")[0].childNodes[0].nodeValue;
		numPreguntasTotal = parseInt(numPreguntasTotal);
		numPreguntas = xmlDoc.getElementsByTagName("numero_preguntas_visibles")[0].childNodes[0].nodeValue;
		numPreguntas = parseInt(numPreguntas);
		 
		preguntas = xmlDoc.getElementsByTagName("pregunta");
  		
  		aPreguntas = new Array();
		aRespuestas = new Array();
		
		var aceptar = 0;
		var posicion = 0;
		var colocadas = [];
		
		for(m=0;m<numPreguntasTotal;m++)
		{
			if(orden_preguntas == "ALEATORIO")
			{
				aceptar = 0;
				while(aceptar == 0)
				{
					posicion = Math.floor((Math.random()*1000));
					if(posicion < numPreguntasTotal)
					{
						aceptar=1;
						for(k=0;k<colocadas.length;k++)
						{
							if(colocadas[k] == posicion)
							{
								aceptar=0;
							}
						}
					}
				}
				colocadas.push(posicion);
				i = posicion;
			}
			else
			{
				i = m;
			}
			
			var enunciadoP = preguntas[i].getElementsByTagName("enunciado")[0];
			
			var aPreg = new Array();
			
			aPreg["tipo"] = preguntas[i].attributes.getNamedItem("tipo").value;
			aPreg["obligatoria"] = preguntas[i].attributes.getNamedItem("obligatoria").value;
			
			aPreg["pregunta"] = enunciadoP.childNodes[0].nodeValue;
			aPreg["tipoE"] = enunciadoP.attributes.getNamedItem("tipo").value;
			aPreg["video"] = enunciadoP.attributes.getNamedItem("video").value;
			aPreg["videoT"] = enunciadoP.attributes.getNamedItem("videoStartTime").value;
			aPreg["audio"] = enunciadoP.attributes.getNamedItem("audio").value;
			if(enunciadoP.attributes.getNamedItem("image") != undefined) aPreg["imagen"] = enunciadoP.attributes.getNamedItem("image").value;
			else aPreg["imagen"] = "";
			
			aPreguntas[m] = aPreg;
			
			var respuestas = preguntas[i].getElementsByTagName("opciones")[0];
			var opciones = respuestas.getElementsByTagName("opcion");
			
			var aResp = new Array();
			
			for(j=0;j<opciones.length;j++)
			{
				var aRespI = new Array();
				
				aRespI["respuesta"] = opciones[j].childNodes[0].nodeValue;
				aRespI["correcta"] = opciones[j].attributes.getNamedItem("resp").value;
				if(opciones[j].attributes.getNamedItem("image") != undefined) aRespI["imagen"] = opciones[j].attributes.getNamedItem("image").value;
				else aRespI["imagen"] = "";
				
				aResp[j] = aRespI;
			}
			
			aRespuestas[m] = aResp;
		}
  		
  		var idioma = xmlDoc.getElementsByTagName("idioma")[0];
  		txtAutor = idioma.getElementsByTagName("txtAutor")[0].childNodes[0].nodeValue;
  		txtPistaAudio = "Pista de audio";
		txtPistaVideo = "Pista de video";
	}

//Creamos la versión imprimible

//Creamos las preguntas de nuestra aplicacion

	function crearPrint()
	{
		
		try{
			origen_recursos = xmlDoc.getElementsByTagName("origen_recursos")[0].childNodes[0].nodeValue;
		}catch(e)
		{
			origen_recursos="";
		}
		
		if(origen_recursos){
			rutaRecursos = origen_recursos;
		}
		
		$("#txtTitAct").html(titulo);
		$("#textoAutor").html(txtAutor+":");
		$("#nombreAutor").html(autor);
		
		for(i=0;i<numPreguntas;i++)
		{
			if(i<10) var ix = "00"+i;
            else if(i<100) var ix = "0"+i;
			else var ix = i;
			
			//Creamos el cuadro para cada una de las preguntas		
			var divPregunta = $("<div>",
			{
				id: "pregunta"+ix,
				"class": "preguntas"
			});
			$('#lienzo').append(divPregunta);
			
			var divEnunciadoPregunta = $("<div>",
			{
				id: "enPregunta"+ix,
				"class": "enPreguntas"
			});
			$("#pregunta"+ix).append(divEnunciadoPregunta);
			
			var divImagenEnunciado = $("<div>",
			{
				id: "imPregunta"+ix,
				"class": "imPreguntas"
			});
			$("#pregunta"+ix).append(divImagenEnunciado);
			
			var divInfo = $("<div>",
			{
				id: "info"+ix,
				"class": "infos"
			});
			$("#pregunta"+ix).append(divInfo);
			
			var divRespuestas = $("<div>",
			{
				id: "respuestas"+ix,
				"class": "respuestas"
			});
			$("#pregunta"+ix).append(divRespuestas);
		}
		
		cargarElementosPrint();
	}

//Cargamos los diferentes elementos de cada pregunta en función del tipo
	
	function cargarElementosPrint()
	{	
		for(k=0;k<numPreguntas;k++)
		{
			if(k<10) var kx = "00"+k;
            else if(k<100) var kx = "0"+k;
			else var kx = k;
				
			if(aPreguntas[k]["imagen"] == "")
			{
				$("#imPregunta"+kx).hide();
			}
			else
			{	
				var rutaImagen = rutaRecursos + aPreguntas[k]["imagen"];
				var imgAmplia = "<img id='pistaImagen' src='"+rutaImagen+"'>";
				$("#imPregunta"+kx).html(imgAmplia);
			}
				
			if(aPreguntas[k]["tipoE"] == "texto")
			{
				$("#enPregunta"+kx).html("<span class='numPreguntas'>"+(k+1)+". </span>"+aPreguntas[k]["pregunta"]);
			}
			if(aPreguntas[k]["tipoE"] == "video")
			{	
				var cadena = "<span class='numPreguntas'>"+(k+1)+". </span>"+"<span class='pistaPrint'>["+txtPistaVideo+"] </span>";
				cadena += "  "+aPreguntas[k]["pregunta"];
				$("#enPregunta"+kx).html(cadena);	
			}
			if(aPreguntas[k]["tipoE"] == "ambos")
			{
				var cadena = "<span class='numPreguntas'>"+(k+1)+". </span>"+"<span class='pistaPrint'>["+txtPistaAudio+"] </span>";
				cadena += "  "+aPreguntas[k]["pregunta"];
				$("#enPregunta"+kx).html(cadena);
			}
				
			cargarRespuestasPrint(k,aPreguntas[k]["tipo"]);				 
		}
	}
	
//Cargamos las respuestas de cada pregunta

	function cargarRespuestasPrint(k,tipo)
	{
		if(k<10) var kx = "00"+k;
        else if(k<100) var kx = "0"+k;
		else var kx = k;
				
		if(tipo == "unica")
		{
			for(m=0;m<aRespuestas[k].length;m++)
			{
				if(m<10) var mx = "00"+m;
                else if(m<100) var mx = "0"+m;
				else var mx = m;
				
				var divRespuesta = $("<div>",
				{
					id: "respuesta"+kx+"_"+mx,
					"class": "respuesta"
				});
				$("#respuestas"+kx).append(divRespuesta);
				
				var rutaImagen = rutaRecursos + aRespuestas[k][m]["imagen"];
				var cadena = "<input type='radio' id='resp"+kx+"_"+mx+"' name='respuesta"+kx+"'> ";
				if(aRespuestas[k][m]["imagen"] != "") cadena += "<img src='"+rutaImagen+"' class='imgRespuesta'> ";
				cadena += aRespuestas[k][m]["respuesta"];
				
				$("#respuesta"+kx+"_"+mx).html($("#respuesta"+kx+"_"+mx).html() + cadena);
			}	
		}
		if(tipo == "multiple")
		{
			var cadena = "";
			for(m=0;m<aRespuestas[k].length;m++)
			{
				if(m<10) var mx = "00"+m;
                else if(m<100) var mx = "0"+m;
				else var mx = m;
				
				var divRespuesta = $("<div>",
				{
					id: "respuesta"+kx+"_"+mx,
					"class": "respuesta"
				});
				$("#respuestas"+kx).append(divRespuesta);
				
				var rutaImagen = rutaRecursos + aRespuestas[k][m]["imagen"];
				var cadena = "<input type='checkbox' id='resp"+kx+"_"+mx+"' name='respuesta"+kx+"_"+mx+"'> ";
				if(aRespuestas[k][m]["imagen"] != "") cadena += "<img src='"+rutaImagen+"' class='imgRespuesta'> ";
				cadena += aRespuestas[k][m]["respuesta"];
				
				$("#respuesta"+kx+"_"+mx).html($("#respuesta"+kx+"_"+mx).html() + cadena);
			}
			
		}
		if(tipo == "escrita")
		{
			$("#respuestas"+kx).html("<input id='resp"+kx+"_00' type='text' class='inputs'>");
		}
		if(tipo == "escrita amplia")
		{
			$("#respuestas"+kx).html("<textarea id='resp"+kx+"_00' class='inputs' rows='16' cols='40'></textarea>");
		}
	}