/* Archivo de funciones utilizada por Güeb, programa creado por Pablo Sanz Martín.
Fecha: Febrero de 2002

1.0.0.5
Útima actualización: 02.03.02
- Añadida la base a parseInt(x, base) para soslayar el error que se producía al tener más de 8 relaciones. Por alguna razón que no entiendo parece que el cálculo de parseInt es en base octal. Añadiéndole el 10 se ha solucionado. 
- Eliminados los parámetros de setSols. No son necesarios para nada.	
- Comentada la línea
		if (SolucionInSitu == 2) HideCheckImages();
	en ShowSolsInSitu para que se pueda ver la corrección con las soluciones
		

Funciones:
GetNota(f)	Calcula las preguntas contestadas, acertadas, no contestadas, erróneas
y el total de un ejercicio de selección múltiple con radiobuttons.

resultado(si, no, total, leyenda, msgTanca)	Muestra el resultado del ejercicio en pantalla

chk(f)	Calcula nº de opciones seleccionadas en un SELECT. (versión antigua)

chksele(AValue, leyenda, msgTanca)	Calcula nº de opciones seleccionadas en un SELECT.
showSols(valor) 	Muestra las soluciones.
chkedits(valor)	Calcula nº de opciones seleccionadas en un TEXT.
showSolsEdits() 	Muestra las soluciones de EDITS.
ShowComentarios() Muestra las soluciones de comentarios.
showSolsRadio(f)	Muestra las soluciones de RADIOS.
BuidaOptions(f)	Vacía las opciones. Resetea.
InsertaObjeto()	Determina si el video se inserta con EMBED o simplemente se referencia con HREF.
function showitem(url)	Muestra una ventana con una información puntual sobre un ítem
preLoadImages(....) Precarga las imágenes explicitadas como argumentos
chekItem() Evalua si una sola respuesta es correcta.
function mail2(subject, adresa, texto)  //Función que envía el texto del cuadro de texto al tutor
checkSopa()	{

*/
var aqui = false;


var PorCiento = 0;	//Porcentaje de aprobado
var NumOfTries = 0;	//Número de intentos por ejercicio
var TempsUp = false	//Determina si se ha terminado el tiempo para un ejercicio

var solucion;		//Matriz que contiene el tablero con las soluciones de las sopas

var PathGueb = ''; //Vable que contiene el path donde se halla gueb.js

//Determina la multiplicidad de soluciones

//Vbles de control de resultados añadidas para hacer compatibles los //ejercicios de versiones anteriores

var NotaPase;	//Vble que determina la nota para pasar de un ejercicio a otro
var HayNotaPase = false; //Vble que determina si hay NotaPase o no
var SolucionInSitu = -1;	//Vble que bifurca la ejecución, en BuidaOptios, hacia HideCheckImages donde se eliminan los gifs de corrección. Ha de valer 2

//imagenes precargadas
var imgOk=new Image();
var imgBad=new Image();
var imgQ=new Image();
var imgTotal=new Image();

var win=null;	//ventana de soluciones de radio
var wind=null;
var wd=null; //ventana de sols
var wincom=null; //ventana de comentarios

//Precarga las imágenes de los iconos de Ok, Bad y ?
function preLoadImages(imOk, imBad, imQ)	{
	
	imgOk.src= PathGueb + 'ok.gif';
	imgBad.src=PathGueb + 'mal.gif';
	imgQ.src = PathGueb + 'neutral.gif';
	imgTotal.src = PathGueb + 'total.gif';

}

function GetNota(f, leyenda, msgTanca)   {
	var suma=0;
	var total=0;
	var NoContestadas=0;
	var error=0;
	var temp='';
	
	for (i=0;i<f.elements.length;i++)	{
		if (f.elements[i].type=="radio")	{
			if(temp!=f.elements[i].name) {
				total++;
				temp=f.elements[i].name;
			}
			if(f.elements[i].checked)	{
				if(f.elements[i].value=="si") suma++
				else error++;
			}
			else {
				if(temp!=f.elements[i].name) NoContestadas++;
			}
			
		}
	}
	NoContestadas=total-suma-error;
	
	resultado(suma, error, total, leyenda, msgTanca);
	return false;
}


function chk(f)   {
	var suma=0;
	for (i=0;i<f.elements.length;i++)
	if ((f.elements[i].type=="select-one") &&
		(f.elements[i].value=="si") &&
	(f.elements[i].checked)) suma++;
	
	alert("Correctes: "+suma);
	return false;
}

function chksele(AValue, leyenda, msgTanca)	{
	
	var suma=0;
	var total=0;
	var nosabe=0;
	var error=0;
	
	NumOfTries++;		//Incremento el número de intentos ojo!!!
	
	for(i=0;i<AValue.elements.length; i++) {
		if (AValue.elements[i].type=='select-one') {
			total++;
			if(AValue.elements[i].selectedIndex==0) nosabe++;
			for(l=0; l<AValue.elements[i].options.length; l++) {
				if ((AValue.elements[i].options[l].selected) &&
				(AValue.elements[i].options[l].value=="si")) suma++;
			}
		}
	}
	error=total-suma-nosabe;
	
	resultado(suma, error, total, leyenda, msgTanca);
}

function showSols(valor, leyenda, msgTanca, msgSols, leyComent) {
	
	var navegador=QueNavegador();
	
	if(leyComent==null) leyComent='...';
	
	if (msgSols == '') {}
	else {
		if (!confirm(msgSols) && (wd==null || wd.closed)) return;
	}

//Muestra Soluciones sobre elementos del form
ShowSolsInSitu();

var sal = true;
for(var i=1; i < Comentarios.length; i++)
		if(Comentarios[i] != '') sal = false;

if(sal==true) {}
else {
wd=window.open("", "hints", 			"scrollbars=1,toolbar=0,resizable=1,width=400,innerWidth=400,height=300,innerHeight=300,left=10,top=10")
	
	wd.document.open('text/html', 'replace');
	wd.document.write("<HEAD><TITLE>"+leyenda+"</TITLE></HEAD><BODY onBlur='self.close()'>");
	
	wd.document.write("<CENTER><TABLE BORDER=1 CELLPADDING=5>");
	
	wd.document.write("<TH>"+leyenda+"</TH><TH>"+leyComent+"</TH>");
	
	for(i=0;i<valor.elements.length; i++) {
		if (valor.elements[i].type=='select-one') {
			for(l=0; l<valor.elements[i].options.length; l++) {
				if (valor.elements[i].options[l].value=="si")
				wd.document.write("<TR><TD BGCOLOR='#9BCDB5'>"+(i+1)+'.- '+ 						valor.elements[i].options[l].text+
				"</TD><TD BGCOLOR='#CD9C9B'>"+Comentarios[i+1]+"</TD></TR>")
			}
		}
	}
	
	wd.document.write("</CENTER></TABLE>");
	
	wd.document.write('<CENTER><FORM><INPUT TYPE=BUTTON NAME=BUTTON VALUE="'+msgTanca+'" onClick="self.close(); wd=null"></FORM></CENTER>');
	wd.document.write("</BODY>");
	wd.document.write("</HTML>");
	wd.document.close();
}
}

