var mies_tab         = new Array("Styczeń","Luty","Marzec","Kwiecień","Maj","Czerwiec","Lipiec","Sierpień","Wrzesień","Październik","Listopad","Grudzień");
var tabelaHead       = "";
var ret              = tabelaHead;
var wsk              = false;
var wsk_a            = null;
var formatDaty       = "d.m.Y";
var dys_tab          = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
var teraz            = new Date();
var approve          = new Date();
var mies             = teraz.getMonth();
var rok              = teraz.getFullYear();
var counter          = mies;
var callbackFunction = false;
var IE               = document.all?true:false;

if (!IE) {
	document.captureEvents(Event.MOUSEMOVE);
}

document.onmousemove = getMouseXY;

var tempX = -1000;
var tempY = -1000;
var screenX;
var screenY;
var prev;
var next;

if (typeof(window.innerWidth) == 'number') {
	// Non-IE
	screenX = window.innerWidth;
	screenY = window.innerHeight;
} else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
	// IE 6+
	screenX = document.documentElement.clientWidth;
	screenY = document.documentElement.clientHeight;
} else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
	// IE 4
	screenX = document.body.clientWidth;
	screenY = document.body.clientHeight;
}

function getScrollXY() {

	var scrollX = 0;
	var scrollY = 0;

	if (typeof(window.pageYOffset) == 'number') {
		//Netscape compliant
		scrollY = window.pageYOffset;
		scrollX = window.pageXOffset;
	} else if (document.body && (document.body.scrollLeft || document.body.scrollTop)) {
		//DOM compliant
		scrollY = document.body.scrollTop;
		scrollX = document.body.scrollLeft;
	} else if (document.documentElement && (document.documentElement.scrollLeft || document.documentElement.scrollTop)) {
		//IE6 standards compliant mode
		scrollY = document.documentElement.scrollTop;
		scrollX = document.documentElement.scrollLeft;
	}

	return [scrollX, scrollY];
}

function getMouseXY(e) {

	var scroll = getScrollXY();

	if (IE) {
		tempX = event.clientX + scroll[0];
		tempY = event.clientY + scroll[1];
	} else {
		tempX = e.pageX;
		tempY = e.pageY;
	}  

	if (tempX < 0) { 
		tempX = 0;
	} 

	if (tempY < 0) {
		tempY = 0;
	} 

	return true;
}

function eventKeyGenerate(sdate, month, year) {

	key = "";

	if (sdate < 10) {
		key += 0;
	}

	key += sdate;

	if (month < 10) {
		key += 0;
	}

	key += month;
	
	if (year < 10) {
		key += 0;
	}

	key += year;
	
	return key;
}

function isMonthActive(month, year) {

	for (day = 1; day < 32; day++) {
		key = eventKeyGenerate(day, month, year);

		if (events[key] != undefined) {
			return true;
		}
	}
	
	return false;
}

function getMonthOffset(month, offset) {

    newMonth = month + offset;
    
    if (newMonth <= 0) {
	    newMonth = 12;
    }
    
    if (newMonth > 12) {
	    newMonth = 1;
    }

    return newMonth;
}

function getYearOffset(month, year, offset) {

    newMonth = month + offset;
    newYear  = year;
    
    if (newMonth <= 0) {
	    newYear--;
    }
    
    if (newMonth > 12) {
	    newYear++;
    }
    
    return newYear;
}

function wstaw_kal(param) {

	var arr   = param.split("|");
	var rok   = arr[0];
	var month = arr[1];
	var data  = arr[2];
	var ptr   = parseInt(data);

	approve.setDate(ptr);
	if ((wsk_a != null) && (wsk_a)) {
		wsk_a.value = FormatData(rok,month,data);

		//wywolanie funkcji callbackowej, jesli zostala ustawiona
		if (callbackFunction!=false && callbackFunction!='' && callbackFunction!=undefined) {
			eval(callbackFunction+"();");
		}
	}
}

function set_cal(year, month) {

	if (year == null) {
		year = teraz.getFullYear();
	}

	if (month == null) {
		month = teraz.getMonth();
	}

	if (month == 1) {
		dys_tab[1]  = (przestepny(year)) ? 29 : 28;
	}

	if (year < 200) {
		year = year + 1900;
	}

	approve.setYear(year);
	approve.setMonth(month);
	approve.setDate(1);
	przeladuj();
	showEventsList();
}

