/*Zmienne globalne*/
var mies_tab = new Array("Styczeń","Luty","Marzec","Kwiecień","Maj","Czerwiec","Lipiec","Sierpień","Wrzesień","Październik","Listopad","Grudzień");
var tabelaHead="<table border=0 cellspacing=1 cellpading=0 bgcolor=\"#000000\"><tr><td><table border=0 bgcolor=\"#f0f0f0\">\n";
var ret=tabelaHead;
var wsk=false;
var wsk_a=null;
var formatDaty = "Y-m-d";
var dys_tab=new Array(31,28,31,30,31,30,31,31,30,31,30,31);
var teraz=new Date();
var zatwierdz=new Date();
var mies=teraz.getMonth();
var rok=teraz.getYear();
var counter=mies;
var v_ofs = -350;
var dMin = new Date();dMin.setMonth(dMin.getMonth()-365);
var dMax = new Date();dMax.setMonth(dMax.getMonth()+365);
var dStart = dMin;
var dStop = dMax;

function handlerMM(e){
	x = (isNN) ? e.pageX : document.body.scrollLeft+event.clientX
	y = (isNN) ? e.pageY : document.body.scrollTop+event.clientY
}
if (document.layers){
	document.captureEvents(event.MOUSEMOVE);
}
document.onmousemove = handlerMM;


function rysuj(target) {
	wsk_a = target;
	if ((wsk_a != null)&&(wsk_a)) {
		var obj = document.all['kalendarz'];
		if (isIE){
			obj.style.left = document.body.scrollLeft+event.clientX;
			obj.style.top  = document.body.scrollTop+event.clientY + v_ofs;
		}
		else if(isNN5) {
			obj.style.left = x;
			obj.style.top  = y + v_ofs;
		}
		obj.style.visibility = "visible";
		var r,m;
		r = podajRok(wsk_a.value);
		m = podajMiesiac(wsk_a.value);
		if ((m != null) && (r != null)) { mies = m; rok = r; counter=m;}
		ustaw(rok,mies);
	}
}

/*konfiguracja*/
function klik(log) {
	var o_c, o_m, o_r;
	o_c = counter;
	o_m = mies;
	o_r = rok;
	counter++;

	switch( log ){
		case 1:
			mies++;
			if(mies == 12) {
				mies=0;
				rok=rok+1;
			}
			break;
		case -1:
			//if( (mies>teraz.getMonth())||(rok>teraz.getYear()) ) {
				mies--;
			//}
			if(mies == -1) {
				mies=11;
				rok=rok-1;
			}
			break;
		case 2:
			rok=rok+1;
			break;
		case -2:
			rok=rok-1;
	}

	if (isInRange(rok,mies)) {
		ustaw(rok,mies);
	}
	else {
		counter = o_c;
		mies = o_m;
		rok = o_r;
	}
}

function setRange(r1,m1,r2,m2) {
	if (r1 == 0) {
		d1 = dMin;
	}
	else {
		d1 = new Date(r1,m1,-1);
	}
	if (r2 == 0) {
		d2 = dMax
	}
	else {
		d2 = new Date(r2,m2+1,-1);
	}
	dStart = d1;
	dStop = d2;
}

function isInRange(rok,month) {
	d = new Date(rok,month,01);
	return ((dStop>d) && (dStart<d));
}

function wstaw(param) {
	var arr   = param.split("|");
	var rok  = arr[0];
	var month = arr[1];
	var data  = arr[2];
	var ptr = parseInt(data);
	zatwierdz.setDate(ptr);
	if ((wsk_a != null)&&(wsk_a)) {
		wsk_a.value = formatuj(rok,month,data);
		ukryj();
	}
}


function wszystkie() {
	wsk_a.value='wszystkie';
	ukryj();
}

function ustaw(rok,month) {

	if (rok  == null) {
		rok = _okrok(teraz);
	}
	if (month == null) {
		month = teraz.getMonth();
 	}
	if (month == 1) {
		dys_tab[1]  = (przestepny(rok)) ? 29 : 28;
	}
	zatwierdz.setDate(1);
	zatwierdz.setMonth(month);
	zatwierdz.setYear(rok);
	przeladuj();
}

function przeladuj() {
	przelicz();
	document.all['dni'].innerHTML = ret;
	ret = tabelaHead;
}


