<!--
/*
//	Kalendarz
//	autor: 
//	Andrzej Cieślak (andrzej.cieslak@gazeta.pl)
//
//	dzia3a pod: 
//  IE >4, Netscape >4, Opera, nie uda3o sie odpalia pod Netscape4.x
//
//	opis:
//	Po kliknieciu na pole tekstowe pojawia sie kalendarz pod
//  kursorem myszy. Po wybraniu roku, miesiąca i kliknieciu na
//  numerze dnia wybrana data jest wstawiana do pola
//
//	historia:
//	potrzebowa3em wstawia date do formularza w określonym formacie,
//	widzia3em skrypt na necie który pozwala3 wybraa date z kalendarza,
//  ale by3 du?y i skomplikowany, wiec napisa3em swój
//
//	wywo3anie:
//	umieścia w zanczniku body: onLoad="document.onmousemove = mysz;"
//  lub w treści strony w znacznikach javascriptu: document.onmousemove = mysz;
//	zdarzenie pola txt, do którego chcemy wstawia date: onclick="showKal(this)"
*/

var ie4, ns4, ns6;
ie = document.all;
ns4 = document.layers;
ns6 = document.getElementById && !document.all;

var data = new Date();
var amies = data.getMonth();
var arok = data.getFullYear();
var adzien = data.getDate();
var adzientyg = data.getDay();
var frmpole, formatParam, localize, miesiac, weekday;

// ilośa dni w roku
var dni = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
// nazwy miesiecy
var miesiacEN = new Array('January','February','March','April', 'May','June','July','August','September','October','November','December');
var miesiacCZ = new Array('Leden','Únor','Březen','Duben', 'Květen','Červen','Červenec','Srpen','Září','Říjen','Listopad','Prosinec');
var miesiacCZb = new Array('Leden','Unor','Brezen','Duben', 'Kveten','Cerven','Cervenec','Srpen','Zari','Rijen','Listopad','Prosinec');
var weekdayEN = new Array("Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat");
var weekdayCZ = new Array("Ne", "Po", "Út", "St", "Čt", "Pa", "So");
var weekdayCZb = new Array("Ne", "Po", "Ut", "St", "Ct", "Pa", "So");

// dane kolorow
var kol = new Array(5)
kol[0] = '#00649b'; // kolor t3a kalendarza, kolor tekstu wybranego dnia, nazw dni tyg...
kol[1] = '#00649b'; // kolor pól kalendarza - dni zwyk3e
kol[2] = '#0081c6'; // kolor pól kalendarza - niedziele
kol[3] = '#0081c6'; // kolor pola oznaczającego aktualny dzien, kolor ramki, przycisku zamykajacego, tekstu
kol[4] = '#ffffff'; // kolor pól okreslajacych dni tygodnia (pn,wt...)

// ile lat pokazywane w kalendarzu od aktualnej daty
var wstecz = 90;
var wprzod = 0;

// ilośa dni w Lutym - przeliczane po zmianie miesiąca lub roku
function dniMies()
{
	dni[1] = (rok % 4 == 0) ? 29 : 28;
}

// pobieranie pozycji myszy
function mysz(e)
{
try
{
	if(ns4 || ns6)
	{
		x = e.pageX;
		y = e.pageY;
	}
	if(ie)
	{
		x = document.body.scrollLeft+event.clientX;
		y = document.body.scrollTop+event.clientY;
	}
}
catch(e)
{}
}

// funkcja pokazujaca kalendarz pod kursorem myszy
function showKal(fp, qA, qB)
{
	if(!qA) formatParam = "Y-m-d";
	else formatParam = qA;

	if(!qB) 
	{
		localize = "EN";
	}
	else 
	{
		localize = qB;
	}

	if(localize == "CZ")
	{
		miesiac = miesiacCZ;
		weekday = weekdayCZ;
	}
	else if(localize == "CZb")
	{
		miesiac = miesiacCZb;
		weekday = weekdayCZb;
	}
	else
	{
		miesiac = miesiacEN;
		weekday = weekdayEN;
	}


	data = new Date(arok, amies, 1);
	mies = data.getMonth();
	rok = data.getFullYear();
	dzien = data.getDate();
	dzientyg = data.getDay();
	
	dniMies();

	frmpole = fp;
	pozx = x;
	pozy = y;

	rysujKal();		
	
	if(ns6 || ie)
	{
		document.getElementById('kalendarz').style.left = pozx+'px';
		document.getElementById('kalendarz').style.top = (pozy+10)+'px';
		document.getElementById('kalendarz').style.visibility = 'visible';
	}
}

