/*
 * Nameday   ver  2.0.1  2003-11-02
 * Copyright (c) 2002-2003 by Michal Nazarewicz (mina86@tlen.pl)
 *
 * This script is free software; It is ditributed under terms of
 * GNU Lesser General Public License. Copy of the license can be found
 * at www.gnu.org/licenses/licenses.html#LGPL
 *
 * Visit www.projektcode.prv.pl for more..
 */


//
// Tuday's date :)
//
var nameday_date = new Date(),
        nameday_day = nameday_date.getDate(),
        nameday_month = nameday_date.getMonth()+1;



//
// Object representing names
//
function NamedayNames(names) {
        if (names instanceof Array) {
                this.names = names;
        } else {
                this.names = names.split('|');
        }
}

NamedayNames.prototype = {
        join: function(sep, last_sep, limit) {
                // Init args
                switch (arguments.length) {
                        case  0: sep = null;
                        case  1: last_sep = null;
                        case  2: limit = null;
                        case  3: break;
                        default: return false;
                }


                // Get names
                var names = this.getNames(limit);


                // Join
                if (sep==null) {
                        sep = ', ';
                }
                if (last_sep==null) {
                        return names.join(sep);
                } else {
                        var str = '';
                        for (var i = 0; i<names.length; i++) {
                                if (i==names.length-1) {
                                        str += last_sep;
                                } else if (i) {
                                        str += sep;
                                }
                                str += names[i];
                        }
                        return str;
                }
        },


        //
        // Returns names as formated string
        //
        toString: function(before, after, sep, last_sep, limit) {
                // Init args
                switch (arguments.length) {
                        case  0: before = null;
                        case  1: after = null;
                        case  2: sep = null;
                        case  3: last_sep = null;
                        case  4: limit = null;
                        case  5: break;
                        default: return false;
                }


                // Join names
                var str = this.join(sep, last_sep, limit);
                if (!str) {
                        return false;
                }


                // Return
                return (before==null?'':before) + str + (after==null?'':after);
        },


        //
        // Returns names in array (maximum number of names in array is limit
        // or there's no maximum number if limit==0 || limit==null)
        //
        getNames: function(limit) {
                // Check args;
                if (arguments.length>1) {
                        return false;
                }

                // All requested
                if (arguments.length==0 || limit==null || limit<1 ||
                        limit>=this.names.length) {
                        return this.names;

                // Limit requested
                } else {
                        var arr = new Array(limit);
                        for (var i = 0; i<limit; i++) {
                                arr[i] = names[i];
                        }
                        return arr;
                }
        },


        //
        // Get name at index
        //
        get: function(index) {
                return this.names[index];
        },


        //
        // Get number of names
        //
        count: function() {
                return this.names.length;
        }
};



//
// Object representing set of names for each day of year
//
function NamedaySet(array) {
        this.array = array;
}

NamedaySet.prototype = {
        //
        // Returns NamedayNames object with names of people who have nameday
        // today or in the dth of m  If d or m is null or omitted, todays day
        // and/or month is taken.
        // Note: Months are indexed from 1 !!
        //
        getNames: function(d, m) {
                switch (arguments.length) {
                        case  0: d = null;
                        case  1: m = null;
                        case  2: break;
                        default: return false;
                }

                if (d==null) {
                        d = nameday_day;
                }
                if (m==null) {
                        m = nameday_month;
                }

                return new NamedayNames(this.array[m-1][d-1]);
        }
};




//
// Main object
//
function Nameday() {
        this.sets = new Array();
}


Nameday.prototype = {
        //
        // Returns specyfied set
        //
        getSet: function(lang) {
                if (arguments.length!=1) {
                        return false;
                }
                return this.sets['' + lang];
        },


        //
        // Adds set
        //
        addSet: function(lang, set) {
                if (arguments.length!=2) {
                        return false;
                }
                if (set instanceof NamedaySet) {
                        this.sets['' + lang] = set;
                } else {
                        this.sets['' + lang] = new NamedaySet(set);
                }
        }
};

var nameday = new Nameday();



/*
 * Nameday Polish Extension  ver  1.4.2  2003-11-19
 * Copyright (c) 2002-2003 by Michal Nazarewicz (mina86@tlen.pl)
 *
 * This script is free software; It is ditributed under terms of
 * GNU Lesser General Public License. Copy of the license can be found
 * at www.gnu.org/licenses/licenses.html#LGPL
 */