function chkedits(valor, leyenda, msgTanca)	{
	
	var suma=0;
	var total=0;
	var nosabe=0;
	var error=0;
	var temp='';
	
	var contador=0;
	var resultados= new Array();
	
	//Guardo las soluciones en la matriz resultados
	for(var i = 0; i < document.forms[0].elements.length; i++) {
		if ((document.forms[0].elements[i].type != 'button') &&
			(document.forms[0].elements[i].type != 'hidden') && 
			//Esta línea garantiza que la inserción de un vídeo y/o de un elemento
			//de audio no generen un error. Éstos son considerados como elementos
			//del 'form' y generan error al ser 'undefined'
			(document.forms[0].elements[i].type != undefined)) {
			resultados[contador] = document.forms[0].elements[i].value;
			contador++;
		}
	}

	contador = 0;
	for(i = 0; i < resultados.length; i++)	{
		contador = i+1;
		
		if(Bidimensional[contador] == 0) {
			if (resultados[i].toUpperCase() == Sols[contador].toUpperCase()) {
				suma++;
			}
			else {
				if(resultados[i].indexOf('_'+(i+1))!=-1) nosabe++;
				else {
					if (resultados[i] == '') nosabe++
					else error++;
				}
			}
		}
		//Si hay más de una respuesta.
		else {
			
			//incremento nosabe y lo decremento más adelante si resulta que lo sabe, si no ya está 				//incrementado
			nosabe++;
			
			for(var l = 0; l < Bidimensional[contador]+1; l++) {
				if (resultados[i] == Sols[contador][l]) {
					suma++;
					
					//Lo decremento si lo sabe
					nosabe--;
					break;
				}
				else {
					if (resultados[i] == '') {}//nosabe++
					else {
						if(resultados[i].indexOf('_'+i)!=-1) {}//nosabe++
					}
				}
			}
		}
	}
	
	total = suma + nosabe + error;
	resultado(suma, error, total, leyenda, msgTanca);
}

function showSolsEdits(leyenda, msgTanca, msgSols, leyComent, inSitu) {
	
	var soluciones="";
	var comenta="";
	var navegador=QueNavegador();
	
	if(leyComent==null) leyComent='...';
	
	if (msgSols == '') {}
	else {
		if (!confirm(msgSols) && (win==null || win.closed)) return;
	}

//Muestra las soluciones sobre los elementos del form
ShowSolsInSitu();
var sal = true;
for(var i=1; i < Comentarios.length; i++)
		if(Comentarios[i] != '') sal = false;

if(sal==true) {}
else {
	win=window.open("", "hints", 				"scrollbars=1,toolbar=0,resizable=1,width=400,innerWidth=400,height=300,innerHeight=300,left=10,top=10");
	
	win.document.open('text/html', 'replace');
	win.document.write("<HTML>");
	win.document.write("<HEAD><TITLE>"+leyenda+"</TITLE></HEAD>");
	win.document.write("<BODY BGCOLOR=white onBlur='self.close()'>");
	win.document.write("<CENTER><TABLE BORDER=1 cellpadding=5 >");
	
	win.document.write("<TH>"+leyenda+"</TH><TH>"+leyComent+"</TH>");
	
	for(i=1;i<Sols.length; i++) {
		if(Bidimensional[i]==0)
		win.document.write("<TR><TD BGCOLOR='#9BCDB5'>"+i+'.- '+ 					Sols[i]+"</TD><TD BGCOLOR='#CD9C9B'>"+Comentarios[i]+"</TD></TR>")
		else
		win.document.write("<TR><TD BGCOLOR='#9BCDB5'>"+i+'.- '+ 					Sols[i].join()+"</TD><TD BGCOLOR='#CD9C9B'>"+ 					Comentarios[i]+"</TD></TR>");
	}
	
	win.document.write("</CENTER></TABLE>");
	
	win.document.write('<CENTER><FORM><INPUT TYPE=BUTTON NAME=BUTTON 		VALUE="'+msgTanca+'" onClick="self.close()"></FORM></CENTER>');
	
	
	win.document.write("</BODY>");
	win.document.write("</HTML>");
	win.document.close();
}
}


//Muestra las soluciones InSitu
function ShowSolsInSitu() {

	BuidaOptions();

//	if (SolucionInSitu == 2) HideCheckImages();

	var contador = 1;
	for(var t = 0; t < document.forms[0].elements.length; t ++)	{
		//FORATS Y TRANSFORMACIONES
		if(document.forms[0].elements[t].type == 'text') {
			document.forms[0].elements[t].value = Sols[contador];
			contador++;
		}
		//DESPLEGABLES
		else {
			if(document.forms[0].elements[t].type == 'select-one') {
				for(var l=0; l<document.forms[0].elements[t].options.length; l++) {
					if (document.forms[0].elements[t].options[l].value=="si")
						document.forms[0].elements[t].selectedIndex = l;
					contador++;
				}
			}
			else	{
				//RADIO BUTTONS
				if(document.forms[0].elements[t].type == 'radio') {
					for(var l = 0; l < document.forms[0].length; l++) {
						if(document.forms[0].elements[t].value == 'si') 							document.forms[0].elements[t].checked = true;
					}
				}
				else {
					//CHECK BOXES
					if(document.forms[0].elements[t].type == 'checkbox') {
						for(var l = 0; l < document.forms[0].length; l++) {
							if(document.forms[0].elements[t].value == 'si') 
								document.forms[0].elements[t].checked = true;
						}
					}
				}
			}
		}
	}
}

function ShowComentarios(comentarioHTML, msgTanca) {
	
	var Comenta="";
	var leyenda = '';
	var wincom;
	
	var navegador=QueNavegador();
	
	wincom=window.open("", "hints", 			"scrollbars=1,resizable=1,width=400,innerWidth=400,height=400,innerHeight=400,left=10,top=10")
	
	wincom.document.open('text/html', 'replace');
	wincom.document.write("<HTML>");
	wincom.document.write("<HEAD><TITLE>"+leyenda+"</TITLE></HEAD>");
	wincom.document.write("<BODY BGCOLOR=#ffff80 onBlur='self.close()'>");
	wincom.document.write("<CENTER><BIG><B>"+leyenda+"</B></BIG></CENTER>");
	
	wincom.document.write(comentarioHTML);
	
	wincom.document.write('<CENTER><FORM><INPUT TYPE=BUTTON NAME=BUTTON VALUE="'+msgTanca+'" onClick="self.close()"></FORM></CENTER>');
	wincom.document.write("</BODY>");
	wincom.document.write("</HTML>");
	wincom.document.close();
}


