function Tajny(u, k, d, nl)
{
	var a = "mai";
	var ml = "<a href=\"";
	var b = "lto";
	ml += a + b + ":";
	ml += u + "@" + k + d;
	ml += "\">";
	if (nl.length == 0)
		nl = u + "@" + k + d;
	ml += nl + "</a>";
	document.write(ml);
}

// wstawiamy datę
function WstawDate()
{
var data = new Date();
var dzien = data.getDay();
var dni_tygodnia = new Array("niedziela","poniedziałek","wtorek","środa","czwartek","piątek","sobota");
document.write("<font style=\"font-size:11px;");
if (dzien == 0)
    document.write(" color:red;\">");
    else
    document.write(" color:#606687;\">");
document.write(dni_tygodnia[dzien] + ", ");
document.write(data.getDate() + ".");
if (data.getMonth()+1 < 10)
   document.write("0" + (data.getMonth()+1) + ".");
else
   document.write((data.getMonth()+1) + ".");
document.write(data.getFullYear());
document.write("</font>");
}

function WstawDate_wdn()
{
var data = new Date();
var dzien = data.getDay();
var dni_tygodnia = new Array("niedziela","poniedziałek","wtorek","środa","czwartek","piątek","sobota");
document.write("<font style=\"xx-large");
if (dzien == 0)
    document.write(" color:red;\">");
    else
    document.write(" color:black;\">");
document.write(dni_tygodnia[dzien] + ", ");
document.write(data.getDate() + ".");
if (data.getMonth()+1 < 10)
   document.write("0" + (data.getMonth()+1) + ".");
else
   document.write((data.getMonth()+1) + ".");
document.write(data.getFullYear());
document.write("</font>");
}

// wstawianie kalendarza w linii 
	// ustala dzień tygodnia dla pierwszego dnia w miesiącu
function DzienTygodniaDlaPierwszegoDniaMiesiaca()
	{
		var dzisiaj = new Date();
		var miesiac = dzisiaj.getMonth();
		var rok = dzisiaj.getFullYear();
		var poczatek_miesiaca = new Date(rok, miesiac, 1);
		var pierwszy_dzien_tygodnia = poczatek_miesiaca.getDay();
		
//		alert(dzisiaj.getDay() + ' ' + dzisiaj.getDate() + ' ' + dzisiaj.getMonth());
		return pierwszy_dzien_tygodnia;
	}
	
	
	
function WstawKalendarzWLini()
	{
	var dni_w_miesiacu = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
	var nazwy_miesiecy = new Array("styczeń", "luty", "marzec", "kwiecień", "maj", "czerwiec", "lipiec", "sierpień", "wrzesień", "październik", "listopad", "grudzień");
	var nazwy_dni = new Array("nd", "pn", "wt", "śr", "cz" , "pt", "so");
	var dzisiaj = new Date();
	var dzisiaj_dzien = dzisiaj.getDate();
	var dzisiaj_miesiac = dzisiaj.getMonth();
	var dzisiaj_rok = dzisiaj.getFullYear();
	// sprawdzenie roku przestępnego
	if (((dzisiaj_rok % 4 == 0) && (dzisiaj_rok % 100 != 0)) || (dzisiaj_rok % 400 == 0))
		dni_w_miesiacu[1] = 29;
	
	var dzien_tygodnia = DzienTygodniaDlaPierwszegoDniaMiesiaca();
//	alert(dzien_tygodnia);
	document.write("<table border=\"0px\" cellpadding=\"1px\" cellspacing=\"0px\"><tr>\n");
	document.write("<td colspan=\""+ dni_w_miesiacu[dzisiaj_miesiac]+"\" class=\"naglowek_kalendarza\" align=\"right\">\n");
	document.write(dzisiaj_dzien + " " + nazwy_miesiecy[dzisiaj_miesiac] + ", " + dzisiaj_rok);
	document.write("</td>\n</tr>\n");
	// wyświetlam kalendarz w jednej linii
	for (dzien = 1; dzien <= dni_w_miesiacu[dzisiaj_miesiac]; dzien ++, dzien_tygodnia++)
	{
		document.write("<td>\n");
		// czy niema końca tygodnia
		if (dzien_tygodnia > 6)
			dzien_tygodnia = 0;
		
		if (dzien == dzisiaj_dzien)
		{
			document.write("<table border=\"0px\" cellpadding=\"0px\" cellspacing=\"1px\" class=\"dzisiejszy\"><tr><td align=\"center\">\n");
		}
		else
		{
			if (dzien_tygodnia != 0)
				document.write("<table border=\"0px\" cellpadding=\"0px\" cellspacing=\"1px\" class=\"powszedni\"><tr><td align=\"center\">\n");
			else
				document.write("<table border=\"0px\" cellpadding=\"0px\" cellspacing=\"1px\" class=\"swiateczny\"><tr><td align=\"center\">\n");
		}
		document.write(nazwy_dni[dzien_tygodnia]);
		document.write("</td></tr><tr><td align=\"center\">\n");
		document.write(dzien);
		document.write("</td></tr></table>");
		document.write("</td>\n");
		//kolejny dzień minął szybko
//		dzien_tygodnia++; // przeniosłem do nagłówka pętli for
	}
	document.write("</tr></table>\n");
}
/* *******************************************************************************
********************************************************************************** 
KALENDARZ
                                                                                  */
