var boxKalendarDaysInMonths = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
var boxKalendarMonths = new Array("Január", "Február", "Marec", "Apríl", "Máj", "Jún", "Júl", "August", "September", "Október", "November", "December");
var boxKalendarTBody = null;
var boxKalendarMonthYear = null;
var boxKalendarDateObject = new Date();
var boxKalendarWaitIcon = null;
var boxUdalostiUL = null;
var boxKalendarJsonObject = null;
var udalostContent = null;

function boxKalendarInit() {
	boxKalendarTBody = DOM.gI("boxKalendarTBody");
	if(boxKalendarTBody) {
		boxKalendarWaitIcon		= DOM.gI("boxKalendarWaitIcon");
		boxKalendarMonthYear	= DOM.gI("boxKalendarMonthYear");
		boxUdalostiUL			= DOM.gI("boxUdalostiUL");
		udalostContent			= DOM.gI("udalostContent");
		var populateDate = new Date(boxKalendarDateObject.getFullYear(), boxKalendarDateObject.getMonth(), 1, 0, 0, 0);
		boxKalendarPopulate(populateDate, true);
	}
}

function boxKalendarPopulate(populateDate, onWindowLoad) {
	boxKalendarDateObject = populateDate;
	boxKalendarWaitIcon.style.display = "inline-block";
	AJAX.RPC(BASE + "/cms/boxPrehladUdalostiRPC.php", "getArticlesFromMonth", [populateDate.getFullYear(), (populateDate.getMonth() + 1)], function(jsonObject) {
    	if(jsonObject.result != null) {
    		boxKalendarJsonObject = jsonObject.result; // Načítanie JSON resultu do globálnej premennej
    		if(onWindowLoad == false) { // Nespúšťať pri načítaní stránky
    			boxUdalostiUL.innerHTML = "";
    		}
    		for(var i = 0; i < boxKalendarJsonObject.length; i++) {
    			var boxCalendarDaySpanElement = DOM.gI("boxCalendarDaySpan-" + boxKalendarJsonObject[i].thisEventsDate);
    			if(boxCalendarDaySpanElement) {
    				// Vložím prvú anotáciu
    				if(onWindowLoad == false && i == 0) { // Nespúšťať pri načítaní stránky
    					boxKalendarShowAnot(boxKalendarJsonObject[i].thisEventsDate);
    				}
    			
    				// Urobím linku, ktorou budem zobrazoať anotáciu článku s náhľadom a popisom
    				boxCalendarDaySpanElement.innerHTML = '<a href="javascript:void(boxKalendarShowAnot(\'' + boxKalendarJsonObject[i].thisEventsDate + '\'));" title="' + boxKalendarJsonObject[i].title + '">' + boxCalendarDaySpanElement.innerHTML + "</a>";
    			}
    			if(onWindowLoad == false) { // Nespúšťať pri načítaní stránky
    				boxUdalostiUL.innerHTML = boxUdalostiUL.innerHTML + '<li><a href="..' + boxKalendarJsonObject[i].coolURLtitle + '" title="' + boxKalendarJsonObject[i].description + '">' + boxKalendarJsonObject[i].title + '</a></li>';
    			}
    		}
    	}
    	boxKalendarWaitIcon.style.display = "none";
    });
	var firstDay = populateDate.getDay();
	var dayCSSClass = "";
    var currentRow = 0;
    var currentMonthDays = boxKalendarDaysInMonths[populateDate.getMonth()];
    if(populateDate.getMonth() == 1 && (populateDate.getFullYear() % 4) == 0) { // Február a prechodný rok
    	currentMonthDays = currentMonthDays + 1;
    }
    var selectedYear = populateDate.getFullYear();
    var selectedMonth = populateDate.getMonth();
    
    boxKalendarMonthYear.innerHTML = boxKalendarMonths[selectedMonth] + " " + selectedYear;
        
    switch(selectedMonth) {
    	case 11:
    		var nextMonthYear = selectedYear + 1;
	    	var nextMonthMonth = 0;
	    	var prevMonthYear = selectedYear;
	    	var prevMonthMonth = selectedMonth - 1;
	    	break;
	    case 0:
	    	var nextMonthYear = selectedYear;
	    	var nextMonthMonth = selectedMonth + 1;
	    	var prevMonthYear = selectedYear - 1;
	    	var prevMonthMonth = 11;
	    	break;
	    default:
	    	var nextMonthYear = selectedYear;
	    	var nextMonthMonth = selectedMonth + 1;
	    	var prevMonthYear = selectedYear;
	    	var prevMonthMonth = selectedMonth - 1;
	    	break;
    }
    
    var nextMonthDay = 1;
    if(prevMonthMonth == 1 && (prevMonthYear % 4) == 0) { // Február a prechodný rok
    	var prevMonthDay = boxKalendarDaysInMonths[prevMonthMonth] + 1;
    } else {
    	var prevMonthDay = boxKalendarDaysInMonths[prevMonthMonth];
    }
    if(firstDay == 0) {
    	prevMonthDay = prevMonthDay - 5;
    } else {
	    prevMonthDay = prevMonthDay - firstDay + 2;
    }
    
    var currentDayIter = 1;
    var startMonth = false;
    var cellID = new String();
    for(var i = 0; i < boxKalendarTBody.rows.length; i++) {
    	for(var y = 0; y < boxKalendarTBody.rows[i].cells.length; y++) {
    		dayCSSClass = "";
    		if(i == 0) {
    			cellID = boxKalendarTBody.rows[i].cells[y].id
    			if(cellID == "boxKalendarCell_0_" + firstDay.toString()) {
    				startMonth = true;
    			}
    		}
    		
    		if(startMonth == true && currentDayIter <= currentMonthDays) {
    			boxKalendarTBody.rows[i].cells[y].innerHTML = "<span id=\"boxCalendarDaySpan-" + selectedYear + "-" + (selectedMonth + 1) + "-" + currentDayIter + "\">" + currentDayIter + "</span>";
	    		currentDayIter = currentDayIter + 1;
    		} else {
    			if(currentDayIter == 1) {
    				boxKalendarTBody.rows[i].cells[y].innerHTML = "<span class=\"prevNextMonth\" id=\"boxCalendarDaySpan-" + prevMonthYear + "-" + (prevMonthMonth + 1) + "-" + prevMonthDay + "\">" + prevMonthDay + "</span>";
    				prevMonthDay = prevMonthDay + 1;
    			} else {
	    			boxKalendarTBody.rows[i].cells[y].innerHTML = "<span class=\"prevNextMonth\" id=\"boxCalendarDaySpan-" + nextMonthYear + "-" + (nextMonthMonth + 1) + "-" + nextMonthDay + "\">" + nextMonthDay + "</span>";
	    			nextMonthDay = nextMonthDay + 1;
    			}
    		}
    	}
    }
}

