var calendar = {
	/**
	*	Initializes our calendar
	*/
	init: function(){
	
	    	//get current date
		var currentDate = new Date();
		var currentMonth = currentDate.getMonth() + 1;
		var currentDay = currentDate.getDate();
		var currentYear = currentDate.getFullYear();
		
		// create our calendar
		calendar.calendar = new YAHOO.widget.Calendar("calendar", {
			iframe:false,
			hide_blank_weeks:true,
			LOCALE_WEEKDAYS:"short",
            		START_WEEKDAY: 1
		});	
		
		function dateToLocaleString(dt, cal) {
                	var wStr = cal.cfg.getProperty("WEEKDAYS_LONG")[dt.getDay()];
                	var dStr = dt.getDate();
                	var mStr = cal.cfg.getProperty("MONTHS_LONG")[dt.getMonth()];
               	 	var yStr = dt.getFullYear();
                	return (wStr + ", " + dStr + " " + mStr + " " + yStr);
		}
	
		function  theSelectHandler(type,args,obj) {
			//Get the date that is selected on the calendar
			var dates = args[0];
			var date = dates[0];
			var year = date[0], month = date[1], day = date[2];	
			if(month <10) month ="0"+month ;
			if(day <10) day="0"+day;	
			var date = year + "-" + month  + "-" + day;
		
			getEvents(date);
		}	

		function theDeselectHandler(type, args, obj) {
			//Get the date that is selected on the calendar
			var dates = args[0];
			var date = dates[0];
			var year = date[0], month = date[1], day = date[2];	
			if(month <10) month ="0"+month ;
			if(day <10) day="0"+day;				
			var date = year + "-" + month  + "-" + day;	
			
		};
				
		calendar.calendar.selectEvent.subscribe(theSelectHandler,calendar.calendar, true);	
		calendar.calendar.deselectEvent.subscribe(theDeselectHandler, calendar.calendar, true);
		
		calendar.calendar.cfg.setProperty("WEEKDAYS_SHORT", ["Dim", "Lun", "Mar", "Mer", "Jeu", "Ven", "Sam"]); 
		calendar.calendar.cfg.setProperty("MONTHS_LONG", ["Janvier", "F&eacute;vrier", "Mars", "Avril", "Mai", "Juin", "Juillet", "Ao&ucirc;t", "Septembre", "Octobre", "Novembre", "D&eacute;cembre"]);
				
		calendar.calendar.renderEvents = function(workingDate, cell) {
			YAHOO.util.Dom.addClass(cell, "eventdates");
		}
		
	}
};

var error = function(o){};

//plans // 
var showPlan = function(o){
	YAHOO.util.Dom.get('kiplan-content').innerHTML = o.responseText;
};

var callbackPlan = {success:showPlan, failure:error};

var makeRequestPlan = function(){
	var requestPlan = YAHOO.util.Connect.asyncRequest('GET', '/kiplan/getLatestPlan.php', callbackPlan);
};

//events // 		
var showEvents = function(o){
	YAHOO.util.Dom.get('kiplan-events').innerHTML = o.responseText;
	
};

var callbackEvents = {success:showEvents, failure:error};

var getEvents = function(seldate){
	var requestEvents = YAHOO.util.Connect.asyncRequest('GET', '/kiplan/getEvents.php?date=' + seldate , callbackEvents);
};		
		
//event dates// 
var showEventsDates = function(o){
	var dates = [];
		
	// Use the JSON Utility to parse the data returned from the server
        try {
            dates = YAHOO.lang.JSON.parse(o.responseText);
        }
        catch (x) {
            //alert("JSON Parse failed!");
            return;
        }	

	var len =  dates.length;
        for (var i = 0, len ; i < len; ++i) {
             	var d = dates[i];
		calendar.calendar.addRenderer(d.start, calendar.calendar.renderEvents);
        }
		
	// render calendar		
	calendar.calendar.render();			
};

var callbackEventsDates = {success:showEventsDates, failure:error};

var getEventsDates = function(){
	var requestEvents = YAHOO.util.Connect.asyncRequest('GET', '/kiplan/getDates.php', callbackEventsDates);
};	

YAHOO.util.Event.addListener(window,'load',getEventsDates);
YAHOO.util.Event.onAvailable('kiplan-content', makeRequestPlan);
YAHOO.util.Event.onDOMReady(calendar.init);