function przeladuj() {

	przelicz();
	document.getElementById('schedule_cal').innerHTML = ret;
	ret = tabelaHead;
}

function przelicz() {

	var rok     = _okrok(approve);
	var month   = approve.getMonth();
	var data    = 1;
	var dzisiaj = teraz.getDay();
	var day     = (approve.getDay()-1);
	var len     = dys_tab[month];
	var bgr,cnt,tmp = "";
	var j,i;

	if (rok < 1000) {
		rok = 1900 + rok;
	}
	
	var monthPrev = getMonthOffset(month + 1, -1);
	var monthNext = getMonthOffset(month + 1, 1);
	var yearPrev  = getYearOffset(month + 1, rok, -1);
	var yearNext  = getYearOffset(month + 1, rok, 1);
	var sleft     = " ";
	var sright    = " ";

	if (prev) {
		sleft  = "<a href='terminarz.html?mon=" + monthPrev + "&year=" + yearPrev + "' class=\"fl mt2\"><img src=\"http://i.wp.pl/a/i/biznes/arr_lft.gif\" alt=\"\" /></a>";
	}

	if (next) {
		sright = "<a href='terminarz.html?mon=" + monthNext + "&year=" + yearNext + "' class=\"fr mt2\"><img src=\"http://i.wp.pl/a/i/biznes/arr_rgh.gif\" alt=\"\" /></a>";
	}

	var monthStr = mies_tab[month];
	
	ret += "<div class=\"mpn\">" +  
		sleft + sright +
		"<a href=\"terminarz.html?mon="+(month+1)+"&year="+rok+"\">"  +
		+ rok + " " + monthStr + 
		"</a>" +
		"</div>" +
		"<table class=\"cal\">" +
		"<tr>" + 
		"<th>Pon</th>" +
		"<th>Wt</th>" +
		"<th>Śr</th>" +
		"<th>Czw</th>" +
		"<th>Pt</th>" +
		"<th>Sb</th>" +
		"<th class=\"nd\">Nd</th>" +
		"</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)  ? "class='nd'" : "";
			sobniedz = ((i == 6) || (i==5)) ? 1 : 0;

			if (((j == 0) && (i < day)) || (data > len)) {
				tmp  += generuj(bgr, rok, month, 0, sobniedz);
			} else {
				tmp  += generuj(bgr, rok, month, data, sobniedz);
				data++;
			}
		}

		ret += "<tr>\n" + tmp + "</tr>\n";
		tmp = "";
	}

	ret += "</table>\n";
}

var brightness = 0;

function lightup() {
	if (brightness <= 100) {
		if (brightness == 100) {
			brightness = 99;
		}

		var obj = document.getElementById('zajawka');

		obj.style.opacity = '.' + brightness;
		obj.style.filter  = 'alpha(opacity=' + brightness + ')';
		brightness       += 10;

		window.setTimeout('lightup()', 30);
	}
}

function hint(text, enable) {
//	if (events[key] != undefined) {
		var obj = document.getElementById('zajawka');
		var scroll = getScrollXY();

		if (enable) {
			brightness     = 0;
			obj.innerHTML  = text;//events[key];
			var height     = obj.offsetHeight;
			var posY       = tempY - (height / 2)

			obj.style.opacity = '.0';
			obj.style.filter  = 'alpha(opacity=10)';
			obj.style.left    = tempX + 20 + "px";

			if (posY - scroll[1] < 0) {
				obj.style.top = scroll[1] + 10 + "px";
			} else 
				if (posY + height > screenY + scroll[1]) {
					obj.style.top = screenY + scroll[1] - height - 10 + "px";
				} else {
					obj.style.top = posY + "px";
				}

			window.setTimeout('lightup()', 30);

		} else {
			obj.innerHTML  = '';
			obj.style.top  = "-10000px";
		}
//	}
}