function showSolsRadio(f, leyenda, msgTanca, msgSols, leyComent)	{
/*Revisar a fondo esta función. No acabo de ver claro la función de los hidden. Probablemente se podría prescindir de ellos o bien recurrir a ellos exclusivamente para realizar la corrección. Igualmente habría que aclarar el IF  del error y el que utiliza la matriz RADIO que NO ESTÁ DEFINIDA
*/
	
	var soluciones="";
	var temp='';
	var numero=0;
	var orden=0;
	var aHidden = new Array();	//contiene los valores de los campos hidden
	var aSols = new Array();		//contiene los valores numéricos de las soluciones
	var hiddenNumber = 0;		//el número de hidden
	var radios = new Array();	//contiene los valores numéricos de las soluciones
	
	
	var navegador = QueNavegador();
	
	if(leyComent == null) leyComent = '...';
	
	if (msgSols == '') {}
	else {
		if (!confirm(msgSols) && (win==null || win.closed)) return;
	}

	//Muestra las soluciones sobre cada elemento del form
	ShowSolsInSitu();

	var sal = true;
	for(var i=1; i < Comentarios.length; i++)
		if(Comentarios[i] != '') sal = false;

	if(sal==true) {}
	else {
		win=window.open("", "hints", "scrollbars=1, toolbar=0, resizable=1, width=400, innerWidth=400, height=300, innerHeight=300, left=10, top=10")
	
		win.document.open('text/html', 'replace');
		win.document.write("<HTML>");
		win.document.write("<HEAD><TITLE>"+leyenda+"</TITLE></HEAD>");
		win.document.write("<BODY onBlur='self.close()'>");
	
		win.document.write("<CENTER><TABLE BORDER=1 cellpadding=5 >");
	
		win.document.write("<TH>"+leyenda+"</TH><TH>"+leyComent+"</TH>");
	
		for(i=0;i<f.elements.length; i++) {
			if(f.elements[i].type=="radio") {
				if(temp!=f.elements[i].name) {
					temp=f.elements[i].name;
					numero++;
					orden=1;
				}
				if(f.elements[i].value=="si") radios[numero] = orden
				else orden++;
			}
			else if(f.elements[i].type=="hidden") {
				aHidden[hiddenNumber] = f.elements[i].value;
				hiddenNumber++;
			}
		}

		if(hiddenNumber == 0)	{
			for (i = 0; i < numero; i++)	{
				win.document.write("<TR><TD BGCOLOR='#9BCDB5'>"+numero+'. '+radio[numero]+
				"</TD><TD BGCOLOR='#CD9C9B'>"+Comentarios[numero]+"</TD></TR>")
			}
		}
		else if(hiddenNumber == numero) {
			for (i = 0; i < numero; i++)	{
				win.document.write("<TR><TD BGCOLOR='#9BCDB5'>"+(i+1)+'. '+aHidden[i]+
				"</TD><TD BGCOLOR='#CD9C9B'>"+Comentarios[i+1]+"</TD></TR>")
			}
		}
		else {
			alert('Error en l\'exercici');
			exit;
		}
		win.document.write("</CENTER></TABLE>");
	
		soluciones='';
		win.document.write('<CENTER><FORM><INPUT TYPE=BUTTON NAME=BUTTON VALUE="' + msgTanca + '" onClick="self.close()"></FORM></CENTER>');
		win.document.write("</BODY>");
		win.document.write("</HTML>");
		win.document.close();
	}
}

//Función que muestra la ventana de resultados
function resultado(si, no, total, leyenda, msgTanca)	{

	var NoContestadas= total-si-no;
	
	PorCiento = Math.abs((si / total) * 100);			//El porcentaje de aprobado
	wind=window.open("", "hints", "scrollbars=1,resizable=0,width=200,innerWidth=200,height=200,innerHeight=200,left=100,top=10");
	
	
	with (wind.document)	{
		
		open("text/html", "replace");
		
		write("<HTML>");
		write("<HEAD><TITLE>"+leyenda+"</TITLE></HEAD>");
		write("<BODY BGCOLOR='white' onBlur='self.close()'>");
		write("<CENTER><BIG><B>"+leyenda+"</B></BIG></CENTER>");
		write("<CENTER><TABLE BORDER=1>");
		write("<TR>");
		write("<TD WIDTH=60><IMG SRC='" + PathGueb + "ok.gif'></TD>");
		write("<TD WIDTH=30 ALIGN='RIGHT'>"+si+"</TD>");
		write("</TR>");
		write("<TR>");
		write("<TD><IMG SRC='" + PathGueb + "mal.gif'></TD>");
		write("<TD WIDTH=30 ALIGN='RIGHT'>"+no+"</TD>");
		write("</TR>");
		write("<TR>");
		write("<TD><IMG SRC='" + PathGueb + "dudas.gif'></TD>");
		write("<TD WIDTH=30 ALIGN='RIGHT'>"+NoContestadas+"</TD>");
		write("</TR>");
		write("<TR>");
		write("<TD><IMG SRC='" + PathGueb + "total.gif'></TD>");
		write("<TD WIDTH=30 ALIGN='RIGHT'>"+total+"</TD>");
		write("</TR>");
		write("<TR>");
		write("</TABLE></CENTER>");
		
		write('<CENTER><FORM>');
		
		write('<INPUT TYPE="BUTTON" NAME="BUTTON" VALUE="'+msgTanca+'" onClick="self.close()">');
		
		write('</FORM></CENTER>');
		write("</BODY>");
		write("</HTML>");
		close();
	}
	
}

function BuidaOptions(f)	{
	
	NumOfTries = 0;		//Pone a cero el número de intentos por ejercicio
	TempsUp = false;	//Pone a falso indicador de tiempo acabado
	
	for(var i=0; i<document.forms[0].elements.length; i++) 	{
		if((document.forms[0].elements[i].type=='text') || (document.forms[0].elements[i].type=='password') || (document.forms[0].elements[i].type=='textarea'))
		document.forms[0].elements[i].value=document.forms[0].elements[i].defaultValue;
		
		if((document.forms[0].elements[i].type=='checkbox') || (document.forms[0].elements[i].type=='radio'))
		if(document.forms[0].elements[i].defaultChecked==false) document.forms[0].elements[i].checked=false;
		
		
		if(document.forms[0].elements[i].type=='select-one')
		document.forms[0].elements[i].options[0].selected=true;
		
	}
	
}

