////////////////////////////////////////////////////////////////////////////
// (c) 2002 Net Languages S.L.
// All rights reserved.
//
// Script para tipos de ejercicios de dropdowns.
//
// Ultima modificación: 27-02-2003
// En la última modificación se ha hecho lo siguiente:
//    Adaptar el script para poder poner mas de un dropdown en cada frase
//    Se usa especificando el "grupo", que es el numero de dropdowns que
//    habra en cada frase.
////////////////////////////////////////////////////////////////////////////


//------------------------- Definicion de constantes -----------------------------

var CONST_COLORES_DD = new Array();
CONST_COLORES_DD[0] = "#000000";	// negro
CONST_COLORES_DD[1] = "#0000FF";	// azul oscuro
CONST_COLORES_DD[2] = "#FF0000";	// rojo
CONST_COLORES_DD[3] = "#009900";	// verde
CONST_COLORES_DD[4] = "#0099CC";	// azul claro

var CONST_CABECERA_DD = new Array();
CONST_CABECERA_DD[0] = new Array();
CONST_CABECERA_DD[1] = new Array();
CONST_CABECERA_DD[2] = new Array();

var CONST_COMENTARIOS_DD = new Array();
CONST_COMENTARIOS_DD[0] = new Array();
CONST_COMENTARIOS_DD[1] = new Array();

var CONST_CERRAR_DD = new Array();
var CONST_TITULO_DD = new Array();
var CONST_CORRECTO_DD = new Array();
var CONST_INCORRECTO_DD = new Array();
var CONST_NO_CONTESTADO_DD = new Array();
var CONST_INTENTELO_DD = new Array();
var CONST_RESPUESTA_DD = new Array();

var CONST_PUNTUACION_1_DD = new Array();
var CONST_PUNTUACION_2_DD = new Array();
var CONST_PUNTUACION_3_DD = new Array();


//------------------------- Constantes para Español (0) -----------------------------

CONST_CABECERA_DD[0][0] = "";
CONST_CABECERA_DD[0][1] = "<p><font face='Arial, Helvetica, sans-serif' size='3'><b>Resultados:</b></font></p>\n\n";
CONST_CABECERA_DD[0][2] = "<p><font face='Arial, Helvetica, sans-serif' size='3'><b>Respuestas correctas:</b></font></p>\n\n";

CONST_COMENTARIOS_DD[0][0] = "";
CONST_COMENTARIOS_DD[0][1] = "<font face='Verdana' size='1'>Las respuestas correctas están en </font><font face='Verdana' size='1' color='009900'>verde</font>.<br>\n<font face='Verdana' size='1'>Las respuestas incorrectas están en </font><font face='Verdana' size='1' color='FF0000'>rojo</font>.<br><br><br>\n\n";
CONST_COMENTARIOS_DD[0][2] = "<font face='Verdana' size='1'>Las respuestas correctas están en </font><font face='Verdana' size='1' color='0000FF'>azul</font>.<br>\n<font face='Verdana' size='1'>Las respuestas incorrectas están en </font><font face='Verdana' size='1' color='FF0000'>rojo</font>.<br><br><br>\n\n";
CONST_COMENTARIOS_DD[0][3] = "<font face='Verdana' size='1'>Las respuestas correctas están en negro.</font><br>\n<font face='Verdana' size='1'>Las respuestas incorrectas están en </font><font face='Verdana' size='1' color='FF0000'>rojo</font>.<br><br><br>\n\n";
CONST_COMENTARIOS_DD[0][4] = "<font face='Verdana' size='1'>Las respuestas incorrectas están en </font><font face='Verdana' size='1' color='FF0000'>rojo</font>.<br><br><br>\n\n";

CONST_CERRAR_DD[0] = "Cerrar";
CONST_TITULO_DD[0] = "Resultados";
CONST_CORRECTO_DD[0] = "Correcto.";
CONST_INCORRECTO_DD[0] = "Incorrecto.";
CONST_NO_CONTESTADO_DD[0] = "No contestado.";
CONST_INTENTELO_DD[0] = "¡Inténtelo otra vez!";
CONST_RESPUESTA_DD[0] = "Respuesta";

