/*
 * 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(
		"Mieczysława|Mieszka",
		"Bazylia|Grzegorza",
		"Arlety|Danuty|Genowefy",
		"Anieli|Eugeniusza",
		"Hanny|Edwarda|Szymona",
		"Kacpera|Melchiora|Baltazara",
		"Juliana|Lucjana",
		"Seweryna|M¶cisława",
		"Adriana|Marceliny",
		"Jana|Wilhelma",
		"Honoraty|Matyldy",
		"Benedykta|Arkadiusza",
		"Bogumiła|Bogumiły|Weroniki",
		"Feliksa|Hilarego|Niny",
		"Arnolda|Izydora|Paweła",
		"Marcelia|Włodzimierza",
		"Antonia|Jana",
		"Małgorzaty|Piotra",
		"Henryka|Mariusza",
		"Fabiana|Sebastiana",
		"Agnieszki|Jarosława",
		"Anastazji|Wincentego",
		"Marii|Rajmunda",
		"Felicji|Franciszka",
		"Miłosza|Paweła",
		"Tytusa|Tymoteusza",
		"Anieli|Przybysława|Jerzego",
		"Tomasza|Juliana|Walerego",
		"Franciszka|Zdzisława",
		"Martyny|Macieja",
		"Ludwiki|Jana"
	),
	new Array(
		"Brygidy|Ignacego",
		"Mariaa|Mirosława",
		"Błażeja|Oskara",
		"Joanny|Weroniki",
		"Agaty|Adelajdy",
		"Doroty|Paweła",
		"Ryszarda|Teodora",
		"Hieronima|Sebastiana",
		"Apoloniaa|Eryki|Cyryla",
		"Scholastyki|Jacka",
		"Olgierda|Lucjana",
		"Eulalii|Modesta|Damiana",
		"Katarzyny|Grzegorza",
		"Cyryla|Walentego",
		"Arnolda|Jowity|Georginy",
		"Danuty|Julianny",
		"Zbigniewa|Aleksya",
		"Konstancji|Szymona",
		"Arnolda|Konrada",
		"Ludmiły|Leona",
		"Eleonory|Feliksa",
		"Marty|Małgorzaty",
		"Damiana|Romany",
		"Bogusza|Macieja",
		"Wiktora|Cezarego",
		"Aleksandera|Mirosława",
		"Anastazji|Gabriela",
		"Romana|Makarego",
		"Lecha|Lutomira|Wiktora"
	),
	new Array(
		"Albina|Antoniny|Radosławy",
		"Heleny|Paweła",
		"Tycjana|Kunegunde",
		"Eugeniusza|Kazimierza",
		"Adriana|Fryderyka",
		"Róży|Wiktora",
		"Paweła|Tomasza",
		"Beaty|Jana",
		"Franciszki|Katarzyny",
		"Cypriana|Marcelego",
		"Konstantego|Ludosława",
		"Grzegorza|Bernarda",
		"Bożeny|Krystyny",
		"Matyldy|Leona",
		"Ludwiki|Klemensa",
		"Izabeli|Hilarego",
		"Patryka|Zbigniewa",
		"Cyryla|Edwarda|Narcyza",
		"Aleksandryny|Józefa|Nicety",
		"Eufemii|Klaudii",
		"Benedykta|Lubomira",
		"Katarzyny|Bogusława",
		"Pelagii|Feliksa",
		"Gabriela|Marka",
		"Marii|Wieńczysława",
		"Emanuela|Teodora",
		"Lidii|Ernesta",
		"Anieli|Jana",
		"Wiktoryna|Eustachego",
		"Amelii|Kwiryna",
		"Balbiny|Kornelii"
	),
	new Array(
		"Grażyny|Ireny",
		"Franciszka|Władysława",
		"Pankracego|Ryszarda",
		"Benedykta|Izodory|Wacławy",
		"Ireny|Wincentego",
		"Celestyna|Izoldy",
		"Donata|Rufina",
		"Julii|Dionizego",
		"Marii|Dymitria",
		"Makarego|Michała",
		"Filipa|Leona",
		"Juliusza|Lubosława",
		"Hermenegildy|Przemysława",
		"Justyny|Waleriana",
		"Anastazji|Teodora",
		"Bernadety|Julii",
		"Roberta|Rudolfa",
		"Bogusławy|Apoloniusza",
		"Leona|Adolfa",
		"Agnieszki|Czesława",
		"Feliksa|Anzelma",
		"Łukasza|Leona",
		"Jerzego|Wojciecha",
		"Aleksandera|Grzegorza",
		"Jarosława|Marka",
		"Marzeny|Marceliny",
		"Zyty|Teofila",
		"Walerii|Paweła",
		"Piotra|Roberta",
		"Katarzyny|Mariana"
	),
	new Array(
		"Józefa|Lubomira|Ramony",
		"Anatola|Zygmunta",
		"Marii|Antoniny",
		"Floriana|Moniki",
		"Ireny|Waldemara",
		"Judyty|Filipa|Jana",
		"Gizeli|Ludmiły",
		"Stanisława|Wiktora",
		"Grzegorza|Bożydara",
		"Antoniny|Antonina",
		"Zuzanny|Franciszka|Filipa",
		"Dominika|Pankracego",
		"Roberta|Serwacego",
		"Bonifacego|Dobiesława",
		"Zofii|Jana",
		"Andrzeja|Szymona",
		"Weroniki|Brunona",
		"Aleksandry|Feliksa|Eryka",
		"Augustyna|Piotra",
		"Bazyla|Bernardyna",
		"Tymoteusza|Wiktora",
		"Heleny|Romy",
		"Dezyderiusza|Iwony",
		"Joanny|Zuzanny",
		"Grzegorza|Urbana",
		"Pauliny|Filipa",
		"Jana|Juliusza",
		"Augustyna|Jaromira",
		"Benity|Maksymiliana|Teodozji",
		"Ferdynanda|Feliksa",
		"Anieli|Petroneli"
	),
	new Array(
		"Jakuba|Konrada",
		"Erazma|Marianny",
		"Leszka|Tamary",
		"Franciszka|Karola",
		"Bonifacego|Kiry|Waltera",
		"Dominiki|Norberta",
		"Jarosława|Roberta",
		"Maksyma|Medarda",
		"Pelagiaa|Felicjana",
		"Bogumiła|Małgorzaty",
		"Barnaby|Feliksa",
		"Jana|Onufrego",
		"Antonia|Lucjana",
		"Elizy|Walerego",
		"Jolanty|Wita",
		"Aliny|Justyny",
		"Laury|Adolfa",
		"Elżbiety|Marka",
		"Gerwazego|Protazego",
		"Bogny|Florentyny",
		"Alicji|Alojzego",
		"Pauliny|Tomasza",
		"Wandy|Zenona",
		"Danuty|Jana",
		"Łucji|Wilhelma",
		"Jana|Paweła",
		"Maryli|Władysława",
		"Leona|Ireneusza",
		"Piotra|Paweła",
		"Emilii|Lucyny"
	),
	new Array(
		"Haliny|Mariana",
		"Marii|Jagody|Urbana",
		"Jacka|Anatola",
		"Teodora|Innocentego",
		"Karoliny|Antonia",
		"Dominiki|Łucji",
		"Cyryla|Benedykta",
		"Elżbiety|Prokopa",
		"Weroniki|Zenona",
		"Amelii|Filipa",
		"Pelagii|Olgi",
		"Weronikaa|Jan Gwalberta",
		"Ernesta|Małgorzaty",
		"Marcelina|Bonawentury",
		"Henryka|Włodzimierza",
		"Marii|Benedykta",
		"Anete|Bogdana",
		"Kamila|Szymona",
		"Wincentego|Wodzisława",
		"Czesława|Małgorzaty|Hieronima",
		"Daniela|Andrzeja",
		"Magdaleny|Marii",
		"Bogny|Apolinarego",
		"Kingi|Krystyny",
		"Jakuba|Krzysztofa",
		"Anny|Mirosławy",
		"Julii|Natalii",
		"Wiktora|Innocentego",
		"Marty|Olafa",
		"Julity|Ludmiły",
		"Ignacego|Heleny"
	),
	new Array(
		"Justyny|Piotra",
		"Gustawa|Alfonsa",
		"Augusta|Lidii",
		"Jana|Dominika|Protazego",
		"Marii|Stanisławy",
		"Sławy|Jakuba",
		"Doroty|Kajetana",
		"Emiliana|Cypriana",
		"Romana|Romualda",
		"Borysa|Wawrzyńca",
		"Filomeny|Zuzanny",
		"Klary|Lecha",
		"Diany|Hipolita",
		"Alfreda|Euzebiusza",
		"Marii|Napoleona",
		"Joachima|Stefana",
		"Jacka|Mirona",
		"Bronisławy|Heleny",
		"Juliana|Bolesława",
		"Bernarda|Sabiny|Sobiesław",
		"Franciszka|Joanny",
		"Cezarego|Tymoteusza",
		"Apolinarego|Filipa|Róży",
		"Jerzego|Bartłomieja",
		"Luizy|Ludwika",
		"Marii|Zefiryny",
		"Cezarego|Józefa|Moniki",
		"Patrycji|Augustyna",
		"Jana|Sabiny",
		"Róży|Szczęsnego",
		"Pauliny|Rajmunda"
	),
	new Array(
		"Bronisława|Idzia",
		"Stefana|Juliana",
		"Izabeli|Szymona",
		"Liliany|Rozalii",
		"Doroty|Wawrzyńca",
		"Beaty|Eugeniusza",
		"Reginy|Melchiora",
		"Marii|Nestora",
		"Piotra|Sergiusza",
		"Łukasza|Mikołaja",
		"Dagny|Jacka|Prota",
		"Marii|Gwidona",
		"Filipa|Eugenii|Aureliusza",
		"Bernarda|Cypriana",
		"Albina|Nikodema",
		"Edyty|Kornela",
		"Justyny|Franciszka",
		"Ireny|Józefa",
		"Januarego|Konstancji",
		"Filipiny|Eustachego",
		"Jonasza|Mateusza",
		"Maurycego|Tomasza",
		"Bogusława|Tekli",
		"Gerarda|Teodora",
		"Aureli|Władysława",
		"Justyny|Cypriana",
		"Damiana|Kosmy",
		"Marka|Wacława",
		"Michaliny|Michała|Rafała",
		"Zofii|Hieronima"
	),
	new Array(
		"Danuty|Remigiusza",
		"Dionizego|Teofila",
		"Teresy|Gerarda",
		"Franciszka|Rozalii",
		"Placyda|Apolinarego|Igora|Flawii",
		"Artura|Brunona",
		"Marii|Marka",
		"Brygidy|Pelagii",
		"Arnolda|Ludwika",
		"Pauliny|Franciszka",
		"Aldony|Emila",
		"Eustachego|Maksymiliana",
		"Edwarda|Teofila",
		"Bernarda|Dominika|Alana|Kaliksta",
		"Jadwigi|Teresy",
		"Ambrożego|Gaweła",
		"Małgorzaty|Wiktora",
		"Juliana|Łukasza",
		"Pelagii|Piotra|Ziemowita",
		"Ireny|Kleopatry|Jana",
		"Urszuli|Hilarego",
		"Filipa|Korduli",
		"Teodora|Marleny|Seweryna",
		"Rafała|Marcina",
		"Ingi|Darii",
		"Łucjana|Ewarysta",
		"Iwony|Sabiny",
		"Szymona|Tadeusza",
		"Euzebii|Narcyza|Wiolety",
		"Zenobii|Przemysława",
		"Urbana|Augusta|Saturnina"
	),
	new Array(
		"Konrada|Seweryna|Wiktoryny",
		"Bohdany|Tobiasza",
		"Huberta|Sylwii",
		"Karola|Olgierda",
		"Elżbiety|Sławomira",
		"Feliksa|Leonarda",
		"Antonia|Ernesta",
		"Seweryna|Godfryda",
		"Ursyna|Teodora",
		"Leny|Ludomira",
		"Bartłomieja|Marcina",
		"Renaty|Witolda",
		"Mikołaja|Stanisława",
		"Serafina|Wawrzyńca",
		"Alberta|Leopolda",
		"Gertrudy|Edmunda",
		"Grzegorza|Salomei",
		"Anieli|Romana",
		"Elżbiety|Seweryna",
		"Feliksa|Anatola",
		"Janusza|Konrada",
		"Cecylii|Marka",
		"Adeli|Klemensa",
		"Jana|Flory",
		"Katarzyny|Erazma",
		"Konrada|Sylwestra",
		"Wirgiliusza|Maksymiliana",
		"Grzegorza|Zdzisława",
		"Błażeja|Saturnina",
		"Andrzeja|Maury|Konstantego"
	),
	new Array(
		"Natalii|Eligiusza",
		"Balbiny|Pauliny",
		"Franciszka|Ksawerego",
		"Barbary|Hieronima|Krystiana|Piotra",
		"Kryspiny|Sabiny|Edyty",
		"Jaremy|Emiliana|Mikołaja",
		"Ambrożego|Marcina",
		"Marii|Wirgiliusza",
		"Leokadii|Wiesława",
		"Daniela|Julii",
		"Damazego|Waldemara",
		"Adelajdy|Aleksandera|Dagmary",
		"Otylii|Łucji",
		"Alfreda|Izydora",
		"Celiny|Waleriana",
		"Albiny|Zdzisławy",
		"Łazarza|Olimpii",
		"Bogusława|Gracjana",
		"Dariusza|Urbana",
		"Bogumiły|Dominika",
		"Seweryna|Tomasza",
		"Honoraty|Zenona",
		"Sławomiry|Wiktorii",
		"Adama|Ewy",
		"Eugenii|Piotra",
		"Dionizego|Szczepana",
		"Fabioli|Jana|Żanety",
		"Antonia|Teofili",
		"Dawida|Tomasza",
		"Eugeniusza|Irminy|Sewera",
		"Mariusza|Melanii|Sylwestra"
	)
));

