
var ie, 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 fieldFrom;
var fieldTo;

var date_field;
var selectday; // do tej zmiennej przekazywana jest wybrana data
// ilość dni w roku
var dni = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
// nazwy tygodni
var dnames = new Array('Nd','Pn','Wt','Śr','Cz','Pt','So');
// nazwy miesięcy
var miesiac = new Array('Styczeń','Luty','Marzec','Kwiecień', 'Maj','Czerwiec','Lipiec','Sierpień','Wrzesień','Październik','Listopad','Grudzień');
var today = dnames[adzientyg]+', '+adzien+' '+miesiac[amies]+' '+arok;
// dane kolorów
var kol = new Array(5)
kol[0] = '#F6F5E0'; // kolor tła kalendarza, kolor tekstu wybranego dnia, nazw dni tyg...
kol[1] = '#F6F5E0'; // kolor pól kalendarza - dni zwykłe
kol[2] = '#FFDBDB'; // kolor pól kalendarza - niedziele
kol[3] = '#FF0000'; // 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 = 8; 
var wprzod = 8;
var pozy;
var pozx;
// ilość dni w Lutym - przeliczane po zmianie miesiąca lub roku
function dniMies(){
	dni[1] = (rok % 4 == 0) ? 29 : 28;
}

// funkcja pokazujaca kalendarz
function showKal( df, cdf, cdt ){
	var ktop, kleft;
	fieldFrom = cdf;
	fieldTo = cdt;
	date_field = df.id;
	data = new Date(arok, amies, 1);
	mies = data.getMonth();
	rok = data.getFullYear();
	dzien = data.getDate();
	dzientyg = data.getDay();
	dniMies();
	rysujKal();	
	if( ie ){	
		var kh = document.getElementById('kategorie_options').offsetHeight;
		ktop = df.offsetTop+kh+446;
		kleft = df.offsetLeft+370;
	} else {
		ktop = df.offsetTop+25;
		kleft = df.offsetLeft;
	}
	document.getElementById('kalendarz').style.left = kleft+'px';
	document.getElementById('kalendarz').style.top = ktop+'px';
	document.getElementById('kalendarz').style.visibility = 'visible';
}

// funkcja ukrywajaca kalendarz i wstawiajaca wybraną datę do pola formularza
function hideKal(){
	mies = document.getElementById('smonth').value;
	mies++;
	mies = mies > 9 ? mies : '0' + mies;
	selectday = selectday > 9 ? selectday : '0' + selectday;
	format = selectday+'-'+mies+'-'+rok;
	var de = document.getElementById( date_field );
	de.value = format;
	var df = document.getElementById( fieldFrom );
	var dt = document.getElementById( fieldTo );
	if( df.value != '' && dt.value != '' ){
		var adf = df.value.split("-");
		var adt = dt.value.split("-");
		var sdf = adf[2]+adf[1]+adf[0];
		var sdt = adt[2]+adt[1]+adt[0];
		if( sdf > sdt ){
			prevcolor = de.style.color;
			var msg = LANG['CAL_DATE_FROM'] + df.value + '\n' + LANG['CAL_DATE_TO'] + dt.value;
			de.style.color = 'red';
			if( df.id == de.id ){
				alert( msg + '\n\n' + LANG['CAL_DATE_FROM_ALERT'] );
			} else {
				alert( msg + '\n\n' + LANG['CAL_DATE_TO_ALERT'] );
			}
			de.value = '';
			de.style.color = prevcolor;
			return false;
		}
	}
	exitKal();
}

// ukrywanie kalendarza bez wstawiania daty
function exitKal(){
	var cc = document.getElementById('kalendarz');
	cc.innerHTML = '';
	cc.style.visibility = 'hidden';
}

// ustawianie nowej daty po zmianie miesiaca lub roku
function setData( t ){
	mies = document.getElementById('smonth').value;
	rok = document.getElementById('syear').value;
	data = new Date(rok, mies, 1);
	mies = data.getMonth();
	rok = data.getFullYear();
	dzien = data.getDate();
	dzientyg = data.getDay();
	dniMies();
	rysujKal();
}

function set_today(){
	cdata = new Date();
	cmies = cdata.getMonth();
	crok = cdata.getFullYear();
	
	data = new Date(crok, cmies, 1);
	mies = data.getMonth();
	rok = data.getFullYear();
	dzien = data.getDate();
	dzientyg = data.getDay();
	dniMies();
	rysujKal();
}

// rysowanie kalendarza
function rysujKal(){
	var i, kaltxt, selected;
	kaltxt = '<div class="today" onclick="set_today();">'+today+'</div>';
	kaltxt += '<div class="closer" onclick="exitKal()"></div>';
	kaltxt += '<div class="head">';
	kaltxt += '<select id="smonth" name="smonth" class="lista-m" onChange="setData()">';	
	for(i=0;i<12;i++){
		selected = (i==mies) ? 'selected' : '';
		kaltxt += '<option value="'+i+'" '+selected+'>'+miesiac[i]+'</option>';
	}
	kaltxt += '</select><select id="syear" name="syear" class="lista-y" onChange="setData()">';
	for(i=(rok-wstecz);i<=(rok+wprzod);i++){
		selected = (i==rok) ? 'selected' : '';
		kaltxt += '<option value="'+i+'" '+selected+'>'+i+'</option>';
	}
	kaltxt += '</select>';
	kaltxt += '<div class="clear"></div>';
	kaltxt += '</div>';
	kaltxt += '<div class="clear">';
	for(i=0;i<7;i++){
		kaltxt += '<div class="dbox dnityg">'+dnames[i]+'</div>';
	}
	kaltxt += '</div><div>';
	j = 1;

	for(i=0;i<dzientyg+dni[mies];i++){
		if(i>=dzientyg){
			if(j==adzien && rok==arok && mies==amies)
				/* dzien obecny */
				kaltxt += '<div class="dbox aktday" onclick="selectday='+j+';hideKal();">'+j+'</div>';
			else if(i%7==0)
				/* niedziela */
				kaltxt += '<div class="dbox niedz" onclick="selectday='+j+';hideKal();">'+j+'</div>';
			else
				kaltxt += '<div class="dbox dzien" onclick="selectday='+j+';hideKal();">'+j+'</div>';
			j++;
			if(i%7==6) kaltxt += '<div class="clear"></div>';
		}	else kaltxt += '<div class="dbox dzien empty"></div>';
	}
	kaltxt += '<div class="clear"></div>';
	kaltxt += '</div>';
	document.getElementById("kalendarz").innerHTML = kaltxt;
}

/* style kalendarza i warstwa, na której się znajduje */
document.write('<div id="kalendarz"></div>');