CONST_PUNTUACION_1_DD[0] = "Su resultado es";
CONST_PUNTUACION_2_DD[0] = "Su puntuación final es";
CONST_PUNTUACION_3_DD[0] = "de";


//------------------------- Constantes para Inglés (1) -----------------------------

CONST_CABECERA_DD[1][0] = "";
CONST_CABECERA_DD[1][1] = "<p><font face='Arial, Helvetica, sans-serif' size='3'><b>Results:</b></font></p>\n\n";
CONST_CABECERA_DD[1][2] = "<p><font face='Arial, Helvetica, sans-serif' size='3'><b>Correct answers:</b></font></p>\n\n";

CONST_COMENTARIOS_DD[1][0] = "";
CONST_COMENTARIOS_DD[1][1] = "";

CONST_CERRAR_DD[1] = "Close";
CONST_TITULO_DD[1] = "Results";
CONST_CORRECTO_DD[1] = "Correct.";
CONST_INCORRECTO_DD[1] = "Incorrect.";
CONST_NO_CONTESTADO_DD[1] = "Unanswered.";
CONST_INTENTELO_DD[1] = "Have another go!";
CONST_RESPUESTA_DD[1] = "Answer";

CONST_PUNTUACION_1_DD[1] = "Your score is";
CONST_PUNTUACION_2_DD[1] = "Your final score is";
CONST_PUNTUACION_3_DD[1] = "out of";


//------------------------- Funciones -----------------------------

if (versionID_DD == null) var versionID_DD = new Array();
versionID_DD[versionID_DD.length] = ("Type Drop Downs: v1.0\n");

function DropDown(dropDown,respuesta,feedbackComun,feedbackCorrecto,feedbackIncorrecto,f0,f1,f2,f3,f4,f5,f6,f7,f8,f9) {
	this.list_DD = dropDown;
	this.respuesta_DD = respuesta;
	this.feedbackComun_DD = feedbackComun;
	this.feedbackCorrecto_DD = feedbackCorrecto;
	this.feedbackIncorrecto_DD = feedbackIncorrecto;
	
	this.f0_DD = f0;
	this.f1_DD = f1;
	this.f2_DD = f2;
	this.f3_DD = f3;
	this.f4_DD = f4;
	this.f5_DD = f5;
	this.f6_DD = f6;
	this.f7_DD = f7;
	this.f8_DD = f8;
	this.f9_DD = f9;
	
	this.correcto_DD = _consultarCorrecto_DD;
	this.respondido_DD = _consultarRespondido_DD;
	this.tipoFeedback_DD = _tipoFeedback_DD;
	this.darFocus_DD = _darFocus_DD;
	}

function _darFocus_DD() {
	if (navigator.appVersion.indexOf("MSIE 3") < 0)
		this.list_DD.focus();
	}

function _consultarCorrecto_DD() {
	return (this.list_DD.selectedIndex == this.respuesta_DD);
	}

function _consultarRespondido_DD() {
	if (this.list_DD.selectedIndex != 0)
		return true;
	return false;
	}

function _tipoFeedback_DD() {
	// tipoFeedback:
	// 1 -> Feedback comun (0 . 0)
	// 2 -> No hay feedback (- . -)
	// 3 -> Feedback solo Incorrecto (- . 2)
	// 4 -> Feedback solo Correcto (1 . -)
	// 5 -> Feedback Correcto e Incorrecto (1 . 2)
	var tipoFeedback;
	
	if ((this.feedbackComun_DD == null) || (this.feedbackComun_DD == "")) {
		if ((this.feedbackCorrecto_DD == null) || (this.feedbackCorrecto_DD == "")) {
			if ((this.feedbackIncorrecto_DD == null) || (this.feedbackIncorrecto_DD == ""))
				tipoFeedback = 2;
			else
				tipoFeedback = 3;
			}
		else {
			if ((this.feedbackIncorrecto_DD == null) || (this.feedbackIncorrecto_DD == ""))
				tipoFeedback = 4;
			else
				tipoFeedback = 5;
			}
		}
	else
		tipoFeedback = 1;
	
	return tipoFeedback;
	}

