<!-- calcula posicion planetas de sol, luna y de mercurio a pluton
<!-- captura datos
var sd;
var num;
var signos;
var hoy;
var dia;
var mes;
var ano;
var minutos;
var f;
var gmt;
var hora;
var solar;
var local;
var solartxt;
var plag = new Array(10);
var ret = new Array(10);
sd=0;
signos=new Array ("Aries,","Tauro,","Géminis,","Cáncer,","Leo,","Virgo,","Libra,","Escorpio,","Sagitario,","Capricornio,","Acuario,","Piscis,");
signos1=new Array ("Aries","Tauro","Géminis","Cáncer","Leo","Virgo","Libra","Escorpio","Sagitario","Capricornio","Acuario","Piscis");

planetas=new Array ("<img src=sol.gif>Sol","<img src=luna.gif>Luna","<img src=mercurio.gif>Mercurio","<img src=venus.gif>Venus","<img src=marte.gif>Marte","<img src=jupiter.gif>Jupiter","<img src=saturno.gif>Saturno","<img src=urano.gif>Urano","<img src=neptuno.gif>Neptuno","<img src=pluton.gif>Plutón");
grados=new Array (0,30,36,45,60,72,90,120,135,144,150,180,210,216,225,240,270,288,300,315,324,330);
orbes=new Array (14,4,4,4,5,4,7,9,4,4,4,14,4,4,4,9,7,4,5,4,4,4);
grafi=new Array (4,1,1,3,2,1,4,2,3,1,3,4,3,1,3,2,4,1,2,3,1,1);

hoy=new Date();
dia=hoy.getDate();
mes=hoy.getMonth()+1;
ano=hoy.getYear();

<!-- año de 2 cifras a 4 cifras


<!-- convierte año para Netscape
if (navigator.appName=="Microsoft Internet Explorer") {
}
	<!-- ya es correcto
else {
	ano=ano+1900;
}


minutos=hoy.getMinutes();
hora=hoy.getHours();
gmt=hoy.getTimezoneOffset()/60;
local=hora+(minutos/100);
solar=hora+gmt;

solartxt=solar
if (solartxt<0) {
	solartxt=24-Math.abs(solartxt)
}

solar=solar+(minutos/100);
solartxt=solartxt+(minutos/100);

f=solar;
f=q(f);

<!-- calendario gregoriano Sol
var jd;
var tt;
jd = 367 * ano - Math.floor(7 * (ano + Math.floor((mes + 9) / 12)) / 4);
jd = jd + Math.floor(275 * mes / 9) + dia + 1721013.5;
jd = jd - 0.5 * sgn(100 * ano + mes - 190002.5) + 0.5;
tt = (jd - 2415384.5) + f / 24;
<!--  calendario gregoriano para luna
var im;
var j;
var t;
im = 12 * (ano + 4800) + mes - 3
j = (2 * (im - Math.floor(im / 12) * 12) + 7 + 365 * im) / 12
j = Math.floor(j) + dia + Math.floor(im / 48) - 32083
if (j<=2299171) {
	t = ((jd - 2415020) + f / 24 - 0.5) / 36525
}
else {
	jd = j + Math.floor(im / 4800) - Math.floor(im / 1200) + 38
        t = ((jd - 2415020) + f / 24 - 0.5) / 36525
}

