﻿// JavaScript Document
function tabla_cuerpo(img_id ,ttxtC4)
{
var n_txtC4 = document.getElementById(ttxtC4)
if  (n_txtC4 !== null) {
	n_txtC4.height = 227
	var n_txtC4 = document.getElementById(ttxtC4)
	texto = "";
	switch (img_id) {
		case "test" :
			texto = test()
			//window.location['hash']=img_id
			break		
		default :
			texto = ""	
	}
	n_txtC4.innerHTML = texto
	}
}

function vt(caso, negrilla , tamano, emm ,txt)
{
var texto = txt
if (negrilla == 1) {txt = "<strong>" + txt + "</strong>"}
if (tamano > 0) {txt = "<font size= \"" + tamano +"\" >" + txt + "</font>"}
if (emm == 1) {txt = "<em>" + txt + "</em>"}
if (caso>=100) {
	caso = caso-100
	txt = "<center>" + txt + "</center>"
	}

switch (caso) {
	case 0 : //Linea
		texto = "<p>" + txt + "</p>"
		break 
	case 1 : //Parrafo
		texto = txt + "<br>"
		break
	case 2 : //Lista puntos inicio
		texto = "<ul><li>" + txt + "</li>"
		break		
	case 3 : //Lista puntos cont
		texto = "<li>" + txt + "</li>"
		break		
	case 4 : //Lista puntos fin
		if (texto == "") {texto = "</ul>"}
		else {texto = "<li>" + txt + "</li></ul>"}
		break
	case 5 : //Lista puntos inicio
		texto = "<ol><li>" + txt + "</li>"
		break		
	case 6 : //Lista puntos cont
		texto = "<li>" + txt + "</li>"
		break		
	case 7 : //Lista puntos fin
		if (texto == "") {texto = "</ol>"}
		else {texto = "<li>" + txt + "</li></ol>"}
		break		
	default :
		texto = txt	
}
return(texto)
}