function generarCorrecto_DD(tipo,preguntas,x,colorCorrecto) {
	var correcto = "";
	var feedback = "";
	var feedbackEspecifico = "";
	
	if ((preguntas[x].tipoFeedback_DD() != 2) && (preguntas[x].tipoFeedback_DD() != 3))
		feedback = preguntas[x].feedbackCorrecto_DD;
	if (preguntas[x].tipoFeedback_DD() == 1)
		feedback = preguntas[x].feedbackComun_DD;
	
	if ((tipo == 8) || (tipo == 9)) {
		feedbackEspecifico = eval("preguntas[x].f" + (preguntas[x].list_DD.selectedIndex - 1) + "_DD");
		if (feedbackEspecifico == null)
			feedbackEspecifico = "";
		}
	
	switch(tipo) {
		case 0:
			// 0 -> Correcto + feedback, todo en negro
			correcto = "<font color='" + CONST_COLORES_DD[0] + "'>";
			correcto += CONST_CORRECTO_DD[preguntas.idioma];
			correcto += " ";
			correcto += feedback;
			correcto += "</font>";
			break;
		case 1:
			// 1 -> Correcto + feedback, correcto de un color y feedback en negro
			correcto = "<font color='" + colorCorrecto + "'>";
			correcto += CONST_CORRECTO_DD[preguntas.idioma];
			correcto += "</font>";
			correcto += " ";
			correcto += "<font color='" + CONST_COLORES_DD[0] + "'>";
			correcto += feedback;
			correcto += "</font>";
			break;
		case 2:
			// 2 -> Correcto + feedback, todo correcto de un color
			correcto = "<font color='" + colorCorrecto + "'>";
			correcto += CONST_CORRECTO_DD[preguntas.idioma];
			correcto += " ";
			correcto += feedback;
			correcto += "</font>";
			break;
		case 3:
			// 3 -> feedback todo en negro
			correcto = "<font color='" + CONST_COLORES_DD[0] + "'>";
			correcto += feedback;
			correcto += "</font>";
			break;
		case 4:
			// 4 -> feedback todo de un color
			correcto = "<font color='" + colorCorrecto + "'>";
			correcto += feedback;
			correcto += "</font>";
			break;
		case 5:
			// 5 -> Correcto en negro
			correcto = "<font color='" + CONST_COLORES_DD[0] + "'>";
			correcto += CONST_CORRECTO_DD[preguntas.idioma];
			correcto += "</font>";
			break;
		case 6:
			// 6 -> Correcto en un color
			correcto = "<font color='" + colorCorrecto + "'>";
			correcto += CONST_CORRECTO_DD[preguntas.idioma];
			correcto += "</font>";
			break;
		case 7:
			// 7 -> Correcto en negro
			correcto = "<font color='" + CONST_COLORES_DD[0] + "'>";
			correcto += CONST_CORRECTO_DD[preguntas.idioma];
			correcto += "</font>";
			break;
		case 8:
			// 8 -> Feedback especifico en negro para cada opcion
			correcto = "<font color='" + colorCorrecto + "'>";
			correcto += feedbackEspecifico;
			correcto += "</font>";
			break;
		case 9:
			// 9 -> Feedback especifico en color para cada opcion
			correcto = "<font color='" + colorCorrecto + "'>";
			correcto += feedbackEspecifico;
			correcto += "</font>";
			break;
		}
	
	return correcto;
	}