<!-- Sol
var l;
var w1;
var m1;
var mm;
var v9;
var l9;
var r9;
var ll;
var xs;
var ys;
var lp;
var dr;
var oo;
var fr;
var ls;
mo=360
l = u(278.965 + 0.985647342 * tt);
w1 = 281.235 + 0.0000469 * tt;
l = u(278.96513 + 0.9856473354 * tt + 2.2675E-13 * tt * tt);
l0 = l;
w1 = 281.23801 + 0.0000470686 * tt;
l = l + 0.00134 * Math.cos(gr(u(17.96 + 0.616529886 * tt)));
l = l + 0.00154 * Math.cos(gr(u(306.02 + 1.23305977 * tt)));
l = l + 0.002 * Math.cos(gr(u(281.66 + 0.902514927 * tt)));
l = l + 0.00179 * Math.sin(gr(u(114.27 + 12.19074919 * tt)));
l = l + 0.00178 * Math.sin(gr(u(231.39 + 0.000553 * tt)));
m1 = l - w1;
mm = gr(m1);
v9 = m1 + (1.919412 - 0.00000013112 * tt) * Math.sin(mm) + (0.020093 - 0.000000002738 * tt) * Math.sin(2 * mm) + 0.000293 * Math.sin(3 * mm);
l9 = v9 + w1;
r9 = 0.999721 / (1 + 0.01675 * Math.cos(gr(v9)));
ll = gr(l9);
xs = r9 * Math.cos(ll);
ys = r9 * Math.sin(ll);
lp = u(33.231 + 13.17639653 * tt);
dr = gr(lp - l0);
oo = gr(u(239.882 - 0.052953922 * tt));
fr = gr(lp) - oo;
ls = l9 - 0.00569 - 0.00479 * Math.sin(oo);
l9 = ls + sd;
<!-- 'fallo temporal Sol
if (l9>=360) {
	l9 = l9 - 360
}
if (l9<0) {
	l9 = 360 - Math.abs(l9)
}
plag[1]=l9
ret[1]="&nbsp;&nbsp;"


<!-- Luna
var ln;
var mr;
var lp;
var mm;
ln = 0;
mr = gr(u(18.294 + 13.06499245 * tt));
ln = lp + 6.28875 * Math.sin(mr) + 0.2136 * Math.sin(2 * mr) + 0.6583 * Math.sin(2 * dr);
ln = ln - 0.1856 * Math.sin(mm) + 1.274 * Math.sin(2 * dr - mr) - 0.1143 * Math.sin(2 * fr);
ln = ln + 0.0588 * Math.sin(2 * (dr - mr)) + 0.0572 * Math.sin(2 * dr - mr - mm) + 0.0459 * Math.sin(2 * dr - mm);
ln = ln + 0.041 * Math.sin(mr - mm) - 0.0305 * Math.sin(mr + mm) - 0.0347 * Math.sin(dr);
ln = ln + 0.0533 * Math.sin(2 * dr + mr);
ln = ln + 0.0153 * Math.sin(2 * (dr - fr)) - 0.0125 * Math.sin(2 * fr + mr);
ln = ln - 0.011 * Math.sin(2 * fr - mr) + 0.0107 * Math.sin(4 * dr - mr);
ln = ln + 0.01 * Math.sin(3 * mr) + 0.0085 * Math.sin(4 * dr - 2 * mr);
ln = ln - 0.0079 * Math.sin(mm - mr + 2 * dr) - 0.0068 * Math.sin(2 * dr + mm);
ln = ln + 0.0052 * Math.sin(mr - dr) + 0.005 * Math.sin(mm + dr);
ln = ln + sd;
<!-- fallo temporal Luna
if (ln>=360) {
	ln = ln - 360
}
if (ln<0) {
	ln = 360 - Math.abs(ln)
}
plag[2]=ln
ret[2]="&nbsp;&nbsp;"


