var aCalendars = new Array();

function CalendarOver (nCalendarId, nId, nY) {
	var oCalendar = aCalendars[nCalendarId];
	//var oItem = oCalendar.items[nId ];
	var aItemGroup = oCalendar.items_group[nId];
	
	var htmlOver = ReturnObjById(oCalendar.css_id);
	var htmlContent = ReturnObjById(oCalendar.css_id + "_content");
	var htmlFlch = ReturnObjById(oCalendar.css_id + "_flch");
	
	var sOutput = "";	//"NB: " + aItemGroup.length;
	sOutput += "<ul class=\"default\">";
	
	for(i=0;i < aItemGroup.length;i++) {
		oItem = aItemGroup[i];
		
		if (i == 0) sOutput += "<li class=\"date\">" + oItem.date + "</li>";
		sOutput += "<li class=\"spacer\"></li>";
		sOutput += "<li class=\"label\">" + oItem.label + "</li>";
		
		if (oItem.note) sOutput += "<li class=\"note\">" + oItem.note + "</li>";
		if (oItem.content) sOutput += "<li class=\"content\">" + oItem.content + "</li>";
	}
	
	sOutput += "</ul>";

	var nStepY = 22;
	var nBorderY = 1;

	var nPosY = (nY+1) * nStepY + nY * nBorderY;
	
	//var nPosY = ((nY+1) * 22) - 1 + nMargeY;
	htmlFlch.style.top = nPosY + "px";
	htmlContent.style.minHeight = (nPosY + 30) + "px";

	htmlContent.innerHTML = sOutput;
	htmlOver.style.display = "block";
}

function CalendarOut (nCalendarId, nId) {
	var oCalendar = aCalendars[nCalendarId ];
	
	var htmlElem = ReturnObjById(oCalendar.css_id);
	var htmlContent = ReturnObjById(oCalendar.css_id + "_content");
	
	htmlElem.style.display = "none";
	htmlContent.innerHTML = "...";
}

function CalendarPress (nCalendarId, nId, nYear, nMonth) {
	//alert('CalendarPress : ' + nCalendarId + ' - ' + nId);
	var oCalendar = aCalendars[nCalendarId];
	var aItemGroup = oCalendar.items_group[nId];
	
	var htmlElem = ReturnObjById(oCalendar.css_id);
	htmlElem.style.display = "none";
	
	//var sLocation = oCalendar.location + oCalendar.others_param + "&" + oCalendar.param_name + "=" + aItemGroup[0].day_id;
	var sLocation = oCalendar.location + oCalendar.others_param + "&yearID" + "=" + nYear + "&monthID" + "=" + nMonth + "&dayID" + "=" + aItemGroup[0].day_id;
	
	//alert(sLocation);
	window.location = sLocation;
}

function CalendarAddTo (nCalendarId, nId, sLabel, sContent, sLink, sDate) {
	var oItem = new Object();
	
	oItem.id = nId;
	oItem.label = sLabel;
	oItem.date = sDate;
	oItem.content = sContent;
	oItem.link = sLink;
	
	//--------------------------------------------------
	aCalendars[nCalendarId].items[nId] = oItem;
}

function CalendarAddToGroup (nCalendarId, nId, nDay, sLabel, sContent, sLink, sDate, sNote, sDayId) {
	var oItem = new Object();
	
	oItem.id = nId;
	oItem.day = nDay;
	oItem.label = sLabel;
	oItem.date = sDate;
	oItem.day_id = sDayId;
	oItem.content = sContent;
	oItem.note = sNote;
	oItem.link = sLink;
	
	//--------------------------------------------------
	var aItemGroup = aCalendars[nCalendarId].items_group[nId];
	if (!aItemGroup) aItemGroup = new Array();
	aItemGroup.push(oItem);
	aCalendars[nCalendarId].items_group[nId]= aItemGroup;
}

function CalendarCreate (nCalendarId, sLabel, sCssOverId, sLocation, sParamName, sOthersParam) {
	var oCalendar = new Object();
	
	oCalendar.id = nCalendarId;
	
	oCalendar.label = sLabel;
	oCalendar.css_id = sCssOverId;
	oCalendar.items = new Array();
	oCalendar.items_group = new Array();
	
	oCalendar.location = sLocation;
	oCalendar.param_name = '';	//sParamName;
	oCalendar.others_param = sOthersParam;
		
	//--------------------------------------------------
	aCalendars[nCalendarId] = oCalendar;
}