function generarIncorrecto_DD(tipo,preguntas,x,colorIncorrecto) {
	var correcto = "";
	var feedback = "";
	var feedbackEspecifico = "";
	
	if ((preguntas[x].tipoFeedback_DD() != 2) && (preguntas[x].tipoFeedback_DD() != 4))
		feedback = preguntas[x].feedbackIncorrecto_DD;
	if (preguntas[x].tipoFeedback_DD() == 1)
		feedback = preguntas[x].feedbackComun_DD;

	if ((tipo == 8) || (tipo == 9)) {
		feedbackEspecifico = eval("preguntas[x].f" + (preguntas[x].list_DD.selectedIndex - 1) + "_DD");
		if (feedbackEspecifico == null)
			feedbackEspecifico = "";
		}
	
	switch(tipo) {
		case 0:
			// 0 -> Correcto + feedback, todo en negro
			correcto = "<font color='" + CONST_COLORES_DD[0] + "'>";
			correcto += CONST_INCORRECTO_DD[preguntas.idioma];
			correcto += " ";
			correcto += feedback;
			correcto += "</font>";
			break;
		case 1:
			// 1 -> Correcto + feedback, correcto de un color y feedback en negro
			correcto = "<font color='" + colorIncorrecto + "'>";
			correcto += CONST_INCORRECTO_DD[preguntas.idioma];
			correcto += "</font>";
			correcto += " ";
			correcto += "<font color='" + CONST_COLORES_DD[0] + "'>";
			correcto += feedback;
			correcto += "</font>";
			break;
		case 2:
			// 2 -> Correcto + feedback, todo correcto de un color
			correcto = "<font color='" + colorIncorrecto + "'>";
			correcto += CONST_INCORRECTO_DD[preguntas.idioma];
			correcto += " ";
			correcto += feedback;
			correcto += "</font>";
			break;
		case 3:
			// 3 -> feedback todo en negro
			correcto = "<font color='" + CONST_COLORES_DD[0] + "'>";
			correcto += feedback;
			correcto += "</font>";
			break;
		case 4:
			// 3 -> feedback todo de un color
			correcto = "<font color='" + colorIncorrecto + "'>";
			correcto += feedback;
			correcto += "</font>";
			break;
		case 5:
			// 5 -> Incorrecto + Respuesta correcta en negro y cursiva
			correcto = "<font color='" + CONST_COLORES_DD[0] + "'>";
			correcto += CONST_INCORRECTO_DD[preguntas.idioma];
			correcto += " ";
			correcto += CONST_RESPUESTA_DD[preguntas.idioma] + ": <i>" + feedback + "</i>";
			correcto += "</font>";
			break;
		case 6:
			// 6 -> Incorrecto en un color + Respuesta correcta en negro y respuesta incorrecta en color
			correcto = "<font color='" + colorIncorrecto + "'>";
			correcto += CONST_INCORRECTO_DD[preguntas.idioma];
			correcto += "</font>";
			correcto += " ";
			correcto += "<font color='" + CONST_COLORES_DD[0] + "'>";
			correcto += CONST_RESPUESTA_DD[preguntas.idioma] + ": <font color=" + colorIncorrecto + ">" + feedback + "</font>";
			correcto += "</font>";
			break;
		case 7:
			// 7 -> Incorrecto en negro y respuesta correcta en un color
			correcto = "<font color='" + CONST_COLORES_DD[0] + "'>";
			correcto += CONST_INCORRECTO_DD[preguntas.idioma];
			correcto += "</font>";
			correcto += " ";
			correcto += "<font color='" + CONST_COLORES_DD[0] + "'>";
			correcto += CONST_RESPUESTA_DD[preguntas.idioma] + ": <font color=" + colorIncorrecto + ">" + feedback + "</font>";
			correcto += "</font>";
			break;
		case 8:
			// 8 -> Feedback especifico en negro para cada opcion
			correcto = "<font color='" + colorIncorrecto + "'>";
			correcto += feedbackEspecifico;
			correcto += "</font>";
			break;
		case 9:
			// 9 -> Feedback especifico en color para cada opcion
			correcto = "<font color='" + colorIncorrecto + "'>";
			correcto += feedbackEspecifico;
			correcto += "</font>";
			break;
		}
	
	return correcto;
	}