//Soluciones de Caselles
function CheckCheck(f, leyenda, msgTanca)   {
	var suma=0;
	var total=0;
	var NoContestadas=0;
	var error=0;
	var temp='';
	var NomCheck = '';
	var ItemError = 0;
	var ItemSuma = 0;
	
	NumOfTries++;		//Incremento el número de intentos ojo!!!
	
	for (i=0;i<f.elements.length - 1;i++)	{
		if (f.elements[i].type=="checkbox")	{
			if (NomCheck != f.elements[i].name) {
				if (NomCheck == '') {}
				else {
					if ((ItemError > 0) || (ItemSuma = 0)) error++
					else suma++;
				}
				
				NomCheck = f.elements[i].name;
				ItemSuma = 0;
				ItemError = 0;
			}
			
			if(f.elements[i].checked)	{
				if(f.elements[i].value=="si") ItemSuma++
				else ItemError++;
			}
			else {
				if(f.elements[i].value=="si") ItemError++;
				else ItemSuma++;
			}
		}
	}

	if ((ItemError > 0) || (ItemSuma = 0)) error++
	else suma++;
	
 total = suma + error;
	
	resultadoCheck(suma, error, total, leyenda, msgTanca);
	return false;
}

function tron()	{
	var temp = '';
	var artemp = new Array();

	for(var i = 0; i < arguments.length; i++) 
		artemp[i] = arguments[i][0] + '\t' + arguments[i][1];
	
	for(i = 0; i < artemp.length; i++) temp = temp + artemp[i] + '\n';

	alert(temp);
}

function resultadoCheck(si, no, total, leyenda, msgTanca)	{
	
	var NoContestadas= total-si-no;
	var navegador=QueNavegador();
	
	if ((wind==null) || wind.closed)
	wind=window.open("", "hints", 			"scrollbars=1,resizable=0,width=150,innerWidth=150,height=180,innerHeight=180,left=10,top=10")
	
	wind.document.open('text/html', 'replace');
	wind.document.write("<HTML>");
	wind.document.write("<HEAD><TITLE>"+leyenda+"</TITLE></HEAD>");
	wind.document.write("<BODY BGCOLOR='white' onBlur='self.close()'>");
	wind.document.write("<CENTER><BIG><B>"+leyenda+"</B></BIG></CENTER>");
	wind.document.write("<CENTER><TABLE BORDER=1>");
	wind.document.write("<TR>");
	wind.document.write("<TD WIDTH=60><IMG SRC='" + PathGueb + "ok.gif' ></TD>");
	wind.document.write("<TD WIDTH=30 ALIGN='RIGHT'>"+si+"</TD>");
	wind.document.write("</TR>");
	wind.document.write("<TR>");
	wind.document.write("<TD><IMG SRC='" + PathGueb + "mal.gif'></TD>");
	wind.document.write("<TD WIDTH=30 ALIGN='RIGHT'>"+no+"</TD>");
	wind.document.write("</TR>");
	wind.document.write("<TR>");
	wind.document.write("<TD><IMG SRC='" + PathGueb + "total.gif'></TD>");
	wind.document.write("<TD WIDTH=30 ALIGN='RIGHT'>"+total+"</TD>");
	wind.document.write("</TR>");
	wind.document.write("<TR>");
	wind.document.write("</TABLE></CENTER>");
	wind.document.write('<CENTER><FORM><INPUT TYPE=BUTTON NAME=BUTTON VALUE="'+msgTanca+'" onClick="self.close()"></FORM></CENTER>');
	wind.document.write("</BODY>");
	wind.document.write("</HTML>");
	wind.document.close();
}

function showSolsCheck(f, leyenda, msgTanca, msgSols, leyComent)	{
	
	var soluciones="";
	var temp='';
	var numero=0;
	var orden=0;
	
	var navegador=QueNavegador();
	
	NumOfTries++;		//Incremento el número de intentos ojo!!!
	
	if(leyComent==null) leyComent='...';
	
	if (msgSols == '') {}
	else {
		if (!confirm(msgSols) && (win==null || win.closed)) return;
	}

//Muestra las soluciones sobre los elementos del form
ShowSolsInSitu();
var sal = true;
for(var i=1; i < Comentarios.length; i++)
		if(Comentarios[i] != '') sal = false;

if(sal==true) {}
else {
	win=window.open("", "hints", 				"scrollbars=1,resizable=1,iwidth=400,innerWidth=400,height=300,innerHeight=300,left=10,top=10")
	
	win.document.open('text/html', 'replace');
	win.document.write("<HTML>");
	win.document.write("<HEAD><TITLE>"+leyenda+"</TITLE></HEAD>");
	win.document.write("<BODY onBlur='self.close()'>");
	
	win.document.write("<CENTER><TABLE BORDER=1 cellpadding=5 >");
	
	win.document.write("<TH>"+leyenda+"</TH><TH>"+leyComent+"</TH>");
	
	for(i=0;i<f.elements.length; i++) {
		if(f.elements[i].type=="checkbox") {
			numero++;
			temp=f.elements[i].name;
			orden=0;
			while((temp==f.elements[i].name)&&(i<f.elements.length)) {
				orden++;
				if (f.elements[i].value=="si") {
					soluciones=soluciones + orden +', ';
				}
				i++;
			}
			win.document.write("<TR><TD BGCOLOR='#9BCDB5'>"+numero+'. '+soluciones+
			"</TD><TD BGCOLOR='#CD9C9B'>"+Comentarios[numero]+"</TD></TR>")
			soluciones='';
			i--;
		}
	}
	
	win.document.write("</CENTER></TABLE>");
	
	win.document.write('<CENTER><FORM><INPUT TYPE=BUTTON NAME=BUTTON VALUE="'+msgTanca+'" onClick="self.close()"></FORM></CENTER>');
	win.document.write("</BODY>");
	win.document.write("</HTML>");
	win.document.close();
}
}

function QueNavegador()	{
	
	if(navigator.appName=="Netscape" && parseInt(navigator.appVersion)==2) { return "n2"; }
	if(navigator.appName=="Netscape" && parseInt(navigator.appVersion)==3) { return "n3"; }
	if(navigator.appName=="Netscape" && parseInt(navigator.appVersion)==4) { return "n4"; }
	else return "n4";
	if(navigator.appVersion.indexOf("MSIE 3.0") != -1) { return "ie3"; }
	if(navigator.appVersion.indexOf("MSIE 4.0") != -1) { return "ie4"; }
	else  return "ie4"; 
}