/* dla kalendarza zmiennego - wiecznego */
var miesiace = new Array("styczeń","luty","marzec","kwiecień","maj","czerwiec","lipiec","sierpień","wrzesień","październik","listopad","grudzień");
var liczba_dni = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
var data = new Date();
var dd = data.getDate(); // dzisiejsza data dzień
var dm = data.getMonth(); // miesiąc
var dr = data.getFullYear();  // rok
var sd = dd; 
var sm = dm;
var sr = dr;
var srp = sr; // srp - rok poprzedni jeżeli jest inny niż sr to będziemy odświażać tablicę ze świętami
// tablica tSwietaWolne - dla świąt państwowych i kościelnych ustalonych przez przepisy jako wolne 
var tSwietaWolne = new Array(13); // tablica dla roku , pierwszy wymiar

function cSwieto(n, t)
{
	this.nazwa = n;
	this.typ = t;
	return this;
}

function oData()
{
	this.day = 0;
	this.month = 0;
	return this;
}

function InicjujtSwietaWolne()
{
tSwietaWolne[1] = new Array(32); // styczeń
tSwietaWolne[2] = new Array(30); // luty
tSwietaWolne[3] = new Array(32); // marzec
tSwietaWolne[4] = new Array(31); //kwiecień
tSwietaWolne[5] = new Array(32); //maj
tSwietaWolne[6] = new Array(31); // czerwiec
tSwietaWolne[7] = new Array(32); // lipiec
tSwietaWolne[8] = new Array(32); // sierpień
tSwietaWolne[9] = new Array(31); // wrzesień
tSwietaWolne[10] = new Array(32); // październik
tSwietaWolne[11] = new Array(31); // listopad
tSwietaWolne[12] = new Array(32); // grudzień
}

function JestRokPrzestepny(rok)
{
	if ( ((rok % 4 == 0) && (rok % 100 != 0)) || (rok % 400 == 0))
	return true;
	else
		return false;
}

function LiczbaDniWMiesiacu(rok, miesiac)
{
	if (miesiac == 2)
	{
		if (JestRokPrzestepny(rok))
			return 29;
		else
			return 28;
	}
	else if (((miesiac < 8) && (miesiac % 2 != 0)) || ((miesiac > 7) && (miesiac % 2 == 0)))
		return 31;
	else
		return 30;
}