function buscarColorCorrecto_DD(tipo) {
	var colorCorrecto;
	
	if (tipo == 0) colorCorrecto = CONST_COLORES_DD[0];
	if (tipo == 1) colorCorrecto = CONST_COLORES_DD[1];
	if (tipo == 2) colorCorrecto = CONST_COLORES_DD[1];
	if (tipo == 3) colorCorrecto = CONST_COLORES_DD[0];
	if (tipo == 4) colorCorrecto = CONST_COLORES_DD[1];
	if (tipo == 5) colorCorrecto = CONST_COLORES_DD[0];
	if (tipo == 6) colorCorrecto = CONST_COLORES_DD[1];
	if (tipo == 7) colorCorrecto = CONST_COLORES_DD[0];
	if (tipo == 8) colorCorrecto = CONST_COLORES_DD[0];
	if (tipo == 9) colorCorrecto = CONST_COLORES_DD[1];
	
	return colorCorrecto;
	}

function buscarColorIncorrecto_DD(tipo) {
	var colorIncorrecto;
	
	if (tipo == 0) colorIncorrecto = CONST_COLORES_DD[0];
	if (tipo == 1) colorIncorrecto = CONST_COLORES_DD[2];
	if (tipo == 2) colorIncorrecto = CONST_COLORES_DD[2];
	if (tipo == 3) colorIncorrecto = CONST_COLORES_DD[0];
	if (tipo == 4) colorIncorrecto = CONST_COLORES_DD[2];
	if (tipo == 5) colorIncorrecto = CONST_COLORES_DD[0];
	if (tipo == 6) colorIncorrecto = CONST_COLORES_DD[2];
	if (tipo == 7) colorIncorrecto = CONST_COLORES_DD[2];
	if (tipo == 8) colorIncorrecto = CONST_COLORES_DD[0];
	if (tipo == 9) colorIncorrecto = CONST_COLORES_DD[2];
	
	return colorIncorrecto;
	}

function generarFeedback_DD(preguntas,x,tipo) {
	// tipo:
	// 0 -> Correcto-Incorrecto + feedback, todo en negro
	// 1 -> Correcto-Incorrecto + feedback, correcto de un color e incorrecto de otro y feedback en negro
	// 2 -> Correcto-Incorrecto + feedback, todo correcto de un color y todo incorrecto de otro
	// 3 -> feedback todo en negro
	// 4 -> feedback correcto de un color y feedback incorrecto de otro
	// 5 -> Correcta | Incorrecta. Respuesta: ____ (todo en negro y la respuesta en cursiva)
	// 6 -> Correcta | Incorrecta. Respuesta: ____ (Correcto en color, Incorrecto en otro color, Respuesta en negro y la respuesta en un color)
	// 7 -> Correcta | Incorrecta. Respuesta: ____ (Correcto en negro, Incorrecto en negro, Respuesta en negro y la respuesta en un color)
	// 8 -> Eleccion multiple con feedback especifico en negro
	// 9 -> Eleccion multiple con feedback especifico en color para cada opción
	//
	// NOTA: El feedback se aparecerá siempre que se haya especificado. Mirar funcion _tipoFeedback()
	var sFeedback = "";
	var colorCorrecto;
	var colorIncorrecto;
	
	colorCorrecto = buscarColorCorrecto_DD(tipo);
	colorIncorrecto = buscarColorIncorrecto_DD(tipo);
	
	if (preguntas[x].respondido_DD()) {
		if (preguntas[x].correcto_DD())
			sFeedback = generarCorrecto_DD(tipo,preguntas,x,colorCorrecto);
		else
			sFeedback = generarIncorrecto_DD(tipo,preguntas,x,colorIncorrecto);
		}
	else
		sFeedback = CONST_NO_CONTESTADO_DD[preguntas.idioma];

	return sFeedback;
	}

