
var sMonthsIT = ["Gennaio", "Febbraio", "Marzo", "Aprile", "Maggio", "Giugno", "Luglio", "Agosto", "Settembre", "Ottobre", "Novembre", "Dicembre"];
var sMonthsEN = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];
var sMonthsPL = ["Styczeń", "Luty", "Marzec", "Kwiecień", "Maj", "Czerwiec", "Lipiec", "Sierpień", "Wrzesień", "Październik", "Listopad", "Grudzień"];

function preloadCalendar(id, types)
{
	new Ajax.Request(contextPath + "/" + shortlang + "/ajax/getNextAvailableCalendarDate.action",
	{
	    method: "get",
	    
	    parameters: {types: types},
	    
	    onSuccess: function(transport)
	    {
	    	var d = transport.responseText.evalJSON();
	    	loadCalendar(id, types, d.month, d.year);
	    }
  	});
}

function loadCalendar(id, types, month, year)
{
	var firstOfMonth = new Date();
	firstOfMonth.setFullYear(year, month, 1);
	var dow = firstOfMonth.getDay();
	dow = dow - 1;
	if (dow == -1)
	{
		dow = 6;
	}
	var nOfDays = 32 - new Date(year, month, 32).getDate();
	var monthName = shortlang == "it";
	
		if (shortlang == "it")
			monthName = sMonthsIT[month];
		else if (shortlang == "pl")
			monthName = sMonthsPL[month];
		else
			monthName = sMonthsEN[month];
		
		$("eventCalendarMonthLabel-" + id).update(monthName + " " + year);
	for (var i = 1; i <= 42; i++)
	{
		var o = $("eventCalendarCell-" + id + "_" + i);
		o.removeClassName("events");
		
		if (i <= dow || i > dow + nOfDays)
		{
			o.update("&nbsp;");
		}
		else
		{
			o.update("<a class=\"day\">" + (i - dow) + "</a>");
		}
	}
	$("calendar-" + id).month = month;
	$("calendar-" + id).year = year;
	$("calendar-" + id).types = types;
	
	new Ajax.Request(contextPath + "/" + shortlang + "/ajax/getCalendarEvents.action",
	{
	    method: "get",
	    
	    parameters: {types: types, month: month, year: year},
	    
	    onSuccess: function(transport)
	    {
	    	fillEvents(id, types, dow, month, year, transport.responseText.evalJSON());
	    }
  	});
}

function fillEvents(id, types, dow, month, year, data)
{
	for (var i = 0; i < data.length; i++)
	{
		var date = parseInt(data[i].day);
		var o = $("eventCalendarCell-" + id + "_" + (date + dow));
		if (o != null)
		{
			var type = "";
			if (data[i].type != null && data[i].type == "peve")
			{
				type = " press_room";
			}
			else if (data[i].type != null && data[i].type == "Eve")
			{
				type = " investor_relation";
			}
			else if (data[i].type != null && data[i].type == "jeve")
			{
				type = " join_in";
			}
			
			var eventDOM;
			if ($("calendar_event_detail-" + id))
			{
				eventDOM = "<a class=\"" + type + " detail event_click_toggle_target_data-" + id + "_" + i + "\" href=\"javascript:view_event('" + id + "', " + data[i].id + ")\">" + data[i].title + "</a>";
			}
			else
			{
				eventDOM = "<a class=\"" + type + " detail\" href=\"" + contextPath + "/" + shortlang + "/calendar/calendar.action?year=" + year + "&month=" + month + "&type=" + data[i].type + "&eventId=" + data[i].id + "\">" + data[i].title + "</a>";
			}
			var e = $("eventCalendarCellEvent-" + id + "_" + (date + dow));
			if (e == null)
			{
				o.addClassName("events");
				o.update("<a href=\"javascript:void(0)\" class=\"day event_click_toggle_target_data-" + id + "_" + i + "\">" + data[i].day + "</a>"
					+ "<div id=\"data-" + id + "_" + i + "\" class=\"baloon_container\"><div class=\"baloon\"><div class=\"baloon_top\"></div>"
					+ "<div class=\"baloon_body\"><a href=\"javascript:void(0)\" class=\"chiudi event_click_toggle_target_data-" + id + "_" + i + "\"><span>chiudi</span></a><div class=\"clear\"></div><div id=\"eventCalendarCellEvent-" + id + "_" +  + (date + dow) + "\">" + eventDOM + "</div></div>"
					+ "<div class=\"baloon_bottom\"></div></div></div>");
			}
			else
			{
				e.update(e.innerHTML + eventDOM);
			}
		}
	}
	eventsInit();
}

function view_event(id, event_id)
{
	new Ajax.Request(contextPath + "/" + shortlang + "/ajax/getCalendarEvent.action",
	{
		parameters:
		{
			event_id: event_id
		},
		onSuccess: function(t)
		{
			var o = t.responseText.evalJSON();
			var ty = "investor_relation";
			switch (o.type)
			{
				case "Eve":
				{
					ty = "investor_relation";
					break;
				}
				case "peve":
				{
					ty = "press_room";
					break;
				}
				case "jeve":
				{
					ty = "join_in";
					break;
				}
			}
			var s = "";
			s += "<div class=\"event_detail " + ty + "\">";
			s += "<span class=\"date\">"+o.day+"/"+(o.month+1)+"/"+o.year+"</span>";
			s += "<span class=\"city\">"+o.city+"</span>";
			if (o.descr != null && o.descr.length > 0)
			{
				if (o.type == "jeve")
					s += "<span class=\"black_out\">"+o.descr+"</span>";
				else
					s += "<span class=\"black_out\">Black out: "+o.descr+"</span>";
			}
			s += "<span class=\"title\">"+o.title+"</span>";
			if (o.text != null && o.text.length > 0)
			{
				s += "<span class=\"text\">"+o.text+"</span>";
			}
			s += "</div>";
			
			$("calendar_event_detail-" + id).update(s);
		}
	});
}

function prevMonth(id)
{
	var month = $("calendar-" + id).month;
	var year = $("calendar-" + id).year;
	var types = $("calendar-" + id).types;
	
	month--;
	
	if (month < 0)
	{
		month = 11;
		year--;
	}
	
	loadCalendar(id, types, month, year);
}

function nextMonth(id)
{
	var month = $("calendar-" + id).month;
	var year = $("calendar-" + id).year;
	var types = $("calendar-" + id).types;
	
	month++;
	
	if (month > 11)
	{
		month = 0;
		year++;
	}
	
	loadCalendar(id, types, month, year);
}