/* funkcja odlicza zadany okres od podanej daty wstecz */
function OdliczOkres(od_dnia, od_miesiaca, rok, odejmowany_okres)
{
	var obliczona_data = new oData();
	
	var dzien = od_dnia - odejmowany_okres;
	var miesiac = od_miesiaca;
	
//	alert("dzień " + dzien);
	while (dzien < 0)
	{
		miesiac--;
		if (miesiac == 0)
			miesiac = 12;
		dzien += LiczbaDniWMiesiacu(rok, miesiac);
	}
	if (dzien == 0)
	{
		miesiac--;
		dzien = LiczbaDniWMiesiacu(rok, miesiac);
	}
//	alert("dzien " + dzien + " miesiac " + miesiac);
	
	obliczona_data.day = dzien;
	obliczona_data.month = miesiac;
	return obliczona_data;
}

function WielkanocP(rok) /* obliczanie podstawy */
{
	var a = rok % 19;
	var b = Math.floor(rok / 100);
	var c = rok % 100;
	var d = Math.floor(b / 4);
	var e = b % 4;
	var f = Math.floor((b + 8) / 25);
	var g = Math.floor((b - f + 1) / 3);
	var h = (19 * a + b - d - g + 15) % 30;
	var i = Math.floor(c / 4);
	var k = c % 4;
	var L = (32 + 2 * e + 2 * i - h - k) % 7;
	var m = Math.floor((a + 11 * h + 22 * L) / 451);
	var p = h + L - 7 * m + 114;
	
	return p;
}


function Wielkanoc1D(p) /* obliczanie pierwszego dnia wielkanocy działa łącznie z funkcją WielkanocP(rok) przyjmuje jej wartość zwracaną*/
{
	var dzien = (p % 31) + 1;
	
	return dzien;
}

function WielkanocM(p) /* obliczanie miesiąca dla pierwszego dnia wielkanocy działa łącznie z funkcją WielkanocP(rok) przyjmuje jej wartość zwracaną*/
{
	var miesiac = Math.floor(p / 31);
	
	return miesiac;
}

function Wielkanoc2D(d1) /* obliczanie dnia poniedziałku wielkanocnego działa łącznie z funkcją Wielkanoc1D(p), pobiera jej wartość */
{
	var dzien = d1;
	if (++dzien == 32)
	dzien = 1;
	
	return dzien;
}

function Wielkanoc2M(d1, m) /* obliczanie miesiąca dla drugiego dnia wielkanocy działa łącznie z funkcją Wielkanoc1D(p) pobiera jej wartość */
{
	var dzien = d1;
	var miesiac = m;
	if (++dzien == 32)
	miesiac = 4;
	
	return miesiac;
}

function BozeCialo(d, m, rok)
{
	var dBC = new oData();
	//var pw = WielkanocP(rok);
	//var dw = Wielkanoc1D(pw);
	//var mw = WielkanocM(pw);
	var dw = d;
	var mw = m;
	
	dBC.day = dw - 1;
	dBC.month = mw + 2;
	if (dBC.day < 1)
	{
		dBC.month = dBC.month - 1;
		dBC.day = LiczbaDniWMiesiacu(rok, dBC.month);
	}				  
	
	return dBC;
}

function NiedzielaPalmowa(d, m, rok)
{
	var dNP = new oData();
	//var pw = WielkanocP(rok);
	//var dw = Wielkanoc1D(pw);
	//var mw = WielkanocM(pw);
	var dw = d;
	var mw = m;
	
	dNP.day = dw - 7;
	dNP.month = mw;
	if (dNP.day < 1)
	{
		dNP.month = dNP.month - 1;
		dNP.day = dNP.day + LiczbaDniWMiesiacu(rok, dNP.month);
	}				  
	
	return dNP;
}



