var zarezerwowane_dni = new Array();
var dni_szczegoly = new Array();
var global_miesiac = '';
function getMonthName(numer)
{
	switch(numer)
	{
		case 0:
		return "Styczeń";
		case 1:
		return "Luty";
		case 2:
		return "Marzec";
		case 3:
		return "Kwiecień";
		case 4:
		return "Maj";
		case 5:
		return "Czerwiec";
		case 6:
		return "Lipiec";
		case 7:
		return "Sierpień";
		case 8:
		return "Wrzesień";
		case 9:
		return "Październik";
		case 10:
		return "Listopad";
		case 11:
		return "Grudzień";
	}

}

function modulo(a, b)
{
	return ((a % b) + b) % b;
}

function dayOfWeek(iYear, iMonth, numer)
{
	var now = new Date(iYear, iMonth, numer);
	var dzien = now.getDay();
	dzien = modulo((dzien - 1),7);
	return dzien;
}


function daysInMonth(iMonth, iYear)
{
	return 32 - new Date(iYear, iMonth, 32).getDate();
}

function setDate(miesiac,rok)
{
	$('kalendarz_date_node').innerHTML = getMonthName(miesiac) + " " + rok;
	$('miesiac_kalendarz').value = miesiac;
	$('rok_kalendarz').value = rok;
}

function listuj_pomieszczenia()
{
	//ustaw pomieszczenia
	var req = new Request({
		method: 'get',
		url: 'http://inkubatorstarter.pl/getPomieszczenia.html',
		data: { 'do' : '1' },
		async: false,
		onRequest: function() { },
		onComplete: function(response) {
			var pomieszczenia = JSON.decode(response);
			$('calendar_list_select').innerHTML = "";
			for(i = 0; i < pomieszczenia.length; i++) {
				var newoption = new Option(pomieszczenia[i]["opis"], pomieszczenia[i]["id"]);
				//eliminacja błedu pod IE6/7
				if(navigator.appName == "Microsoft Internet Explorer")
					$('calendar_list_select').add(newoption);
				else
					$('calendar_list_select').add(newoption,null);
			}
		}
	}).send();
}

function pobierz_dane(pomieszczenie,miesiac,rok)
{
	var req = new Request({
		method: 'get',
		url: 'http://inkubatorstarter.pl/getWynajem/'+pomieszczenie+'/'+miesiac+'/'+rok,
		async: false,
		onRequest: function() { },
		onComplete: function(response) {
			var wynajem = JSON.decode(response);
			for(i = 1; i < 32; i++) {
				if(wynajem[i] == 1) {
					//MW
					id_dnia = 'id-'+pomieszczenie+'-'+i+'-'+miesiac+'-'+rok;
					$('id-'+pomieszczenie+'-'+i+'-'+miesiac+'-'+rok).innerHTML = "<a href=\"javascript:void(0);\" onclick=\"zaznacz_dzien('"+id_dnia+"');\" class=\"calendar calendar_res2\">"+i+"</a>";
//					$('id-'+pomieszczenie+'-'+i+'-'+miesiac+'-'+rok).innerHTML = i;
//					$('id-'+pomieszczenie+'-'+i+'-'+miesiac+'-'+rok).addClass('calendar');
//					$('id-'+pomieszczenie+'-'+i+'-'+miesiac+'-'+rok).addClass('calendar_res2');
				}
			}
		}
	}).send();

	var req = new Request({
		method: 'get',
		url: 'http://inkubatorstarter.pl/getWynajemDetails/'+pomieszczenie+'/'+miesiac+'/'+rok,
		async: false,
		onRequest: function() { },
		onComplete: function(response) {
			var wynajem = JSON.decode(response);
			dni_szczegoly = wynajem;
		}
	}).send();
}

