var CalendarYear;
var CalendarMonth;
var honlap = '';
var dofw = Array('H','K','Sze','Cs','P','Szo','V');
var mnames = Array('Január','Február','Március','Április','Május','Június','Július',
				'Augusztus','Szeptember','Október','November','December');
var holidays = Array(20101224,20101225,20101226);

function is_holiday(d) {
	//d Date típusú
	//Összeállítani a dátum(számot)
	month = d.getMonth()+1;
	if(month < 10) month = '0'+month;
	day = d.getDate();
	if(day < 10) day = '0'+day;
	needle = ' '+d.getFullYear()+month+day;
	needle = needle.substr(1);
	//Logaritmikus keresés alkalmazható a holidays tömbre
	u = 0;
	v = holidays.length-1;
	l = false;
	while(!l && u <= v) {
		i = Math.ceil((u+v)/2);
		if(holidays[i] == needle) l = true;
		else if(holidays[i] < needle) u = i + 1;
		else if(holidays[i] > needle) v = i - 1;
	}
	return l;
}

function setPage(page) {
	honlap = page;
}

function adjustMonth(dir) {
	if(dir == 0) 
		if(CalendarMonth == 0) {
			CalendarMonth = 11;
			CalendarYear--;
		} else CalendarMonth--;
	else 
		if(CalendarMonth == 11) {
			CalendarMonth = 0;
			CalendarYear++;
		} else CalendarMonth++;
	showCalendar(CalendarYear,CalendarMonth);
}

function adjustYear(dir) {
	if(dir == 0) CalendarYear--;
	else CalendarYear++;
	showCalendar(CalendarYear,CalendarMonth);
}

function getCorrDay(d) {
	var day = d.getDay();
	if(day == 0) { day = 7;}
	return day - 1;
}

function clearCalDisplay() {
	var d = document.getElementById('naptar_modul');
	var disp = document.getElementById('naptar_lapok');
	var disp2 = document.getElementById('naptar_hetnapok');
	if(disp != null ) {
		d.removeChild(disp);
		d.removeChild(disp2);
	}
}

function showCalendar(year,month) {
	//Megjeleníti a naptárat az adott év/hónapra
	CalendarYear = year;
	CalendarMonth = month;
	loader = new dataLoader(function(x) { 
		//alert(x);
		var entries = Tipus.Kicsomagol(x.substring(3,x.length)).obj; 
		clearCalDisplay();
	var d = new Date(year,month,1,0,0,0,0);
	var disp = document.getElementById('naptar_modul');
	var dyear = document.getElementById('ev_kijelzes');
	dyear.innerHTML = year;
	var dmon = document.getElementById('ho_kijelzes');
	dmon.innerHTML = mnames[month];
	var dcalh = document.createElement('div');
	dcalh.id = 'naptar_hetnapok';
	for(i = 0; i<=6; i++) {
		var sp = document.createElement('div');
		sp.innerHTML = dofw[i];
		sp.className = 'naptar_lap';
		dcalh.appendChild(sp);
	}
	var tmp = document.createElement('div');
	tmp.style.clear = 'both';
	dcalh.appendChild(tmp);
	disp.appendChild(dcalh);
	var i = 0;
	var dcal = document.createElement('div');
	dcal.id = 'naptar_lapok';
	var today = new Date();
	var event_day = entries.pop();
	//ki kell számolni az előző hó hanyadikától indul a hét
	d.setDate(d.getDate()-1);
	maxnap = d.getDate();
	d.setDate(d.getDate()+1);
	hoelsonap = getCorrDay(d)-1;
	maxnap = maxnap - hoelsonap;
	while(d.getMonth() == month) {
		if(getCorrDay(d) == i) {
			var sp = document.createElement('div');
			if(d.getDate() == event_day) {
				if(d.getDate() == today.getDate() && d.getMonth() == today.getMonth() && d.getYear() == today.getYear())
					if(is_holiday(d)) sp.className = "naptar_lap_esemeny_aktual_hol";
						else sp.className = "naptar_lap_esemeny_aktual";
				else if(is_holiday(d)) sp.className = "naptar_lap_esemeny_hol";
							else sp.className = "naptar_lap_esemeny";
				sp.innerHTML = '<a href="'+honlap+'/esemenyek/?datum='+
					CalendarYear+'-'+(CalendarMonth+1)+'-'+d.getDate()+'">'+d.getDate()+'</a>';
				event_day = entries.pop();
			} else {
				sp.innerHTML = d.getDate();
				if(d.getDate() == today.getDate() && d.getMonth() == today.getMonth() && d.getYear() == today.getYear())
					if(is_holiday(d)) sp.className = "naptar_lap_aktual_hol";
						else sp.className = "naptar_lap_aktual";
				else if(is_holiday(d)) sp.className = "naptar_lap_hol";
						else sp.className = "naptar_lap";
			}
			dcal.appendChild(sp);
			if(i == 6) {
				i = 0;
				var sp = document.createElement('div');
				sp.style.clear = 'both';
				dcal.appendChild(sp);
			} else i++;
			d.setDate(d.getDate()+1);
		} else {
			//Üres napok (a hét ezen napja nem ebben a hónapban van)
			var sp = document.createElement('div');
			sp.innerHTML = maxnap;
			sp.className = "naptar_lap_inact";
			dcal.appendChild(sp);
			i++;
			maxnap++;
		}
	}
	//Az utolsó hétből hátralévő napokat jelenítni meg (ezek már a köv. hónap napjai)
	dcount = 1;
	while(i<7) {
		var sp = document.createElement('div');
			sp.innerHTML = dcount;
			sp.className = "naptar_lap_inact";
			dcal.appendChild(sp);
		i++;
		dcount++;
	}
	disp.appendChild(dcal);
	},function(x) { alert("hiba");});
	loader.loadData(honlap+'/ajax.php?kiszolgalo=Hívás(NaptárModulEsemények,Esemenyek,Array(Int(0)=>String("'+CalendarYear+CalendarMonth+'")))');
}

function getCalendarEntries(year,month) {
	//Lekéri az adott év/hónaphoz tartozó bejegyzéseket.
	//AJAX kell!!!!
	
	
}