// święta stałe ustalone jako wolne od pracy
function SwietaWolneStale()
{
	tSwietaWolne[1][1] = new cSwieto("Nowy Rok", "cz");
	tSwietaWolne[5][1] = new cSwieto("Święto Pracy", "cz");
	tSwietaWolne[5][3] = new cSwieto("Święto Konstytucji 3-go Maja",  "cz");
	tSwietaWolne[8][15] = new cSwieto("Wniebowzięcia Najświętszej Marii Panny", "cz");
	tSwietaWolne[11][1] = new cSwieto("Wszystkich Świętych", "cz");
	tSwietaWolne[11][11] = new cSwieto("Święto Niepodległości", "cz");
	tSwietaWolne[12][25] = new cSwieto("pierwszy dzień Bożego Narodzenia", "cz");
	tSwietaWolne[12][26] = new cSwieto("drugi dzień Bożego Narodzenia", "cz");
}

// oblicza święta ruchome - wolne od pracy
function SwietaWolneRuchome(rok)
{
	// obliczam wielkanoc, podstawę do dalszych obliczeń
	var pw = WielkanocP(rok);
	// pierwszy dzień wielkanocy
	var day1 = Wielkanoc1D(pw);
	// miesiąc dla pierwszego dnia wielkanocy
	var month1 = WielkanocM(pw);
	// drugi dzień wielkanocy - lany poniedziałek
	var day2 = Wielkanoc2D(day1);
	// miesiąc dla drugiego dnia 
	var month2 = Wielkanoc2M(day1, month1);	
	tSwietaWolne[month1][day1] = new cSwieto("Wielkanoc", "cz");
	tSwietaWolne[month2][day2] = new cSwieto("Poniedziałek Wielkanocny", "cz");

	// obliczamy niedzielę palmową 
	var dnp = new oData();
	dnp = NiedzielaPalmowa(day1, month1, rok);
	tSwietaWolne[dnp.month][dnp.day] = new cSwieto("Niedziela Palmowa", "cz");
	// obliczamy boże ciało
	var dbc = new oData();
	dbc = BozeCialo(day1, month1, rok);
	tSwietaWolne[dbc.month][dbc.day] = new cSwieto("Boże Ciało", "cz");
		
	
}
InicjujtSwietaWolne();
SwietaWolneStale();
SwietaWolneRuchome(sr);