/////////////////////////////////// Test conocimientos ////////////////////////////////////////
var v_txt = new Array(10)
var numtest = 1 //El cero cuenta
var npreguntas = 0
var nopciones = 0
function test()
{
Texto = "";
TextoFin ="";
Tam=0;

TextoFin += vt(0,0,Tam,0,'')
TextoFin += vt(0,0,Tam,0,'')
TextoFin += vt(0,0,Tam,0,'') + "</div>"
Texto += "<div align=\"center\" class=\"cuerpo\" id=\"cuerpo\" lang=\"es\">";
Texto += barra_test()
Texto += "<div id=\"dftest\" align=\"left\">";
Texto += test_estruct(0)
Texto += "</div>";
Texto += "</div>";
//Texto += formato_texto(0);
return (TextoFin + Texto)
}
//Escribir estructure
function barra_test()
{
var txt = "";
txt += vt(99,1,Tam,0,'Test número: ')
for (count = 0; count <= numtest ; count++) {
	txt += "<a id=\"insntest" + count + "\" href=\"javascript:void ntest(" + count + ")\">"
	txt += vt(99,0,Tam,0, (count +1)) + "</a>"
	txt += "&nbsp;&nbsp;"
}
return(txt)
}
//Los difrentes test
function ntest(caso)
{
document.getElementById("dftest").innerHTML = test_estruct(caso)
}
// Propiedades de la barra
/*function propbarra(caso)
{
for (count = 0; count <= numtest ; count++) {
	document.getElementById("insntest" + count)
}
document.getElementById("insntest" + caso)
}*/
//Escribir estructure
function test_estruct(caso)
{
var txt = "";
void n_test(caso)
txt += "<div align=\"center\" name=\"formulariogeneral\">";
txt += vt(0,0,Tam,0,'')
txt += vt(0,1,Tam+3,0,"Test nº" + (caso + 1));
txt += vt(0,0,Tam,0,'');
txt += "</div>";
txt += "<form name=\"formulariogen\">";
for (count = 0; count < npreguntas ; count++) {
	txt += "<p>" +  vt(99,1,Tam,0,(count + 1) + ".&nbsp;" +v_txt[count].pregunta) + "</p>"
 	txt += "<p>" + "&nbsp;&nbsp;&nbsp;a. "
	txt += "<input type=\"radio\" id=\"chk" + count + "\" name=\"chk" + count + "\" value=\"a\"  height=\"5\" width=\"5\">"
	txt += "&nbsp;" + v_txt[count].opcion1 + "</p>"
 	txt += "<p>" + "&nbsp;&nbsp;&nbsp;b. "
	txt += "<input type=\"radio\" id=\"chk" + (count+100) + "\" name=\"chk" + count + "\" value=\"b\"  height=\"5\" width=\"5\">"
	txt += "&nbsp;" + v_txt[count].opcion2 + "</p>"
 	txt += "<p>" + "&nbsp;&nbsp;&nbsp;c. "
	txt += "<input type=\"radio\" id=\"chk" + (count+200) + "\" name=\"chk" + count + "\" value=\"c\"  height=\"5\" width=\"5\">"
	txt += "&nbsp;" + v_txt[count].opcion3 + "</p>"
	if (nopciones == 4) {
	txt += "<p>" + "&nbsp;&nbsp;&nbsp;d. "
	txt += "<input type=\"radio\" id=\"chk" + (count+300) + "\" name=\"chk" + count + "\" value=\"d\"  height=\"5\" width=\"5\">"
	txt += "&nbsp;" + v_txt[count].opcion4 + "</p>"
	}
}
txt += "<div align=\"center\">";
txt += vt(0,0,Tam,0,'')
txt += "<input type=\"button\" name=\"boton\" value=\"Corregir\" onClick=\"void coregir()\">"
txt += vt(0,0,Tam,0,'');
txt += "</div>";
txt += "</form>";
txt += "<div id=\"resultado\" align=\"center\">";
txt += "</div>";
return(txt)
}
//Corregir el test
function coregir()
{
var puntuacion=0;
var res_correcta="";
for (count = 0; count < npreguntas ; count++) {
	res_correcta = v_txt[npreguntas]
	res_correcta = res_correcta.slice(count,count+1)
	radio = document.getElementById("chk" + count)
	if (radio.checked == true) {if (radio.value == res_correcta) {puntuacion++}}
	radio = document.getElementById("chk" + (count + 100))
	if (radio.checked == true) {if (radio.value == res_correcta) {puntuacion++}}
	radio = document.getElementById("chk" + (count + 200))
	if (radio.checked == true) {if (radio.value == res_correcta) {puntuacion++}}
	if (nopciones == 4) {
	radio = document.getElementById("chk" + (count + 300))
	if (radio.checked == true) {if (radio.value == res_correcta) {puntuacion++}}
	}
	}
var txt="";
var nota = 100*puntuacion/npreguntas
nota = nota*10
nota=Math.round(nota)
nota=nota/10
if (puntuacion>=0 && puntuacion<5) {txt="Su puntuación es del " + (nota) + "%; !Vúelvalo a intentar!"}
if (puntuacion>=5 && puntuacion<7) {txt="Su puntuación es del " + (nota) + "%; una buena puntuación"}
if (puntuacion>=7 && puntuacion<=9) {txt="Su puntuación es del " + (nota) + "%; es usted todo un experto"}
if (puntuacion>9) {txt="Su puntuación es del " + (nota) + "%; perfecto"}
document.getElementById("resultado").innerHTML = vt(0,1,Tam+2,1, txt) 
alert(txt)
}
//Array de datos
function prueba()
{
var txt = "";
	n_test(0)
	for (count = 0; count < npreguntas ; count++) {
		txt = txt + "<p>" + v_txt[count].pregunta + "</p>"
		txt = txt + "<p>" + v_txt[count].opcion1 + "</p>"
		txt = txt + "<p>" + v_txt[count].opcion2 + "</p>"
		txt = txt + "<p>" + v_txt[count].opcion3 + "</p>"
	}
return(txt)
}

function n_test_dim(preg, op1, op2, op3, op4)
{
	this.pregunta = preg
	this.opcion1 = op1
	this.opcion2 = op2
	this.opcion3 = op3
	if (nopciones == 4) {this.opcion4 = op4}
}
//Relleno el vector general con le tipo de test
function n_test(caso)
{
var txt = "";
txt = ftexto(caso,0)
var indice = 0;
for (count = 0; count < npreguntas ; count++) {
	v_txt[count] = new leer(txt,indice)
	indice = txt.indexOf("#p#",indice + 1)				
}
v_txt[count] = ftexto(caso,1) //El resultado esta e el ultimo elemento
}

