YAHOO.namespace("calendar");
var kalendarAkciUrl = document.URL+'kultura-a-sport/kalendar-akci';

YAHOO.calendar.init = function() {
	kalendarAkci = new YAHOO.widget.Calendar("calendar","calendarContainer", 
	                                                    { LOCALE_WEEKDAYS:"short", 
	                                                      START_WEEKDAY:    1, 
	                                                      MULTI_SELECT:     true,
	                                                      MONTHS_LONG:      ["Leden", "Únor", "Březen", "Duben", "Květen", "Červen", "Červenec", "Srpen", "Září", "Říjen", "Listopad", "Prosinec"],
	                                                      WEEKDAYS_SHORT:   ["ne", "po", "út", "st", "čt", "pá", "so"],
	                                                      WEEKDAYS_LONG:  ["neděle", "pondělí", "úterý", "středa", "čtvrtek", "pátek", "sobota"],
	                                                      hide_blank_weeks: true
	                                                      });
	kalendarAkci.domEventMap = {};
	kalendarAkci.domEventMap[kalendarAkci.Style.CSS_CELL_SELECTABLE] = [
		{tag:null, event:"click", handler: customClick, scope:kalendarAkci, correct:true }
		];
	/*
	kalendarAkci.beforeRenderEvent.subscribe(getDates);
	kalendarAkci.renderEvent.subscribe(addTooltip);
	*/
	kalendarAkci.renderEvent.subscribe(getDates);
	kalendarAkci.render();
}


YAHOO.util.Event.onDOMReady(YAHOO.calendar.init);
var kalendarAkci;
var myDates = {};
var dateHolder = [];

function customClick(e) {
	if (!kalendarAkci){return;}
	var el = YAHOO.util.Event.getTarget(e);
	while (el.tagName != "TD") {
		el = el.parentNode;
	}
	var cellIndex = kalendarAkci.getIndexFromId(el.id);
	var tmpDate = kalendarAkci.cellDates[cellIndex][1] + "/" + kalendarAkci.cellDates[cellIndex][2] + "/" + kalendarAkci.cellDates[cellIndex][0];
	if (myDates[tmpDate]) {
		document.location = kalendarAkciUrl+'/'+kalendarAkci.cellDates[cellIndex][0]+'/'+kalendarAkci.cellDates[cellIndex][1]+'/'+kalendarAkci.cellDates[cellIndex][2];
	} else {
		kalendarAkci.deselect(tmpDate);
	}
	YAHOO.util.Event.stopEvent(e);
}

// ajax request
function getDates() {
	var curDate = kalendarAkci.cfg.getProperty("pagedate");
	var url = "async/clanek/ajaxkalendar/rok/" + curDate.getFullYear()+"/mesic/" + (curDate.getMonth() +1) + "/";
	var transaction = YAHOO.util.Connect.asyncRequest("GET", url, callback, null);
}
// ajax callback
var callback = {
	success: parseNewDates
}
function parseNewDates(o) {
	var newDates = eval("(" + o.responseText + ")");
	myDates = newDates;
	addTooltip();
}
function addTooltip() {
	var tds = YAHOO.util.Dom.getElementsByClassName("calcell", "td", kalendarAkci.table);
	if (myDates) {
		for (var i = 0; i < tds.length; i++) {
			//Parse the current date to (m/d/yyyy)
			var tmpDate = kalendarAkci.cellDates[i][1] + "/" + kalendarAkci.cellDates[i][2] + "/" + kalendarAkci.cellDates[i][0];
			if (myDates[tmpDate]) {
				//This fails in IE, not sure why?!?!
				try {
					kalendarAkci.selectCell(i);
				} catch (e) {}
				dateHolder[dateHolder.length] = myTooltip = new YAHOO.widget.Tooltip(kalendarAkci.cells[i].id + "_tooltip", { 
				                context: kalendarAkci.cells[i].id, 
				                text: myDates[tmpDate],
				                showDelay:500 });
			} else {
				//kalendarAkci.cells[i].
			}
		}
	}
}