function comprobarDropDown(preguntas,tipo,anchura,altura,idioma,intentos,mostrarPrimerIntento,cabecera,comentario,grupo) {
	var iPuntuacion = 0;
	var sResultados;
	var sFeedback = "";
	
	// Miro que me hayan pasado todas las variables, y si me falta alguna uso valores por defecto
	if (anchura == null) anchura = 300;
	if (altura == null) altura = 400;
	if (idioma == null) idioma = 0;
	if (intentos == null) intentos = 2;
	if (mostrarPrimerIntento == null) mostrarPrimerIntento = 0;
	if (cabecera == null) cabecera = 1;
	if (comentario == null) comentario = 2;
	if (grupo == null) grupo = 1;
	
	// Inicializo otras variables
	if (preguntas.mostrarErrores == null) preguntas.mostrarErrores = false;
	if (preguntas.intentos == null) preguntas.intentos = 0;
	if (preguntas.mostrarPrimerIntento == null) preguntas.mostrarPrimerIntento = mostrarPrimerIntento;
	if (preguntas.idioma == null) preguntas.idioma = idioma;
	
	// Cabecera variable
	sResultados = CONST_CABECERA_DD[preguntas.idioma][cabecera];
	
	preguntas.intentos++;
	
	// Miro si tengo que mostrar los errores
	if (preguntas.intentos >= intentos) {
		sResultados += CONST_COMENTARIOS_DD[preguntas.idioma][comentario];
		preguntas.mostrarErrores = true;
		}
	
	sResultados += "<table cellpadding='2' cellspacing='0' border='0'>\n";
	
	// Comprobacion de las respuestas correctas
	for (var x=0; x<preguntas.length; x++) {
		if (x > 1) preguntas.mostrarErrores = false;
		if ((x%grupo) == 0)
			sResultados += " <tr>\n";
		if (preguntas[x].correcto_DD())
			iPuntuacion++;
		if (preguntas.mostrarErrores || (preguntas.intentos >= intentos)) {
			// Segun el tipo de ejercicio tendre que poner un feedback u otro
			sFeedback = generarFeedback_DD(preguntas,x,tipo);
			
			if ((x%grupo) == 0) {
				sResultados += "  <td valign='top'>";
				sResultados += "<font face='Arial, Helvetica, sans-serif' size='2'><b>" + ((x/grupo)+1) + ".</b></font>";
				sResultados += "</td>\n";
				}
			sResultados += "  <td><font face='Arial, Helvetica, sans-serif' size='2'>&nbsp;" + sFeedback + "</font></td>\n";
			}
		else
			// Miro si tengo que mostrar las respuestas que estan bien o mal antes de mostrar los resultados
			if (preguntas.mostrarPrimerIntento == 1) {
				if ((x%grupo) == 0) {
					sResultados += "  <td valign='top'>";
					sResultados += "<font face='Arial, Helvetica, sans-serif' size='2'><b>" + ((x/grupo)+1) + ".</b></font>";
					sResultados += "</td>\n";
					}
				sResultados += "  <td>";
				sResultados += "<font face='Arial, Helvetica, sans-serif' size='2'>&nbsp;";
				if (!preguntas[x].respondido_DD())
					sFeedback=CONST_NO_CONTESTADO_DD[preguntas.idioma];
				else {
					if (preguntas[x].correcto_DD())
						sFeedback=CONST_CORRECTO_DD[preguntas.idioma];
					else
						sFeedback=CONST_INCORRECTO_DD[preguntas.idioma];
					}
				sResultados += sFeedback;
				sResultados += "</font>";
				sResultados += "</td>\n";
				}
		if (((x+1)%grupo) == 0)
			sResultados += " </tr>\n";
		}
	while ((x%grupo) != 0) {
		sResultados += "  <td>&nbsp;</td>\n";
		x++;
		}
	
	sResultados += " <tr><td colspan='" + 1+grupo + "'><hr noshadow size='1'></td></tr>\n";
	
	sResultados += " <tr>\n";
	if (preguntas.intentos >= intentos)
		sResultados += "  <td colspan='" + 1+grupo + "'><font face='Arial, Helvetica, sans-serif' size='2'><b>" + CONST_PUNTUACION_2_DD[preguntas.idioma] + " " + iPuntuacion + " " + CONST_PUNTUACION_3_DD[preguntas.idioma] + " " + preguntas.length + ".</b></font></td>\n";
	else {
		sResultados += "  <td colspan='" + 1+grupo + "'><font face='Arial, Helvetica, sans-serif' size='2'><b>" + CONST_PUNTUACION_1_DD[preguntas.idioma] + " " + iPuntuacion + " " + CONST_PUNTUACION_3_DD[preguntas.idioma] + " " + preguntas.length + ".</b></font></td>\n";
		if (iPuntuacion < preguntas.length) {
			sResultados += " </tr>\n";
			sResultados += " <tr>\n";
			sResultados += "  <td colspan='" + 1+grupo + "'><font face='Arial, Helvetica, sans-serif' size='2'>" + CONST_INTENTELO_DD[preguntas.idioma] + "</font></td>\n";
			}
		}
	sResultados += " </tr>\n";
	sResultados += "</table>\n";
	
	//--------- Para añadir nuevas funcionalidades se deberia modificar el popups.js ------------
	var sVentana = "scrollbars=yes,menubar=yes,resizable=yes,width=" + anchura + ",height=" + altura;
	openPopupWindowHTML(nl_popup,"answer",CONST_TITULO_DD[preguntas.idioma],sResultados,sVentana)
	//-------------------------------------------------------------------------------------------
	}

