/***********************************************
* developed by Jose A Becerril 2008. 
* Generates a new exam resetting all values.
***********************************************/
function nuevoexamen(grupo,M)
{
	unToggle(M); 
    aumenta10(M);
	caraOcruz(grupo,'td',M); 
	cambia(grupo,'td');
	caraOcruz(grupo,'td',M);
	reduce10(M);
	}
/***********************************************
* developed by Jose A Becerril 2008. 
* Hides rows higher than 10 after shuffling content.
***********************************************/
function reduce10(M)
{
var num = 0;
var counter = 0;
	   var alldivs=document.getElementsByTagName('tr'); 
	   for (i=0; i<alldivs.length;i++)
	   {
	  var aname=alldivs[i].id; 
	   if(	aname ==M && counter<5)  
	       { counter = counter+1; 
		   }
		   else if(	aname ==M) 
	   { 
	   alldivs[i].style.display ='none';
	  
	   }
	   }
}


function reduce01(M)
{
var i = 0;
var counter = 0;
	   var alldivs=document.getElementsByTagName('tr'); 
	   for (i=0; i<alldivs.length;i++)   
	   {
	   aname=alldivs[i].id;  
	   if(aname == M && counter==0) 
	   {
		   counter= counter+1; 
		   }
		   else if (aname == M)
	       	   {   
	   counter= counter+1;  
	   alldivs[i].style.display ='none';
	  
	   }
	   }
}
/***********************************************
* developed by Jose A Becerril 2008. 
* Shows rows higher than 10 temporarily before shuffling content.
***********************************************/
function aumenta10(M)
{
var num = 0;
	   var alldivs=document.getElementsByTagName('tr');
	   for (i=0; i<alldivs.length;i++)
	   {
	   aname=alldivs[i].Name; 
	   if(aname ==M && i>4)
	   {
	   alldivs[i].style.display ='';
	   }
	   }
}
function aumenta01(M)
{
var i = 0;
var counter = 0;
	   var alldivs=document.getElementsByTagName('tr'); 
	   for (i=0; i<alldivs.length;i++)   
	   {
	   aname=alldivs[i].id;  
	   if(aname == M && counter==0) 
	   {
		   counter= counter+1; 
		   }
		   else if (aname == M)
	       	   {   
	   counter= counter+1;  
	   alldivs[i].style.display =''; 
	  
	   }
	   }
}
/***********************************************
* developed by Jose A Becerril 2008. 
* Changes and displays the elements at random according to id tag.
***********************************************/
function cambia(identifica,tag)
{                                  
Cambiame = new Array();
  
  var alldivs=document.getElementsByTagName(tag); 
   //var dodo=document.getElementById("vacila");
   
  var x=0;
  
    for (i=0;i<alldivs.length;i++)   
{	
            
	if(	alldivs[i].id ==identifica)
	{	                                           
	Cambiame.push(alldivs[i].innerHTML);   
     
	 }
}
Array.prototype.shuffle = function (){ 
        for(var rnd, tmp, i=this.length; i; rnd=parseInt(Math.random()*i), tmp=this[--i], this[i]=this[rnd], this[rnd]=tmp);
};
Cambiame.shuffle();


  for (i=0;i<alldivs.length;i++)
{	
                   
	if(	alldivs[i].id ==identifica)
	{
	 alldivs[i].style.visibility = 'visible';
  alldivs[i].innerHTML=Cambiame[x];           //alert(alldivs[i].innerHTML+'----'+Cambiame[x]);   
  x=x+1;
  
     }

}
}

/***********************************************
* developed by Jose A Becerril 2008. 
* This script chooses an option of 2 at random 
then calls cambia to scramble the presentation
***********************************************/
function caraOcruz(identifica,tag,mark)
{    
	 var num =0;
	 var alldivs=document.getElementsByTagName(tag); 
	 for (i=0;i<alldivs.length;i++) 
     

{
	if(alldivs[i].id ==identifica)
	{  
	   num=num+1;
       if (Math.floor(Math.random()*2)==0 )
       { 
	   
       var nX = num; 
       toggle(mark+'0'+ nX);  
       num=num+1;
       }
       else
       {
       num=num+1;
       var nX = num;
       toggle(mark+'0'+ nX);  
	   
       } /* */
	}
}

}

/***********************************************
* developed by Jose A Becerril 2008. 
* This script shuffles the contents of the answers
by calling cambia() with the different numbers
***********************************************/


function baraja4(identifica,tag)
{
var i=0;
var alltags=document.getElementsByTagName(tag); 
	 for (i=0;i<alltags.length;i++) 
{ 

var nX = i+1; 
var identifica2=identifica + nX; 
 cambia(identifica2,tag); 

}
return false;
}
/* Jose A Becerril 2008
This script toggles visibility */

function toggle(obj) 
{  
	var el = document.getElementById(obj);
	if ( el.style.display != 'none' ) {
		el.style.display = 'none';
	}
	else {
		el.style.display = 'inline';
	}
}


function unToggle(M)
{// var examen='auto_F_multiple';  
    
	var i=0; 
	
//var alltags=document.getElementsByTagName('input');
var alltags =document.getElementsByName(M+'bm'); 
for (i=0;i<alltags.length;i++)
{   

var nX = i+1;
var el = document.getElementById(M+'9'+nX); 
if (alltags[i].id.substr(0,1)==M)
{ 
el.style.display = 'none';  
}
}
}


/* Jose A Becerril 2008
This script toggles visibility 
for all elements*/

function toggleAll(tag,myclass) 
    {
       var i = 0;
       var alldivs=document.getElementsByTagName(tag);
	   for (i=0; i<alldivs.length;i++) 
	   {
	   name=alldivs[i].className; 
	   if(name == myclass && alldivs[i].style.display !=='none') 
	   {
	   alldivs[i].style.display ='none';
	   }
	   else if (name == myclass)
	       {
		  alldivs[i].style.display ='inline'; 
		   }
	   } 
	}