function InsertaObjeto(link, tipo)	{
	
	var navegador=QueNavegador();
	
	if(navegador=="n4" || navegador=="n45") {
		if(tipo=="video") document.write('<EMBED SRC="'+link+'" ALIGN="left"></EMBED>')
		else document.write('<EMBED SRC="'+link+'" ALIGN="left"></EMBED> ');
//		if(tipo=="video") document.write('<EMBED SRC="'+link+'" ALIGN="left" HEIGHT=180 WIDTH=240></EMBED>')
//		else document.write('<EMBED SRC="'+link+'" ALIGN="left" HEIGHT=60 WIDTH=140></EMBED> ');
	}
	else if(navegador=="ie4" || navegador=="ie45") {
		if(tipo=="video") document.write('<EMBED SRC="'+link+'" ALIGN="left"></EMBED>')
		else document.write('<EMBED SRC="'+link+'" ALIGN="left"></EMBED>');
	};
	
}

function breakFrames() {
	if (self.parent.frames.length != 0)
	self.parent.location=document.location;
}

function showitem(url)	{
	
	var win;
	
	var navegador=QueNavegador();
	
	if(navegador=="n4") win=window.open(url, "hints", "scrollbars=1,innerWidth=200,innerHeight=200,left=10,top=10")
	else win=window.open(url, "hints", "scrollbars=1, width=200, height=200 left=10 top=10");
	
}


function checkItems()	{
	
	var si = 0;
	var contador=0;
	var resultados= new Array();
	
	NumOfTries++;		//Incremento el número de intentos ojo!!!
	
	for(var i = 0; i < document.forms[0].elements.length; i++) {
		if ((document.forms[0].elements[i].type != 'button') &&
			(document.forms[0].elements[i].type != 'hidden') &&
			//Esta línea garantiza que la inserción de un vídeo y/o de un elemento
			//de audio no generen un error. Éstos son considerados como elementos
			//del 'form' y generan error al ser 'undefined'
			(document.forms[0].elements[i].type != undefined)) {
			resultados[contador] = document.forms[0].elements[i].value;
			contador++;
		}
	}
	
	contador = 0;
	for(i = 0; i < resultados.length; i++)	{
		contador = i+1;
		
		if(Bidimensional[contador] == 0) {
			if (resultados[i].toUpperCase() == Sols[contador].toUpperCase())	{
				eval("document.imgitem"+contador).src = imgOk.src;
				si++;
			}
			else eval("document.imgitem"+contador).src = imgBad.src;
		}
		//Si hay más de una respuesta.
		else {
			for(var l = 0; l < Bidimensional[contador]+1; l++) {
				if (resultados[i].toUpperCase() == Sols[contador][l].toUpperCase()) {
					eval("document.imgitem"+contador).src = imgOk.src;
					si++;
					break;
				}
				else eval("document.imgitem"+contador).src = imgBad.src;
			}
		}
	}
	PorCiento = Math.abs((si / resultados.length) * 100);			//El porcentaje de aprobado
}


function checkItemsMul()	{

	var si = 0;
	var contador = -1;
	var contOpciones = 0;
	var resultados= new Array();
	var opciones = new Array();
	var eleccion = new Array();
	
	var temp = '';
	
	NumOfTries++;		//Incremento el número de intentos ojo!!!
	
	radio = 0;
	
	for(i=0; i<document.forms[0].elements.length; i++) {
		if ((document.forms[0].elements[i].type != 'button') && 
			(document.forms[0].elements[i].type != 'hidden') && 
			//Esta línea garantiza que la inserción de un vídeo y/o de un elemento
			//de audio no generen un error. Éstos son considerados como elementos
			//del 'form' y generan error al ser 'undefined'
			(document.forms[0].elements[i].type != undefined)) {
			switch (document.forms[0].elements[i].type)	{
				case "radio" :	{
					radio = 1;
					if (temp != document.forms[0].elements[i].name) {
						contador++;
						temp = document.forms[0].elements[i].name;
						opciones[contador] = new Array();
						eleccion[contador] = new Array();
						contOpciones = 0;
					}
					opciones[contador][contOpciones] = document.forms[0].elements[i].value;
					eleccion[contador][contOpciones] = document.forms[0].elements[i].checked;
					contOpciones++;
					break;
				}
				default: {
					if (contador < 0) contador = 0;
					resultados[contador] = document.forms[0].elements[i].options[document.forms[0].elements[i].selectedIndex].value;
					contador++;
				}
			}
		}
	}
	
	
	contador = 0;
	contOpciones = 0;
	
	if(radio == 1)	{
		for(i=0; i<opciones.length; i++)	{
			for(l = 0; l < opciones[i].length; l++)	{
				contador = i+1;
				if ((opciones[i][l] == "si") && (eleccion[i][l])) {
					eval("document.imgitem"+contador).src = imgOk.src;
					si++;
					break;
				}
				else eval("document.imgitem"+contador).src = imgBad.src;
			}
		}
		PorCiento = Math.abs((si / opciones.length) * 100);			//El porcentaje de aprobado
	}
	else {
		//IMPORTANTE. EN ALGUNOS EJERCICIOS PUEDE DAR UN ERROR DE EVAL HAS NO PROPERTIES Y SE DEBE, NORMALMENTE A QUE HAY MENOS IMAGENES IMGITEM QUE LA LENGTH DE RESULTADOS
		for(i=0; i < resultados.length; i++)	{
			contador = i+1;
			if (resultados[i] == "si") {
				eval("document.imgitem"+contador).src = imgOk.src;
				si++;
			}
			else eval("document.imgitem"+contador).src = imgBad.src;
		}
		PorCiento = Math.abs((si / resultados.length) * 100);			//El porcentaje de aprobado
	}
}


//Oculta los iconos de la corrección
function HideCheckImages()	{

	var contador=0;
	var resultados= 0;
	
	var temp = '';
	radio = 0;
	
	for(i=0; i<document.forms[0].elements.length; i++) {
		switch (document.forms[0].elements[i].type)	{
			case "radio" :	{
				/*				radio = 1;
				if (temp != document.forms[0].elements[i].name) {
				resultados++;
				temp =  document.forms[0].elements[i].name ;
				}
				*/
				break;
			}
			case "button": {
				break;
			}
			case "submit": {
				break;
			}
			case "hidden": {}
			case "select-one": {
				resultados++;
				break;
			}
			default: {
			}
		}
	}

	contador=0;
	for(i=0; i<resultados; i++)	{
		contador = i+1;
		eval("document.imgitem"+contador).src = imgQ.src;
	}

}

function ShowHelp(url) {
	
	var win = window.open(url, "hints", "scrollbars=1,resizable=1,width=400,innerWidth=400,height=400,innerHeight=400,left=10,top=10");
	
}

//Función que envía el texto del cuadro de texto al tutor
function mail2(texto, subject, adresa) {
	
	var ladresa = prompt('tutor@email.dom', adresa);
	
	if (ladresa == null) return(0);
	
	if (ladresa == '') return(0)
	else if (ladresa.indexOf('@')==-1) {
		alert(' @ ????????');
		return (0);
	}
	
	adresa = ladresa;
	
	alert('A continuació s\'activarà el programa de correu si està activat i només\n haureu de triar l\'opció "Enviar missatge".');
	
	var mail='mailto: ' + adresa + '?subject=' + escape(subject) + '&body='+ texto;
	
	window.location= mail;
	
}