function przelicz() {

	var rok  = _okrok(zatwierdz);
	var month = zatwierdz.getMonth();
	var data  = 1;
	var dzisiaj = teraz.getDay();
	var day   = (zatwierdz.getDay()-1);
	var len   = dys_tab[month];
	var bgr,cnt,tmp = "";
	var j,i;
        ret    +="<tr>"
        	+"<td colspan=7>"
        	+"<table cellspacing=1 cellpadding=0 width=\"100%\"><tr>"
        	+"<td width=15><a href='javascript:klik(-1)'><img src=\"/img/calendar/calmp.gif\" width=9 height=9 border=0></a></td>"
        	+"<td width=15><a href='javascript:klik(-2)'><img src=\"/img/calendar/calyp.gif\" width=9 height=9 border=0></a></td>"
        	+"<td align=center><b>"+rok+" "+mies_tab[mies]+"</b></td>"
        	+"<td width=15><a href='javascript:klik(2)'><img src=\"/img/calendar/calyn.gif\" width=9 height=9 border=0></a></td>"
		+"<td width=15><a href='javascript:klik(1)'><img src=\"/img/calendar/calmn.gif\" width=9 height=9 border=0></a></td>"
		+"</tr></table>"
		+"</td></tr>";
	ret    +="<tr align=center>"
		+"<td width=20>Pn</td><td width=20>Wt</td><td width=20>Śr</td><td width=20>Cz</td><td width=20>Pt</td><td width=20>Sb</td><td width=20>N</td>";
		"</tr>";
	for (j = 0; j < 7; j++) {
		if (data > len) {
			break;
		}
		for (i = 0; i < 7; i++) {
			if(day==-1) {
				day=6;
			}
			bgr = (i == 6) ? "#FFFFCC" : "#FFFFFF";

			if ( ((j == 0) && (i < day)) ||(data > len)) {
				tmp  += generuj(bgr,rok,month,0);
			}
			else {
				tmp  += generuj(bgr,rok,month,data);data++;
			}
		}
		ret    +="<tr align=center>"+tmp+"</tr>\n";
		tmp = "";
	}
	ret    +="<tr><td colspan=7 align=center><a href='javascript:ukryj()'>zamknij</a></td></tr>";
	ret += "</table>\n";
	ret += "</td></tr></table>\n";
}

function generuj(bgr,rok,month,sdate) {

	var param = "\'"+rok+"|"+month+"|"+sdate+"\'";
	var td1 = "<td width=20 bgcolor=\""+bgr+"\" ";
	var td2 = "</span></td>\n";
	var evt = "onMouseOver=\"this.style.backgroundColor=\'#C00000\'\" onMouseOut=\"this.style.backgroundColor=\'"+bgr+"\'\" onMouseUp=\"wstaw("+param+")\" ";
	var ext = "<span style=\"cursor: hand\">";
	var lck = "<span style=\"cursor: default\">";
	var lnk = "<a href=\"javascript:wstaw("+param+")\" onMouseOver=\"window.status=\' \';return true;\">";
	var cellValue = (sdate != 0) ? sdate+"" : "&nbsp;";

	if ((teraz.getDate() == sdate )&&(teraz.getMonth() == month)&&(_okrok(teraz) == rok)) {
		cellValue = "<b style=\"color:#FF8818\">"+cellValue+"</b>";
	}
//	if ((teraz.getDate()>sdate )&&(teraz.getMonth() == month)&&(_okrok(teraz) == rok)) {
//		cellValue = "<span style=\"color:#CACACA\">"+cellValue+"</span>";
//	}

	var cellCode = "";
//	if (sdate == 0 || (teraz.getDate()>sdate )&&(teraz.getMonth() == month)&&(_okrok(teraz) == rok) ) {
//		cellCode = td1+"style=\"cursor:default\">"+lck+cellValue+td2;
//	}
//	else {
		cellCode = td1+evt+"style=\"cursor:hand\">"+ext+cellValue+td2;
//	}
	return cellCode;
 }


function ukryj() {
	document.all['kalendarz'].style.visibility = "hidden";
	mies=teraz.getMonth();
	wsk = false;
	wsk_a = null;
}

function przestepny(rok) {
	if ((rok%400==0)||((rok%4==0)&&(rok%100!=0))) {
		return true;
	}
	else {
		return false;
	}
}

function _okrok(obj) {
	return obj.getYear();
}

function form_data(data) {
	var reply = true;
	var mode = arr[0];
	var arg  = arr[1];
	var key  = arr[2].charAt(0).toLowerCase();
	if (key != "d") {
		var day = zatwierdz.getDay();
		var orn = isEvenOrOdd(data);
		reply = (mode == "[^]") ? !((day == arg)&&((orn == key)||(key == "a"))) : ((day == arg)&&((orn == key)||(key == "a")));
	}
	else {
		reply = (mode == "[^]") ? (data != arg) : (data == arg);
	}
	return reply;
}

