﻿var iconPath = "../icoane/";

var now = new Date();
var today = new Date(now.getFullYear(), now.getMonth(), now.getDate());
var currentYear = today.getFullYear();

var easterDates = new Array();
easterDates["2008"] = new Date(2008, 3, 27);
easterDates["2009"] = new Date(2009, 3, 19);
easterDates["2010"] = new Date(2010, 3, 4);
easterDates["2011"] = new Date(2011, 3, 24);
easterDates["2012"] = new Date(2012, 3, 15);
easterDates["2013"] = new Date(2013, 4, 5);
easterDates["2014"] = new Date(2014, 3, 20);
easterDates["2015"] = new Date(2015, 3, 12);
easterDates["2016"] = new Date(2016, 4, 1);
easterDates["2017"] = new Date(2017, 3, 16);
easterDates["2018"] = new Date(2018, 3, 18);
easterDates["2019"] = new Date(2019, 3, 28);
easterDates["2020"] = new Date(2020, 3, 19);
var currentEasterDate = easterDates[currentYear.toString()];

function Feast(name, date, celebratedFrom, celebratedTo, icon, hymn) {
    this.name = name;
    this.date = date;
    this.celebratedFrom = celebratedFrom;
    this.celebratedTo = celebratedTo;
    this.icon = icon;
    this.hymn = hymn;
    
    this.equals = function(praznic) {
        return (this.date == praznic.date);
    }
    
    this.isToday = function() {
        return (this.date == today) ;
    }
    
    this.isCelebrated = function() {
        return (this.celebratedFrom <= today && today <= this.celebratedTo);            
    }
}

function FeastList() {
    
    this.getFeast = function(name) {
        for (var i = 0; i < this.getCount(); i++) {
            if (this.getItem(i).name == name) {
                return this.getItem(i);
            }
        }
        return null;
    }

    this.getCurrentCelebratedFeast = function() {
        var currentCelebratedFeast = null;
        for (var i = 0; i < this.getCount(); i++) {
            if (this.getItem(i).isCelebrated()) {
                if (currentCelebratedFeast == null) {
                    currentCelebratedFeast = this.getItem(i);
                }
                else if (currentCelebratedFeast.celebratedFrom < this.getItem(i).celebratedFrom 
                            && currentCelebratedFeast.celebratedTo > this.getItem(i).celebratedTo ) {
                    currentCelebratedFeast = this.getItem(i);
                }
            }
        }
        return currentCelebratedFeast;
    }
    
    this.getDefaultCelebratedFeast = function() {
        return this.getFeast("Adormirea Maicii Domnului");
    }
}
FeastList.prototype = new Collection();


feasts = new FeastList();

//Praznice imparatesti ale Mantuitorului; cu data schimbatoare
feasts.add(
    new Feast(
        "Intrarea Domnului în Ierusalim; Dumnica Floriilor"
        , currentEasterDate.addDays(-7)
        , currentEasterDate.addDays(-8)
        , currentEasterDate.addDays(-6)
        , iconPath + "Intrarea Domnului in Ierusalim.jpg"
        , "Învierea cea de obşte mai înainte de patima Ta încredinţând-o, pe Lazăr din morţi l-ai sculat, Hristoase Dumnezeule. Pentru aceasta şi noi, ca pruncii, semnele biruinţei purtând, Ţie, Biruitorului morţii, strigăm: Osana Celui dintru înălţime! Bine eşti cuvântat, Cel ce vii întru numele Domnului"
    )
);
feasts.add(
    new Feast(
        "Învierea Domnului"
        , currentEasterDate
        , currentEasterDate.addDays(-5)
        , currentEasterDate.addDays(38)
        , iconPath + "Invierea Domnului.jpg"
        , "Hristos a înviat din morţi cu moartea pe moarte călcând, şi celor din morminte viaţă dăruindu-le!"
    )
);
feasts.add(
    new Feast(
        "Izvorul Tămăduirii"
        , currentEasterDate.addDays(5)
        , currentEasterDate.addDays(5)
        , currentEasterDate.addDays(5)
        , iconPath + "Izvorul Tamaduirii.jpg"
        , ""
    )
);
feasts.add(
    new Feast(
        "Înălţarea Domnului"
        , currentEasterDate.addDays(39)
        , currentEasterDate.addDays(39)
        , currentEasterDate.addDays(47)
        , iconPath + "Inaltarea Domnului.jpg"
        , ""
    )
);
feasts.add(
    new Feast(
        "Pogorârea Sfântului Duh"
        , currentEasterDate.addDays(49)
        , currentEasterDate.addDays(48)
        , currentEasterDate.addDays(55)
        , iconPath + "Pogorarea Sfantului Duh.jpg"
        , "Binecuvântat eşti Hristoase, Dumnezeul nostru, Cela ce prea înţelepţi pe pescari ai arătat, trimiţându-le lor Duhul Sfânt; şi printr-înşii lumea ai vânat, iubitorule de oameni, mărire Ţie!"
    )
);

