//Сей мануСКРИПТ вычисляет даты кульминаций фаз Луны (новолуние и полнолуние).
//Требует текущий год и месяц. Алгоритм отражает "Вечный" лунный календарь по Н.И.Идельсону.
//Версия от 17.03.2003 г. Тигра.

function Rech(x)
{

if (29.5<x && x<59.1) return (x-29.5);
if (59.1<x && x<88.6) return (x-59.1);
if (88.6<x && x<118.1) return (x-88.6);
if (x>118.1) return (x-118.1);

}

function Mond(a,f)
{

Hun = [0.0,4.3,8.7,13.0,17.4,21.7,26.0,0.8,5.2,9.5];
Dec = [0.0,9.3,18.6,27.9,7.6,16.9,26.2,6.0,15.3,24.6];
Jahr = [0.0,18.6,7.8,26.4,15.5,4.6,23.3,12.4,1.5,20.2];
M_neu = [13.4,11.9,24.2,22.6,22.0,20.6,20.0,18.4,17.0,16.6,15.1,14.8];
M_voll = [28.2,26.7,9.5,7.9,7.3,5.8,5.3,3.6,2.2,1.9,0.3,0.0];

kJahr = [0.0,0.2,0.5,0.8];
kStyle = 13;// Скорректировать после 2100 г.

M_n = [13.4,11.9,24.2,22.6,22.0,20.6,20.0,18.4,17.0,16.6,15.1,14.8];
M_v = [28.2,26.7,9.5,7.9,7.3,5.8,5.3,3.6,2.2,1.9,0.3,0.0];

if (M==0 || M==1) // январь и февраль считаются относящимися к предыдущему году
{
str = new String(a.getYear()-1);
}
 else
{
 str = new String(a.getYear());
}
var T = 27.7;
if (str.charAt(0)==2) T = 27.7;

nHun = Hun[str.charAt(1)];
nDec = Dec[str.charAt(2)];
nJahr = Jahr[str.charAt(3)];
JKorr = kJahr[str%4];

Sum = T+nHun+nDec+nJahr+JKorr+kStyle;

 if ( f=="n" ) nM=M_n;
 if ( f=="v" ) nM=M_v;

return Math.floor(Rech(Sum+nM [a.getMonth()]));
}

M_Dat = ["\январе","феврале","марте","апреле","мае","июне","июле","августе","сент\ябре","окт\ябре","но\ябре","декабре"];
M_Akk = ["\январ\я","феврал\я","марта","апрел\я","ма\я","июн\я","июл\я","августа","сент\ябр\я","окт\ябр\я","но\ябр\я","декабр\я"];

dat = new Date();
M = dat.getMonth();

if (dat.getDate() == Mond(dat,"n"))
{
Heute = "<b><u>Новолуние</u></b>";
}
        else
{
        if (dat.getDate() == Mond(dat,"v"))
                {
                 Heute = "<b><u>Полнолуние</u></b>";
                }
        else
                {
                 Heute = dat.getDate()+" "+M_Akk[M];
                }
}

document.write ("<div id=mnd>"+

        "<p id=parTop><b>"+"Луна в "+M_Dat[M]+":"+"</b></p><hr size=1 noshade color=blue>"+

        "<p id=par>"+"Новолуние: "+Mond(dat,"n")+" "+M_Akk[M]+"<br>"+

        "Полнолуние: "+Mond(dat,"v")+" "+M_Akk[M]+"<br>"+

        "Сегодня: "+Heute+"</p></div>");

//Стили оформления вывода
        if (screen.availWidth <= 800)
         {
          mnd.style.pixelLeft = 610;
         }
        else
         {
          mnd.style.pixelLeft = ((screen.availWidth-770)/2+610);
         }
mnd.style.pixelTop = 8;
mnd.style.pixelWidth = 148;
mnd.style.textAlign = "right";
mnd.style.position = "absolute";
parTop.style.fontSize = "88%";
parTop.style.textAlign = "center";
parTop.style.marginTop = "4";
parTop.style.marginBottom = "2";
par.style.fontSize = "80%";
par.style.textAlign = "left";
par.style.marginTop = "4";
par.style.marginLeft = "2";