function formatuj(rok,month,data) {
	if (formatDaty == null) {formatDaty = "m/d/Y";}
	var day = zatwierdz.getDay();
 	var crt = "";
 	var str = "";
 	var chars = formatDaty.length;
 	for (var i = 0; i < chars; i++) {
 		crt = formatDaty.charAt(i);
  		switch (crt) {
   			case "M":
   				str += mies_tab[month];
   				break;
   			case "m":
   				str += (month<9) ? ("0"+(++month)) : ++month;
   				break;
   			case "Y":
   				str += rok;
   				break;
   			case "y":
   				str += rok.substring(2);
   				break;
  			case "d":
  				str += ((formatDaty.indexOf("m")!=-1)&&(data<10)) ? ("0"+data) : data;
  				break;
			default:
				str += crt;
		}
	}
	return str;
}

function formatuj(rok,month,data) {
	if (formatDaty == null) {formatDaty = "m/d/Y";}
	var day = zatwierdz.getDay();
 	var crt = "";
 	var str = "";
 	var chars = formatDaty.length;
 	for (var i = 0; i < chars; i++) {
 		crt = formatDaty.charAt(i);
  		switch (crt) {
   			case "M":
   				str += mies_tab[month];
   				break;
   			case "m":
   				str += (month<9) ? ("0"+(++month)) : ++month;
   				break;
   			case "Y":
   				str += rok;
   				break;
   			case "y":
   				str += rok.substring(2);
   				break;
			case "d":
				str += ((formatDaty.indexOf("m")!=-1)&&(data<10)) ? ("0"+data) : data;
				break;
			default:
				str += crt;
		}
	}
	return str;
}


function zrobDate(data) {

	// uwaga !!!! funkcja działa tylko dla formatów liczbowych
	if (formatDaty == null) {formatDaty = "m/d/Y";}
	var crt = "";
	var cyfry = "0123456789";
	var str = data;
	var _m,_d,_y;
	var chars = formatDaty.length;
	for (var i = 0; i < chars; i++) {
		crt = formatDaty.charAt(i);
		switch (crt) {
		case "Y":
			_y = str.substr(0,4);
			str = str.substr(4);
			break;
		case "y":
			_y = "20"+str.substr(0,2);
			str = str.substr(2);
			break;
		case "m":
			if (cyfry.indexOf(str.substr(1,1))==-1) {
				_m = str.substr(0,1);
				str = str.substr(1);
			}
			else {
				_m = str.substr(0,2);
				str = str.substr(2);
			}
			break;
		case "d":
			if (cyfry.indexOf(str.substr(1,1))==-1) {
				_d = str.substr(0,1);
				str = str.substr(1);
			}
			else {
				_d = str.substr(0,2);
				str = str.substr(2);
			}
			break;
		default:
			str = str.substr(1);
		}
	}
	if (_m.charAt(0) == "0")
		_m = _m.substr(1);
	if (_d.charAt(0) == "0")
		_d = _d.substr(1);

	_y = parseInt(_y);
	_m = parseInt(_m)-1;
	_d = parseInt(_d);
	if (isNaN(_y) || isNaN(_m) || isNaN(_d))
		return null;
	else
		return new Date(_y,_m,_d)
}

function podajRok(d) {
	dt = zrobDate(d);
	if (dt !=null)
		return dt.getYear();
	else
		return null;
}

function podajMiesiac(d) {
	dt = zrobDate(d);
	if (dt !=null)
		return dt.getMonth();
	else
		return null;
}

function podajDzien(d) {
	dt = zrobDate(d);
	if (dt !=null)
		return dt.getDay();
	else
		return null;
}

function kalendarz_start() {
	document.writeln("<div id=\"kalendarz\" style=\"position:absolute; left:0px; top:0px; z-index:7; width:77px; height:1px; visibility:hidden\">");
	document.writeln("<div id=\"miesiace\" style=\"position:absolute; left:-45px; top:80px; z-index:9; width:181px; height:27px\">");
	document.writeln("<div id=\"dni\" style=\"position:absolute; left:-45px; top:80px; z-index:8; width:176px; height:17px; background-color:#FFFFFF; border:1px none #000000\">&nbsp;</div></div></div>");
}

function k_start() {
	if( get_navigator()) {
		kalendarz_start();
	}
}

function get_navigator() {
	var p = navigator.appName;
	if ( isIE || isNN5 ) {
		return 1;
	}
	return 0;
}

function rysuj_gifa(fld) {
	if(isIE || isNN5) {
		document.writeln("<span style=\"cursor:hand\"><img src=\"/img/calendar/calendar.gif\" width=16 height=15 align=absmiddle border=0 onClick=\"rysuj(document."+fld+");\"></span>");
	}
}

function rysuj_gifa2(fld,r1,m1,r2,m2) {
	if(isIE || isNN5) {
		document.writeln("<span style=\"cursor:hand\"><img src=\"/img/calendar/calendar.gif\" width=16 height=15 align=absmiddle border=0 onClick=\"setRange("+r1+","+m1+","+r2+","+m2+");rysuj(document."+fld+");\"></span>");
	}
}