//
// Converts names
//
NamedayNames.prototype.pl_convert = function(method) {
        if (arguments.length!=1) {
                return false;
        }
        if (method==0) {
                return new NamedayNames(this.names);
        }
        if (method!=1) {
                return false;
        }

        var ret = new Array(), name = '';
        for (var i = 0; i<this.names.length; i++) {
                name = this.names[i];

                var len = name.length,
                        last3 = name.substring(len-3),
                        last2 = name.substring(len-2),
                        vowel3 = "aeioóuy".indexOf(name.charAt(len-4))!=-1,
                        vowel2 = "aeioóuy".indexOf(name.charAt(len-3))!=-1;

                if (last3=="ego") {
                        if (name.substring(len-4, 1)=='l') {
                                name = name.substring(0, len-3);
                        } else {
                                name = name.substring(0, len-3) + "y";
                        }
                } else if (last3=="ńca") {
                        name = name.substring(0, len-3) + "niec";
                } else if (last3=="tra") {
                        name = name.substring(0,len-3) + (vowel3?"tr":"ter");
                } else if (last2=="ka" && !vowel2) {
                        name =  name.substring(0,len-2) + "ek";
                } else if (last2=="ła" && !vowel2) {
                        name = name.substring(0, len-2) + "ła";
                } else {
                        name = name.substring(0, len-1) +
                                (last2.substring(2,1)=='a'?'':'a');
                }

                ret[i] = name;
        }
        return new NamedayNames(ret);
};


//
// For backward compatibility
//
function WypiszImieniny(before, after, sep, last_sep, method) {
        switch (arguments.length) {
                case 0: before = null;
                case 1: after = null;
                case 2: sep = null;
                case 3: last_sep = null;
                case 3: method = null;
        }


        var names = PobierzImieniny(sep, last_sep, method);
        if (!names) {
                return false;
        }


        document.write("" + before + names + after);
        return true;
}

function PobierzImieniny(sep, last_sep, method) {
        switch (arguments.length) {
                case 0: sep = null;
                case 1: last_sep = null;
                case 2: method = null;
        }
        if (method==null) {
                method = 0;
        }

        var names;
        if (!(names = nameday.getSet('pl')) || !(names = names.getNames()) ||
                !(names = names.pl_convert(method))) {
                return false;
        }

        return names.toString('', '', sep, last_sep);
}



/*
 * Nameday Polish Names Database  v 2.1
 * Database taken from infoludek.pl/~slawek/imieniny.html
 * +some corrections
 */