/***********************************************
* developed by Jose A Becerril 2008. 
*This script triggers off the different 
self-marking exercises results
comprobar uno allows for mixed exercises
***********************************************/
macrightchar='Bien';
macwrongchar='Mal';
winrightchar='Bien';
winwrongchar='Mal';


var platform = 'win'
if (navigator.appVersion.indexOf('Mac') != -1) {platform = 'mac'}
if (platform == 'mac') {
	rightchar = unescape(macrightchar)
	wrongchar = unescape(macwrongchar)
}
else {
	rightchar = unescape(winrightchar)
	wrongchar = unescape(winwrongchar)
}
function ComprobarUno()
{

	var i = 0;
	var TotalCorrect = 0;
	var Score = 0;

	for (i=0; i<RcorrectaUno.length; i++)
{
	       if (RcorrectaUno[i]!="s" && RcorrectaUno[i]!="n" &&
		   document.AutoevaluacionFormUno[i*2].selectedIndex == RcorrectaUno[i])
{           
			document.AutoevaluacionFormUno[(i*2)+1].value = rightchar;
			TotalCorrect++;
}

	/**/	else if
		
		    
			(
			RcorrectaUno[i]=="s" &&
			document.AutoevaluacionFormUno[i*2].checked==true)
		{	
		     
			
			 document.AutoevaluacionFormUno[(i*2)+1].value = rightchar;
			 TotalCorrect++; 
			}

			
			else if
		
		    
			(
			RcorrectaUno[i]=="n" &&
			document.AutoevaluacionFormUno[i*2].checked==false)
		{	
		     
			 document.AutoevaluacionFormUno[(i*2)+1].value = rightchar;
	
			 TotalCorrect++; 
			}

		else if
		
		    
			(
			
			document.AutoevaluacionFormUno[i*2].value==RcorrectaUno[i])
		{	
		     
			 document.AutoevaluacionFormUno[(i*2)+1].value = rightchar;
		
			 TotalCorrect++; 
			}
			
		else
{
			document.AutoevaluacionFormUno[(i*2)+1].value = wrongchar;
		
}
}
	{Score = Math.floor((TotalCorrect*100)/RcorrectaUno.length);
	document.AutoevaluacionFormUno.ScoreBox.value = Score + '%';}
}
/***********************************************
*
comprobar dos checks a second exam on the same page
***********************************************/
function ComprobarDos()
{

	var i = 0;
	var TotalCorrect = 0;
	var Score = 0;

	for (i=0; i<RcorrectaDos.length; i++)
{
	       if (RcorrectaDos[i]!="s" && RcorrectaDos[i]!="n" &&
		   document.AutoevaluacionFormDos[i*2].selectedIndex == RcorrectaDos[i])
{           
			document.AutoevaluacionFormDos[(i*2)+1].value = rightchar;
			TotalCorrect++;
}

	/**/	else if
		
		    
			(
			RcorrectaDos[i]=="s" &&
			document.AutoevaluacionFormDos[i*2].checked==true)
		{	
		     
			
			 document.AutoevaluacionFormDos[(i*2)+1].value = rightchar;
			 TotalCorrect++; 
			}

			
			else if
		
		    
			(
			RcorrectaDos[i]=="n" &&
			document.AutoevaluacionFormDos[i*2].checked==false)
		{	
		     
			 document.AutoevaluacionFormDos[(i*2)+1].value = rightchar;
	
			 TotalCorrect++; 
			}

		else if
		
		    
			(
			
			document.AutoevaluacionFormDos[i*2].value==RcorrectaDos[i])
		{	
		     
			 document.AutoevaluacionFormDos[(i*2)+1].value = rightchar;
		
			 TotalCorrect++; 
			}
			
		else
{          
			document.AutoevaluacionFormDos[(i*2)+1].value = wrongchar;
		
}
}
	{Score = Math.floor((TotalCorrect*100)/RcorrectaDos.length);
	document.AutoevaluacionFormDos.ScoreBox.value = Score + '%';}
}

/***********************************************
* developed by Jose A Becerril 2008. 
*comprobar tres uses external xml sheets. 
20 q max.
***********************************************/
function ComprobarTres()
{

	var i = 0;
	var TotalCorrect = 0;
	var Score = 0;

	for (i=0; i<20; i++)
{
	        var indice =document.auto_F_multiple[i*2].selectedIndex;
			var valor = document.auto_F_multiple[i*2].options[4].value;
			var escrito = document.auto_F_multiple[i*2].options[indice].innerHTML;  
			
			
			
			
	       if (valor==escrito)
{                                                                        

//var indice =document.auto_F_multiple[i*2].selectedIndex;
//var val = document.auto_F_multiple[i*2].options[indice].value;alert(val);
//alert(indice+'----'+valor+'---'+escrito);

			document.auto_F_multiple[(i*2)+1].value = rightchar;
			TotalCorrect++;
}		
		
		else
{          
			document.auto_F_multiple[(i*2)+1].value = wrongchar;
		
}
}
	
	{Score = Math.floor((TotalCorrect*100)/10);
	document.auto_F_multiple.ScoreBox.value = Score + '%';}
}
/***********************************************
*This script loads an external xml document
***********************************************/
function loadXMLDoc(xmlFile)
{
/* var xmlDoc=null;
if (window.ActiveXObject)
{// code for IE
xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
}
else if (document.implementation.createDocument)
{// code for Mozilla, Firefox, Opera, etc.

xmlDoc=document.implementation.createDocument("","",null);
}
else
{
alert('Your browser cannot handle this script');
}
if (xmlDoc!=null)
{  
xmlDoc.async=false;
xmlDoc.load(xmlFile);  
return(xmlDoc);
}*/
var xmlhttp = new window.XMLHttpRequest();
xmlhttp.open("GET",xmlFile,false);
xmlhttp.send(null);
var xmlDoc = xmlhttp.responseXML.documentElement;
return(xmlDoc);
}