function comprobarDropDownInmediato(numeroList,preguntas,tipo,anchura,altura,idioma,cabecera,comentario) {
	// Funcion para los ejercicios con feedback inmediato
	var sResultados;
	var sFeedback = "";
	
	// Miro que me hayan pasado todas las variables, y si me falta alguna uso valores por defecto
	if (anchura == null) anchura = 300;
	if (altura == null) altura = 150;
	if (idioma == null) idioma = 0;
	if (cabecera == null) cabecera = 1;
	if (comentario == null) comentario = 0;

	if (preguntas.idioma == null) preguntas.idioma = idioma;
	
	// Cabecera y comentarios variables
	sResultados = CONST_CABECERA_DD[preguntas.idioma][cabecera];
	sResultados += CONST_COMENTARIOS_DD[preguntas.idioma][comentario];
	
	// Miro de que tipo es el ejercicio y genero el feedback
	sFeedback = generarFeedback_DD(preguntas,numeroList,tipo);

	sResultados += "<table cellpadding='2' cellspacing='0' border='0'>\n";
	sResultados += "  <td><font face='Arial, Helvetica, sans-serif' size='2'>" + sFeedback + "</font></td>";
	sResultados += "</table>"
	
	//--------- Para añadir nuevas funcionalidades se deberia modificar el popups.js ------------
	var sVentana = "scrollbars=yes,menubar=yes,resizable=yes,width=" + anchura + ",height=" + altura;
	openPopupWindowHTML(nl_popup,"answer",CONST_TITULO_DD[preguntas.idioma],sResultados,sVentana);
	//-------------------------------------------------------------------------------------------
	}


//------------------------- Test -----------------------------

function totalDropDown(preguntas,puntos) {
	if(puntos == null) puntos = 1;
	return preguntas.length * puntos;
	}

function puntuacionDropDown(preguntas,puntos) {
	var i;
	var puntuacion = 0;
	
	if(puntos == null) puntos = 1;
	for(i=0; i<preguntas.length; i++) {
		if(!preguntas[i].respondido_DD()) return LT_EX_NOT_FINISHED;
		if(preguntas[i].correcto_DD()) puntuacion++;
		}
	return puntuacion * puntos;
	}