//********************************************
//Praznice ianuarie
//********************************************
feasts.add(
    new Feast(
        "Sfântul Vasile cel Mare"
        , new Date(currentYear, 0, 1)
        , new Date(currentYear, 0, 1)
        , new Date(currentYear, 0, 1)
        , iconPath + "Sf. Vasile cel Mare.jpg"
        , "În tot pământul s-a răspândit vestirea ta, că a primit cuvântul tău, prin care, cu dumnezeiasca cuviinţă ai învăţat, firea celor în fiinţă ai lămurit, şi ai pus rânduială în obiceiurile oamenilor. Părinte, cuvioase, preoţie împărătească, roagă pe Hristos Dumnezeu să mântuiască sufletele noastre."
    )
);
feasts.add(
    new Feast(
        "Botezul Domnului"
        , new Date(currentYear, 0, 6)
        , new Date(currentYear, 0, 2)
        , new Date(currentYear, 0, 14)
        , iconPath + "Botezul Domnului.jpg"
        , "În Iordan botezându-Te Tu, Doamne, închinarea Treimii s-a arătat; că glasul Părintelui a mărturisit Ţie; Fiu iubit pe Tine numindu-Te, şi Duhul în chip de porumbel a adeverit întărirea cuvântului. Cel ce Te-ai arătat, Hristoase Dumnezeule, şi lumea ai luminat, slavă Ţie."
    )
);
feasts.add(
    new Feast(
        "Soborul Sfântului Prooroc Ioan Botezătorul"
        , new Date(currentYear, 0, 7)
        , new Date(currentYear, 0, 7)
        , new Date(currentYear, 0, 7)
        , iconPath + "Sf. Prooroc Ioan Botezatorul.jpg"
        , "Pomenirea dreptului cu laude, iar ţie destul iţi este mărturia Domnului, Înaintemergătorule, că te-ai arătat cu adevărat şi decât proorocii mai cinstit, că şi a boteza în repejuni pe Cel propovăduit te-ai învrednicit. Drept aceea, pentru adevăr nevoindu-te, bucurându-te, bine ai vestit şi celor din iad pe Dumnezeu Cel ce S-a arătat în trup, pe Cel ce a ridicat păcatul lumii şi ne-a dăruit nouă mare milă."
    )
);
feasts.add(
    new Feast(
        "Cuviosul Antonie cel Mare"
        , new Date(currentYear, 0, 17)
        , new Date(currentYear, 0, 17)
        , new Date(currentYear, 0, 17)
        , iconPath + "Cuviosul Antonie cel Mare.jpg"
        , "Asemănându-te cu obiceiurile râvnitorului Ilie, şi urmând Botezătorului pe drepte cărări, Părinte Antonie, te-ai făcut locuitor pustiului şi ai întărit lumea cu rugăciunile tale. Pentru aceasta, roagă-te lui Hristos Dumnezeu, să mântuiască sufletele noastre."
    )
);
feasts.add(
    new Feast(
        "Sfântul Ierarh Grigore de Dumnezeu cuvântătorul"
        , new Date(currentYear, 0, 25)
        , new Date(currentYear, 0, 25)
        , new Date(currentYear, 0, 25)
        , iconPath + "Sf. Ierarh Grigore Teologul.jpg"
        , "Fluierul cel păstoresc al Teologiei tale a biruit trâmbiţele ritorilor; că ţie, celui ce ai încercat adâncurile Duhului, ţi s-au adăugat şi frumuseţile Cuvântului. Ci roagă pe Hristos Dumnezeu, părinte Grigorie, să mântuiască sufletele noastre."
    )
);
feasts.add(
    new Feast(
        "Sfinţii Trei Ierarhi: Vasile cel Mare, Grigore Teologul şi Ioan Gură de Aur"
        , new Date(currentYear, 0, 30)
        , new Date(currentYear, 0, 30)
        , new Date(currentYear, 0, 31)
        , iconPath + "Sfintii Trei Ierarhi.jpg"
        , "Ca cei ce aţi fost la obicei întocmai cu Apostolii şi lumii învăţători, rugaţi-vă Stăpânului tuturor să dăruiască pace lumii şi sufletelor noastre mare milă."
    )
);