/***********************************************
* developed by Jose A Becerril 2008. 
*This scripts loads and formats an external xml sheet,
in combination with the css sheet. Multiple Choice
***********************************************/
function hazmagia(examen)
{ 
 xmlDoc=loadXMLDoc(examen);

 cabeza=xmlDoc.getElementsByTagName("cabeza");
 respuesta=xmlDoc.getElementsByTagName("respuesta"); 
var recortadoImpar = (Math.floor(cabeza.length/2))*2;
var starts=-4; 
var stops=0;
var cabezas=0;
var respuestas=0;
var trs=0;
var tds=0;
var esCuatro=0;

document.write('<form name="auto_F_multiple" method="POST" action="">');
document.write('<table class="media"   style="background-color: #CC9966;">');

for (i=0;i<recortadoImpar;i++)
  {
   starts=starts+4;
   stops=stops+4;
   if (trs==0) {document.write('<tr class="chica" id="M" name="M" style="display:table-row;">'); trs=trs+1; }
   if (cabezas==0  ) { document.write('<td id="groupM" colspan="2" width="50%">'); tds=tds+1; }  
   
   if (cabezas<2 )
   {
   cabezas=cabezas+1;
   var idnum = i+1;
                  
   document.write('<span style="display:none;" id="M0'+idnum+'"><strong>'); 
   document.write(cabeza[i].childNodes[0].nodeValue); 
   document.write('</strong><br />');
   document.write('<select id="max"><option></option>'); 
          

          for (u=starts;u<stops;u++)
		   
		  { respuestas=respuestas+1;
		   var opcion_Rpta = respuesta[u].childNodes[0].nodeValue;
           esCuatro=esCuatro+1;
		   if(esCuatro<4)
		   {document.write('<option value="xno" id="Mbaraja'+idnum+'">'); }
		   
		   else
		   {document.write('<option  value="'+opcion_Rpta+'"   id="Mbaraja'+idnum+'">'); esCuatro=0; }
		   
		   document.write(opcion_Rpta); 
		   document.write('</option>');
		   }

           document.write('</select>');
		   document.write('<a href="javascript:toggle(\'M9'+idnum+'\')" class="quiz">Resultado</a>');
		   document.write('<input size="4" maxlength="4"  name="Mbm" type="text"  style="display:none;"  id="M9'+idnum+'"  />');
		   document.write('</span>');

		  	 
		  
		  if (cabezas==2){ document.write("</td>");cabezas=0; tds=tds+1;}
		  
		  
		  if (tds==4)
		  {  document.write("</tr>"); tds=0; cabezas=0; trs=0;}
		  
		   }
		  
		  }  
}
 /***********************************************
* developed by Jose A Becerril 2008. 
*This scripts just draws the final part of the exam table.
***********************************************/
function terminameloM()
{
document.write('<tr style="background-color: #CC9966;"><td><a href="#"  onclick="ComprobarTres();return false;" class="boton">Comprobar</a></td><td>Tu nota es de:<input name="ScoreBox" size="4" maxlength="4" type="text" class="result"/></td><td><a href="#" onClick="javascript:document.auto_F_multiple.reset();return false" class="boton">Borrar</a></td><td><a href="#" onClick="javascript:nuevoexamenM(); return false" class="boton" style="width:180px">Cambiar examen</a></td></tr><tr style="background-color: #CC9966;"><td colspan="4">1- Escoge la respuesta correcta para cada pregunta, seleccionando en el men&uacute; desplegable.<br />2- Obt&eacute;n la nota que has sacado pulsando <em><strong>Comprobar</strong></em>.<br />3-Comprueba una respuesta individual pulsando sobre la palabra <em><strong>resultado</strong></em>.<br />4- Obt&eacute;n un examen nuevo pulsando sobre <em><strong>Cambiar examen</strong></em>.</td></tr></table></form>');
}
function nuevoexamenM()
{document.auto_F_multiple.reset(); nuevoexamen('groupM','M');}
/***********************************************
* developed by Jose A Becerril 2008. 
*This scripts loads and formats an external xml sheet,
in combination with the css sheet. Literal answer write.
***********************************************/
function hazmagiaL(examen)
{ 
 xmlDoc=loadXMLDoc(examen);

 cabeza=xmlDoc.getElementsByTagName("cabeza");
 respuesta=xmlDoc.getElementsByTagName("respuesta"); 
var recortadoImpar = (Math.floor(cabeza.length/2))*2;

var cabezas=0;
var respuestas=0;
var trs=0;
var tds=0;
var esCuatro=0;

document.write('<form name="auto_F_literal" method="POST" action="">');
document.write('<table class="media"   style="background-color: #CC9966;">');

for (i=0;i<recortadoImpar;i++)
  {
   
   if (trs==0) {document.write('<tr class="chica" name="L" style="display:table-row;">'); trs=trs+1; }
   if (cabezas==0  ) { document.write('<td id="groupL" colspan="2" width="50%">'); tds=tds+1; }  
   
   if (cabezas<2 )
   {
   cabezas=cabezas+1;
   var idnum = i+1;
                  
   document.write('<span style="display:none;" id="L0'+idnum+'"><strong>'); 
   document.write(cabeza[i].childNodes[0].nodeValue); 
   document.write('</strong><br />');
   document.write('<input name="Lrpta" size="50" maxlength="200" type="text"/>'); 
          
           var opcion_Rpta = respuesta[i].childNodes[0].nodeValue;
           document.write('<span class="Lxml" style="display:none;"><input name="Lrpta" size="50" maxlength="200" type="text" value="'+opcion_Rpta+'" /></span>');
		   
          
		  
		   
		  // document.write(opcion_Rpta); 
		  
		   document.write('<a href="javascript:toggle(\'L9'+idnum+'\')" class="quiz">Resultado</a>'); 
		   document.write('<input name="Lbm" size="4" maxlength="4" type="text"  style="display:none;" id="L9'+idnum+'" />');
		   document.write('</span>'); 

		  	 
		  
		  if (cabezas==2){ document.write("</td>");cabezas=0; tds=tds+1;}
		  
		  
		  if (tds==4)
		  {  document.write("</tr>"); tds=0; cabezas=0; trs=0;}
		  
		   }
		  
		  }  
}
 /***********************************************
* developed by Jose A Becerril 2008. 
*This scripts just draws the final part of the exam table.
***********************************************/
function terminameloL()
{
document.write('<tr style="background-color: #CC9966;"><td><a href="#"  onclick="ComprobarL();return false;" class="boton">Comprobar</a></td><td>Tu nota es de:<input name="ScoreBox" size="4" maxlength="4" type="text" class="result"/></td><td><a href="#" onClick="javascript:document.auto_F_literal.reset();return false" class="boton">Borrar</a></td><td><a href="#" onClick="javascript:nuevoexamenL(); return false" class="boton" style="width:180px">Cambiar examen</a></td></tr><tr style="background-color: #CC9966;"><td colspan="4">1- Escribe la respuesta correcta para cada pregunta en el espacio previsto.<br />2- Obt&eacute;n la nota que has sacado pulsando <em><strong>Comprobar</strong></em>.<br />3-Comprueba una respuesta individual pulsando sobre la palabra <em><strong>resultado</strong></em>.<br />4- Obt&eacute;n un examen nuevo pulsando sobre <em><strong>Cambiar examen</strong></em>.</td></tr></table></form>');
}
function nuevoexamenL()
{document.auto_F_literal.reset(); nuevoexamen('groupL','L');}


