//Liturgický kalendář v Javascriptu   (c) Jirka Bubeníček    mailto:hebrak@yahoo.com

inum = new Array(17);

function kdmr(dd,mm,rr){
this.d=dd; this.m=mm; this.r=rr;
}

var dnesniden = new Date();
var dmr = new kdmr(dnesniden.getDate(), dnesniden.getMonth()+1, dnesniden.getYear());
var MJDdnes=MJDout(dmr.d, dmr.m, dmr.r);
if (dmr.r<1900) dmr.r+=1900;
var MJDnasel=MJDdnes;

function MJDout(dd,mm,rr){
dmr.d=dd; dmr.m=mm; dmr.r=rr;
if (2<mm) {var cc=rr; var ee=mm+1;}
     else {var cc=rr-1; var ee=mm+13}
return Math.floor(365.25*cc)+Math.floor(30.6*ee)+dd-679019;
}

function MJDin(mjd){
var xx=mjd+2400001;
var bb=Math.floor((xx-1867216.25)/36524.25);
bb=xx+1+bb-Math.floor(bb/4);
if (xx<229163) bb=xx;
bb+=1524;
var cc=Math.floor((bb-122.1)/365.25);
xx=Math.floor(365.25*cc);
var ee=Math.floor((bb-xx)/30.6001);
var dd=bb-xx-Math.floor(30.6*ee);
var mm=ee-1; if (14<=ee) mm=ee-13;
var yy=cc-4716; if (mm<=2) yy=cc-4715;
dmr.d=dd; dmr.m=mm; dmr.r=yy;
}


function dentmjd(mjd) {
return (mjd-4) % 7;
}



function MJDvelk(rok){
var A=rok % 19;
var B=rok % 4;
var C=rok % 7;
var D=(19*A+24) % 30;
var E=(2*B+4*C+6*D+5) % 7;
var X=D+E-9;
if (0<X) {if (X==26) X=19;
          if ( (X==25) && (D==28) && (10<A) ) X=18;
          return MJDout(X,4,rok);
          }
    else {X=22+D+E;
          return MJDout(X,3,rok);
          }
}


var NEDc=0;
var NEDp="";
var DOB="";
var BRE=0;
var SVA="";
var V=0;
var R=0;

function liturg(J) {
MJDin(J);
var d=dmr.d;
var m=dmr.m;
var r=dmr.r;
V=MJDvelk(r);
var S=MJDout(24, 12, r);
R=S- ((S-4) % 7) -28;
var JJ=MJDout(13, 1, r); 
var U=JJ-((JJ-4) % 7);
var O=35+R; 
if (S+1==O) O=S+6;
DOB="MEZ";
var pn=0;
if ( (V-46<=J) && (J<V) ) {
                      DOB="POS";
                      pn=(J-V+49)/7;}
if ( (V<=J) && (J<=V+49) ) {
                      DOB="VEL";
                      pn=(J-V+7)/7;}
if ( (R+7<=J) && (J<=S) ) {
                      DOB="ADV";
                      pn=(J-R)/7;}
if (S<J) { DOB="VAN";
           pn=(J-R)/7;}
if (J<=U) {DOB="VAN";
           pn=(J-U)/7+3;}
if ( (U<J) && (J<V-46) ) pn=(J-U)/7+1;
if ( (V+49<J) && (J<R) ) pn=(J-R)/7+34;

BRE=1+(Math.floor(pn+3) % 4);
  if (S<J) BRE=1;
  if ( (V-2<=J) && (J<V+7) ) BRE=0;
var c=(r+2) % 3; if (R<J) c=r % 3;
c++;
NEDc=0; NEDp=" ";

SVA="";


dmr.d=d; dmr.m=m; dmr.r=r;
return SVA;
}

var mjd=MJDout(dmr.d, dmr.m, dmr.r);
datsva=liturg(mjd);