function modulo(numero, div)	{
	
	if (numero <= div)  return numero;
	else return(modulo(numero - div, div));
	
}

function getInteger(tope)	{
	
	return Math.floor(Math.random() * tope);
	
}

function insertaSopa(topeAncho, topeAlto, colorTinta, colorPapel)	{
	
	var lines = new Array(topeAlto);
	var chars = "ABCDEFGHIJKLMNÑOPQRSTUVWXYZ";
	var fila = 0;
	var col = 0;
	var repite = 0;
	var sentido = 0;
	var orientacion = 0;
	var salDeWhile = 0;
	
	solucion = new Array(topeAlto);
	
	for(var i = 0; i < topeAlto; i++)	{
		lines[i] = new Array(topeAncho);
		solucion[i] = new Array(topeAncho);
		for(var l = 0; l < topeAncho; l++)	{
			lines[i][l] = '-';
		}
	}
	
	for(var i = 1; i< Sols.length; i++)	 {
		while	(1 == 1) {
			fila = getInteger(topeAlto);
			col = getInteger(topeAncho);
			sentido = getInteger(8);
			orientacion = getInteger(2);
			
			if (salDeWhile) {
				salDeWhile = 0;
				break;
			}
			
			switch (sentido) {
				//hacia arriba
				case 1:	{
					if(fila < Sols[i].length) {}
					else {
						for(var m = 0; m < Sols[i].length; m++) {
							if((lines[fila - m][col] != '-')&&(lines[fila - m][col] != Sols[i].charAt(m).toUpperCase())) repite = 1
						}
						if(repite) repite = 0
						else {
							for(var m = 0; m < Sols[i].length; m++) {
								lines[fila - m][col] = Sols[i].charAt(m).toUpperCase()
							}
							salDeWhile = 1;
						}
					}
					break;
				}
				//hacia arriba, derecha
				case 2:	{
					if(((col + Sols[i].length) > topeAncho) || (fila < Sols[i].length)) {}
					else {
						for(var m = 0; m < Sols[i].length; m++) {
							if((lines[fila - m][col+m] != '-')&&(lines[fila - m][col + m] != Sols[i].charAt(m).toUpperCase())) {repite = 1}
						}
						if(repite) repite = 0
						else {
							for(var m = 0; m < Sols[i].length; m++) {
								lines[fila - m][col+m] = Sols[i].charAt(m).toUpperCase()
							}
							salDeWhile = 1;
						}
					}
					break;
				}
				//hacia adelante
				case 3:	{
					if((col + Sols[i].length) > topeAncho) {}
					else {
						for(var m = 0; m < Sols[i].length; m++) {
							if((lines[fila][col+m] != '-')&&(lines[fila][col + m] != Sols[i].charAt(m).toUpperCase())) {repite = 1}
						}
						if(repite) repite = 0
						else {
							for(var m = 0; m < Sols[i].length; m++) {
								lines[fila][col+m] = Sols[i].charAt(m).toUpperCase()
							}
							salDeWhile = 1;
						}
					}
					break;
				}
				//hacia abajo, derecha
				case 4:	{
					if(((col + Sols[i].length) > topeAncho) || ((fila + Sols[i].length) > topeAlto)) {}
					else {
						for(var m = 0; m < Sols[i].length; m++) {
							if((lines[fila + m][col+m] != '-')&&(lines[fila + m][col + m] != Sols[i].charAt(m).toUpperCase())) {repite = 1}
						}
						if(repite) repite = 0
						else {
							for(var m = 0; m < Sols[i].length; m++) {
								lines[fila + m][col+m] = Sols[i].charAt(m).toUpperCase()
							}
							salDeWhile = 1;
						}
					}
					break;
				}
				//hacia abajo
				case 5:	{
					if((fila + Sols[i].length) > topeAlto) {}
					else {
						for(var m = 0; m < Sols[i].length; m++) {
							if((lines[fila+m][col] != '-')&&(lines[fila + m][col] != Sols[i].charAt(m).toUpperCase())) repite = 1
						}
						if(repite) repite = 0
						else {
							for(var m = 0; m < Sols[i].length; m++) {
								lines[fila + m][col] = Sols[i].charAt(m).toUpperCase()
							}
							salDeWhile = 1;
						}
					}
					break;
				}
				//atras abajo
				case 6: {
					if((col < Sols[i].length)||((fila + Sols[i].length) > topeAlto)) {
						//no hago nada. Repito
					}
					else {
						for(var m = 0; m < Sols[i].length; m++) {
							if((lines[fila + m][col - m] != '-')&&(lines[fila + m][col - m] != Sols[i].charAt(m).toUpperCase())) repite = 1;
						}
						if(repite) repite = 0
						else {
							for(var m = 0; m < Sols[i].length; m++) {
								lines[fila + m][col - m] = Sols[i].charAt(m).toUpperCase()
							}
							salDeWhile = 1;
						}
					}
					break;
				}
				//hacia atrás
				case 7: {
					if(col < Sols[i].length) {
						//no hago nada. Repito
					}
					else {
						for(var m = Sols[i].length; m > 0; m--) {
							if((lines[fila][col - m] != '-')&&(lines[fila][col - m] != Sols[i].charAt(m).toUpperCase())) repite = 1;
						}
						if(repite) repite = 0
						else {
							for(var m = Sols[i].length-1; m > -1; m--) {
								lines[fila][col - m] = Sols[i].charAt(m).toUpperCase()
							}
							salDeWhile = 1;
						}
					}
					break;
				}
				//hacia atrás, arriba
				case 8: {
					if((col < Sols[i].length)||(fila < Sols[i].length)) {
						//no hago nada. Repito
					}
					else {
						for(var m = Sols[i].length; m > 0; m--) {
							if((lines[fila - m][col - m] != '-')&&(lines[fila - m][col - m] != Sols[i].charAt(m).toUpperCase())) repite = 1;
						}
						if(repite) repite = 0
						else {
							for(var m = Sols[i].length; m > 0; m--) {
								lines[fila - m][col - m] = Sols[i].charAt(m).toUpperCase()
							}
							salDeWhile = 1;
						}
					}
					break;
				}
			}
		}
	}
	
	
	for(var i = 0; i < topeAlto; i++)	{
		for(var l = 0; l < topeAncho; l++)	{
			solucion[i][l] = lines[i][l];
		}
	}
	
	
	for(var i = 0; i < topeAlto; i++)	{
		for(var l = 0; l < topeAncho; l++)	{
			temp = modulo(getInteger(100) , 26);
			if(lines[i][l] == '-') lines[i][l] = chars.charAt(temp);
		}
	}
	
	
	document.writeln('<TABLE BORDER="1" BGCOLOR="'+colorPapel+'" ALIGN="CENTER" CELLSPACING="1" CELLPADDING="5"><TR>')
	document.writeln('<TD><FONT FACE="Courier New" COLOR="'+colorTinta+'" >');
	
	var temp = '';
	
	for( i = 0; i < topeAlto; i++)	{
		for(l = 0; l < topeAncho; l++) temp = temp + lines[i][l];
		document.writeln(temp,'<BR>');
		temp = '';
	}
	
	document.writeln('</FONT></TD></TR></TABLE>');
}