<!-- Mercurio a Pluton
var fic = new Array(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
var sol = new Array(0,358.4758,35999.0498,-0.0002,0.01675,-0.00004,0,1,101.2208,1.7192,0.00045,0,0,0,0,0,0);
var mer = new Array(0,102.2794,149472.515,0,0.205614,0.00002,0,0.3871,28.7538,0.3703,0.0001,47.1459,1.1852,0.0002,7.009,0.00186,0);
var ven = new Array(0,212.6032,58517.8039,0.0013,0.00682,-0.00005,0,0.7233,54.3842,0.5082,-0.0014,75.7796,0.8999,0.0004,3.3936,0.001,0);
var mar = new Array(0,319.5294,19139.8585,0.0002,0.09331,0.00009,0,1.5237,285.4318,1.0698,0.0001,48.7864,0.77099,0,1.8503,-0.0007,0);
var jup = new Array(0,225.4928,3033.6879,0,0.04838,-0.00002,0,5.2029,273.393,1.3383,0,99.4198,1.0583,0,1.3097,-0.0052,0,-0.001,-0.0005,0.0045,0.0051,581.7,-9.7,-0.0005,2510.7,-12.5,-0.0026,1313.7,-61.4,0.0013,2370.79,-24.6,-0.0013,3599.3,37.7,-0.001,2574.7,31.4,-0.00096,6708.2,-114.5,-0.0006,5499.4,-74.97,-0.0013,1419,54.2,0.0006,6339.3,-109,0.0007,4824.5,-50.9,0.002,-0.0134,0.0127,-0.0023,676.2,0.9,0.00045,2361.4,174.9,0.0015,1427.5,-188.8,0.0006,2110.1,153.6,0.0014,3606.8,-57.7,-0.0017,2540.2,121.7,-0.00099,6704.8,-22.3,-0.0006,5480.2,24.5,0.00096,1651.3,-118.3,0.0006,6310.8,-4.8,0.0007,4826.6,36.2);
var sat = new Array(0,174.2153,1223.50796,0,0.05423,-0.0002,0,9.5525,338.9117,-0.3167,0,112.8261,0.8259,0,2.4908,-0.0047,0,-0.0009,0.0037,0,0.0134,1238.9,-16.4,-0.00426,3040.9,-25.2,0.0064,1835.3,36.1,-0.0153,610.8,-44.2,-0.0015,2480.5,-69.4,-0.0014,0.0026,0,0.0111,1242.2,78.3,-0.0045,3034.96,62.8,-0.0066,1829.2,-51.5,-0.0078,640.6,24.2,-0.0016,2363.4,-141.4,0.0006,-0.0002,0,-0.0005,1251.1,43.7,0.0005,622.8,13.7,0.0003,1824.7,-71.1,0.0001,2997.1,78.2);
var ura = new Array(0,74.1757,427.2742,0,0.04682,0.00042,0,19.2215,95.6863,2.0508,0,73.5222,0.5242,0,0.7726,0.0001,0,-0.0021,-0.0159,0,0.0299,422.3,-17.7,-0.0049,3035.1,-31.3,-0.0038,945.3,60.1,-0.0023,1227,-4.99,0.0134,-0.02186,0,0.0317,404.3,81.9,-0.00495,3037.9,57.3,0.004,993.5,-54.4,-0.0018,1249.4,79.2,-0.0003,0.0005,0,0.0005,352.5,-54.99,0.0001,3027.5,54.2,-0.0001,1150.3,-88);
var nep = new Array(0,30.13294,240.45516,0,0.00913,-0.00127,0,30.11375,284.1683,-21.6329,0,130.68415,1.1005,0,1.7794,-0.0098,0,0.1832,-0.6718,0.2726,-0.1923,175.7,31.8,0.0122,542.1,189.6,0.0027,1219.4,178.1,-0.00496,3035.6,-31.3,-0.1122,0.166,-0.0544,-0.00496,3035.3,58.7,0.0961,177.1,-68.8,-0.0073,630.9,51,-0.0025,1236.6,78,0.00196,-0.0119,0.0111,0.0001,3049.3,44.2,-0.0002,893.9,48.5,0.00007,1416.5,-25.2);
var plu = new Array(0,229.781,145.1781,0,0.24797,0.002898,0,39.539,113.5366,0.2086,0,108.944,1.3739,0,17.1514,-0.0161,0,-0.0426,0.073,-0.029,0.0371,372,-331.3,-0.0049,3049.6,-39.2,-0.0108,566.2,318.3,0.0003,1746.5,-238.3,-0.0603,0.5002,-0.6126,0.049,273.97,89.97,-0.0049,3030.6,61.3,0.0027,1075.3,-28.1,-0.0007,1402.3,20.3,0.0145,-0.0928,0.1195,0.0117,302.6,-77.3,0.00198,528.1,48.6,-0.0002,1000.4,-46.1);

var pl = new Array(fic,sol,mer,ven,mar,jup,sat,ura,nep,plu);

var kk = new Array(9);
var t9 = new Array(3);

var nu;
var i;
var conta;
var mo;
var s0;
var s1;
var s2;
var m;
var e;
var ea;
var a;
var au;
var e1;
var xw;
var yw;
var ap;
var x0;
var y0;
var d0;
var g;
var an;
var r0;
var xh;
var yh;
var zh;
var inn;
var xa;
var ya;
var za;
var xw;
var yw;
var zw;
var xx;
var yy;
var zz;
var u0;
var v;
var w0;
var ij;
var br;
var ab;
var k;
var c0;
var ba;
var p0;
var ss;

nu = 0;

for (i=1;i<10;i++) {
        conta = 0;
        mo = 2 * Math.PI;
        r3225();
	m = u(s0);
        r3225();
	e = d(s0);
 	ea = m;

        for (a=1;a<5;a++) {
	        ea = m + e * Math.sin(ea);
	}
        conta = conta + 1;
	au = pl[i][conta];
        e1 = 0.01720209 / (Math.pow(au,1.5) * (1 - e * Math.cos(ea)));
        xw = -(au * e1) * Math.sin(ea);
        yw = (au * e1) * Math.pow((1 - e * e),0.5) * Math.cos(ea);
        r3225();
	ap = s0;
	r3225();
	an = s0;
        r3225();
	inn = s0;
        x0 = xw;
	y0 = yw;
	r3300();
        xh = x0;
        yh = y0;
        zh = g;
        mo = 360
        if (i == 1) {
	        xa = -xh;
		ya = -yh;
		za = -zh;
		ab = 0;
	}
        else {
	        xw = xh + xa;
		yw = yh + ya;
		zw = zh + za;
	}
	x0 = au * (Math.cos(ea) - e);
        y0 = au * Math.sin(ea) * Math.pow((1 - e * e),0.5);
        r3300();
	xx = x0;
	yy = y0;
	zz = g;
        if ((i > 4) && (i < 10)) {
		r3270();
		xx = xx + t9[2];
		yy = yy + t9[1];
		zz = zz + t9[3];
	}        

        xk = (xx * yh - yy * xh) / (xx * xx + yy * yy);
        retro = "&nbsp;&nbsp;";
        br = 0;
	r3200();
	ab = 1;
        if (i==1) {
	        x1 = xx;
		y1 = yy;
		z1 = zz;
	}
        else {
	        xx = xx - x1;
		yy = yy - y1;
		zz = zz - z1;
		xk = (xx * yw - yy * xw) / (xx * xx + yy * yy);
	}
        br = 0.0057683 * Math.sqrt(xx * xx + yy * yy + zz * zz) * d(xk);
        if (xk<0) {
		retro = "R";
	}
        r3200();
        if (i>1) {
		plag[i+1] = ss;
		ret[i+1] = retro;
		if (xk<0) {
			plag[i+1] = -ss
		}
	}
        plag[i+1] = Math.abs(plag[i+1])
}



<!-- distancia Sol Luna
var dis
if (ln>=l9) {
	dis=ln-l9
}
else {
	dis=360-l9+ln
}



<!-- ==============================
<!-- analiza grafico aspecto y orbe
<!-- todos aspectos menos conjuncion
var tipoasp;
var numasp;
tipoasp=0;
numasp=-1;
for (i=1;i<21;i++) {
	if ((dis>=grados[i]-orbes[i]) && (dis<=grados[i])) {
		<!-- aplicacion
		if (dis >= grados[i]-1) {
			<!-- exacto
			tipoasp=2;
			numasp=i;
		}	
		else {
			<!-- no exacto
			tipoasp=1;
			numasp=i;
		}
	}
	if ((dis < grados[i]+orbes[i]) && (dis > grados[i])) {
		<!-- separacion
		if (dis < grados[i]+1) {
			<!-- exacto
			tipoasp=2;
			numasp=i;
		}	
		else {
			<!-- no exacto
			tipoasp=3;
			numasp=i;
		}
	}
}

<!-- solo conjuncion
if (dis >= 360-orbes[0]) {
	<!-- aplicacion
	if (dis >= 359) {
		<!-- exacto
		tipoasp=2;
		numasp=0;
	}	
	else {
		<!-- no exacto
		tipoasp=1;
		numasp=0;
	}
}
if (dis < grados[0]+orbes[0]) {
	<!-- separacion
	if (dis < grados[0]+1) {
		<!-- exacto
		tipoasp=2;
		numasp=0;
	}	
	else {
		<!-- no exacto
		tipoasp=3;
		numasp=0;
	}
}

<!-- segun tipo aspecto, filtra tipo grafico
if (numasp>=0) {
	graffile="plangraf"+grafi[numasp]+tipoasp+".gif";
}
else {
	graffile="plangraf"+"0"+"0"+".gif";
}
<!-- ==============================


//document.write("<table border=0 cellspacing=0 cdllpadding=0 height=250 width=230>");

//<!-- Titulo
//document.write("<tr>");
//document.write("<td colspan=2 bgcolor=>");
//document.write("<font face=verdana size=1 color=#000000>");
//document.write("<center>");
//document.write("<b>Posiciones actuales de los planetas");
//document.write("<br>" + dia+'/'+mes+'/'+ano  + "</b>")
//document.write("</center>");
//document.write("</font>");
//document.write("</td>");
//document.write("</tr>");


//<!-- Hora Local
//document.write("<tr>");
//document.write("<td width=30% bgcolor=>");
//document.write("<center>");
//document.write("<font face=verdana size=1 color=#000080>");
//document.write("Dist.Sol/Luna: ");
//document.write(grados2(dis));
//document.write("</font>");
//document.write("</center>");
//document.write("</td>");

//<!-- Hora Solar
//document.write("<td width=70% bgcolor=>");
//document.write("<font face=verdana size=1 color=>");
//document.write("<b>Hora Local: " + local + "</b><br>");
//document.write("<b>Hora Solar: " + solartxt + "</b>");
//document.write("</font>");
//document.write("</td>");

//document.write("</tr>");



for (a=1;a<11;a++) {
//        document.write("<td bgcolor=>");
//        document.write("<b><font face=verdana size=1 color=>");
//        document.write(planetas[a-1]+':');
//        document.write("</font></b>");
//        document.write("</td>");

//	document.write("<td bgcolor=>");
//        document.write("<b><font face=verdana size=1 color=#000000>");
//        document.write(cadena2(plag[a])+' '+ret[a]+' '+signos[signo(plag[a])-1]);
//        document.write("</font></b>");
//        document.write("</td>");
//        document.write("</tr>");

//lunapos=(cadena2(plag[2])+' '+ret[2]+' '+signos[signo(plag[2])-1])
lunapos='La luna se encuentra a <br>' + (cadena2(plag[2])+' de '+signos[signo(plag[2])-1])
lunaposicion=signos1[signo(plag[2])-1]
lunaposicion1=signos[signo(plag[2])-1]
}

switch (lunaposicion){ 
case "Aries": elemento="Fuego"
break; 
case "Tauro":  elemento="Tierra"
break; 
case "Géminis":  elemento="Aire"
break; 
case "Cáncer":  elemento="Agua"
break; 
case "Leo":  elemento="Fuego"
break; 
case "Virgo":  elemento="Tierra"
break; 
case "Libra":  elemento="Aire"
break; 
case "Escorpio":  elemento="Agua"
break; 
case "Sagitario":  elemento="Fuego"
break; 
case "Capricornio":  elemento="Tierra"
break; 
case "Acuario":  elemento="Aire"
break; 
case "Piscis":  elemento="Agua"
break; 
}


//document.write("</table>");


<!-- inicio funciones
function u(num) {
	return num - (Math.floor(num / mo) * mo);
}

function q(num) {
	return sgn(num)*(Math.floor(Math.abs(num))+(Math.abs(num)-Math.floor(Math.abs(num)))*100/60);
}

function r(num) {
	return Math.PI / 180 * num;
}

function sgn(num) {
	if (num<0) {
		return -1
	}
	if (num==0) {
		return 0
	}
	if (num>0) {
		return 1
	}
}

function gr(num) {
	return Math.PI * num / 180;
}

function cadena2(num) {
	var z7;
	var z77;
	if (num>=360) {
		num = num - 360
	}
	if (num<0) {
		num = 360 - Abs(num)
	}
	z7 = Math.floor((Math.abs(num) / 30 - Math.floor(Math.abs(num) / 30)) * 30);
	if (z7<10) {
		z7="0"+z7
	}
	z77 = Math.floor((Math.abs(num) - Math.floor(Math.abs(num))) * 60);
	if (z77<10) {
		z77="0"+z77
	}
	if (sgn(num)>=0) {
		return z7+"º"+z77+"'";
	}
	else {
		return "-"+z7+"º"+z77+"'";
	}
}

function signo(num) {
	if (num>=360) {
		num = num - 360
	}
	if (num<0) {
		num = 360 - Math.abs(num)
	}
	return Math.floor(Math.abs(num) / 30) + 1
}

function grados2(num) {
	var z7;
	var z77;
	z7=Math.floor(Math.abs(num));
	z77=Math.floor((Math.abs(num) - Math.floor(Math.abs(num))) * 60);
	if (z77<10) {
		z77="0"+z77
	}
	if (sgn(num)>=0) {
		return z7+"º"+z77+"'"
	}
	else {
        	return "-"+z7+"º"+z77+"'"
	}
}

function d(num) {
    	return 180 / Math.PI * num
}

function r3200() {
	x0 = xx;
	y0 = yy;
	r3240();
	k = a;
	c0 = d(a) + nu - br;
    	if ((i==1) && (ab==1)) {
		c0 = u(c0 + 180);
	}  
  	c0 = u(c0 + sd);
	ss = c0;
	y0 = zz;
	x0 = r0;
	r3240();
  	if (a>0.35) {
		a = a - 2 * Math.PI;
	}  
	p0 = d(a);
	c0 = p0;
}

function r3225() {
	conta = conta + 1;
	s0 = pl[i][conta];
	conta = conta + 1;
	s1 = pl[i][conta];
	conta = conta + 1;
	s2 = pl[i][conta];
	s0 = r(s0 + s1 * t + s2 * t * t);
}

function r3300() {
	r3240();
	a = a + ap;
	r3230();
	d0 = x0;
	x0 = y0;
	y0 = 0;
	r3240();
	a = a + inn;
	r3230();
	g = y0;
	y0 = x0;
	x0 = d0;
	r3240();
	a = a + an;
	if (a < 0) {
		a = a + 2 * Math.PI
	}
  	r3230();
}

function r3230() {
	if (a == 0) {
		a = 0.0000000017
	}  
  	x0 = r0 * Math.cos(a);
  	y0 = r0 * Math.sin(a);
}

function r3240() {
	if (y0 == 0) {
		y0 = 0.0000000017
	}
  	r0 = Math.pow((x0 * x0 + y0 * y0),0.5);
	a = Math.atan(y0 / x0);
        if (a < 0) {
 		a = a + Math.PI
	}
  	if (y0 < 0) {
		a = a + Math.PI
	}
}

function r3270() {
	kk[5]=11;
	kk[6]=5;
	kk[7]=4;
	kk[9]=4;
	kk[8]=4;
	for (ik=1;ik<4;ik++) {
                if ((i==5) && (ik==3)) {
	               t9[3] = 0;
        	       return 0;
                }
                if (ik==3) {
			kk[i] = kk[i] - 1
		}
                r3225();
		a = 0;
                for (ij=1;ij<=kk[i];ij++) {
                	conta = conta + 1;
			u0 = pl[i][conta];
                    	conta = conta + 1;
			v = pl[i][conta];
                    	conta = conta + 1;
			w0 = pl[i][conta];
                    	a = a + r(u0) * Math.cos((v * t + w0) * Math.PI / 180);
                }
                t9[ik] = d(s0 + a);
    	}
}

function r(num) {
     return Math.PI / 180 * num
}

<!-- carga imagen luna actual
function luna() {
	var dialuna;
	dialuna = Math.floor(dis/(360/29)+.5)+1
	if (dialuna==30) {
		dialuna=1;
	}
	document.lun.src="'Imagenes/" + dialuna + ".gif' width='9' height='9' hspace='0' vspace='0' border='0'>";
}