function Kalendarz(sd, sm, sr)
{
	var liczba_dni_w_roku = 365;
	var liczba_dni_w_miesiacu = 0;
	var poczatek_miesiaca = new Date( sr , sm, 1, 0, 0);
	// ustalenie dnia tygodnia dla pierwszego dnia miesiąca
	var pierwszy_dzien_miesiaca = poczatek_miesiaca.getDay();
	var dzien_tygodnia = 0;
	var dzien = 0;
	var mp = (sm > 0) ? sm - 1 : 11;
 	var rp = (mp == 11) ? sr - 1 : sr;
 	var mn = (sm < 11) ? sm + 1 : 0;
 	var rn = (mn == 0) ? sr + 1 : sr;
 	var div_kal = null;
 	
 	if (document.all)
 		div_kal = document.all["kalendarz"];
	else
		div_kal = document.getElementById("kalendarz");
		
 	if (sr != srp) // rok bieżący jest inny niż poprzedni więc należy zmienić swięta ruchome
 	{
 		InicjujtSwietaWolne(sr);
 		SwietaWolneStale();
 		SwietaWolneRuchome(sr);
 		srp = sr;
 	}
 	
 	
 	var kal = "<table class=\"kalendarz\" cellpadding=\"2px\" cellspacing=\"4px\" align=\"left\" valign=\"center\" border=\"0px\">\n";
    kal += "<tr><td class=\"n_kalendarz\"><a href=\"javascript:void(Kalendarz(1," + mp + "," + rp + "));\"><<</a></td><td class=\"n_kalendarz\" colspan=\"5\"> " + miesiace[sm] +   ", " + sr + "</td><td class=\"n_kalendarz\"><a href=\"javascript:void(Kalendarz(1," + mn + "," + rn + "));\">>></a></td></tr>";
    kal += "<tr>\n";
    kal += "<td class=\"kalendarz\" align=\"center\" valign=\"center\" width=\"15px\" height=\"15px\">Pn</td>";
    kal += "<td class=\"kalendarz\" align=\"center\" valign=\"center\" width=\"15px\" height=\"15px\">Wt</td>";
    kal += "<td class=\"kalendarz\" align=\"center\" valign=\"center\" width=\"15px\" height=\"15px\">Śr</td>";
    kal += "<td class=\"kalendarz\" align=\"center\" valign=\"center\" width=\"15px\" height=\"15px\">Cz</td>";
    kal += "<td class=\"kalendarz\" align=\"center\" valign=\"center\" width=\"15px\" height=\"15px\">Pt</td>";
    kal += "<td class=\"kalendarz\" align=\"center\" valign=\"center\" width=\"15px\" height=\"15px\">So</td>";
    kal += "<td class=\"niedziela\" align=\"center\" valign=\"center\" width=\"15px\" height=\"15px\">N</td>";
    kal += "</tr>";
        
        
    // sprawdzimy czy rok przestępny
    if (((sr % 4 == 0) && (sr % 100 != 0)) || (sr % 400 == 0))
    {
    	liczba_dni[1] = 29;
    	liczba_dni_w_roku = 366;
	 }
    liczba_dni_w_miesiacu = liczba_dni[sm];
    
    
//        data_pom = getdate(poczatek_miesiaca);
//        pierwszy_dzien_miesiaca = $data_pom['wday'];
//echo "data to " . $data_pom['mday'] . " ".  $data_pom['mon'] . " " . $data_pom['year'];
// dostosujemy numer dnia tygodnia do wymagań kalendarza
if (pierwszy_dzien_miesiaca == 0)
    pierwszy_dzien_miesiaca = 6; // niedziela na koniec
else
    pierwszy_dzien_miesiaca--;
//alert("Pierwszy dzien miesiaca to  " + pierwszy_dzien_miesiaca);
dzien_tygodnia = 0;

kal += "<tr>\n";
while (dzien_tygodnia < pierwszy_dzien_miesiaca)
{
    kal += "<td class=\"kalendarz\" align=\"center\" valign=\"center\" width=\"15px\" height=\"15px\">&nbsp;</td>\n";
    dzien_tygodnia++;
}
dzien = 1;

while (dzien <= liczba_dni_w_miesiacu)
{
    if ((dzien == dd) && (sm == dm) && (sr == dr))
    {
        kal += "<td class=\"dzisiaj\" align=\"center\" valign=\"center\" width=\"15px\" height=\"15px\" >" + dzien + "</td>\n";
    }
    else if (tSwietaWolne[sm+1][dzien] != null)
    {
    	kal += "<td class=\"niedziela\" align=\"center\" valign=\"center\" width=\"15px\" height=\"15px\" >" + dzien + "</td>\n";
    }
    else if (dzien_tygodnia == 6)
    {
        // niedziela
        kal += "<td class=\"niedziela\" align=\"center\" valign=\"center\" width=\"15px\" height=\"15px\" >" + dzien + "</td>\n";
    }
    else
   {
        kal += "<td class=\"kalendarz\" align=\"center\" valign=\"center\" width=\"15px\" height=\"15px\">" + dzien + "</td>\n";
    }

    dzien++;
    if (dzien_tygodnia == 6)
    {
        kal += "</tr>\n";
        if (dzien < liczba_dni_w_miesiacu)
        {
            kal += "<tr>\n";
        }
        dzien_tygodnia = 0;
   }
    else
    {
        dzien_tygodnia++;
    }
}
// zakończenie tabeli
if (dzien_tygodnia <= 6)
{
    while (dzien_tygodnia <= 6)
    {
        kal += "<td class=\"kalendarz\" align=\"center\" valign=\"center\" width=\"15px\" height=\"15px\">&nbsp;</td>\n";
        dzien_tygodnia++;
    }
    kal += "</tr>\n";
}
kal += "</table>\n";
div_kal.innerHTML = kal;
}
/* koniec dla kalendarza zmiennego - wiecznego */