function leer(txt , indice)
{
var iniciop = 0;
var inicioa = 0;
var iniciob = 0;
var inicioc = 0;
if (nopciones == 4) {var iniciod = 0;}
var fin = 0;
iniciop = txt.indexOf("#p#",indice)
inicioa = txt.indexOf("#a#",iniciop)
iniciob = txt.indexOf("#b#",iniciop)
inicioc = txt.indexOf("#c#",iniciop)
if (nopciones == 4) {iniciod = txt.indexOf("#d#",iniciop)}
fin = txt.indexOf("#p#",iniciop+1)
var pregunta = txt.slice(iniciop + 3, inicioa )
var opcion1 = txt.slice(inicioa + 3, iniciob )
var opcion2 =  txt.slice(iniciob + 3, inicioc )
if (nopciones == 3) {var opcion3 = txt.slice(inicioc + 3, fin )} else {var opcion3 = txt.slice(inicioc + 3, iniciod )}
if (nopciones == 4) {var opcion4 = txt.slice(iniciod + 3, fin )}
if (nopciones == 3) {var resultado= new n_test_dim(pregunta, opcion1, opcion2, opcion3, "")}
if (nopciones == 4) {var resultado= new n_test_dim(pregunta, opcion1, opcion2, opcion3, opcion4)}
return(resultado)
}

