Diferencia entre revisiones de «Usuario:Echani/monobook.js»

Contenido eliminado Contenido añadido
Echani (discusión | contribs.)
mSin resumen de edición
 
(Sin diferencias)

Revisión actual - 21:47 9 nov 2006

/************      Módulo wQuiz     **************/
//Versión 1.0, 18 de marzo de 2006
//[[w:Usuario:Comae/monobook.js]]
//Verificado en Opera 8.5, IE 6, Firefox 1.5

var wQuizAnswers=null, wQuizQuestions=null, wQuizQuestion=new Array(), wQuizAnswer=new Array(), wQuizPts;

function wQuizGetSelected(o){
	for(i=0;i<o.length;i++) if(o[i].checked) return(i);
	return(-1);
}
function wQuizOnResult(f){
	var i=0, j=0, p1, p2;
	wQuizPts=0;
	p1=f.firstChild;
	do{
		if(p1.nodeName!='FIELDSET') continue;
		p2=p1.firstChild.nextSibling.nextSibling.firstChild;
		do{
			if(p2.nodeName!='INPUT') continue;
			if(p2.checked) wQuizCount(i,j);
			j++;
		}while(null!=(p2=p2.nextSibling));
		j=0;
		i++;
	}while(null!=(p1=p1.nextSibling));
	alert("Has obtenido "+wQuizPts+" en esta prueba.");
}

function wQuizCount(i,j){
	if(wQuizQuestion[i][j]==wQuizAnswer[i])
		wQuizPts++;
}

function wQuizGetItems(ident){
	if(document.getElementById(ident)!==null){
		var tmp=document.getElementById(ident).firstChild;
		if(tmp.nodeName!='OL'){//Para !=IE
			tmp=tmp.nextSibling;
		}
		return(tmp);
	}else{return(null);}
}

function wQuiz()
{
if (document.getElementById && document.createElement)
{
	var wQuizQuestions=wQuizGetItems('wquiz');
	var wQuizAnswers=wQuizGetItems('wQuizAnswers');
	
	if (!(null==wQuizQuestions || null==wQuizAnswers))
	{
		var a=wQuizCreate(wQuizQuestions, wQuizAnswers);
		if(a!=0) wQuizQuestions.parentNode.innerHTML=a;
	}
}
}

function wQuizCreate(questions, answers)
{
	var txt='<form>', ptr, lista, i=0, j;
	ptr=questions.firstChild;
	do
	{
		if(ptr.nodeName!='LI') continue;
		txt+='<fieldset><legend>Pregunta nº'+(i+1)+'</legend>'+ptr.firstChild.data+"\n<div>";
		lista=ptr.getElementsByTagName('LI');
		wQuizQuestion[i]=new Array();
		for(j=0;j<lista.length;j++){
			txt+='<input type="radio" id="preg'+i+'_'+j+'" name="preg'+i+'" value="'+lista[j].firstChild.data+'">'+lista[j].firstChild.data+'</input><br />\n';
			wQuizQuestion[i][j]=lista[j].firstChild.data;
		}
		i++;
		txt+='</div></fieldset>';
	}while(null!==(ptr=ptr.nextSibling))
	var i=0;
	ptr=answers.firstChild;
	do
	{
		if(ptr.nodeName!='LI') continue;
		wQuizAnswer[i++]=ptr.firstChild.data;
	}while(null!==(ptr=ptr.nextSibling))

	return(txt+'<button onclick="wQuizOnResult(this.form); return(false);">Finalizar la prueba</button></form>');
}

/************     Fin módulo wQuiz    **************/


/***********         Motor de módulos          ***********/
/*  Éste es el que pone en marcha los módulos.
/*  No debes cambiar esta parte NUNCA.
/*  Para configurar tus módulos, vete a la sección del 
/*  final, donde pone "Configuración de módulos".
/*********************************************************/
var plugin=new Array();

function pluginRun()
{
//Cargar todos los plugins
for (i=0;i<plugin.length;i++)
{
 plugin[i]();
}
}

function pluginLoad(nombre)
{
 plugin[plugin.length++]=nombre;
}

function pluginImport(nombre)   //Cargar plugin(i)
{
 document.write('<'+'script src="/w/wiki.phtml?title='+nombre+'&ctype=text/javascript&action=raw&dontcountme=s" type="text/javascript"><'+'/script>');
}
window.onload = pluginRun;

/****************** Configuración de módulos ******************/
/*  Si quieres desactivar temporalmente un módulo, basta con 
/* agregar dos barras "//" al principio de las líneas en las
/* que aparezca.
/**************************************************************/
//Activar plugins
pluginLoad(wQuiz);