function ComprobarL()
{

	var i = 0;
	var TotalCorrect = 0;
	var Score = 0;
    var counter2=0;
	var alumno='talVez';
	var profe='CorrectaSiempre';
	
	toggleAll('span','Lxml');
	
	comprueba = new Array();
	var nota =document.getElementsByName('Lbm');  
	for (i=0; i<nota.length;i++)
	{
	comprueba.push(nota[i]); 
	}
	
    
    
	   
	 var respuestas =document.getElementsByName('Lrpta');  
	 for (i=0; i<respuestas.length; i++)
{           
	        var respta =simplifica( respuestas[i].value); 
			if( (Math.floor(i/2)*2)!=i )
		            {profe=respta;} 
			else {alumno=respta;} 
	      if (profe==alumno)
            {                                                              

            counter2 = ((i-1)/2); 
		    nota[counter2].value = rightchar; 
			TotalCorrect++; 
           }		
		   else
        {          
		counter2 = Math.floor(i/2); 
		 nota[counter2].value= wrongchar;                     
		
        }
}
	toggleAll('span','Lxml');
	{Score = Math.floor((TotalCorrect*100)/10);
	document.auto_F_literal.ScoreBox.value = Score + '%';}
}

/***********************************************
* developed by Jose A Becerril 2008. 
*simplifica simplifies a string to avoid silly errors.
***********************************************/
function simplifica(str)
{
	if (str!='')
	{
	var str1=str.toLowerCase();    //alert(str1); 
    var str2=str1.replace(/ /g,''); //alert(str2);
	var str3=str2.replace(/\./g,''); //alert(str3);
	}
	else
	{str=str3;}
	return str3;
	}
	/***********************************************
* developed by Jose A Becerril 2008. 
*This scripts loads and formats an external xml sheet,
in combination with the css sheet. Cloze test devised.
***********************************************/
function hazmagiaCze(examen)
{ 
 xmlDoc=loadXMLDoc(examen); 

 cabeza=xmlDoc.getElementsByTagName("cabeza"); 
 respuesta=xmlDoc.getElementsByTagName("respuesta"); 
//var recortadoImpar = (Math.floor(cabeza.length/2))*2;

var cabezas=0;
var respuestas=0;
counter=0;

document.write('<form name="auto_FZ_cloze" method="POST" action="">');
document.write('<table class="media"   style="background-color: #CC9966;height: 100%;">');
document.write('<tr class="chica" name="ZZ" style="display:table-row; height:300px;vertical-align: middle;"><td colspan="4">');
for (i=0;i<cabeza.length;i++)
  {  
   var idnum = i+1;
   document.write(cabeza[i].childNodes[0].nodeValue); 
  
   
           if(respuesta.length!=counter)
		   {
           var opcion_Rpta = respuesta[i].childNodes[0].nodeValue;
		   counter++ ;
		   document.write('&nbsp;<input name="ZrptaZ" size="25" maxlength="60" type="text"/>&nbsp;'); 
		   document.write('<input class="bienZ" name="ZbmZ" size="4" maxlength="4" type="text"  style="display:none;" />');
           document.write('<span class="ZxmlZ" style="display:none;"><input name="ZrptaZ" size="25" maxlength="20" type="text" value="'+opcion_Rpta+'" /></span>');
		   }
   }
		  
		 
}
 /***********************************************
* developed by Jose A Becerril 2008. 
*This scripts just draws the final part of the exam table.
***********************************************/
function terminameloCze()
{
document.write('</td></tr><tr style="background-color: #CC9966;"><td><a href="#"  onclick="ComprobarCze();return false;" class="boton">Comprobar</a></td><td>Tu nota es de:<input name="ScoreBoxZ" size="4" maxlength="4" type="text" class="result"/></td><td><a href="#" onClick="javascript:document.auto_FZ_cloze.reset();return false" class="boton">Borrar</a></td><td><a href="#" onClick="javascript:toggleFrome(); return false" class="boton" style="width:180px">Ver respuestas</a></td></tr><tr style="background-color: #CC9966;"><td colspan="4">1- Escribe las respuestas correctas en los espacios previstos.<br />2- Obt&eacute;n la nota que has sacado pulsando <em><strong>Comprobar</strong></em>.<br />3- Obt&eacute;n todas las respuestas pulsando sobre <em><strong>Ver respuestas</strong></em>.</td></tr></table></form>');
}
function toggleFrome()
{toggleAll('span','ZxmlZ'); 
var i = 0;
       var alldivs=document.getElementsByName('ZbmZ');
	   for (i=0; i<alldivs.length;i++) 
	   {
	   name=alldivs[i].name; 
	   if(name == 'ZbmZ') 
	   {
	   alldivs[i].style.display ='none';
	   }
	  	   } 

}
function ComprobarCze()
{

	var i = 0;
	var TotalCorrect = 0;
	var Score = 0;
    var counter2=0;
	var alumno='talVez';
	var profe='CorrectaSiempre';
	
	toggleAll('span','ZxmlZ');
	
	comprueba = new Array();
	var nota =document.getElementsByName('ZbmZ');  
	for (i=0; i<nota.length;i++)
	{
	comprueba.push(nota[i]); 
	}
	
    
    
	   
	 var respuestas =document.getElementsByName('ZrptaZ');  
	 for (i=0; i<respuestas.length; i++)
{           
	        var respta =simplifica( respuestas[i].value); 
			if( (Math.floor(i/2)*2)!=i )
		            {profe=respta;} 
			else {alumno=respta;} 
	      if (profe==alumno)
            {                                                              

            counter2 = ((i-1)/2); 
		    nota[counter2].value = rightchar; 
			TotalCorrect++; 
           }		
		   else
        {          
		counter2 = Math.floor(i/2); 
		 nota[counter2].value= wrongchar;                     
		
        }
}
	toggleAll('span','ZxmlZ');
	toggleAll('input','bienZ');
	{Score = Math.floor((TotalCorrect*100)/(respuestas.length/2));
	document.auto_FZ_cloze.ScoreBoxZ.value = Score + '%';}
}