function ftexto(caso,resultado)
{
//Guardar en UTF-8
var txt = "";
switch (caso) {
case 0 : //Linea
	if (resultado==0) {
npreguntas=10
nopciones=3
txt = "#p#¿Como se marcan los spaguetti boloñesa?#a#Cuchara sopera a la derecha y tenedor trinchero a la izquierda#b# Cuchillo trinchero a la derecha y tenedor trinchero a la izquierda#c#Cuchara sopera a la izquierda y tenedor trinchero a derecha#p# El servicio a la inglesa se caracteriza por:#a#El cliente se sirve el mismo, desde la fuente que le es ofrecida por el jefe de rango con ayuda de unas pinzas#b# Es el servicio tipico de la casa de Buckingham, las fuentes van encima de la mesa y son los comensales los que se sirven#c#El jefe de rango sirve por la izquierda del cliente, con ayuda de las pinzas de servicio. Previamente se ha colocado el plato por la derecha del comensal#p# En un banquete con montaje americano, se refiere a:#a#Mesas redondas incluida la presidencia#b# Mesas redondas y alargadas, siendo la presidencia rectangular#c#No existe tal montaje#p#El servicio a la rusa, se caracteriza por:#a#Ser un servicio emplatado#b# Ser un servicio profesional, donde el Jefe de rango trincha, desespina, flambea y emplata delante del cliente#c#Ser un servicio tipo catering#p#Una muletilla es:#a#Lo que utilzan los toreros en las corridas de toros#b# Un aparato utilizado para calzar las mesas#c#Una servilleta doblada de forma especial, que sirve apra el transporte de cubiertos a la mesa del cliente#p#Una Ratatouille es:#a#Un termometro para medir la temperatura de los vinos#b# Una especie de pisto o fritada usada como guarnición#c#Un plato de presentación especial para los esparragos#p#Si el maître o Jefe de Sala recomienda una piña al kaki, se refiere a:#a#Una ensalada de frutas compuesta por piña y caquis#b# Una ensalada fria, servida como primer plato#c#Un postre preparado a la vista del cliente que en su composición lleva yema de huevo y benedictine#p#El café royal es:#a#Un café frio a base de café granizado y helado de vainilla#b# Un café solo con un terron de azucar impregnado en chartreuse amarillo#c#Es igual que el vienes, pero con sirope de caramelo encima de la nata#p#El humidor es:#a#El antiguo mayordomo mayor del rey (servicio de boca)#b# El armario utilizado para la conservación y servicio de cigarros#c#El termostato que regula las cavas especiales de vino#p#El consome Marcel es:#a#Un consome doble con yema que sale de cocina#b# Un consome frio, servido con guarnición de ostras y jugo de limón#c#Es un consome que se prepara con la prensa de jugos en el restaurante delante del cliente#p#";
	}
	else {txt="ccabcbcbbc";}
	break
case 1 : //Linea
	if (resultado==0) {
npreguntas=11
nopciones=4
txt = "#p#El aparador es:#a#La persona que cobra#b#El guardaropa#c#Donde se guarda el material.#d#Un mueble auxiliar de servicio#p#Una bandeja sirve:#a#Para el servicio de manjares al cliente#b#Para sacar y retirar materiales, comidas y bebidas a los clientes#c#Para adorno#d#Para meter al lavavajillas#p#En un hotel, que es el room service:#a#El servicio de comidas y bebidas en las habitaciones#b#Destapar y colocar las camas para su uso#c#El cuarto de baño#d#La limpieza de las habitaciones#p#Es misión principal del facturista:#a#Dirigir el servicio#b#Hacer facturas y liquidación#c#Cobrar las mesas#d#Repartir las propinas#p#El ayudante o \"comis\" tiene como misión principal:#a#Transportar entre cocina o bodega y comedor, ect. material, viandas, ect.#b#Servir platos al cliente#c#Hacer platos a la vista del cliente#d#Recibir a los clientes#p#Trocear una pieza de ave o carne, se llama:#a#Tranchar#b#Despedazar#c#Desespinar#d#Trinchar#p#El petit menage lo componen:#a#Servilleta y cenicero#b#Salero y mostacero#c#No hay nada con este nombre#d#Salero y cenicero#p#La factura se confecciona a partir de:#a#El original de la comanda#b#La primera copia de la comanda#c#La tercera copia de la comanda#d#El vale de pedido#p#El maître de hotel de un restaurante es:#a#La persona de máximo rango en el comedor#b#Quien dirige el servicio en la sala de comedor#c#Todas son verdaderas#d#Organiza al personal del comedor#p#El maître de hotel y el jefe de cocina, dentro del organigrama general estarán:#a#En la misma linea, por tener el mismo cargo#b#El jefe de cocina esta por encima#c#El maître no aparece#d#El maître esta por encima#p#La salsa mahonesa tiene los siguientes ingredientes:#a#Huevo y aceite#b#Yema de huevo y aceite#c#Yema de huevo, aceite y sal#d#Yema de huevo , aceite, sal y un poco de vinagre#p#";
	}
	else {txt="cbabaddcaad";}	
	break
default :
	if (resultado==0) {
npreguntas=10
nopciones=3
txt = "#p#¿Como se marcan los spaguetti boloñesa?#a#Cuchara sopera a la derecha y tenedor trinchero a la izquierda#b# Cuchillo trinchero a la derecha y tenedor trinchero a la izquierda#c#Cuchara sopera a la izquierda y tenedor trinchero a derecha#p# El servicio a la inglesa se caracteriza por:#a#El cliente se sirve el mismo, desde la fuente que le es ofrecida por el jefe de rango con ayuda de unas pinzas#b# Es el servicio tipico de la casa de Buckingham, las fuentes van encima de la mesa y son los comensales los que se sirven#c#El jefe de rango sirve por la izquierda del cliente, con ayuda de las pinzas de servicio. Previamente se ha colocado el plato por la derecha del comensal#p# En un banquete con montaje americano, se refiere a:#a#Mesas redondas incluida la presidencia#b# Mesas redondas y alargadas, siendo la presidencia rectangular#c#No existe tal montaje#p#El servicio a la rusa, se caracteriza por:#a#Ser un servicio emplatado#b# Ser un servicio profesional, donde el Jefe de rango trincha, desespina, flambea y emplata delante del cliente#c#Ser un servicio tipo catering#p#Una muletilla es:#a#Lo que utilzan los toreros en las corridas de toros#b# Un aparato utilizado para calzar las mesas#c#Una servilleta doblada de forma especial, que sirve apra el transporte de cubiertos a la mesa del cliente#p#Una Ratatouille es:#a#Un termometro para medir la temperatura de los vinos#b# Una especie de pisto o fritada usada como guarnición#c#Un plato de presentación especial para los esparragos#p#Si el maître o Jefe de Sala recomienda una piña al kaki, se refiere a:#a#Una ensalada de frutas compuesta por piña y caquis#b# Una ensalada fria, servida como primer plato#c#Un postre preparado a la vista del cliente que en su composición lleva yema de huevo y benedictine#p#El café royal es:#a#Un café frio a base de café granizado y helado de vainilla#b# Un café solo con un terron de azucar impregnado en chartreuse amarillo#c#Es igual que el vienes, pero con sirope de caramelo encima de la nata#p#El humidor es:#a#El antiguo mayordomo mayor del rey (servicio de boca)#b# El armario utilizado para la conservación y servicio de cigarros#c#El termostato que regula las cavas especiales de vino#p#El consome Marcel es:#a#Un consome doble con yema que sale de cocina#b# Un consome frio, servido con guarnición de ostras y jugo de limón#c#Es un consome que se prepara con la prensa de jugos en el restaurante delante del cliente#p#";
	}
	else {txt="ccabcbcbbc";}
	}
return(txt)
}