function showSolsSopa(colorPapel, colorTinta)	{
	
	document.writeln('<P><TABLE BORDER="1" BGCOLOR="'+colorPapel+'" ALIGN="CENTER" CELLSPACING="1" CELLPADDING="5"><TR>')
	document.writeln('<TD><FONT FACE="Courier New" COLOR="'+colorTinta+'" >');
	
	var temp = '';
	
	for(var i = 0; i < solucion.length; i++)	{
		for(var l = 0; l < solucion[i].length; l++) temp = temp + solucion[i][l];
		document.writeln(temp,'<BR>');
		temp = '';
	}
	
	document.writeln('</FONT></TD></TR></TABLE><P>');
	
}

function checkSopa(texto, leyenda, msgTanca)	{
	
	var ok = 0;
	var mal = 0;
	
	NumOfTries++;		//Incremento el número de intentos ojo!!!
	
	texto = texto.toUpperCase();
	
	for(var i = 1; i < Sols.length; i++)	{
		if(texto.indexOf(Sols[i].toUpperCase()) != -1) ok++
		else mal++;
	}
	
	resultado(ok, mal, ok + mal, leyenda, msgTanca);
}


function getSolAtRandom(num, GuebPath)	{
	document.writeln('<DIV ID="ddp'+(num+1)+'"><img name="img'+(num+1)+'" src="' + GuebPath + 'pin.gif">'+ azar[num]+'</DIV>');
}

/*
function getSolAtRandom(num)	{

document.writeln('<DIV ID="ddp'+(num+1)+'"><img name="img'+(num+1)+'" src="pin.gif">'+
azar[num]+'</DIV>');

}
*/



//Asigna las soluciones a la matriz Azar qu eluego se colocara con
//getSolAtRandom en las diferentes capas.
function setAzar()	{
	
	var tmp = ok = contador = 0;
	var total = Sols.length;
	
	while (!ok) {
		tmp = getInteger(total);
		if(azar[tmp] == "") {
			azar[tmp] = Sols[contador];
			contador++;
			if(contador == total) break;
		}
	}
}

function showSolsDDrop(leyenda, msgTanca, msgSols)	{
	
	var soluciones="";
	var temp='';
	var numero=0;
	var orden=0;
	var aHidden = new Array();	//contiene los valores de los campos hidden
	var aSols = new Array();		//contiene los valores numéricos de las soluciones
	var hiddenNumber = 0;		//el número de hidden
	var radios = new Array();	//contiene los valores numéricos de las soluciones
	
	
	var navegador=QueNavegador();
	
	if (msgSols == '') {}
	else {
		if (!confirm(msgSols) && (win==null || win.closed)) return;
	}
	win=window.open("", "hints", "scrollbars=1,resizable=1,innerWidth=400,innerHeight=300,left=10,top=10")
	
	
	win.document.open('text/html', 'replace');
	win.document.write("<HTML>");
	win.document.write("<HEAD><TITLE>"+leyenda+"</TITLE></HEAD>");
	win.document.write("<BODY onBlur='self.close()'>");
	
	win.document.write("<CENTER><TABLE BORDER=1 cellpadding=5 >");
	
	for(i=0;i<Sols.length; i++) {
		win.document.write("<TR><TD BGCOLOR='#9BCDB5'>"+(i+1)+'. '+Sols[i]+
		"</TD></TR>")
	}
	
	win.document.write("</CENTER></TABLE>");
	
	soluciones='';
	win.document.write('<CENTER><FORM><INPUT TYPE=BUTTON NAME=BUTTON VALUE="'+msgTanca+'" onClick="self.close()"></FORM></CENTER>');
	win.document.write("</BODY>");
	win.document.write("</HTML>");
	win.document.close();
}

//Asigna una URL al location de una window. Permite de esta manera controlar
//si se ha alcanzado un mínimo antes de redireccionar al alumno a la nueva //url.
function nextUrl(url, msgPass, msgTries, msgTimeUp)	{
	
	//Se ha agotado el tiempo
	if (TempsUp) {
		alert(msgTimeUp);
		return;
	}
	
	//Se ha superado el número de intentos
	if (NumOfTries > MaxTries) alert(msgTries)
	else	{
		if (HayNotaPase)	{	//Si hay control de mínimo para pasar 
			if (PorCiento >= NotaParaPasar) window.location = url
			else alert(msgPass);
		}
	}
}

//Función que avisa del final del tiempo para hacer un ejercicio
function TimeUp(msg) {
	TempsUp = true;
	alert(msg)
}

//function CheckCross(msg)	{
function CheckCross(leyenda, msgTanca)	{
	/*
	1. recorro todos los elementos del form
	2. excluyo los que no son tipo 'text' y los que no tienen valor
	3. aquellos cuyo valor es diferente de su nombre los vacío
	*/
	
	var suma = 0;
	var error = 0;
	var total = 0;
	
	//var leyenda = 'Leyenda';
	//var msgTanca = 'Tanca';
	
	//if (!confirm(msg)) return;
	
	for(var i=0; i<document.cross.elements.length; i++)
	if(document.cross.elements[i].type=='text'&&document.cross.elements[i].value!='') {
		if (document.cross.elements[i].value.toUpperCase() != document.cross.elements[i].name) {
			document.cross.elements[i].value='';
			error++;
		}
		else suma++;
	}
	
	resultado(suma, error, suma + error, leyenda, msgTanca);
	
}

function ShowSolsCross(msg)	{
	
	if (msg!='') {	if (!confirm(msg)) return;}
	
	for(var i=0; i<document.cross.elements.length; i++)
	if(document.cross.elements[i].type=='text') document.cross.elements[i].value = document.cross.elements[i].name;
}

//***********************************************************************
//
// Sección que controla los ejercicios de matching
//
//***********************************************************************

/* Revisar y comparar con PreLoadImages al principio
function preLoad(imgObj, imgSrc) {
    if(document.images) {
        eval(imgObj + ' = new Image()');
        eval(imgObj + '.src = "' + imgSrc + '"');
    }
}
preLoad("imgOk", 'ok.gif');
preLoad("imgBad", 'mal.gif');
*/