/***********************************************
*These function use the drag feature to match
*sequences such as analyzing.
***********************************************/


function whichElement(e)
{
var targ;
 
 if (e==null)
  {
  var e=window.event; 
  }
if (e.target)
  {
  targ=e.target;
  }
else if (e.srcElement)
  {
  targ=e.srcElement;
  }
if (targ.nodeType==3) // defeat Safari bug
  {
  targ = targ.parentNode;
  }                           // var poste = targ.style.top; alert(poste)
var tname;   
tname=targ.tagName;
var  myid=targ.id;
return myid;
}

document.onmousedown=coordinates;
document.onmouseup=mouseup;

function coordinates(e)
{
 
myid=whichElement(e);  


if (e == null) { e = window.event;}
var sender = (typeof( window.event ) != "undefined" ) ? e.srcElement : e.target;

if (sender.id==myid)
try
  {
  mouseover=true;
  pleft=parseInt(movMeId.style.left);
  ptop=parseInt(movMeId.style.top);
  xcoor=e.clientX;
  ycoor=e.clientY;
  document.onmousemove=moveImage;
  return false;
  }
 catch(e) {return null;}
else { return false; }
}

function moveImage(e)

{
//movMeId=document.getElementById(myid);

if (e == null) { e = window.event;}
  
xpos=pleft+e.clientX-xcoor;
ypos=ptop+e.clientY-ycoor;

     var fixit_X =80;
	 var fixit_Y =20;
	 var D_position = document.getElementById("tostada"); 
	 var X_Pos=findPosX(D_position);  
	 if (navigator.appName!="Netscape") {fixit_X =6;fixit_Y =6;}
	 
 
if(xpos>[20+fixit_X] && xpos<[610+fixit_X] && ypos>[60+fixit_Y] && ypos<[210+fixit_Y] )  //  
{
    movMeId.style.left=xpos+"px" ;
    movMeId.style.top=ypos+"px" ;
}


return false;
}

function mouseup(e)
{
document.onmousemove=null;
}


function doit(myid)
{
 movMeId=document.getElementById(myid);

}



 function findPosX(obj)
  {
    var curleft = 0;
    if(obj.offsetParent)
        while(1) 
        {
          curleft += obj.offsetLeft;
          if(!obj.offsetParent)
            break;
          obj = obj.offsetParent;
        }
    else if(obj.x)
        curleft += obj.x;
    return curleft;
  }

 function findPosY(obj)
  {
    var curtop = 0;
    if(obj.offsetParent)
        while(1)
        {
          curtop += obj.offsetTop;
          if(!obj.offsetParent)
            break;
          obj = obj.offsetParent;
        }
    else if(obj.y)
        curtop += obj.y;
    return curtop;
  }

 

