//Este script y otros en www.elcodigo.net

var hombre = new Array("___\n", "   |\n", "   O\n", "  /", "|", "\\\n", "  /", " \\\n", "___")
var palabra
var libreriaPalabras = new Array("a n n e m a n n", "a l e x a n d e r", "c o r i n d a", "d u n n i n g e r", "c o l o m b i n i", 
	"e r d n a s e", "h o f z i n s e r", "l e i p z i g", "h o u d i n i", "s i l v a n", "a r s e n i o", 
	"m a l i n i", "c a r d i n i", "s l y d i n i", "a s c a n i o", "b i n a r e l l i",
	"t a m a r i z", "t h u r s t o n", "d a n t e", "k e l l a r", "b l a c k s t o n e", "v e r n o n",
	"p i n e t t i", "f r a k s o n", "m a s k e l y n e", "k a p l a n", "h o r o w i t z", "s a l v a n o",
        "o k i t o", "g o s h m a n")
var partes = 0
var colNueva = 0
var jugando

function ObtienePalabra() {
	//obtiene la palabra para jugar de forma pseudoaleatoria
	var indice = Math.round ( Math.random() * 24 )
	var cadena = new String( libreriaPalabras[indice] )
	palabra = cadena.split(" ")
}

function DibujaHombre(visor, partes) {
	//dibuja el hombre ahorcado
	//partes indica el numero de partes a dibujar
	
	var dibujo = ""
	if (partes < 10)
		for(var x = 0; x < partes; x++) {
			dibujo += hombre[x]
		}
	
	visor.displayHombre.value = dibujo
}

function DibujaLetra(visor, letra) {
	//dibuja una letra de la palabra
	//posicion indica donde debe dibujar la letra

	var flag = false		//indica si se encontro la letra	
	
	//obtiene cadena actual
	var cadena = new String(visor.displayPalabra.value)
	
	//la separa en sus espacios
	var letrasCadena = cadena.split(" ")

	cadena = ""	
	for (var x = 0; x < palabra.length; x++) {
		if (palabra[x] == letra) {
			cadena += letra + " "
			flag = true
		} else
			cadena += letrasCadena[x] + " "
	}
	
	visor.displayPalabra.value = cadena
	return flag
}

function NuevaLetra(visor, letra) {
	//aŅade letra lista de letras
	visor.displayLetras.value += letra + " "

	//comprueba si ha de pasar a la siguiente fila
	if(colNueva == 5) {
		visor.displayLetras.value += "\n"
		colNueva = 0
	} else
		colNueva++
}

function Juega(visor, letra) {

	//comprueba si esta jugando
	if (jugando) {

		//ciclo de jugada
	
		//1. aŅade letra a la lista
		NuevaLetra(visor, letra)
	
		//2. dibuja la letra y comprueba si acierto
		var acierto = DibujaLetra(visor, letra)
	
		//3. si no acierto, dibuja hombre
		if (!acierto)
			DibujaHombre(visor, ++partes)
	
		//4. comprueba si fin
		if (partes == 9)
			FinJuego(false)
		else if ( CompruebaPalabra(visor) )
			FinJuego(true)

	} else {
		alert('Clicca Nuovo gioco per iniziare\nuna nuova partita.')
	}
}

function IniciaJuego(visor) {
	//inicializa visor y variables globales
	jugando = true
	partes = 0
	colNueva = 0
	ObtienePalabra()
	DibujaHombre(visor, partes)
	visor.displayPalabra.value = ""
	for (var x = 0; x < palabra.length; x++)
		visor.displayPalabra.value += "_ "
	visor.displayLetras.value = ""
}

function CompruebaPalabra(visor) {
	//comprueba si se completo toda la palabra

	var fin = true
	
	//obtiene cadena actual
	var cadena = new String(visor.displayPalabra.value)
	
	//la separa en sus espacios
	var letrasCadena = cadena.split(" ")
	
	for(var x = 0; x < letrasCadena.length; x++)
		if (letrasCadena[x] == "_")
			fin = false

	return fin
}

function FinJuego(resultado) {
	//indica que si se ha perdido o ganado
	var solucion = ""

	jugando = false	
	if (resultado) {
		document.visor.ganadas.value++
		alert("Bravo! Hai indovinato!")
	} else {
		document.visor.perdidas.value++
		//construye la palabra solucion
		for (var x = 0; x < palabra.length; x++)
			solucion += palabra[x]
		alert("Mi dispiace\n Il Mago era: " + solucion)
	}
}