nameday.addSet('pl', new Array(
        new Array(

               "Oktawa Bożego Narodzenia",
                "Bazylego|Makarego|Narcyzy",
                "Arlety|Danuty|Lucjana",
                "Najświętszego Imienia Jezus",
                "wsp. św. Telesfora|papieża | męczennika",
                "Objawienie Pańskie (Epifania)",
                "Juliana|Lucjana|Walentyny",
                "Artura|Rajmunda|Seweryny",
                "Adriana|Alicji|Teresy",
                "Ady|Jana|Wilhelma",
                "Uroczystość Świętej Rodziny Jezusa|Maryi|Józefa",
                "Bernarda|Czesławy|Grety",
                "wspomnienie Chrztu Pańskiego",
                "św. Hilarego",
                "św. Pawła",
                "św. Marcelego I|papieża|męczennika",
                "św. Antoniego, Opata",
                "II Niedziela po Objawieniu",
                "wsp. śś. Mariusza|Marty|Audifaksa", 
                 "św. Fabiana|papieża",
                "św. Agnieszki|dziewicy|męczennicy",
                "św. Wincentego|Anastazego|męczenników",
                "św. Rajmunda z Pennafort| wyznawcy",
                "św. Tymoteusza|biskupa|męczennika",
                "III Niedziela po Objawieniu",
                "św. Polikarpa|biskupa|męczennika",
                "św. Jana Chryzostoma|biskupa|wyznawcy|doktora Kościoła",
                "św. Piotra Nolasko|wyznawcy",
                "św. Franciszka Salezego|biskupa|wyznawcy|doktora Kościoła",
                "św. Martyny|dziewicy|męczennicy",
                "św. Jana Bosco|wyznawcy"

        ),
        new Array(
                "Brygidy|Dobrogniewa|Ignacego",
                "Kornela|Marii|Mirosławy",
                "Błażeja|Joanny|Telimeny",
                "Andrzeja|Mariusza|Weroniki",
                "Agaty|Filipa|Justyniana",
                "Amandy|Bogdana|Doroty",
                "Ryszarda|Teodora|Wilhelminy",
                "Irminy|Piotra|Sylwii",
                "Bernarda|Eryki|Rajmunda",
                "Elwiry|Elizy|Jacka",
                "Bernadetty|Marii|Olgierda",
                "Czasława|Damiana|Normy",
                "Grzegorza|Lesława|Katarzyny",
                "Liliany|Walentyny|Walentego",
                "Arnolda|Jowity|Georginy",
                "Danuty|Daniela|Juliany",
                "Donata|Gizeli|Łukasza",
                "Konstancji|Krystiana|Sylwany",
                "Bettiny|Konrada|Mirosława",
                "Anety|Lecha|Leona",
                "Eleonory|Lenki|Kiejstuta",
                "Małgorzaty|Marty|Nikifora",
                "Damiana|Romana|Romany",
                "Boguty|Bogusza|Macieja",
                "Almy|Cezarego|Jarosława",
                "Bogumiła|Eweliny|Mirosława",
                "Gagrieli|Liwii|Leonarda",
                "Ludomira|Makarego|Wiliany",
                "Lecha|Lutomira|Wiktora"
        ),
        new Array(
                "Albina|Antoniny|Radosławy",
                "Halszki|Heleny|Karola",
                "Kingi|Maryna|Tycjana",
                "Adrianny|Kazimierza|Wacława",
                "Aurory|Fryderyka|Oliwii",
                "Jordana|Marcina|Róży",
                "Flicyty|Kajetana|Pauli",
                "Beaty|Juliana|Wincentego",
                "Dominika|Franciszki|Katarzyny",
                "Bożysławy|Cypriana|Marcelego",
                "Konstantego|Ludosława|Rozyny",
                "Grzegorza|Justyny|Józefiny",
                "Bożeny|Krystyny|Marka",
                "Dalii|Leona|Matyldy",
                "Delfiny|Longina|Ludwiki",
                "Izabeli|Henryka|Oktawii",
                "Reginy|Patryka|Zdyszka",
                "Edwarda|Narcyza|Zbysława",
                "Aleksandryny|Józefa|Nicety",
                "Joachima|Kiry|Maurycego",
                "Benedykta|Lubomiry|Lubomira",
                "Bogusława|Jagody|Katarzyny",
                "Feliksa|Konrada|Zbysławy",
                "Gabrieli|Marka|Seweryna",
                "Bolka|Cezaryny|Marioli",
                "Dory|Olgi|Teodora",
                "Ernesta|Jana|Marka",
                "Anieli|Kasrota|Soni",
                "Marka|Wiktoryny|Zenona",
                "Amelii|Dobromira|Leonarda",
                "Balbiny|Kamila|Kornelii"
        ),
        new Array(
                "Chryzamtyny|Grażyny|Zygmunta",
                "Franciszka|Malwiny|Władysława",
                "Pankracego|Renaty|Ryszarda",
                "Benedykta|Izodory|Wacławy",
                "Ireny|Kleofasa|Wincentego",
                "Ady|Celestyny|Ireneusza",
                "Donata|Herminy|Rufina",
                "Amadeusza|Cezaryny|Juliany",
                "Mai|Marcelego|Wadima",
                "Borysławy|makarego|Michała",
                "Filipa|Izoldy|Leona",
                "Juliusza|Lubosława|Wiktoryny",
                "Artemona|Justyny|Przemysławy",
                "Bernarda|Martyny|Waleriana",
                "Adolfiny|Odetty|Wacława",
                "Bernarda|Biruty|Erwina",
                "Anicety|Klary|Rudolfina",
                "Apoloniusza|Bogusławy|Gościsławy",
                "Alfa|Leonii|Tytusa",
                "Agnieszki|Amalii|Czecha",
                "Jarosława|Konrada|Selmy",
                "Łukasza|Kai|Nastazji",
                "Ilony|Jerzego|Wojciecha",
                "Bony|Horacji|Jerzego",
                "Jarosława|Marka|Wiki",
                "Marii|Marzeny|Ryszarda",
                "Sergiusza|Teofila|Zyty",
                "Bogny|Walerii|Witalisa",
                "Hugona|Piotra|Roberty",
                "Balladyny|Lilli|Mariana"
        ),
        new Array(
                "Józefa|Lubomira|Ramony",
                "Longiny|Toli|Zygmunta",
                "Jaropełka|Marii|Niny",
                "Floriana|Michała|Moniki",
                "Irydy|Tamary|Waldemara",
                "Beniny|Filipa|Judyty",
                "Augusta|Gizeli|Ludomiry",
                "Kornela|Lizy|Stanisława",
                "Grzegorza|Karoliny|Karola",
                "Antoniny|Izydory|Jana",
                "Igi|Mamerta|Miry",
                "Dominika|Imeldy|Pankracego",
                "Agnieszki|Magdaleny|Serwacego",
                "Bonifacego|Julity|Macieja",
                "Dionizego|Nadziei|Zofii",
                "Andrzeja|Jędrzeja|Małgorzaty",
                "Brunony|Sławomira|Wery",
                "Alicji|Edwina|Eryka",
                "Celestyny|Iwony|Piotra",
                "Bazylego|Bernardyna|Krystyny",
                "Jana|Moniki|Wiktora",
                "Emila|Neleny|Romy",
                "Leoncjusza|Michała|Renaty",
                "Joanny|Zdenka|Zuzanny",
                "Borysa|Magdy|Marii-Magdaleny",
                "Eweliny|Jana|Pawła",
                "Amandy|Jana|Juliana",
                "Augustyna|Ingi|Jaromira",
                "Benity|Maksymiliana|Teodozji",
                "Ferdynanda|Gryzeldy|Zyndrama",
                "Anieli|Feliksa|Kamili"
        ),
        new Array(
                "Gracji|Jakuba|Konrada",
                "Erazma|Marianny|Marzeny",
                "Anatola|Leszka|Tamary",
                "Christy|Helgi|Karola",
                "Bonifacego|Kiry|Waltera",
                "Laury|Laurentego|Nory",
                "Ariadny|Jarosława|Roberta",
                "Ady|Celii|Medarda",
                "Anny-Marii|Felicjana|Sławoja",
                "Bogumiła|Diany|Małgorzaty",
                "Barnaby|Benedykta|Flory",
                "Gwidona|Leonii|Niny",
                "Antoniego|Gracji|Lucjana",
                "Bazylego|Elizy|Justyny",
                "Jolanty|Lotara|Wita",
                "Aliny|Anety|Benona",
                "Laury|Leszka|Marcjana",
                "Elżbiety|Marka|Pauli",
                "Gerwazego|Protazego|Sylwii",
                "Bogny|Rafaeli|Rafała",
                "Alicji|Alojzego|Rudolfa",
                "Pauliny|Sabiny|Tomasza",
                "Albina|Wandy|Zenona",
                "Danuty|Jana|Janiny",
                "Łucji|Witolda|Wilhelma",
                "Jana|Pauliny|Rudolfiny",
                "Cypriana|Emanueli|Władysława",
                "Florentyny|Ligii|Leona",
                "Pawła|Piotra|Salomei",
                "Arnolda|Emiliany|Lucyny"
        ),
        new Array(
                "Bogusza|Haliny|Mariana",
                "Kariny|Serafiny|Urbana",
                "Anatola|Jacka|Mirosławy",
                "Aureli|Malwiny|Zygfryda",
                "Antoniego|Bartłomieja|Karoliny",
                "Dominiki|Jaropełka|Łucji",
		"Estery|Kiry|Rudolfa",
		"Arnolda|Edgara|Elżbiety",
		"Hieronima|Palomy|Weroniki",
		"Filipa|Sylwany|Witalisa",
		"Benedykta|Kariny|Olgi",
		"Brunona|Jana|Wery",
		"Danieli|Irwina|Małgorzaty",
		"Kamili|Kamila|Marcelego",
		"Henryka|Igi|Włodzimierza",
		"Eustachego|Mariki|Mirelli",
		"Aleksego|Bogdana|Martyny",
		"Kamila|Karoliny|Roberta",
		"Alfreny|Rufina|Wincentego",
		"Fryderyka|Małgorzaty|Seweryny",
		"Danieli|Wawrzyńca|Wiktora",
		"Magdaleny|Mileny|Wawrzyńca",
		"Sławy|Sławosza|Żelisławy",
		"Kingi|Krystyna|Michaliny",
		"jakuba|Krzysztofa|Walentyny",
		"Anny|Mirosławy|Joachima",
		"Aureliusza|Natalii|Rudolfa",
		"Ady|Wiwiany|Sylwiusza",
		"Marty|Konstantego|Olafa",
		"Julity|Ludmiły|Zdobysława",
		"Ignacego|Lodomiry|Romana"
	),
	new Array(
		"Jarosława|Justyny|Nadziei",
		"Gustawa|Kariny|Stefana",
		"Augustyna|Kamelii|Lidii",
		"Dominiki|Dominika|Protazego",
		"Emila|Karoliny|Kary",
		"Jakuba|Sławy|Wincentego",
		"Donaty|Olechny|Kajetana",
		"Izy|Rajmunda|Seweryna",
		"Klary|Romana|Rozyny",
		"Bianki|Borysa|Wawrzyńca",
		"Luizy|Włodzmierza|Zuzanny",
		"Hilarii|Juliana|Lecha",
		"Elwiry|Hipolita|Radosławy",
		"Alfreda|Maksymiliana|Selmy",
		"Marii|Napoleona|Stelli",
		"Joachima|Nory|Stefana",
		"Anity|Elizy|Mirona",
		"Bogusława|Bronisława|Ilony",
		"Emilii|Julinana|Konstancji",
		"Bernarda|Sabiny|Samuela",
		"Franciszka|Kazimiery|Ruty",
		"Cezarego|Marii|Zygfryda",
		"Apolinarego|Miły|Róży",
		"Bartosza|Jerzego|Maliny",
		"Belii|Ludwika|Luizy",
		"Ireneusza|Konstantego|Marii",
		"Cezarego|Małgorzaty|Moniki",
		"Adeliny|Erazma|Sobiesława",
		"Beaty|Racibora|Sabiny",
		"Benona|Jowity|Szczęsnego",
		"Cyrusa|Izabeli|Rajmundy"
	),
	new Array(
		"Belindy|Bronisza|Idziego",
		"Dionizy|Izy|Juliana",
		"Joachima|Liliany|Szymona",
		"Dalii|Idy|Rocha",
		"Doroty|Justyna|Wawrzyńca",
		"Beaty|Eugeniusza|Lidy",
		"Reginy|Marka|Melchiora",
		"Czcibora|Marii|Radosława",
		"Aldony|Jakuba|Sergiusza",
		"Eligii|Irmy|Łukasza",
		"Dagny|Jacka|Prota",
		"Amadeusza|Gwidy|Sylwiny",
		"Apolinarego|Eugenii|Lubomira",
		"Bernarda|Mony|Roksany",
		"Albina|Lolity|Ronalda",
		"Jagienki|Kamili|Korneliusza",
		"Franciszka|Lamberty|Narcyza",
		"Ireny|Irminy|Stanisława",
		"Januarego|Konstancji|Leopolda",
		"Eustachego|Faustyny|Renaty",
		"Darii|Mateusza|Wawrzyńca",
		"Maury|Milany|Tomasza",
		"Bogusława|Liwiusza|Tekli",
		"Dory|Gerarda|Maryny",
		"Aureli|Kamila|Kleofasa",
		"Cypriana|Justyny|Łucji",
		"Damiana|Mirabeli|Wincentego",
		"Libuszy|Wacławy|Wacława",
		"Michaliny|Michała|Rafała",
		"Geraldy|Honoriusza|Wery"
	),
	new Array(
		"Heloizy|Igora|Remigiusza",
		"Racheli|Sławy|Teofila",
		"Bogumiła|Gerarda|Józefy",
		"Edwina|Rosławy|Rozalii",
		"Flawii|Justyna|Rajmunda",
		"Artura|Fryderyki|Petry",
		"Krystyna|Marii|Marka",
		"Brygidy|Loreny|Marcina",
		"Arnolda|Ludwika|Sybili",
		"Franciszka|Loretty|Poli",
		"Aldony|Brunona|Emila",
		"Krystyny|Maksa|Serafiny",
		"Edwarda|Geraldyny|Teofila",
		"Alany|Damiana|Liwii",
		"Jadwigi|Leonarda|Teresy",
		"Ambrożego|Florentyny|Gawła",
		"Antonii|Ignacego|Wiktora",
		"Hanny|Klementyny|Łukasza",
		"Michaliny|Michała|Piotra",
		"Ireny|Kleopatry|Witalisa",
		"Celiny|Hilarego|Janusza",
		"Haliszki|Lody|Przybysława",
		"Edwarda|Marleny|Seweryna",
		"Arety|Marty|Marcina",
		"Ingi|Maurycego|Sambora",
		"Ewarysta|Lucyny|Lutosławy",
		"Iwony|Noemi|Szymona",
		"Narcyza|Serafina|Wioletty",
		"Angeli|Przemysława|Zenobii",
		"Augustyny|Łukasza|Urbana",
		"Krzysztofa|Augusta|Saturnina"
	),
	new Array(
		"Konrada|Seweryny|Wiktoryny",
		"Bohdany|Henryka|Tobiasza",
		"Huberta|Miły|Sylwii",
		"Albertyny|Karola|Olgierda",
		"Balladyny|Elżbiety|Sławomira",
		"Arletty|Feliksa|Leonarda",
		"Antoniego|Kaliny|Przemiły",
		"Klaudii|Seweryna|Wiktoriusza",
		"Anatolii|Gracji|Teodora",
		"Leny|Lubomira|Natalii",
		"Bartłomieja|Gertrudy|Marcina",
		"Konrada|Renaty|Witolda",
		"Arkadii|Krystyna|Stanisławy",
		"Emila|Laury|Rogera",
		"Amielii|Idalii|Leopolda",
		"Edmunda|Marii|Marka",
		"Grzegorza|Salomei|Walerii",
		"Klaudyny|Romana|Tomasza",
		"Elżbiety|Faustyny|Pawła",
		"Anatola|Edyty|Rafała",
		"Janusza|Marii|Reginy",
		"Cecylii|Jonatana|Marka",
		"Adeli|Felicyty|Klemensa",
		"Emmy|Flory|Romana",
		"Elżbiety|Katarzyny|Klemensa",
		"Leona|Leonarda|Lesławy",
		"Franciszka|Kseni|Maksymiliana",
		"Jakuba|Stefana|Romy",
		"Błażeja|Margerity|Saturnina",
		"Andrzeja|Maury|Ondraszka"
	),
	new Array(
		"Blanki|Edmunda|Eligiusza",
		"Balbiny|Ksawerego|Pauliny",
		"Hilarego|Franciszki|Ksawery",
		"Barbary|Hieronima|Krystiana",
		"Kryspiny|Norberta|Sabiny",
		"Dionizji|Leontyny|Mikołaja",
		"Agaty|Dalii|Sobiesława",
		"Delfiny|Marii|Wirginiusza",
		"Anety|Leokadii|Wiesława",
		"Danieli|Bohdana|Julii",
		"Biny|Damazego|Waldemara",
		"Ady|Aleksandra|Dagmary",
		"Dalidy|Juliusza|Łucji",
		"Alfreda|Izydora|Zoriny",
		"Celiny|Ireneusza|Niny",
		"Albiny|Sebastiana|Zdzisławy",
		"Jolanty|Łukasza|Olimpii",
		"Bogusława|Gracjana|Laury",
		"Beniaminy|Dariusza|Gabrieli",
		"Bogumiły|Dominika|Zefiryna",
		"Honoraty|Seweryny|Tomasza",
		"Bożeny|Drogomira|Zenona",
		"Dagny|Sławomiry|Wiktora",
		"Adama|Ewy|Irminy",
		"Anety|Glorii|Piotra",
		"Dionizego|Kaliksta|Szczepana",
		"Fabioli|Jana|Żanety",
		"Antoniusza|Cezarego|Teofilii",
		"Dawida|Dionizy|Tomasza",
		"Eugeniusza|Katarzyny|Sabiny",
		"Mariusza|Melanii|Sylwestra"
	)
));

