
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 select_Day;
var select_Month;
var select_Year;

// ilosc dni w roku
var dni = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
// nazwy tygodni umieszczone w pliku slownikowym js/PL.js
var dnames = LANG['D_NAMES'];
// nazwy miesiecy  umieszczone w pliku slownikowym js/PL.js
var miesiac = LANG['M_NAMES'];

var today = dnames[adzientyg]+', '+adzien+' '+miesiac[amies]+' '+arok;
// dane kolorow
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 = 2; 
var wprzod = 5;
var pozy;
var pozx;



function setDays(df, rs, ms){
	var daysSelect = document.getElementById(df);
	var daysOfMonth = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
	daysOfMonth[1] = (rs % 4 == 0) ? 29 : 28;
	var daysInMonth = daysOfMonth[ms-1];
	if(df){
		daysSelect.length = daysInMonth;
		for(var n=1; n <= daysInMonth; n++){
			daysSelect.options[n-1].value = n;
			daysSelect.options[n-1].text = n;
		}
		daysSelect.selectedIndex = 0;
	}
}

function setMonthDays(dl, fy, fm){
	var sr = document.getElementById(fy).value;
	var sm = document.getElementById(fm).value;
	if(sr && sm) setDays(dl, sr, sm);
}

// ilosc dni w Lutym - przeliczane po zmianie miesiąca lub roku
function dniMies(){
	dni[1] = (rok % 4 == 0) ? 29 : 28;
}

// funkcja pokazujaca kalendarz
function showKal( rp, tf ){
	var ktop, kleft;
	select_Day = tf+'dayslist';
	select_Month = tf+'monthlist';
	select_Year = tf+'year';
	/*-----------------*/
	data = new Date(arok, amies, 1);
	mies = data.getMonth();
	rok = data.getFullYear();
	dzien = data.getDate();
	dzientyg = data.getDay();
	dniMies();
	rysujKal();
	/*
	//jesli przycisk kalendarza bedzie mial ustawione top i left, a position: relative,
	//to taki duzy ofset jest niepotrzebny dla IE -- wystarczy taki sam, jak dla reszty
	//przegladarek. zakomentowalem, andrew.
	

	
	ktop = rp.offsetTop+25;
	kleft = rp.offsetLeft-165;
	*/

	
	if( ie ){	
		ktop = rp.offsetTop+436;
		kleft = rp.offsetLeft+130;
	} else {
		ktop = rp.offsetTop+25;
		kleft = rp.offsetLeft-165;
	}
	
	var kf = document.getElementById('kalendarz');
	if(kf){
		kf.style.left = kleft+'px';
		kf.style.top = ktop+'px';
		kf.style.visibility = 'visible';
	}
}

// funkcja ukrywajaca kalendarz i wstawiajaca wybraną datę do pola formularza
function hideKal(){
	var selectedMonth = document.getElementById('smonth').value;
	var daysInCurrentMonth = dni[selectedMonth];
	var listOfDays = '';
	var sd = document.getElementById( select_Day );
	var sm = document.getElementById( select_Month );
	var sy = document.getElementById( select_Year );
	if(sy) sy.value = rok;

	if(sm){
		sm.length = 12;
		for(var n=1;n<=12;n++){
			sm.options[n-1].text = miesiac[n-1]+' - '+rok;
			sm.options[n-1].value = n;
		}
		sm.selectedIndex = selectedMonth;
	}
	
	if(sd) {
		if( ie ) {
			sd.length = daysInCurrentMonth;
			sd.innerHTML = listOfDays;
			
			for( var n=1; n<=daysInCurrentMonth; n++ ) {
				var opt = document.createElement('option');
				opt.innerHTML = opt.value = n;
				sd.appendChild(opt);
			}
			
			sd.selectedIndex = (selectday-1);			
		} else {
			sd.length = daysInCurrentMonth;
			
			for( var n=1; n<=daysInCurrentMonth; n++ ) {
				listOfDays += '<option value="'+n+'">'+n+'</option>';
			}
			
			sd.innerHTML = listOfDays;		
			sd.selectedIndex = (selectday-1);
		}
	}
	
	exitKal();
}

function insert_new_days_list(fsd,m,r){
	var mdays = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
	mdays[1] = (r % 4 == 0) ? 29 : 28;
	var cmdays = mdays[m];
	var dopt = '';
	for(var n=1;n<=cmdays;n++){
		dopt += '<option value="'+n+'">'+n+'</option>\n';
	}
	fsd.innerHTML = dopt;
}

// ukrywanie kalendarza bez wstawiania daty
function exitKal(){
	var cc = document.getElementById('kalendarz');
	if(cc){
		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();
	cdzien = data.getDate();
	
	data = new Date(crok, cmies, cdzien);
	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 dnitygodnia">'+dnames[i]+'</div>';
	}
	kaltxt += '</div><div>';
	var j = 1;
	var picked;
	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 ktorej sie znajduje */
document.write('<div id="kalendarz"></div>');