function generuj(klasa, year, month, sdate, sobniedz) {

	var param       = "\'" + year + "|" + month + "|" + sdate + "\'";
	var td1         = "<td ";
	var td2         = "</td>\n";
	var cellValue   = (sdate != 0) ? sdate + "" : " ";
	var cellCode    = "";
	var onmouseover = "";

	month += 1;
	key = "";

	if (sdate < 10) {
		key += 0;
	}

	key += sdate;


	if (month < 10) {
		key += 0;
	}

	key += month;

	if (year < 10) {
		key += 0;
	}

	key += year;

	if (events[key] != undefined) {
		cellValue = '<a href="terminarz.html?mon=' + month + '&year=' + year + '&day=' + sdate + '">' + cellValue + '</a>';
	}

	var today = "";
	if ((teraz.getDate() == sdate) && (teraz.getMonth() == month - 1) && (_okrok(teraz) == rok)) {
		cellValue = '' + cellValue + '';
		klasa = " class='today'";
	}

	cellCode = td1 + klasa + ">" + cellValue + td2;

	return cellCode;
}

function przestepny(rok) {

	if ((rok % 400 == 0) || ((rok % 4 == 0) && (rok % 100 != 0))) {
		return true;
	} else {
		return false;
	}
}

function _okrok(obj) {

	return obj.getFullYear();
}

function FormatData(rok, month, data) {

	if (formatDaty == null) {
		formatDaty = "m/d/Y";
	}

	var day = approve.getDay();
	var crt = "";
	var str = "";
	var chars = formatDaty.length;

	if (rok.length < 4) {
		rok = '19' + rok;
	}

	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 click(log) {

	counter++;
	if (log == 1) {
		mies++;

		if(mies == 12) {
			mies = 0; 
			rok  = rok + 1;
		}
	} else {
		if ((mies > 9) || (rok > 1991)) {
			mies--;
		}

		if (mies == -1) {
			mies = 11;
			rok  = rok - 1;

			if (rok < 200) {
				rok = rok + 1900;
			}
		}
	}

	set_cal(rok, mies);
}

function showBottomNavigation() {

	var rok       = _okrok(approve);
	var month     = approve.getMonth();
	var monthPrev = getMonthOffset(month + 1, -1);
	var monthNext = getMonthOffset(month + 1, 1);
	var yearPrev  = getYearOffset(month + 1, rok, -1);
	var yearNext  = getYearOffset(month + 1, rok, 1);
	var sleftA    = " ";
	var srightA   = " ";
	var obj1, ob2j;

	obj1 = document.getElementById('eventsNavigationLeft')
	obj2 = document.getElementById('eventsNavigationRight')

	if (prev) {
		sleftA = "<a href='terminarz.html?mon=" + monthPrev + "&year=" + yearPrev + "'><img src='http://i.wp.pl/a/i/emerytury/sleft.gif' border='0' style='margin-bottom: -3px'>  miesiąc wcześniej</a>";
	}

	if (next) {
		srightA = "<a href='terminarz.html?mon=" + monthNext + "&year=" + yearNext + "'>miesiąc później   <img src='http://i.wp.pl/a/i/emerytury/sright.gif' border='0' style='margin-bottom: -3px'></a>";
	}
	
	obj1.innerHTML = sleftA;
	obj2.innerHTML = srightA;
}

function showEventsList() {
	var year    = _okrok(approve);
	var month   = approve.getMonth();
	var day     = (approve.getDay()-1);
	month++;

	eObj.innerHTML = '';

	for(i = 0; i < 32; i++) {
		key = eventKeyGenerate(i, month, year);
		
		if (events[key] != undefined) {
			var event = events[key];
			var date  = i + '.' + month + '.' + year;
			eObj.innerHTML += '<a name="' + date + '" id="' + key+ '"></a><div style="margin-bottom: 25px"><strong class="likeA">' + date +'</strong><br /><br />' + event + '</div>';
		}
	}

	showBottomNavigation();
}

function startCalendar(year, mon, p, n) {

	obr1 = new Image; 
	obr2 = new Image; 

	prev = p;
	next = n;

	if (mon != null) {
		mon--;
	}

	if (year == null) {
		year = teraz.getYear();
	}
	
	if (mon == null) {
		mon = teraz.getMonth();
	}
	
	set_cal(year, mon);
}



