/*
 * 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(
		"Masława|Mieczysława|Mieszka",
		"Bazylego|Makarego|Izydora",
		"Genowefy|Danuty|Lucjana",
		"Angeliki|Elżbiety|Grzegorza",
		"Edwarda|Hanny|Szymona",
		"Kacpra|Melchiora|Baltazara",
		"Juliana|Lucjana|Walentyny",
		"Mścisława|Rajmunda|Seweryna",
		"Adriana|Antoniego|Juliana",
		"Danuty|Grzegorza|Wilhelma",
		"Feliksa|Krzesimira|Marty",
		"Arkadiusza|Czesławy|Bernarda",
		"Bogumiła|Bogumiły|Weroniki",
		"Feliksa|Hilarego|Martyny",
		"Arnolda|Dory|Pawła",
		"Marcelego|Walerii|Włodzimierza",
		"Antoniego|Jana|Mariana",
		"Beatrycze|Małgorzaty|Piotra",
		"Erwiny|Henryka|Mariusza",
		"Fabiana|Miły|Sebastiana",
		"Agnieszki|Jarosława|Nory",
		"Anastazego|Mateusza|Wincentego",
		"Ildefonsa|Jana|Klemensa",
		"Felicji|Roberta|Tymoteusza",
		"Miłosza|Pawła|Tatiany",
		"Pauli|Pauliny|Polikarpa",
		"Anieli|Juliana|Przemysława",
		"Agnieszki|Radomira|Walerego",
		"Franciszka|Konstancji|Zdzisława",
		"Martyny|Macieja|Sebastiana",
		"Joanny|Marceli|Ludwiki"
	),
	new Array(
		"Brygidy|Dobrogniewa|Ignacego",
		"Joanny|Marii|Mirosławy",
		"Błażeja|Hipolita|Telimeny",
		"Andrzeja|Mariusza|Weroniki",
		"Agaty|Filipa|Justyniana",
		"Amandy|Bogdana|Doroty",
		"Ryszarda|Teodora|Romualda",
		"Jana|Piotra|Sylwii",
		"Apolonii|Eryka|Rajmunda",
		"Elwiry|Elizy|Jacka",
		"Bernadetty|Lucjusza|Olgierda",
		"Aleksego|Benedykta|Normy",
		"Grzegorza|Lesława|Katarzyny",
		"Cyryla|Metodego|Walentego",
		"Faustyny|Jowity|Georginy",
		"Danuty|Daniela|Szymona",
		"Donata|Gizeli|Łukasza",
		"Konstancji|Krystiana|Zuzanny",
		"Arnolda|Konrada|Mirosława",
		"Anety|Lecha|Leona",
		"Eleonory|Feliksa|Kiejstuta",
		"Małgorzaty|Marty|Nikifora",
		"Damiana|Romana|Romany",
		"Boguty|Bogusza|Macieja",
		"Cezarego|Jarosława|Wiktora",
		"Aleksandra|Dionizego|Mirosława",
		"Anastazji|Gagriela|Leonarda",
		"Ludomira|Makarego|Romana",
		"Lecha|Lutomira|Wiktora"
	),
	new Array(
		"Albina|Antoniego|Radosławy",
		"Halszki|Heleny|Karola",
		"Kingi|Kunegundy|Tycjana",
		"Kazimierza|Lucjana|Wacława",
		"Adriana|Fryderyka|Oliwii",
		"Jordana|Marcina|Róży",
		"Kajetana|Tomasza|Polikarpa",
		"Beaty|Jana|Wincentego",
		"Dominika|Franciszki|Katarzyny",
		"Bożysławy|Cypriana|Makarego",
		"Konstantego|Ludosława|Rozyny",
		"Bernarda|Grzegorza|Justyny",
		"Bożeny|Krystyny|Marka",
		"Jakuba|Leona|Matyldy",
		"Klemensa|Krzysztofa|Ludwiki",
		"Izabeli|Henryka|Oktawii",
		"Reginy|Patryka|Zbigniewa",
		"Cyryla|Edwarda|Narcyza",
		"Bogdana|Józefa|Nicety",
		"Aleksandry|Anatola|Maurycego",
		"Benedykta|Lubomiry|Mikołaja",
		"Bogusława|Jagody|Katarzyny",
		"Feliksa|Konrada|Pelagii",
		"Gabriela|Marka|Seweryna",
		"Cezaryny|Marii|Marioli",
		"Emanuela|Larysy|Teodora",
		"Ernesta|Lidii|Marka",
		"Anieli|Aleksandra|Soni",
		"Eustachego|Wiktoryny|Zenona",
		"Amelii|Jana|Leonarda",
		"Balbiny|Beniamina|Kamila"
	),
	new Array(
		"Grażyny|Teodora|Zygmunta",
		"Franciszka|Malwiny|Władysława",
		"Antoniego|Renaty|Ryszarda",
		"Benedykta|Izodory|Wacławy",
		"Ireny|Kleofasa|Wincentego",
		"Ady|Celestyny|Ireneusza",
		"Donata|Hermana|Rufina",
		"Dionizego|Julii|Juliany",
		"Dymitra|Marcelego|Marii",
		"Borysławy|Daniela|Małgorzaty",
		"Filipa|Izoldy|Jaromira",
		"Juliusza|Lubosława|Zenona",
		"Marcina|Hermenegildy|Przemysławy",
		"Justyny|Martyny|Weroniki",
		"Anastazji|Modesta|Wacława",
		"Bernarda|Julii|Erwina",
		"Anicety|Klary|Rudolfa",
		"Apoloniusza|Bogusławy|Gościsławy",
		"Adolfa|Tytusa|Włodzimierza",
		"Agnieszki|Czesławy|Czecha",
		"Anzelma|Bartosza|Konrada",
		"Łukasza|Kai|Nastazji",
		"Ilony|Jerzego|Wojciecha",
		"Aleksego|Grzegorza|Jerzego",
		"Jarosława|Marka|Wiki",
		"Marii|Marceliny|Marzeny",
		"Anastazego|Felicji|Teofila",
		"Marii|Piotra|Witalisa",
		"Angeliny|Bogusława|Roberty",
		"Jakuba|Katarzyny|Mariana"
	),
	new Array(
		"Anieli|Filipa|Ramony",
		"Anatola|Anastazego|Zygmunta",
		"Aleksandry|Antoniny|Marii",
		"Floriana|Michała|Moniki",
		"Irydy|Teodora|Waldemara",
		"Benity|Filipa|Jana",
		"Augusta|Benedykty|Gizeli",
		"Kornela|Luizy|Stanisława",
		"Bożydara|Grzegorza|Karoliny",
		"Antoniny|Antoniny|Jana",
		"Franciszka|Ignacego|Miry",
		"Dominika|Imeldy|Pankracego",
		"Agnieszki|Roberta|Serwacego",
		"Bonifacego|Dobiesława|Macieja",
		"Dionizego|Nadziei|Zofii",
		"Andrzeja|Jędrzeja|Małgorzaty",
		"Brunona|Sławomira|Weroniki",
		"Aleksandry|Alicji|Edwina",
		"Celestyny|Iwony|Piotra",
		"Anastazego|Bazylego|Krystyny",
		"Moniki|Wiktora|Tymoteusza",
		"Emila|Heleny|Julii",
		"Emilii|Iwony|Renaty",
		"Joanny|Zdenka|Zuzanny",
		"Grzegorza|Leona|Marii-Magdaleny",
		"Eweliny|Filipa|Pawła",
		"Amandy|Jana|Juliusza",
		"Augustyna|Jaromira|Wiktora",
		"Bogusławy|Maksymiliana|Teodora",
		"Feliksa|Ferdynanda|Gryzeldy",
		"Anieli|Ernestyny|Kamili"
	),
	new Array(
		"Gracji|Jakuba|Konrada",
		"Erazma|Marii|Marzeny",
		"Anatola|Klotyldy|Leszka",
		"Franciszka|Helgi|Karola",
		"Bonifacego|Dobromira|Waltera",
		"Dominiki|Laurentego|Norberta",
		"Jarosława|Roberta|Wiesława",
		"Ady|Maksyma|Medarda",
		"Anny-Marii|Felicjana|Sławoja",
		"Bogumiła|Diany|Małgorzaty",
		"Barnaby|Benedykta|Flory",
		"Gwidona|Leona|Janiny",
		"Antoniego|Gracji|Lucjana",
		"Bazylego|Elizy|Justyny",
		"Jolanty|Wioli|Wita",
		"Aliny|Anety|Benona",
		"Laury|Ignacego|Marcjana",
		"Elżbiety|Marka|Pauli",
		"Julianny|Gerwazego|Protazego",
		"Bogny|Bogumiły|Rafała",
		"Alicji|Alojzego|Rudolfa",
		"Pauliny|Sabiny|Tomasza",
		"Albina|Wandy|Zenona",
		"Danuty|Jana|Janiny",
		"Doroty|Witolda|Wilhelma",
		"Jana|Jeremiego|Pauliny",
		"Cypriana|Marii|Władysława",
		"Ireneusza|Józefa|Leona",
		"Pawła|Piotra|Salomei",
		"Arnolda|Emilii|Cyryla"
	),
	new Array(
		"Bogusza|Haliny|Klarysy",
		"Jagody|Marii|Urbana",
		"Anatola|Jacka|Mirosławy",
		"Aureli|Elżbiety|Innocentego",
		"Antoniego|Bartłomieja|Karoliny",
		"Dominiki|Jaropełka|Łucji",
		"Apoloniusza|Cyryla|Estery",
		"Adriana|Edgara|Elżbiety",
		"Hieronima|Mikołaja|Weroniki",
		"Amelii|Filipa|Witalisa",
		"Benedykta|Kaliny|Olgi",
		"Brunona|Jana|Wery",
		"Danieli|Eugeniusza|Ernesta",
		"Kamili|Bonawentury|Marcelego",
		"Dawida|Henryka|Włodzimierza",
		"Benedykta|Benity|Mirelli",
		"Aleksego|Anety|Bogdana",
		"Erwina|Kamila|Karoliny",
		"Alfreda|Rufina|Wincentego",
		"Czesława|Eliasza|Małgorzaty",
		"Andrzeja|Benedykta|Wiktora",
		"Magdaleny|Marii|Wawrzyńca",
		"Apolinarego|Bogny|Sławy",
		"Kingi|Krystyna|Michaliny",
		"Jakuba|Krzysztofa|Walentyny",
		"Anny|Grażyny|Joachima",
		"Aureliusza|Natalii|Rudolfa",
		"Aidy|Innocentego|Sylwiusza",
		"Beatrycze|Marty|Konstantego",
		"Julity|Ludmiły|Zdobysława",
		"Ernesta|Lubomira|Ignacego"
	),
	new Array(
		"Jarosława|Justyny|Nadziei",
		"Gustawa|Kariny|Stefana",
		"Augustyna|Kamelii|Lidii",
		"Alfreda|Dominika|Protazego",
		"Emila|Marii|Stanisława",
		"Jakuba|Sławy|Wincentego",
		"Doroty|Olechny|Kajetana",
		"Emiliana|Cyryla|Cypriana",
		"Edyty|Klarysy|Romana",
		"Bernarda|Bogdana|Wawrzyńca",
		"Aleksandry|Klary|Zuzanny",
		"Hilarego|Piotra|Lecha",
		"Diany|Hipolita|Radosławy",
		"Alfreda|Euzebiusza|Maksymiliana",
		"Marii|Napoleona|Stelli",
		"Joachima|Rocha|Stefana",
		"Anity|Jacka|Joanny",
		"Bogusława|Heleny|Ilony",
		"Bolesława|Jana|Konstancji",
		"Bernarda|Sabiny|Samuela",
		"Franciszka|Kazimiery|Joanny",
		"Cezarego|Marii|Zygfryda",
		"Apolinarego|Filipa|Róży",
		"Bartłomieja|Emilii|Jerzego",
		"Belii|Ludwika|Luizy",
		"Ireneusza|Joanny|Marii",
		"Cezarego|Józefa|Moniki",
		"Adeliny|Patrycji|Sobiesława",
		"Beaty|Jana|Sabiny",
		"Benona|Mirona|Rebeki",
		"Bohdana|Izabeli|Rajmunda"
	),
	new Array(
		"Augusta|Bronisławy|Idziego",
		"Dionizego|Juliana|Stefana",
		"Grzegorza|Joachima|Szymona",
		"Liliany|Idy|Rozalii",
		"Doroty|Justyna|Wawrzyńca",
		"Beaty|Eugeniusza|Eugenii",
		"Reginy|Marka|Melchiora",
		"Klementyny|Marii|Radosława",
		"Augustyny|Dionizego|Jakuba",
		"Aldony|Irmy|Łukasza",
		"Dagny|Jacka|Prota",
		"Amadeusza|Gwidona|Sylwiny",
		"Aleksandry|Eugenii|Lubomira",
		"Bernardy|Cypriana|Mony",
		"Albina|Marii|Ronalda",
		"Edyty|Kamili|Korneliusza",
		"Franciszka|Justyny|Narcyza",
		"Ireny|Irminy|Stanisława",
		"Januarego|Konstancji|Leopolda",
		"Eustachego|Faustyny|Filipa",
		"Bożydara|Mateusza|Wawrzyńca",
		"Maurycego|Milany|Tomasza",
		"Bogusława|Liwiusza|Tekli",
		"Gerarda|Hermana|Maryny",
		"Aureli|Kamila|Władysława",
		"Cypriana|Justyny|Łucji",
		"Damiana|Mirabeli|Kosmy",
		"Wawrzyńca|Wacława|Wacławy",
		"Michaliny|Michała|Rafała",
		"Geraldy|Honoriusza|Wery"
	),
	new Array(
		"Danuty|Igora|Remigiusza",
		"Dionizego|Sławy|Teofila",
		"Bogumiła|Gerarda|Teresy",
		"Edwina|Franciszka|Rozalii",
		"Igora|Justyny|Rajmunda",
		"Artura|Brunona|Fryderyki",
		"Krystyny|Marii|Marka",
		"Brygidy|Marcina|Pelagii",
		"Arnolda|Bogdana|Ludwika",
		"Daniela|Franciszka|Loretty",
		"Aldony|Dobromiły|Emila",
		"Eustachego|Grzymisława|Krystyny",
		"Edwarda|Gerarda|Teofila",
		"Alana|Bernarda|Damiana",
		"Jadwigi|Leonarda|Teresy",
		"Ambrożego|Florentyny|Gawła",
		"Ignacego|Małgorzaty|Wiktora",
		"Hanny|Juliana|Łukasza",
		"Michała|Piotra|Ziemowita",
		"Ireny|Jana|Kleopatry",
		"Hilarego|Janusza|Urszuli",
		"Halki|Lody|Przybysława",
		"Edwarda|Filipa|Honoraty",
		"Marty|Marcina|Rafała",
		"Bonifacego|Darii|Maurycego",
		"Dymitriusza|Ewarysta|Lucyny",
		"Iwony|Noemi|Sabiny",
		"Szymona|Tadeusza|Wioletty",
		"Dalii|Franciszka|Zenobii",
		"Edmunda|Klaudiusza|Urbana",
		"Krzysztofa|Augusta|Saturnina"
	),
	new Array(
		"Andrzeja|Konrada|Seweryna",
		"Bohdana|Bożydara|Henryka",
		"Huberta|Miły|Sylwii",
		"Albertyny|Karola|Olgierda",
		"Balladyny|Elżbiety|Sławomira",
		"Arletty|Feliksa|Ziemowita",
		"Antoniego|Ernesta|Kaliny",
		"Klaudii|Seweryna|Wiktoriusza",
		"Anatolii|Genowefy|Nestora",
		"Leny|Leona|Natalii",
		"Bartłomieja|Gertrudy|Marcina",
		"Konrada|Renaty|Witolda",
		"Arkadii|Mikołaja|Stanisława",
		"Emila|Laury|Rogera",
		"Artura|Dymitra|Leopolda",
		"Edmunda|Gertrudy|Marka",
		"Dionizego|Grzegorza|Walerii",
		"Anieli|Klaudyny|Romana",
		"Elżbiety|Faustyny|Seweryna",
		"Anatola|Edyty|Sędzimira",
		"Janusza|Konrada|Reginy",
		"Cecylii|Jonatana|Marka",
		"Adeli|Anieli|Klemensa",
		"Emilii|Emmy|Romana",
		"Elżbiety|Erazma|Katarzyny",
		"Konrada|Leona|Leonarda",
		"Dominika|Kseni|Maksymiliana",
		"Grzegorza|Jakuba|Zdzisława",
		"Błażeja|Fryderyka|Saturnina",
		"Andrzeja|Justyny|Maury"
	),
	new Array(
		"Blanki|Edmunda|Eligiusza",
		"Aurelii|Balbiny|Pauliny",
		"Hilarego|Franciszka|Ksawerego",
		"Barbary|Bernarda|Krystiana",
		"Gerarda|Kryspiny|Norberta",
		"Dionizji|Emiliana|Mikołaja",
		"Agaty|Ambrożego|Marcina",
		"Delfiny|Klemensa|Marii",
		"Anety|Leokadii|Wiesława",
		"Andrzeja|Danieli|Julii",
		"Biny|Damazego|Waldemara",
		"Ady|Aleksandra|Dagmary",
		"Juliusza|Łucji|Otylii",
		"Alfreda|Izydora|Zoriny",
		"Celiny|Ireneusza|Fortunaty",
		"Albiny|Aliny|Sebastiana",
		"Floriana|Jolanty|Łazarza",
		"Bogusława|Gracjana|Laury",
		"Beniamina|Dariusza|Gabrieli",
		"Bogumiły|Dominika|Zefiryna",
		"Anastazego|Balbiny|Tomasza",
		"Bożeny|Honoraty|Zenona",
		"Dagny|Sławomira|Wiktorii",
		"Adama|Ewy|Irminy",
		"Anastazji|Eugenii|Piotra",
		"Dionizego|Kaliksta|Szczepana",
		"Fabioli|Maksyma|Żanety",
		"Antoniego|Cezarego|Teofilii",
		"Dawida|Dominika|Tomasza",
		"Eugeniusza|Katarzyny|Irminy",
		"Mariusza|Melanii|Sylwestra"
	)
));