function boxKalendarMonthPlus() {
	if(boxKalendarDateObject.getMonth() == 11) {
		boxKalendarDateObject.setMonth(0);
		var newYear = boxKalendarDateObject.getFullYear() + 1;
		boxKalendarDateObject.setYear(newYear);
	} else {
		boxKalendarDateObject.setDate(1);
		boxKalendarDateObject.setMonth(boxKalendarDateObject.getMonth() + 1);
	}
	
    boxKalendarPopulate(boxKalendarDateObject, false);
}

function boxKalendarMonthMinus() {
	if(boxKalendarDateObject.getMonth() == 0) {
		boxKalendarDateObject.setMonth(11);
		var newYear = boxKalendarDateObject.getFullYear() - 1;
		boxKalendarDateObject.setYear(newYear);
	} else {
		boxKalendarDateObject.setDate(1);
		boxKalendarDateObject.setMonth(boxKalendarDateObject.getMonth() - 1);
	}
	
    boxKalendarPopulate(boxKalendarDateObject, false);
}

function boxKalendarShowAnot(thisDate)	{
	var newArticleContent = new String();
	udalostContent.innerHTML = "";

	for(var i = 0; i < boxKalendarJsonObject.length; i++) {
		if(boxKalendarJsonObject[i].thisEventsDate == thisDate) {
			newArticleContent = '<div class="article"><div class="articlePadding">';
			newArticleContent += '	<a href="..' + boxKalendarJsonObject[i].coolURLtitle + '" title="..' + boxKalendarJsonObject[i].title + '"><img src="../app/cmsSiteIcon.php?ID=' + boxKalendarJsonObject[i].ID + '&amp;width=100" width="100" alt="..' + boxKalendarJsonObject[i].title + '" class="image" /></a>';
			newArticleContent += '	<div class="header"><h3><a href="..' + boxKalendarJsonObject[i].coolURLtitle + '" title="..' + boxKalendarJsonObject[i].title + '">' + boxKalendarJsonObject[i].title + '</a></h3></div>';
			newArticleContent += '	<div class="description"><a href="..' + boxKalendarJsonObject[i].coolURLtitle + '" title="..' + boxKalendarJsonObject[i].title + '">' + boxKalendarJsonObject[i].description + '</a></div>';
			newArticleContent += '	<div class="clearLine" />';
			newArticleContent += '	</div>';
			newArticleContent += '	<div class="viac"><a href="..' + boxKalendarJsonObject[i].coolURLtitle + '" title="..' + boxKalendarJsonObject[i].title + '">viac</a></div>';
			newArticleContent += '	<div class="clearLine" />';
			newArticleContent += '</div>';
			udalostContent.innerHTML = udalostContent.innerHTML + newArticleContent;
		}
	}
}
DOM.aE(window, "load", boxKalendarInit, false);
