// JavaScript Document
<!--
/*
Nombre: Script para lanzar los dados
Autor: Óscar Pino Morillas
Versión: 2.0.0
Fecha: 25-03-08

Requiere que se incluya en el documento html el fichero md5.js, 
el cual corresponde a la implementación del algoritmo md5 Paul Johnston, bajo licencia BSD.


Idea: "texto" parece ser la textarea donde se escribe el mensaje,
y "JS_Texto" el objeto que contiene el editor avanzado.
Idea: Se pueden añadir controles para realizar las tiradas con campos <input>

Idea: el document donde se postea se llama "post.php"

*/

// Previo: comprobamos si estamos posteando; si es así, insertamos los botones para hacer tiradas

var url_a_buscar = "post.php";  // cambiar si cambia el documento html de post

//if(document.title == "Cthulhu: El Portal de los Arcanos - Nueva Respuesta - foros.miarroba.com"){
if(document.URL.indexOf(url_a_buscar) > -1){
	// La web es la de posteo. En ese caso, insertamos los controles para realizar tiradas
	document.writeln("<input type='button' name='boton_d2' id='boton_d2' size='4' class='tabla_boton' onclick='javascript:insertar_tiradas(2,1,document.post.texto);' value='1D2'><br />");
	document.writeln("<input type='button' name='boton_d3' id='boton_d3' size='4' class='tabla_boton' onclick='javascript:insertar_tiradas(3,1,document.post.texto);' value='1D3'><br />");
	document.writeln("<input type='button' name='boton_d4' id='boton_d4' size='4' class='tabla_boton' onclick='javascript:insertar_tiradas(4,1,document.post.texto);' value='1D4'><br />");
	document.writeln("<input type='button' name='boton_d6' id='boton_d6' size='4' class='tabla_boton' onclick='javascript:insertar_tiradas(6,1,document.post.texto);' value='1D6'><br />");
	document.writeln("<input type='button' name='boton_d8' id='boton_d8' size='4' class='tabla_boton' onclick='javascript:insertar_tiradas(8,1,document.post.texto);' value='1D8'><br />");
	document.writeln("<input type='button' name='boton_d10' id='boton_d10' size='4' class='tabla_boton' onclick='javascript:insertar_tiradas(10,1,document.post.texto);' value='1D10'><br />");
	document.writeln("<input type='button' name='boton_d12' id='boton_d12' size='4' class='tabla_boton' onclick='javascript:insertar_tiradas(12,1,document.post.texto);' value='1D12'><br />");
	document.writeln("<input type='button' name='boton_d20' id='boton_d20' size='4' class='tabla_boton' onclick='javascript:insertar_tiradas(20,1,document.post.texto);' value='1D20'><br />");
	document.writeln("<input type='button' name='boton_d100' id='boton_d100' size='4' class='tabla_boton' onclick='javascript:insertar_tiradas(100,1,document.post.texto);' value='1D100'><br />");

}
/*
else{  // Debugging
	document.writeln("Nada");
}
*/

function tirar_dado(numcaras){
	// Devuelve el resultado de una tirada de un dado de numcaras caras
	return (Math.round( Math.random() * (numcaras-1) ) + 1);
}

function tirar_dados(numcaras,numtiradas){
	// Realiza numtiradas tiradas de un dado de numcaras caras y las muestra en el navegador
	// Por ejemplo: tirar_dados(4,2) hace dos tiradas de d4
	// Devuelve una cadena con todas las tiradas realizadas

	var cadena = "";

	for(i=0;i<numtiradas;++i){
////		cadena += "<tr><td><left>Tirada de 1d" + numcaras + ". Resultado: " + tirar_dado(numcaras) + "</left></td></tr>\n";
//		cadena += "<p align="center">Tirada de 1d" + numcaras + ". Resultado: ";
////		var fecha = new Date(year, month, date, hour, min, sec, ms);
		var fecha = (new Date()).valueOf();
		var dado = tirar_dado(numcaras);
////		cadena += "<a href="javascript:comprobar_tirada(" + dado +"," + fecha.valueOf() +"," + hex_md5(dado+fecha.valueOf()) +")">";
////		cadena += dado + "</a></p>\n";
		var hash = hex_md5(dado.toString()+fecha.toString());
		cadena += "<hr>";
//		cadena += "<center><url="javascript:comprobar_tirada(" + dado +"," + fecha.valueOf() +"," + hex_md5(dado+fecha.valueOf()) +")">";
		cadena += "<center><a href='http://espacioforos.miarroba.com/384383/comprobar_tiradas.htm?" + dado +"&" + fecha +"&" + hash +"' target='_blank'>";
		cadena += "<i>Tirada de <b>1d" + numcaras + "</b>. Resultado: <b>" + dado + "</b></i>";
		cadena += "</a>";
		if(numcaras < 4){ // 2 o 3
			cadena += "<img src='http://espacioforos.miarroba.com/384383/dados/d6_" + dado + ".png'></img>";	
		}
		else if(numcaras < 100){
			cadena += "<img src='http://espacioforos.miarroba.com/384383/dados/d" + numcaras + "_" + dado + ".png'></img>";
		}
		else{
			var decenas = Math.floor(dado / 10);
			var unidades = dado - (decenas*10);
			if (unidades == 0) unidades = 10;  // "Parche" para que coja la imagen d10_10, que es el 0
			cadena += "<img src='http://espacioforos.miarroba.com/384383/dados/d10_" + decenas + ".png'></img>";
			cadena += " <img src='http://espacioforos.miarroba.com/384383/dados/d10_" + unidades + ".png'></img>";
		}
		cadena += "</center>";
		cadena += "</hr>";
		
//		window.status = dado + "," + fecha + "," + hash;  // debugging
	}

	//document.writeln(cadena);
	
	return cadena;
}

function comprobar_tirada(valordado,fecha,hash){
	// Comprueba si hash corresponde al valor del dado valordado
	// Devuelve: true si hash se corresponde (la tirada es correcta), false en otro caso (tirada manipulada)
	
	var hash2 = hex_md5(valordado + fecha);
	
	if (hash2 == hash) return true;
	else return false;
}

function insertar_tiradas(numcaras,numtiradas,Textarea){
	// Inserta las tiradas solicitadas en el texto de la Textarea
	//Textarea.value += tirar_dados(numcaras,numtiradas);
	////tinyMCE_texto.setContent(tinyMCE_texto.getContent() + tirar_dados(numcaras,numtiradas));
	var tirada = tirar_dados(numcaras,numtiradas);
	alert("Copia esto al portapapeles (automático en IE):\n" + tirada);
	if(window.clipboardData){
		window.clipboardData.setData("Texto", tirada);
	}
}

//-->