//<!--
/*
//	Kalendarz
//	autor: 
//	Andrzej Cieślak (andrzej.cieslak@gazeta.pl)
//
//	działa pod: 
//  IE >4, Netscape >4, Opera, nie udało się na razie odpalić pod Netscape4.x
//
//	opis:
//	Po kliknięciu na pole tekstowe pojawia się kalendarz pod 
//  kursorem myszy. Po wybraniu roku, miesiąca i kliknięciu na 
//  numerze dnia wybrana data jest wstawiana do pola
//
//	historia:
//	potrzebowałem wstawić datę do formularza w określonym formacie, 
//	widziałem skrypt na necie który pozwalał wybrać datę z kalendarza, 
//  ale był dż?y i skomplikowany, więc napisałem swój
//
//	wywołanie:
//	umieścić w załączniku body: onLoad="document.onmousemove = mysz;" 
//  lub w trećci strony w znacznikach javascriptu: document.onmousemove = mysz;
//	zdarzenie pola txt, do którego chcemy wstawić datę: 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;
var dS_pozX = 0;
var dS_pozY = 0;

// ilość dni w roku
var dni = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
// nazwy miesięcy
var miesiac = new Array('Styczeń','Luty','Marzec','Kwiecień', 'Maj','Czerwiec','Lipiec','Sierpień','Wrzesień','Październik','Listopad','Grudzień');

// dane kolorów
var kol = new Array(5)
kol[0] = '#FFFFFF'; // kolor t?a kalendarza, kolor tekstu wybranego dnia, nazw dni tyg...
kol[1] = '#E1EDFF'; // kolor p?l kalendarza - dni zwyk?e
kol[2] = '#FFDBDB'; // kolor p?l kalendarza - niedziele
kol[3] = '#0A74E0'; // kolor pola oznaczaj?cego aktualny dzie?, kolor ramki, przycisku zamykajacego, tekstu
kol[4] = '#696969'; // kolor p?l okreslajacych dni tygodnia (pn,wt...)

// ile lat pokazywane w kalendarzu od aktualnej daty
var wstecz = 0; 
var wprzod = 10;


function findPos(obj)
{
	//var curleft = curtop = 0;
   	if (obj.offsetParent) {
    	dS_pozX = obj.offsetLeft
    	dS_pozY = obj.offsetTop
   		while (obj = obj.offsetParent) {
   			dS_pozX += obj.offsetLeft
   			dS_pozY += obj.offsetTop
  		}
  	}
	dS_pozX = dS_pozX + 190;
	dS_pozY = dS_pozY - 10;
	//alert(dS_pozX+":"+dS_pozY)
  //return [curleft,curtop];
}


// ilość dni w lutym
function dniMies()
{
	dni[1] = (rok % 4 == 0) ? 29 : 28;
}

// pobieranie pozycji myszy
function mysz(e)
{
	if(ns4 || ns6)
	{
		x = e.pageX;
		y = e.pageY;
	}
	if(ie)
	{
		x = document.body.scrollLeft+event.clientX;
		y = document.body.scrollTop+event.clientY;
	}
}

function ltrim(str, chars) {
	chars = chars || "\\s";
	if (str) {
		return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
	} else {
		return "01";
	}
}

// funkcja pokazujaca kalendarz pod kursorem myszy
function showKal(fp)
{
	tmp_data = fp.value.split("-");
	data = new Date(arok, amies, 1);
	
	if(tmp_data.length == 0)
	{
		mies = data.getMonth();
		rok = data.getFullYear();
		dzien = data.getDate();
		dzientyg = data.getDay();
	}
	else
	{
		str = tmp_data[1];
		if (!str){ str = data.getMonth().toString(); }
		mies = parseInt(ltrim(str, "0")) - 1;



		str = tmp_data[0];
		if (!str){ str = data.getFullYear().toString(); }
		rok = parseInt(str);

		str = tmp_data[2];
		if (!str){ str = data.getDate().toString(); }
		dzien = parseInt(ltrim(str, "0"));
		dzientyg = data.getDay();
		
		str = tmp_data[1];
		if (!str){ str = data.getMonth().toString(); }
		amies = parseInt(ltrim(str, "0"));
		amies =  amies - 1;
		str = tmp_data[0];
		if (!str){ str = data.getFullYear().toString(); }
		arok = parseInt(str);
		str = tmp_data[2];
		if (!str){ str = data.getDate().toString(); }
		adzien = parseInt(ltrim(str, "0"));
	}

	
	dniMies();

	frmpole = fp;
	pozzwy = findPos(fp);
	pozx = dS_pozX;
	pozy = dS_pozY;

	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';
	}
}

function ustawDataDo(data)
{
	arrData = data.split("-");
	tmpRok = arrData[0];
	tmpRok = parseInt(tmpRok);
	tmpMies = parseInt(ltrim(arrData[1], "0"));
	tmpDay = parseInt(ltrim(arrData[2], "0"));
		
			
	dniMies();
	iledni = dni[tmpMies-1];
	if(tmpDay >= iledni)
	{
		dzien_do = 1;
		mies_do = tmpMies + 1;
		if (mies_do > 12) {
			mies_do = 1;
			rok_do = tmpRok + 1;
		}
		else {
			rok_do = tmpRok;
		}
	}
	else
	{
		dzien_do = tmpDay + 1;
		mies_do = tmpMies;
		rok_do = tmpRok;
	}
	
	if(mies_do < 10)
		mies_do = '0' + mies_do;
		
	if(dzien_do < 10)
		dzien_do = '0' + dzien_do;
	format_do = rok_do+'-'+mies_do+'-'+dzien_do	;
	document.getElementById('tmpdo').value = format_do;
}

// funkcja ukrywa kalendarz i wstawia datę
function hideKal()
{
	if(ns6 || ie)
		document.getElementById('kalendarz').style.visibility = 'hidden';

	mies++;
	if(mies < 10)
		mies = '0' + mies;
		
	if(selectday < 10)
		selectday = '0' + selectday;

	format = rok+'-'+mies+'-'+selectday	;
	
	frmpole.value = format;
	if(frmpole.name == 'od' && (format >= document.getElementById('tmpdo').value))
	{
		ustawDataDo(format);
	}
}

// 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 += '<div style="border:'+kol[3]+' 2px solid;"><table border=0 cellpadding=0 cellspacing=2 style="background-color:'+kol[1]+'; margin-bottom: 0px;">';
	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><td width=30>Nd</td><td width=30>Pn</td><td width=30>Wt</td><td width=30>Śr</td>';
	kaltxt += '<td width=30>Czw</td><td width=30>Pt</td><td width=30>So</td></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();" >'+j+'</a></td>';
			else if(i%7==0)
				kaltxt += '<td class=niedz><a class=niedz href="javascript:selectday='+j+';hideKal();" >'+j+'</a></td>';
			else
				kaltxt += '<td><a class=dzien href="javascript:selectday='+j+';hideKal();" >'+j+'</a></td>';
			j++;
			if(i%7==6)
				kaltxt += '</tr><tr class=dzien>';
		}
		else
			kaltxt += '<td>&nbsp;</td>';
	}

	kaltxt += '</tr></table></div></form>';
	
	document.getElementById("kalendarz").innerHTML = kaltxt;
}

function dS_search()
{
	data_od = document.getElementById("tmpod").value.split("-");
	data_do = document.getElementById("tmpdo").value.split("-");
	document.getElementById("dsod").value=data_od[2];
	document.getElementById("dsmiesiace_od").value=data_od[0]+"|"+parseInt(data_od[1]-1);
	document.getElementById("dsdo").value=data_do[2];
	document.getElementById("dsmiesiace_do").value=data_do[0]+"|"+parseInt(data_do[1]-1);
	document.getElementById("dsileOsob").value= document.getElementById("tmpileOsob").value;
	document.dssearch.submit();
}

document.write('<div id="kalendarz" style="visibility:hidden;position:absolute;z-index:30;"></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>');

//-->