//********************************************
//Praznice februarie
//********************************************
feasts.add(
    new Feast(
        "Întâmpinarea Domnului"
        , new Date(currentYear, 1, 1)
        , new Date(currentYear, 1, 2)
        , new Date(currentYear, 1, 9)
        , iconPath + "Intampinarea Domnului.jpg"
        , "Bucură-te, cea plină de dar. Născătoare de Dumnezeu Fecioară; că din tine a răsărit Soarele dreptăţii. Hristos Dumnezeul nostru, luminând pe cei din întuneric. Veseleşte-te şi tu, bătrânule drepte, cel ce ai primit în braţe pe Liberatorul sufletelor noastre, Cel ce ne-a dăruit nouă şi învierea."
    )
);

//********************************************
//Praznice martie
//********************************************
feasts.add(
    new Feast(
        "Sf. 40 de Mucenici"
        , new Date(currentYear, 2, 9)
        , new Date(currentYear, 2, 9)
        , new Date(currentYear, 2, 9)
        , iconPath + "Sf. 40 de Mucenici.jpg"
        , "Pentru durerile pe care sfinţii le-au pătimit pentru Tine, milostiv fii, Doamne, şi Te rugăm vindecă toate durerile noastre, Iubitorule de oameni."
    )
);
feasts.add(
    new Feast(
        "Buna Vestire a Maicii Domnului"
        , new Date(currentYear, 2, 25)
        , new Date(currentYear, 2, 24)
        , new Date(currentYear, 2, 26)
        , iconPath + "Buna Vestire.jpg"
        , "Astăzi este începutul mântuirii noastre şi arătarea tainei celei mai dinainte de veac. Fiul lui Dumnezeu, fiu Fecioarei se face, şi Gavriil harul îl binevesteşte. Pentru aceasta şi noi, împreună cu dânsul Născătoarei de Dumnezeu să-i strigăm: Bucură-te, cea plină de har, Domnul este cu tine!"
    )
);

//********************************************
//Praznice aprilie
//********************************************
feasts.add(
    new Feast(
        "Sf. Mare Mucenic Gheorghe"
        , new Date(currentYear, 3, 23)
        , new Date(currentYear, 3, 22)
        , new Date(currentYear, 3, 24)
        , iconPath + "Sf. Gheorghe.jpg"
        , "Ca un izbăvitor al celor robiţi şi săraci folositor, neputincioşilor doctor, împăraţilor ajutor, purtătorilor de biruinţă mare mucenice Gheorghe, roagă pe Hristos Dumnezeu, să mântuiască sufletele noastre."
    )
);

//********************************************
//Praznice mai
//********************************************