//Función que comprueba si el elemento clicado está marcado
function checkClicked(id, color) {
    if(id.substring(0,2) == 'lf')   {
        var i = getMarked(1, arLeftClicked);
	
	//alert(id + '\n ' + arLeftClicked[parseInt(id.charAt(5) + id.charAt(6), 10)] + '\n' +  azarLft[parseInt(id.charAt(5) + id.charAt(6), 10)] );
	
	//No existe ningún elemento marcado con 1 en arLeftClicked
        if(i != - 1) {
		arLeftClicked[i] = 0;
		setBGColor('lfdiv' + setZeros(i, 2), colorDefecto);
        }
        i = id.charAt(5) + id.charAt(6) ;
	//alert('Este ' + i)
	i = parseInt(i, 10);
	//alert('Este ' + i)
	if(arLeftClicked[i] == -1 || arLeftClicked[i] == 2)	{}
	else {
		arLeftClicked[i] = 1;
		setBGColor(id, color[usedColor]);
	}
    }
    else    {
        var i = getMarked(1, arRightClicked);

	//alert(id + '\n ' + arRightClicked[parseInt(id.charAt(5) + id.charAt(6), 10)] + '\n' +  azarRgt[parseInt(id.charAt(5) + id.charAt(6), 10)] );

	if(i != - 1) {
		if(arRightClicked[i] == -1)	{}
		else {
			arRightClicked[i] = 0;
			setBGColor('rgdiv' + setZeros(i, 2), colorDefecto);
		}
        }
        i = id.charAt(5) + id.charAt(6) ;
	i = parseInt(i, 10);
	if(arRightClicked[i] == -1 || arRightClicked[i] == 2)	{}
	else {
		arRightClicked[i] = 1;
        	setBGColor(id, color[usedColor]);
	}
    }
    checkMatch();   
}

//Busca el valor 1 o 0 (ya marcado o no) en la matriz que representa la columna
//de palabras. Devuelve la posición del ítem
function getMarked(valor, tmpArray) {
    for(var i = 0; i < tmpArray.length; i++) {
        if(tmpArray[i] == valor)    return i;
    }
    return - 1;
}

function display(id, str) { 
    if (document.layers) { with (document[id].document) { 
        open(); 
        write(str); 
        close(); } 
    } 
    else document.all[id].innerText = str; 
}

function setBGColor(id, color) {
    if(document.layers) document[id].document.bgColor = color
    else document.all[id].style.backgroundColor = color;
}

function checkMatch() {
    var temp = '';
    var lft = getMarked(1, arLeftClicked);
    if (lft == -1) return false;
    var rgt = getMarked(1, arRightClicked);
    if (rgt == -1) return false;
    lft = setZeros(lft);
    rgt = setZeros(rgt); 
    aqui = true;
    temp = lft + "" + rgt;

    var pos = findPosInArray(arSols, temp);
	
    if(pos != -1) {
        RollImage('lfimg' + lft , imgOk);
        RollImage('rgimg' + rgt, imgOk);
        arLeftClicked[parseInt(lft, 10)] = 2;
        arRightClicked[parseInt(rgt, 10)] = 2;
		usedColor++;
		if (usedColor > colores.length) usedColor = colores.length;
    }
    else {
	    fallos++;
	    display('fallosDiv', labelFallos + fallos);
	    if(marcarFallos) {
		    RollImage('lfimg' + lft , imgBad);
		    RollImage('rgimg' + rgt, imgBad);
		    arLeftClicked[parseInt(lft, 10)] = -1;
		    arRightClicked[parseInt(rgt, 10)] = -1;
		    usedColor++;
		    if (usedColor > colores.length) usedColor = colores.length;
		}
		else {
			arLeftClicked[parseInt(lft, 10)] = 1;
			arRightClicked[parseInt(rgt, 10)] = 1;
		}
	}
}

	
function RollImage(imgName, imgObj) {
    if(document.images) document[imgName].src = eval(imgObj).src;
}

//Busca un valor en una matriz y devuelve TRUE si encontrado
function findInArray(matriz, valor) {
    for(var t = 0; t < matriz.length; t++) 
        if(matriz[t] == valor) return true;
    
    return false;
}

//Busca un valor en una matriz y devuelve la posición o -1 si no está
function findPosInArray(matriz, valor) {
    for(var t = 0; t < matriz.length; t++)   { 
        if(matriz[t] == valor) return t;
    }
    return -1;
}

function getInteger(tope)   {
    return Math.floor(Math.random() * tope);
}

//Recibe la matriz azar y la correspondiente de soluciones
//Asigna las soluciones a la matriz Azar que luego se colocara con
//getSolAtRandom en las diferentes capas.
function setAzarMatch(azarLoc, matriz)   {
    var tmp = ok = contador = 0;
    var total = matriz.length;
    
    while (!ok) {
        tmp = getInteger(total);	//Obtiene un número al azar de entre el total dado por la long de la matriz
        if(azarLoc[tmp] == "") {	//si esa posición de la matriz está vacía le asigno, en orden el contenido de la pos 0, 1, 2...
		azarLoc[tmp] = matriz[contador];
		contador++;
		if(contador == total) break;
        }
    }
}


function writeMatchingAtRandom(ladoDiv, num, color, matriz, GuebPath)   {
    document.writeln('<DIV ID="', ladoDiv + 'div', setZeros(num, 2) , 
        '"><a href="javascript: void(null)" onClick="checkClicked(', '\'',
        ladoDiv + 'div', setZeros(num, 2), '\'', ', colores);"><img name="', 
		ladoDiv + 'img', setZeros(num, 2), '" src="', GuebPath, 
		'match.gif"   width="20" height="20" alt="" border="0"><\/a>', 
		matriz[num], '<\/DIV>');
}

function setZeros(ANum)	 {
	if(ANum > 9) return ANum
	else return temp = '0' + '' + ANum;
}

function setSols() {	//Asigna las soluciones
    var tmp = 0;
    var fraseOriginal = '';
     
    for(var i = 0; i < azarLft.length; i++)  {
        //determino el lugar de cada frase de la izquierda en la matriz original    
        tmp = findPosInArray(solsLft, azarLft[i]);
	//determino la frase de la dcha que corresponde al lugar TMP anterior
        fraseOriginal = solsRgt[tmp];
        tmp = findPosInArray(azarRgt, fraseOriginal);
        arSols[i] = setZeros(i) + '' + setZeros(tmp);
    }
}

function printArray(vector)	{
	var te = "";
	for(var i = 0; i < vector.length; i++) te += vector[i] + '\n';
	
	alert(te); 
}

function writeLabelIntents(label)	  {
		 document.write('<DIV ID="fallosDiv">', label, '0</DIV>');
}