function wyswietl_kalendarz(data)
{

	//okrslanie daty
	var dzien = data.getDate();
	var miesiac = data.getMonth();
	var miesiac_name = getMonthName(miesiac);
	var rok = data.getYear();
	if (rok < 1900) {
		rok+=1900;
	}

	setDate(miesiac,rok);

	ilosc_dni = daysInMonth(miesiac,rok);
	// dzien tygodnia dla pierwszego dnia danego miesiąca
	dzien_ostatniego = dayOfWeek(rok,miesiac,ilosc_dni);
	// dzien tygodnia dla ostatniego dnia pierwszego miesiaca
	dzien_pierwszego = dayOfWeek(rok,miesiac,1);

	var miesiac_prev = miesiac - 1;
	var rok_prev = rok;
	if(miesiac_prev < 0)
	rok_prev = rok_prev - 1;

	ilosc_dni_prev = daysInMonth(modulo(miesiac_prev,12),rok_prev);

	var miesiac_next = miesiac + 1;
	var rok_next = rok;
	if(miesiac_next > 11)
	rok_next = rok_next + 1;

	ilosc_dni_next = daysInMonth(modulo(miesiac_next,12),rok_next);

	$('calendar_li_element').innerHTML = "";

	var start = ilosc_dni_prev - dzien_pierwszego + 1;

	for(i = 0; i < dzien_pierwszego; i++) {
		$('calendar_li_element').innerHTML+= "<li class=\"calendar_out\">"+start+"</li>";
		start = start + 1;
	}

	var classaZaznaczenia = 'calendar';
	for(i = 1; i <= ilosc_dni; i++) {
		var pietro = $('calendar_list_select').value;
		id_dnia = 'id-'+pietro+'-'+i+'-'+miesiac+'-'+rok;
		if (zarezerwowane_dni.contains(id_dnia)) {
			classaZaznaczenia = 'calendar calendar_res_tmp';
		} else {
			classaZaznaczenia = 'calendar calendar_norm';
		}

		$('calendar_li_element').innerHTML+= "<li id=\""+id_dnia+"\" onmouseover=\"podpowiedz("+pietro+","+i+","+miesiac+","+rok+")\" onmouseout=\"toolTip()\"><a class=\""+classaZaznaczenia+"\" href=\"javascript:void(0);\" onclick=\"zaznacz_dzien('"+id_dnia+"');\">"+i+"</a></li>";
	}

	start = 1;
	for(i = dzien_ostatniego; i < 6; i++) {
		$('calendar_li_element').innerHTML+= "<li class=\"calendar_out\">"+start+"</li>";
		start = start + 1;
	}

	pobierz_dane($('calendar_list_select').value,miesiac,rok);

}

function inicjalizuj_kalendarz()
{
	listuj_pomieszczenia();
	var data = new Date();
	wyswietl_kalendarz(data);

}

function miesiac_prev()
{
	var miesiac = parseInt($('miesiac_kalendarz').value);
	var rok = parseInt($('rok_kalendarz').value);
	if(miesiac - 1 < 0)
	rok = rok - 1;
	miesiac = modulo(miesiac-1,12);
	setDate(miesiac,rok);
	wyswietl_kalendarz(new Date(rok, miesiac, 15));
}

function miesiac_next()
{
	var miesiac = parseInt($('miesiac_kalendarz').value);
	var rok = parseInt($('rok_kalendarz').value);
	if(miesiac + 1 > 11)
	rok = rok + 1;
	miesiac = modulo(miesiac+1,12);
	setDate(miesiac,rok);
	wyswietl_kalendarz(new Date(rok, miesiac, 15));
}

function pokaz_kalendarz()
{
	var data = new Date();
	var miesiac = parseInt($('miesiac_kalendarz').value);
	var rok = parseInt($('rok_kalendarz').value);
	if (miesiac >= 0) data.setMonth(miesiac);
	if (rok > 0) data.setFullYear(rok);

	//alert ("debug:" + miesiac + " rok: " + rok + " data: " + data);
	wyswietl_kalendarz(data);
}

function zaznacz_dzien(zmienna)
{
	var nextSibling = $(zmienna).getChildren();

	nextSibling.toggleClass('calendar_res_tmp');
	if (zarezerwowane_dni.contains(zmienna)) {
			zarezerwowane_dni.erase(zmienna);
		} else {
			zarezerwowane_dni.push(zmienna);
		}
}

function pokaz_dni() {
	if (zarezerwowane_dni.length > 0) {
		$('terminy').value = zarezerwowane_dni;
		document.getElementById("wynajem_form").submit()
	} else {
		alert('Proszę zaznaczyć termin rezerwacji.');
		return false;
	}

}
/* ---- funkcje pomocnicze do validatora formularza ---- */
function kodpocztowyCheck(el){
	if (!el.value.test(/^[0-9]{2}\-[0-9]{3}$/)) {
		el.errors.push("Podaj prawidłowy kod pocztowy (np. 80-180)");
    return false;
  } else {
    return true;
  }
}

function pobierz_szczegoly(pomieszczenie,dzien,miesiac,rok)
{
	var req = new Request({
		method: 'get',
		url: 'http://inkubatorstarter.pl/getWynajemDetails/'+pomieszczenie+'/'+dzien+'/'+miesiac+'/'+rok,
		async: false,
		onRequest: function() { },
		onComplete: function(response) {
			var wynajem = JSON.decode(response);
			dni_szczegoly[dzien] = response;
		}
	}).send();
}


function podpowiedz(pietro,dzien,miesiac,rok) {
	var first = "Rezerwacja<br /><br />";
	var tresc = "";
	for(o = 0; o < dni_szczegoly[dzien].length; o++) {
		var test = dni_szczegoly[dzien][o];
//		alert(test);
		if(dni_szczegoly[dzien].contains("Cały dzień"))
			tresc += dni_szczegoly[dzien][o]+"<br />";
		else if(dni_szczegoly[dzien][o] == 0)
			tresc += "";
		else
			tresc += dni_szczegoly[dzien][o]+"<br />";
	}
	if(tresc != "")
		tresc = first + tresc;
	else
		tresc = first + "Brak rezerwacji";

	toolTip(tresc, 270, 100);

}