//********************************************
//Praznice iunie
feasts.add(
    new Feast(
        "Naşterea Sf. Ioan Botezătorul"
        , new Date(currentYear, 5, 24)
        , new Date(currentYear, 5, 24)
        , new Date(currentYear, 5, 24)
        , iconPath + "Nasterea Sf. Ioan Botezatorul.jpg"
        , "Proorocule şi Înaintemergătorule al venirii lui Hristos, după vrednicie a te lăuda pe tine nu ne pricepem noi, cei ce cu dragoste te cinstim; că nerodirea celei ce te-a născut şi amuţirea părintelui tău s-au dezlegat întru mărită şi cinstită naşterea ta, şi întruparea Fiului lui Dumnezeu lumii se propovăduieşte."
    )
);
feasts.add(
    new Feast(
        "Sfinţii Apostoli Petru şi Pavel"
        , new Date(currentYear, 5, 29)
        , new Date(currentYear, 5, 29)
        , new Date(currentYear, 5, 29)
        , iconPath + "Sf. Ap. Petru si Pavel.jpg"
        , "Cei ce sunteţi între Apostoli mai intâi pe scaun şezători şi lumii învăţători, Stăpânului tuturor rugaţi-vă pace lumii să dăruiască şi sufletelor noastre mare milă."
    )
);

//********************************************
//Praznice iulie
//********************************************

//********************************************
//Praznice august
//********************************************
feasts.add(
    new Feast(
        "Schimbarea la Faţă a Domnului"
        , new Date(currentYear, 7, 5)
        , new Date(currentYear, 7, 6)
        , new Date(currentYear, 7, 13)
        , iconPath + "Schimbarea la fata.jpg"
        , "Schimbatu-Te-ai la Faţă în munte, Hristoase Dumnezeule, arătând ucenicilor Tăi slava Ta, pe cât li se putea; strălucească şi nouă, păcătoşilor, lumina Ta cea pururea fiitoare, pentru rugăciunile Născătoarei de Dumnezeu, Dătătorule de lumină, slavă Ţie."
    )
);
feasts.add(
    new Feast(
        "Adormirea Maicii Domnului"
        , new Date(currentYear, 7, 15)
        , new Date(currentYear, 7, 14)
        , new Date(currentYear, 7, 23)
        , iconPath + "Adormirea Maicii Domnului.jpg"
        , "Întru naştere fecioria ai păzit, întru adormire lumea nu o ai părăsit, de Dumnezeu Născătoare. Mutatu-te-ai la viaţă, fiind Maica vieţii, şi cu rugăciunile tale izbăveşti din moarte sufletele noastre."
    )
);
feasts.add(
    new Feast(
        "Tăiarea Capului Sf. Ioan Botezătorul"
        , new Date(currentYear, 7, 29)
        , new Date(currentYear, 7, 29)
        , new Date(currentYear, 7, 29)
        , iconPath + "Taierea Capului Sf. Ioan Botezatorul.jpg"
        , "Pomenirea dreptului cu laude, iar ţie destul îţi este mărturia Domnului, Înaintemergătorule, că te-ai arătat cu adevărat şi decât proorocii mai cinstit, că şi a boteza în repejuni pe Cel propovăduit te-ai învrednicit. Drept aceea, pentru adevăr nevoindu-te, bucurându-te, bine ai vestit şi celor din iad pe Dumnezeu Cel ce S-a arătat în trup, pe Cel ce a ridicat păcatul lumii şi ne-a dăruit nouă mare milă."
    )
);

//********************************************
//Praznice septembrie
//********************************************
feasts.add(
    new Feast(
        "Naşterea Maicii Domnului"
        , new Date(currentYear, 8, 8)
        , new Date(currentYear, 8, 7)
        , new Date(currentYear, 8, 12)
        , iconPath + "Nasterea Maicii Domnului.jpg"
        , "Naşterea ta, de Dumnezeu Născătoare Fecioară, bucurie a vestit la toată lumea; că din tine a răsărit Soarele dreptăţii, Hristos Dumnezeul nostru şi dezlegând blestemul, a dat binecuvântare şi stricând moartea, ne-a dăruit nouă viaţă veşnică."
    )
);
feasts.add(
    new Feast(
        "Înălţarea Sfintei Cruci"
        , new Date(currentYear, 8, 14)
        , new Date(currentYear, 8, 13)
        , new Date(currentYear, 8, 21)
        , iconPath + "Inaltarea Sf. Cruci.jpg"
        , "Mântuieşte, Doamne, poporul Tău şi binecuvintează moştenirea Ta; biruinţă binecredincioşilor creştini asupra celui potrivnic dăruieşte şi cu Crucea Ta păzeşte pe poporul Tău."
    )
);