/***********************************************
* developed by Jose A Becerril 2008. 
*This scripts loads and formats an external xml sheet,
in combination with the css sheet. Drag & drop feature
***********************************************/
function hazmagiaD(examen)
{
xmlDoc=loadXMLDoc(examen); 
  
 pregunta=xmlDoc.getElementsByTagName("pregunta");  
 

 
var starts=-4; 
var stops=0;
var cabezas=0;
var respuestas=0;
var trs=0;
var tds=0;
var esCuatro=0;


document.write('<table class="media" id="tostada">'); 

for (i=0;i<pregunta.length;i++)
  {
	  var idnum = i+1; 
  // children=pregunta[i].childNodes;
   
    
   cabeza=pregunta[i].getElementsByTagName("cabeza"); 
   respuesta=pregunta[i].getElementsByTagName("respuesta");  
   document.write('<tr class="chica" id="D" style="display:table-row;">'); 
   document.write('<td id="groupD" colspan="4" width="850" height="300" >'); 
    document.write('<table class="cloth">');
	document.write('<tr><td>');
	 var fixit_X = 90;
	 var fixit_Y = 60;
	 var D_position = document.getElementById("tostada");
	 var X_Pos=findPosX(D_position); 
	 if (X_Pos==0) {fixit_X = 0;fixit_Y =20;}
	 var XX=90+fixit_X;
	 var YY=20+fixit_Y;
	document.write('<span style="left:'+XX+'px; top:'+YY+'px; " class="dragMe" name="dragging" id="moveMe99" onmousedown="doit(\'moveMe99\')">'); 
	
   for (u=0;u<cabeza.length;u++)
   {   
        
   
  

   
   document.write(cabeza[u].childNodes[0].nodeValue); 
    
   }
   
   document.write('</span>');  
   
    for (e=0;e<respuesta.length;e++)
   {   
    nx =e; 
     document.write('<br />'); 
	var left=Math.floor(Math.random()*410); 
	var top=Math.floor(Math.random()*70); 
    document.write('<p class="dragMe" name="dragging" id="moveMe'+nx+'" onmousedown="doit(\'moveMe'+nx+'\')" style="font-size: 30px; color: #FFFFFF; position:absolute; width: 100px; left:'+(left+100)+'px; top:'+(top+90)+'px; clip: auto;">');
   document.write(respuesta[e].childNodes[0].nodeValue); 
  document.write('</p>'); 
      
   }
    document.write('</td></tr></table>');
	document.write('</td></tr>'); 
  }
}
 /***********************************************
* developed by Jose A Becerril 2008. 
*This scripts just draws the final part of the exam table.
***********************************************/
function terminameloD()
{
document.write('<form name="auto_F_drag" method="POST" action=""><tr><td><a href="#"  onclick="ComprobarD();return false;" class="boton">Comprobar</a></td><td>Tu respuesta est&aacute;:<input name="ScoreBox" size="4" maxlength="4" type="text" class="result"/></td><td></td><td><a href="#" onClick="javascript:nuevoexamenD(); return false" class="boton" style="width:180px">Cambiar pregunta</a></td></tr><tr><td colspan="4">1- Arrastra las etiquetas y col&oacute;calas debajo de la(s) palabra(s) adecuada(s), o ponlas por orden. <br />2- Obt&eacute;n el resultado pulsando <em><strong>Comprobar</strong></em>.<br />3- Obt&eacute;n un nuevo ejercicio pulsando sobre <em><strong>Cambiar pregunta</strong></em>.<br />4- Si hay dos elementos iguales coloca primero el que tenga un punto a la izquierda.</td></tr></table></form>');
}
function nuevoexamenD()
{document.auto_F_drag.reset(); aumenta01('D');cambia('groupD','td');reduce01('D');}  //
/***********************************************
* developed by Jose A Becerril 2008. 
*This scripts checks the right sequence. Drag & drop feature
***********************************************/
function ComprobarD()
{  
var	oldPos=0;
var draggingNo='no';
var alldivs=document.getElementsByTagName("P"); 

 for (i=0;i<alldivs.length;i++)  
 { 
     var dragged=alldivs[i];
	 var dragMe=dragged.className; 
	 var dragging=dragged.id; 
	  if(dragMe=="dragMe" && dragging=="moveMe0" && draggingNo=="no") {draggingNo="yes"; var newPos=findPosX(dragged); } 
	  else if(dragMe=="dragMe" && dragging=="moveMe0" && draggingNo=="yes") {break;} 
	
	  else if(dragMe=="dragMe")
	   {
    var newPos=findPosX(dragged); 
	
	   }
	 if (newPos>oldPos && newPos!=0) 
	 {
		document.auto_F_drag.ScoreBox.value ='Bien'; 
		 oldPos=newPos;
		 }
	
		 else if (newPos<oldPos && newPos!=0 )
		  { 
		document.auto_F_drag.ScoreBox.value ='Mal'; break ;
		 }
}
}
	