// funkcja ukrywajaca kalendarz i wstawiajaca wybraną date do pola formularza
function hideKal(formatParam)
{
	if(!formatParam) formatParam = "Y-m-d";
	else formatParam = formatParam;

	if(ns6 || ie)
		document.getElementById('kalendarz').style.visibility = 'hidden';

	// tutaj ustawia sie format daty 		 
	// np:
  	//	format = selectday + ' ' + miesiac[mies] + ' ' + rok;
	
	// inny format daty - z zerami poprzedzającymi
	mies++;
	if(mies < 10)
		mies = '0' + mies;
	if(selectday < 10)
		selectday = '0' + selectday;

	var formatNast = new String(formatParam);
	formatNast = formatNast.replace("Y", rok);
	formatNast = formatNast.replace("m", mies);	
	formatParam = formatNast.replace("d", selectday);	

	//format = rok+'-'+mies+'-'+selectday;
			
	frmpole.value = formatParam;
}

// ukrywanie kalendarza bez wstawiania daty
function exitKal()
{
	if(ns6 || ie)
		document.getElementById('kalendarz').style.visibility = 'hidden';
}

// ustawianie nowej daty po zmianie miesiaca lub roku
function setData()
{
	mies = document.forms['sdata'].elements['month'].value;
	rok = document.forms['sdata'].elements['year'].value;
	
	data = new Date(rok, mies, 1);
	mies = data.getMonth();
	rok = data.getFullYear();
	dzien = data.getDate();
	dzientyg = data.getDay();
	dniMies();
	rysujKal();
}

// rysowanie kalendarza
function rysujKal()
{
	kaltxt = '<form name="sdata" onSubmit="return false;">';
	kaltxt += '<table border=0 cellpadding=0 cellspacing=2 style="border:'+kol[3]+' 2px solid;background-color:'+kol[0]+';">';
	kaltxt += '<tr class=dzien><td colspan=6 height=25><select name="month" class="lista" onChange="setData()">';		
	for(i=0;i<12;i++)
	{
		if(i==mies)
			kaltxt += '<option value="'+i+'" selected>'+miesiac[i]+'</option>';
		else
			kaltxt += '<option value="'+i+'">'+miesiac[i]+'</option>';
	}
	kaltxt += '</select>&nbsp;<select name="year" class="lista" onChange="setData()">';
	for(i=(rok-wstecz);i<=(rok+wprzod);i++)
	{
		if(i==rok)
			kaltxt += '<option value="'+i+'" selected>'+i+'</option>';
		else
			kaltxt += '<option value="'+i+'">'+i+'</option>';	
	}
	kaltxt += '</select>';
	kaltxt += '</td><td><a href="javascript:exitKal()"><span class="aktday">&nbsp;X&nbsp;</span></a></td></tr>';
	kaltxt += '<tr class=dnityg>';
	
	for(i=0;i<7;i++)
	{
		kaltxt += '<td width=30>'+weekday[i]+'</td>';
	}	
	
	kaltxt += '</tr><tr class=dzien>';

	j = 1;

	for(i=0;i<dzientyg+dni[mies];i++)
	{
		if(i>=dzientyg)
		{
			if(j==adzien && rok==arok && mies==amies)
				kaltxt += '<td class=aktday><a class=aktday href="javascript:selectday='+j+';hideKal(\''+formatParam+'\');" >'+j+'</a></td>';
			else if(i%7==0)
				kaltxt += '<td class=niedz><a class=niedz href="javascript:selectday='+j+';hideKal(\''+formatParam+'\');" >'+j+'</a></td>';
			else
				kaltxt += '<td><a class=dzien href="javascript:selectday='+j+';hideKal(\''+formatParam+'\');" >'+j+'</a></td>';
			j++;
			if(i%7==6)
				kaltxt += '</tr><tr class=dzien>';
		}
		else
			kaltxt += '<td></td>';
	}

	kaltxt += '</tr></table></form>';
	
	document.getElementById("kalendarz").innerHTML = kaltxt;
}

// style kalendarza i warstwa, na której sie znajduje
document.write('<div id="kalendarz" style="visibility:hidden;position:absolute;z-index:15"></div>');
document.write('<style type="text/css">');
document.write('.dzien{font-family:Verdana;font-size:11px;color:'+kol[3]+';text-align:center;background-color:'+kol[1]+';text-decoration:none}');
document.write('.niedz{font-family:Verdana;font-size:11px;color:'+kol[3]+';text-align:center;background-color:'+kol[2]+';text-decoration:none}');
document.write('.aktday{color:'+kol[0]+';font-weight:bold;text-align:center;background-color:'+kol[3]+';text-decoration:none}');
document.write('.dnityg{font-family:Verdana;font-size:11px;color:'+kol[0]+';text-align:center;background-color:'+kol[4]+';}');
document.write('.lista{font-family:Verdana;font-size:11px;color:'+kol[3]+';}</style>');

//-->