//********************************************
//Praznice octombrie
//********************************************
feasts.add(
    new Feast(
        "Sfânta Cuvioasa Parascheva"
        , new Date(currentYear, 9, 14)
        , new Date(currentYear, 9, 14)
        , new Date(currentYear, 9, 15)
        , iconPath + "Sf. Cuvioasa Parascheva.jpg"
        , "Întru tine maică, cu osârdie s-a mântuit cel după chip; că luând crucea ai urmat lui Hristos; şi lucrând ai invăţat să nu se uite la trup, că este trecător; ci să poarte grijă de suflet, de lucrul cel nemuritor. Pentru aceasta şi cu îngerii împreună se bucură, cuvioasă maică Paraschevo, duhul tău."
    )
);
feasts.add(
    new Feast(
        "Sfântul Mare Mucenic Dimitrie, Izvorâtorul de mir"
        , new Date(currentYear, 9, 26)
        , new Date(currentYear, 9, 26)
        , new Date(currentYear, 9, 26)
        , iconPath + "Sf. M. Mc. Dimitrie.jpg"
        , "Mare apărător te-a aflat în primejdii lumea, pe tine Purtătorule de chinuri, cel ce ai biruit pe păgâni. Deci, precum mândria lui Lie ai zdrobit şi la luptă îndrăzneţ ai făcut pe Nestor, aşa, Sfinte Dimitrie, roagă pe Hristos Dumnezeu să ne dăruiască nouă mare milă!"
    )
);
feasts.add(
    new Feast(
        "Cuviosul Dimitrie cel nou"
        , new Date(currentYear, 9, 27)
        , new Date(currentYear, 9, 27)
        , new Date(currentYear, 9, 27)
        , iconPath + "Cuviosul Dimitrie cel nou.jpg"
        , "Întru tine părinte, cu osârdie s-a mântuit cel după chip; că luând crucea, ai urmat lui Hristos şi lucrând ai învăţat să nu se uite la trup căci este trecător, ci să poarte grijă de suflet, de lucrul cel nemuritor. Pentru aceasta şi cu îngerii împreună se bucură, Cuvioase Dimitrie duhul tău."
    )
);

//********************************************
//Praznice noiembrie
//********************************************
feasts.add(
    new Feast(
        "Soborul Sfinţilor Arhangheli Mihail şi Gavriil"
        , new Date(currentYear, 10, 8)
        , new Date(currentYear, 10, 7)
        , new Date(currentYear, 10, 9)
        , iconPath + "Sf. Arhangheli Mihail si Gavriil.jpg"
        , "Mai-marilor Voievozi ai oştilor cereşti, rugămu-vă pe voi, noi, nevrednicii, ca prin rugăciunile voastre să ne acoperiţi pe noi, cu acoperământul aripilor măririi voastre celei netrupeşti, păzindu-ne pe noi cei ce cădem cu deadinsul şi strigăm: izbăviţi-ne din nevoi, ca nişte mai-mari peste puterile celor de sus."
    )
);
feasts.add(
    new Feast(
        "Sfinţii Mucenici Mina, Victor şi Vichentie"
        , new Date(currentYear, 10, 11)
        , new Date(currentYear, 10, 11)
        , new Date(currentYear, 10, 11)
        , iconPath + "Sf. Mare Mucenic Mina.jpg"
        , "Mucenicii Tăi, Doamne, întru nevoinţele lor, cununile nestricăciunii au luat de la Tine, Dumnezeul nostru, ca având tăria ta, pe chinuitori au surpat; zdrobit-au şi ale diavolilor neputincioase îndrăzniri. Pentru rugăciunile lor, mântuieşte sufletele noastre."
    )
);
feasts.add(
    new Feast(
        "Sfantul Apostol si Evanghelist Matei"
        , new Date(currentYear, 10, 16)
        , new Date(currentYear, 10, 16)
        , new Date(currentYear, 10, 16)
        , iconPath + "Sf. Ap. si Evanghelist Matei.jpg"
        , "Apostole Sfinte si Evangheliste Matei, roagă pe Dumnezeu, ca să dăruiască iertare de greşeli sufletelor noastre."
    )
);
feasts.add(
    new Feast(
        "Intrarea în Biserică a Maicii Domnului"
        , new Date(currentYear, 10, 21)
        , new Date(currentYear, 10, 20)
        , new Date(currentYear, 10, 25)
        , iconPath + "Intrarea in Biserica a Maicii Domnului.jpg"
        , "Astăzi, înainte-însemnarea bunăvoinţei lui Dumnezeu şi propovăduirea mântuirii oamenilor, Fecioara, în Biserica lui Dumnezeu luminat se arată, şi pe Hristos tuturor mai înainte Îl vesteşte. Acesteia şi noi, cu mare glas să-i cântăm: Bucură-te plinirea rânduielii Ziditorului."
    )
);
feasts.add(
    new Feast(
        "Sfântul Apostol Andrei cel întâi chemat"
        , new Date(currentYear, 10, 30)
        , new Date(currentYear, 10, 26)
        , new Date(currentYear, 11, 4)
        , iconPath + "Sf. Ap. Andrei.jpg"
        , "Ca cel decât apostolii mai întâi chemat, şi verhovnicului frate adevărat, Stăpânului tuturor Andree roagă-te, pace lumii să dăruiască şi sufletelor noastre mare milă."
    )
);

