<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js" type="text/javascript"></script>
<title>Tabla de Numerología</title>
<script>
// Función para validar la fecha
function isValidDate(day,month,year)
{
// Funcion copiada de: http://lwp-l.com/s1757
var dteDate;
month=month-1;
dteDate=new Date(year,month,day);
return ((day==dteDate.getDate()) && (month==dteDate.getMonth()) && (year==dteDate.getFullYear()));
}
$(document).ready(function(){
// rellenamos los valores del dia en el formulario
for (var i=1;i<=31;i++) {
$("select[name=dia]").append("<option>"+i+"</option>");
}
// rellenamos los valores del mes en el formulario
var months=Array("Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre");
for(var i=0;i<months.length;i++)
{
$("select[name=mes]").append("<option value='"+(i+1)+"'>"+months[i]+"</option>");
}
});
// función que realiza el calculo numerólogico
function calcular() {
var dia=$("#dia").val();
var mes=$("#mes").val();
var ano=$("#ano").val();
var nombre=$("#nombre").val();
// verificamos el nombre
if (nombre) {
// verificamos la fecha
if (isValidDate(dia,mes,ano)) {
// definimos cada letra con su valor
var letras={
"a":1,"b":2,"c":3,"d":4,"e":5,"f":6,"g":7,"h":8,"i":9,
"j":1,"k":2,"l":3,"m":4,"n":5,"o":6,"p":7,"q":8,"r":9,
"s":1,"t":2,"u":3,"v":4,"w":5,"x":6,"y":7,"z":8
}
// calculamos el nombre
var nombreDigital="";
var nombreDigitalTotal=0;
var nombreDigitalTotalTemporal=0;
var error="";
// bucle que recorre todo el nombre
for (var j=0;j<nombre.length;j++) {
if (letras[nombre[j].toLowerCase()]) {
nombreDigital+=" "+letras[nombre[j].toLowerCase()].toString();
nombreDigitalTotal+=letras[nombre[j].toLowerCase()];
} else {
error="<p class='error'>El nombre NO es numerológicamente compatible.</p>"
}
}
// sumamos los digitos del resultado siempre y cuando su valor
// sea superior a dos digitos
while (nombreDigitalTotal>9) {
nombreDigitalTotalTemporal=nombreDigitalTotal;
nombreDigitalTotal=0;
for(j=0;j<nombreDigitalTotalTemporal.toString().length;j++) {
nombreDigitalTotal+=parseInt(nombreDigitalTotalTemporal.toString()[j]);
}
}
// calculamos la fecha
var fechaDigital="";
var fechaDigitalTotal=0;
var fechaDigitalTotalTemporal=0;
for (j=0;j<dia.length;j++) {
fechaDigital+=" "+dia[j].toString();
fechaDigitalTotal+=parseInt(dia[j]);
}
for (j=0;j<mes.length;j++) {
fechaDigital+=" "+mes[j].toString();
fechaDigitalTotal+=parseInt(mes[j]);
}
for (j=0;j<ano.length;j++) {
fechaDigital+=" "+ano[j].toString();
fechaDigitalTotal+=parseInt(ano[j]);
}
// sumamos los digitos del resultado siempre y cuando su valor
// sea superior a dos digitos
while (fechaDigitalTotal>9) {
fechaDigitalTotalTemporal=fechaDigitalTotal;
fechaDigitalTotal=0;
for(j=0;j<fechaDigitalTotalTemporal.toString().length;j++) {
fechaDigitalTotal+=parseInt(fechaDigitalTotalTemporal.toString()[j]);
}
}
// mostramos el resultado
var resultado=error+"<p>Tu nombre digital es: "+nombreDigital+" y es equivalente a: "+nombreDigitalTotal+"<br/>Fu fecha digital es: "+fechaDigital+" y es equivalente a: "+fechaDigitalTotal+"</p>";
$("#mensaje").removeClass("error").html(resultado);
//realizamos el calculo
} else {
$("#mensaje").addClass("error").html("La fecha es incorrecta");
}
} else {
$("#mensaje").addClass("error").html("Tiene que existir un nombre");
}
}
</script>
<style>
* {font-size:14px;}
pre span {color:#808080;}
.error {color:red;}
</style>
</head>
<body>
<h1>Tabla de Numerología</h1>
<pre>
<strong>1 2 3 4 5 6 7 8 9</strong>
<span>a b c d e f g h i
j k l m n o p q r
s t u v w x y z</span>
</pre>
<p>
<legend>nombre</legend>
<input type="text" name="nombre" id="nombre">
</p>
<p>
<legend>Fecha de nacimiento</legend>
<select name="dia" id="dia">
<option>-</option>
</select>
<select name="mes" id="mes">
<option>-</option>
</select>
<input type="text" name="ano" id="ano" size=4>
</p>
<div id="mensaje"></div>
<p><input type="button" value="calcular" onclick="calcular()"></p>
</body>
</html>