/***********************************************
* developed by Jose A Becerril 2008. 
*This scripts loads and formats an external xml sheet,
in combination with the css sheet. Drag & drop feature LEFT AND RIGHT
(basket)
***********************************************/
function hazmagiaD2(examen2)
{ 

xmlDoc2=loadXMLDoc(examen2); 

  

 pregunta2=xmlDoc2.getElementsByTagName("pregunta"); 
 
 //alert("number"+pregunta.length);
var starts2=-4; 
var stops2=0;
var cabezas2=0;
var respuestas2=0;
var trs2=0;
var tds2=0;
var esCuatro2=0;


document.write('<table class="media" id="tostada">');

for (i2=0;i2<pregunta2.length;i2++)
  {
	  var idnum2 = i2+1;
  // children=pregunta[i2].childNodes;
   
   cabeza2=pregunta2[i2].getElementsByTagName("cabeza");
   respuesta2=pregunta2[i2].getElementsByTagName("respuesta"); 
   respuestaM=pregunta2[i2].getElementsByTagName("respuestaM"); 
   document.write('<tr class="chica" id="D2" style="display:table-row;">'); 
   document.write('<td id="groupD2" colspan="4" width="850" height="300" >'); 
    document.write('<table class="cloth2">');
	document.write('<tr><td>');
	 var fixit_X2 = 90;
	 var fixit_Y2 = 60;
	 var D_position2 = document.getElementById("tostada");
	 var X_Pos2=findPosX(D_position2); 
	 if (X_Pos2==0) {fixit_X2 = 0;fixit_Y2 =20;}
	 var XX2=5+fixit_X2;
	 var YY2=1+fixit_Y2;
	document.write('<span style="left:'+XX2+'px; top:'+YY2+'px; " class="dragMe" name="dragging" id="moveMe99" >'); 
	
   for (u2=0;u2<cabeza2.length;u2++)
   {   
        
   
  

   
   document.write(cabeza2[u2].childNodes[0].nodeValue); 
    
   }
   
   document.write('</span>');  
   
    for (e2=0;e2<respuesta2.length;e2++)
   {   
    nx2 =e2+800; 
     document.write('<br />'); 
	var left2=Math.floor(Math.random()*300); 
	var top2=Math.floor(Math.random()*70); 
    document.write('<p name="d2d" class="dragMeB" id="moveMe'+nx2+'" onmousedown="doit(\'moveMe'+nx2+'\')" style="font-size: 20px; color: #FFFFFF; position:absolute; width: 200px; left:'+(left2+100)+'px; top:'+(top2+90)+'px; clip: auto;">');
   document.write(respuesta2[e2].childNodes[0].nodeValue); 
  document.write('</p>'); 
      
   }
   
   for (e2=0;e2<respuestaM.length;e2++)
   {   
    nxM2 =e2+400; 
     document.write('<br />'); 
	var left2=Math.floor(Math.random()*410); 
	var top2=Math.floor(Math.random()*70); 
    document.write('<p name="d2d"class="dragMeM" id="moveMe'+nxM2+'" onmousedown="doit(\'moveMe'+nxM2+'\')" style="font-size: 20px; color: #FFFFFF; position:absolute; width: 200px; left:'+(left2+100)+'px; top:'+(top2+90)+'px; clip: auto;">');
   document.write(respuestaM[e2].childNodes[0].nodeValue); 
  document.write('</p>'); 
      
   }
   
    document.write('</td></tr></table>');
	document.write('</td></tr>'); 
  }
}
 /***********************************************
* developed by Jose A Becerril 2008. 
*This scripts just draws the final part of the exam table.
***********************************************/
function terminameloD2()
{
document.write('<form name="auto_F_drag2" method="POST" action=""><tr><td><a href="#"  onclick="ComprobarD2();return false;" class="boton">Comprobar</a></td><td>Tu respuesta est&aacute;:<input name="ScoreBox2" size="4" maxlength="4" type="text" class="result"/></td><td></td><td><a href="#" onClick="javascript:nuevoexamenD2(); return false" class="boton" style="width:180px">Cambiar pregunta.</a></td></tr><tr><td colspan="4">1- Desenmara&ntilde;a las respuestas y pon las <strong>falsas</strong> en la papelera. <br />2- Obt&eacute;n el resultado pulsando <em><strong>Comprobar</strong></em>.<br />4- Obt&eacute;n una pregunta nueva pulsando sobre <em><strong>Cambiar pregunta.</strong></em>.<br /></td></tr></table></form>');
}
function nuevoexamenD2()
{document.auto_F_drag2.reset(); aumenta01('D2');cambia('groupD2','td');reduce01('D2');}  //
/***********************************************
* developed by Jose A Becerril 2008. 
*This scripts checks the right sequence. Drag & drop feature
***********************************************/
function ComprobarD2()
{  

var i2=0;
var counter2=0;
var alldivs=document.getElementsByTagName("p"); 


 for (i2=0;i2<alldivs.length;i2++)  
 { 
     var dragged=alldivs[i2];         
	 var dragMe=dragged.className; 
	 
	 
	 if (dragMe!="dragMeB" && dragMe!="dragMeM") {counter2=0;}
	
	else if(counter2<4 && dragMe=="dragMeB"  && findPosX(dragged)<650)
	   { document.auto_F_drag2.ScoreBox2.value ='Bien'; counter2++;}
    
	else if(counter2<4 && dragMe=="dragMeM"  && findPosX(dragged)>650)
	   { document.auto_F_drag2.ScoreBox2.value ='Bien'; counter2++; }
    
	   
	 
	
	
		 else if (counter2<4)
		  { 
		document.auto_F_drag2.ScoreBox2.value ='Mal'; break ;
		 }
		 else
		 {
			 document.auto_F_drag2.ScoreBox2.value ='Bien'; break ;
			 }
}
}
	/***********************************************
* developed by Jose A Becerril 2008. 
*This scripts loads and formats an external xml sheet,
in combination with the css sheet. Cloze test devised, 
spelling (dictation) version.
***********************************************/
function hazmagiaCzOrt(examen)
{ 
 xmlDoc=loadXMLDoc(examen); 

 cabeza=xmlDoc.getElementsByTagName("cabeza"); 
 respuesta=xmlDoc.getElementsByTagName("respuesta"); 
 respuestaMala=xmlDoc.getElementsByTagName("respuestaMala"); 
//var recortadoImpar = (Math.floor(cabeza.length/2))*2;

var cabezas=0;
var respuestas=0;
counter=0;

document.write('<form name="auto_F_cloze" method="POST" action="">');
document.write('<table class="media"   style="background-color: #CC9966;height: 100%;">');
document.write('<tr class="chica" name="Z" style="display:table-row; height:300px;vertical-align: middle;  font-size: 18px;"><td colspan="4">');
for (i=0;i<cabeza.length;i++)
  {  
   var idnum = i+1;
   document.write(cabeza[i].childNodes[0].nodeValue); 
  
   
           if(respuesta.length!=counter)
		   {
           var opcion_Rpta = respuesta[i].childNodes[0].nodeValue;
		   
		   counter++ ;
		   document.write('&nbsp;<input class="Ort" name="Zrpta" size="15" maxlength="15" type="text" />&nbsp;'); 
		   document.write('<input class="bien" name="Zbm" size="4" maxlength="4" type="text"  style="display:none;" />');
           document.write('<span class="Zxml" style="display:none;"><input name="Zrpta" size="15" maxlength="15" type="text" value="'+opcion_Rpta+'" /></span>');
		   }
   }
		  
		 
}
 /***********************************************
* developed by Jose A Becerril 2008. 
*This scripts just draws the final part of the exam table.
***********************************************/
function terminameloCz()
{
document.write('</td></tr><tr style="background-color: #CC9966;"><td><a href="#"  onclick="ComprobarCz();return false;" class="boton">Comprobar</a></td><td>Tu nota es de:<input name="ScoreBox" size="4" maxlength="4" type="text" class="result"/></td><td><a href="#" onClick="javascript:document.auto_F_cloze.reset();return false" class="boton">Borrar</a></td><td><a href="#" onClick="javascript:toggleFrom(); return false" class="boton" style="width:180px">Ver respuestas</a></td></tr><tr style="background-color: #CC9966;"><td colspan="4">1- Escribe las respuestas correctas en los espacios previstos.<br />2- Obt&eacute;n la nota que has sacado pulsando <em><strong>Comprobar</strong></em>.<br />3- Obt&eacute;n todas las respuestas pulsando sobre <em><strong>Ver respuestas</strong></em>.</td></tr></table></form>');
}
function toggleFrom()
{toggleAll('span','Zxml'); 
var i = 0;
       var alldivs=document.getElementsByName('Zbm');
	   for (i=0; i<alldivs.length;i++) 
	   {
	   name=alldivs[i].name; 
	   if(name == 'Zbm') 
	   {
	   alldivs[i].style.display ='none';
	   }
	  	   } 

}
function ComprobarCz()
{

	var i = 0;
	var TotalCorrect = 0;
	var Score = 0;
    var counter2=0;
	var alumno='talVez';
	var profe='CorrectaSiempre';
	
	toggleAll('span','Zxml');
	
	comprueba = new Array();
	var nota =document.getElementsByName('Zbm');  
	for (i=0; i<nota.length;i++)
	{
	comprueba.push(nota[i]); 
	}
	
    
    
	   
	 var respuestas =document.getElementsByName('Zrpta');  
	 for (i=0; i<respuestas.length; i++)
{           
	        var respta =simplifica( respuestas[i].value); 
			if( (Math.floor(i/2)*2)!=i )
		            {profe=respta;} 
			else {alumno=respta;} 
	      if (profe==alumno)
            {                                                              

            counter2 = ((i-1)/2); 
		    nota[counter2].value = rightchar; 
			TotalCorrect++; 
           }		
		   else
        {          
		counter2 = Math.floor(i/2); 
		 nota[counter2].value= wrongchar;                     
		
        }
}
	toggleAll('span','Zxml');
	toggleAll('input','bien');
	{Score = Math.floor((TotalCorrect*100)/(respuestas.length/2));
	document.auto_F_cloze.ScoreBox.value = Score + '%';}
}
/***********************************************
* developed by Jose A Becerril 2008. 
*This scripts loads and formats an external xml sheet,
in combination with the css sheet. Cloze test devised, 
spelling (ortografia) version.
***********************************************/
function hazmagiaCzOrt2(examen)
{ 
 xmlDoc=loadXMLDoc(examen); 

 cabeza=xmlDoc.getElementsByTagName("cabeza"); 
 respuesta=xmlDoc.getElementsByTagName("respuesta"); 
 respuestaMala=xmlDoc.getElementsByTagName("respuestaMala"); 
//var recortadoImpar = (Math.floor(cabeza.length/2))*2;

var cabezas=0;
var respuestas=0;
counter=0;

document.write('<form name="auto_F_cloze" method="POST" action="">');
document.write('<table class="media"   style="background-color: #CC9966;height: 100%;">');
document.write('<tr class="chica" name="Z" style="display:table-row; height:300px;vertical-align: middle;  font-size: 18px;"><td colspan="4">');
for (i=0;i<cabeza.length;i++)
  {  
   var idnum = i+1;
   document.write(cabeza[i].childNodes[0].nodeValue); 
  
   
           if(respuesta.length!=counter)
		   {
           var opcion_Rpta = respuesta[i].childNodes[0].nodeValue;
		   var opcion_Mala = respuestaMala[i].childNodes[0].nodeValue;
		   counter++ ;
		   document.write('&nbsp;<input class="Ort" name="Zrpta" size="15" maxlength="15" type="text" value="'+opcion_Mala+'"/>&nbsp;'); 
		   document.write('<input class="bien" name="Zbm" size="4" maxlength="4" type="text"  style="display:none;" />');
           document.write('<span class="Zxml" style="display:none;"><input name="Zrpta" size="15" maxlength="15" type="text" value="'+opcion_Rpta+'" /></span>');
		   }
   }
		  
		 
}

 /***********************************************
* developed by Jose A Becerril 2008. 
*This scripts just draws the final part of the exam table.
***********************************************/
function terminameloCzOrt2()
{
document.write('</td></tr><tr style="background-color: #CC9966;"><td><a href="#"  onclick="ComprobarCzOrt2();return false;" class="boton">Comprobar</a></td><td>Tu nota es de:<input name="ScoreBox" size="4" maxlength="4" type="text" class="result"/></td><td><a href="#" onClick="javascript:document.auto_F_cloze.reset();return false" class="boton">Borrar</a></td><td><a href="#" onClick="javascript:toggleFrom2(); return false" class="boton" style="width:180px">Ver respuestas</a></td></tr><tr style="background-color: #CC9966;"><td colspan="4">1- Escribe las respuestas correctas en los espacios previstos.<br />2- Obt&eacute;n la nota que has sacado pulsando <em><strong>Comprobar</strong></em>.<br />3- Obt&eacute;n todas las respuestas pulsando sobre <em><strong>Ver respuestas</strong></em>.</td></tr></table></form>');
}
function toggleFrom2()
{toggleAll('span','Zxml'); 
var i = 0;
       var alldivs=document.getElementsByName('Zbm');
	   for (i=0; i<alldivs.length;i++) 
	   {
	   name=alldivs[i].name; 
	   if(name == 'Zbm') 
	   {
	   alldivs[i].style.display ='none';
	   }
	  	   } 

}
function ComprobarCzOrt2()
{

	var i = 0;
	var TotalCorrect = 0;
	var Score = 0;
    var counter2=0;
	var alumno='talVez';
	var profe='CorrectaSiempre';
	
	toggleAll('span','Zxml');
	
	comprueba = new Array();
	var nota =document.getElementsByName('Zbm');  
	for (i=0; i<nota.length;i++)
	{
	comprueba.push(nota[i]); 
	}
	
    
    
	   
	 var respuestas =document.getElementsByName('Zrpta');  
	 for (i=0; i<respuestas.length; i++)
{           
	        var respta =simplifica( respuestas[i].value); 
			if( (Math.floor(i/2)*2)!=i )
		            {profe=respta;} 
			else {alumno=respta;} 
	      if (profe==alumno)
            {                                                              

            counter2 = ((i-1)/2); 
		    nota[counter2].value = rightchar; 
			TotalCorrect++; 
           }		
		   else
        {          
		counter2 = Math.floor(i/2); 
		 nota[counter2].value= wrongchar;                     
		
        }
}
	toggleAll('span','Zxml');
	toggleAll('input','bien');
	{Score = Math.floor((TotalCorrect*100)/(respuestas.length/2));
	document.auto_F_cloze.ScoreBox.value = Score + '%';}
}