//********************************************
//Praznice decembrie
//********************************************
feasts.add(
    new Feast(
        "Sfântul Ierarh Nicolae, Arhiepiscopul Mirelor Lichiei"
        , new Date(currentYear, 11, 6)
        , new Date(currentYear, 11, 5)
        , new Date(currentYear, 11, 7)
        , iconPath + "Sf. Ierarh Nicolae.jpg"
        , "Îndreptător credinţei şi chip blândeţilor, învăţător înfrânării te-a arătat pe tine turmei tale adevărul lucrurilor. Pentru aceasta ai câştigat cu smerenia cele înalte, cu sărăcia cele bogate. Părinte Ierarhe Nicolae, roagă pe Hristos Dumnezeu, ca să mântuiască sufletele noastre."
    )
);
feasts.add(
    new Feast(
        "Naşterea Domnului"
        , new Date(currentYear, 11, 25)
        , new Date(currentYear, 10, 14)
        , new Date(currentYear, 11, 31)
        , iconPath + "Nasterea Domnului.jpg"
        , "Naşterea Ta, Hristoase, Dumnezeul nostru, răsărit-a lumii lumina cunoştinţei; ca întru dânsa cei ce slujeau stelelor, de la stea s-au învăţat să se inchine Ţie, Soarelui dreptăţii, şi să Te cunoască pe Tine, Răsăritul cel de sus, Doamne, slavă Ţie."
    )
);


function BulletinSection(element) {
    this.element = element;
    
    this.update = function(value) {
        if (this.element.tagName == "IMG") {
            this.element.src = value;
        }
        else {
            this.element.innerHTML = value;
        }
    }
}

function FeastBulletin(feastNameSection, feastIconSection, feastHymnSection) {
    this.feastNameSection = feastNameSection;
    this.feastIconSection = feastIconSection;
    this.feastHymnSection = feastHymnSection;

    this.defaultFeast = feasts.getDefaultCelebratedFeast();
    this.feastName = this.defaultFeast.name;
    this.feastIcon = this.defaultFeast.icon;
    this.feastHymn = this.defaultFeast.hymn;
    
    this.update = function() {
        var feast = feasts.getCurrentCelebratedFeast();
        if (feast != null) {
            this.feastName = feast.name;
            this.feastIcon = feast.icon;
            this.feastHymn = feast.hymn;
        }
        this.feastNameSection.update(this.feastName);
        this.feastIconSection.update(this.feastIcon);
        this.feastHymnSection.update(this.feastHymn);
    }
}