var cal_open = false;

var cal_current_day= [];

var cal_current_date = cal_current_month = new Date();
cal_current_month.setDate(1);
cal_current_month.setHours(0);
cal_current_month.setMinutes(0);

var cal_jours = ['dimanche','lundi','mardi','mercredi','jeudi','vendredi','samedi'];
var cal_mois = ['','janvier','février','mars','avril','mai','juin','juillet','août','septembre','octobre','novembre','décembre'];

function sidecal_start_open(){
	
	if(!cal_open){
		
		new Effect.Morph("calendrier_menu", {style:{width:"650px"},queue:{position:"end",limit:2,scope:"calendrier_menu"},duration:0.3});
		 new Effect.Morph("sidecal", {style:{height:"350px"},queue:{position:"end",limit:2,scope:"calendrier_menu"},duration:0.3,afterFinish:sidecal_open})
		
	}
	

}

function sidecal_start_close(){
	if(cal_open){
		$('sidecal_content').hide();
		//$('sidecal_calendar').style.borderLeft= "0"; 
		//$('sidecal_calendar').style.marginRight= "0"; 
		$('sidecal_content').update( "" );
		cal_fuck_internet_explorer_close();
		
		new Effect.Morph("calendrier_menu", {style:{width:"182px"},queue:{position:"end",limit:2,scope:"calendrier_menu"},duration:0.3});
		new Effect.Morph("sidecal", {style:{height:($('sidecal_calendar').getHeight())+"px"},queue:{position:"end",limit:2,scope:"calendrier_menu"},duration:0.3,afterFinish:sidecal_close})
		
	}

}

function sidecal_open(){
	//alert("ola");
	cal_open = true;
	//$("sidecal_content").style.display = "block";
	//$("sidecal_content").update("hello!!");
	$('sidecal_content').show();
	//$('sidecal_calendar').style.borderLeft= "1px solid #fff";
	//$('sidecal_calendar').style.marginRight= "10px"; 
	cal_fuck_internet_explorer_open();
	
	
}

function sidecal_close(){

	cal_open = false;
	$('sidecal_content').hide();
	

}

function cal_highlight_evenement(date_debut,date_fin,div){
	//div = this.up();
	//alert(date_debut,date_fin);
	debut = new Date(date_debut.substr(0,4), date_debut.substr(5,2)-1, date_debut.substr(8,2));
	fin = new Date(date_fin.substr(0,4), date_fin.substr(5,2)-1, date_fin.substr(8,2));
	// fix ???
	fin.setDate(fin.getDate()+1);
	cal_current_month.setDate(1);
	//alert(cal_current_month);
	var month_finished = false;
	var day = 1;
	$(div).addClassName('dateHighlight');
	while(!month_finished && day <= 32){
		
		if((cal_current_month >= debut) && (cal_current_month <= fin)){
		
			alink = 'datelink_'+cal_current_month.getFullYear()+"_"+(cal_current_month.getMonth()+1)+"_"+cal_current_month.getDate();
			//alert(alink);
			if($(alink)){
				$(alink).addClassName('dateHighlight');
				
				//$(alink).style.backgroundColor = "#0f0";
			}else{
				month_finished = true;
			}
		}
		//alert($(alink).classNames());
		if(!cal_current_month.setDate(cal_current_month.getDate()+1)){
			month_finished = true;
			
		}
		day++;
	}
	cal_current_month.setDate(1);
	cal_current_month.setMonth(cal_current_month.getMonth()-1);
	//alert(cal_current_month);
}
function cal_highlight_clear(div){
	//current_month = new Date(cal_current_date.getFullYear(),cal_current_date.getMonth(),1);
	//div = this.up();
	//alert(this);
	cal_current_month.setDate(1);
	var month_finished = false;
	var day = 1;
	
	$(div).removeClassName('dateHighlight');
	while(!month_finished && day <= 32){
		alink = 'datelink_'+cal_current_month.getFullYear()+"_"+(cal_current_month.getMonth()+1)+"_"+cal_current_month.getDate();
		
		if($(alink)){
				$(alink).removeClassName('dateHighlight');
				
				//$(alink).addClassName('dateCell');
				//$(alink).style.backgroundColor = "#0f0";
			}else{
				month_finished = true;
			}
			
		if(!cal_current_month.setDate(cal_current_month.getDate()+1)){
			month_finished = true;
			
		}
		day++;
	}
	cal_current_month.setDate(1);
	cal_current_month.setMonth(cal_current_month.getMonth()-1);
}

function cal_date_to_string(date){
	//var y = date.getYear();
	var d = cal_jours[date.getDay()]+" "+date.getDate()+" "+cal_mois[date.getMonth()+1]+" "+date.getFullYear();
	return d;
}

function cal_get_elem(date){
	alink = 'datelink_'+date.getFullYear()+"_"+(date.getMonth()+1)+"_"+date.getDate();
	if($(alink)){
		return alink;
	}else{
		return false;
	}
}
function cal_get_day_html(){
	var outp= "<div class='dateSelected' style='text-align:center;overflow:hidden;height:17px'>";
	outp += "<a style='display:block;float:left;border-right:1px solid #fff;border-left:1px solid #fff' href='javascript:void(0)' onclick='sidecal_start_close()' ><img width='17' height='17' src='"+Cake.webroot+"img/icones/fermer_bleu.gif' onmouseover=\"this.setAttribute('src','"+Cake.webroot+"img/icones/fermer_noir.gif')\" onmouseout=\"this.setAttribute('src','"+Cake.webroot+"img/icones/fermer_bleu.gif')\"/></a>";
	
	//outp += "<table cellspacing='0' cellpadding='0' border='0'><tr><td>";
	outp += "<div style='padding:1px;line-height:15px'>";
	outp += "<a href='"+Cake.base+"/evenements/jour/"+cal_current_date.getDate()+"/"+(cal_current_date.getMonth()+1)+"/"+cal_current_date.getFullYear()+"'>"+cal_date_to_string(cal_current_date)+"</a>";
	outp += "</div>";
	//outp += "</td><td align='right'>";
	//outp += "</td></tr></table>";
	outp +=	"</div>";
	
	return outp;
}
function cal_get_loading_html(){
	var outp= "<div class='dateSelected' style='text-align:center;overflow:hidden;height:17px'>";
	outp += "<img src='"+Cake.webroot+"img/icones/chargement_agenda.gif' style='float:left;border-right:1px solid #fff;border-left:1px solid #fff' />";
	
	//outp += "<table cellspacing='0' cellpadding='0' border='0'><tr><td>";
	outp += "<div style='padding:1px;line-height:15px;'>";
	outp += "chargement...";
	outp += "</div>";
	//outp += "</td><td align='right'>";
	//outp += "</td></tr></table>";
	outp +=	"</div>";
	
	return outp;
}
function cal_fuck_internet_explorer_open(){
	if(document.all && cal_open && $('sidecalendar_footer')){
		$('calendrier_menu').absolutize();
		$('calendrier_menu').style.marginTop = "0px";
		$('sidecalendar_footer').style.height = ($('calendrier_menu').getHeight()+8)+"px";
		
	}
}
function cal_fuck_internet_explorer_close(){
	if(document.all && $('sidecalendar_footer')){
			$('calendrier_menu').relativize();
			$('calendrier_menu').style.marginTop = "8px";
			$('sidecalendar_footer').style.height = "0px";
	}
}
function cal_print_content(day){
	var outp = "";
	//alert("printing "+day.length+" records");
	//alert(cal_current_date);
	$(cal_get_elem(cal_current_date)).addClassName("dateSelected");
	
	outp += cal_get_day_html();
	//alert(day);
	outp += "<div style='height:350px;overflow-y:auto;clear:left;'>";
	for(var i=0; i<day.length;i++){
		evenement = day[i]['Evenement'];
		if(evenement.principal==1){
			outp += "<div id=\"cal_evenement_"+evenement['id']+"\" class='sidecal_evenement'";
			
			outp += ">";
			outp += "<table cellspacing='10' cellpadding='0' width='448' border='0'><tr>";
			if(evenement['image']){
			outp += "<td width='100'>";
			outp += "<img src='"+Cake.base+"/images/micro/"+evenement['image']+"' width='100' />";
			outp += "</td>";
			}
			outp += "<td width='350'>";
			outp += "<div class='surtitre1'>"+evenement['dateformat'];
			if(day[i]['Lieu']['id']){
				outp += " / <a href='"+Cake.base+"/lieux/voir/"+day[i]['Lieu']['id']+"'>"+day[i]['Lieu']['nom']+"</a> <span style='color:#999'>"+day[i]['Lieu']['ville']+", "+day[i]['Lieu']['departement']+"</span>";
			}
			outp += "</div><div class='titre2'><a href='"+Cake.base+"/evenements/voir/"+evenement['id']+"'  onmouseover=\"cal_highlight_evenement('"+evenement['debut']+"','"+evenement['fin']+"','cal_evenement_"+evenement['id']+"')\" onmouseout=\"cal_highlight_clear('cal_evenement_"+evenement['id']+"')\">"+evenement['titre']+"</a></div>";
			outp += "<div class='soustitre2'>"+evenement['soustitreformat']+"</div>";
			outp += "</td></tr></table>";
			outp += "</div>";
		}else{
			outp += "<div id=\"cal_evenement_"+evenement['id']+"\" class='sidecal_evenement' style='background:#ff9999;'>";
			outp += "<table cellspacing='10' cellpadding='0' width='450' border='0'><tr>";
			if(day[i]['Parent']['image']){
			outp += "<td width='100'>";
			outp += "<img src='"+Cake.base+"/images/micro/"+day[i]['Parent']['image']+"' width='100' />";
			outp += "</td>";
			}
			outp += "<td width='350'>";
			
			outp += "<div class='surtitre1' style='font-weight:bold'>"+evenement['dateformat'];
			
			if(day[i]['Lieu']['id']){
				outp += " / <a href='"+Cake.base+"/lieux/voir/"+day[i]['Lieu']['id']+"'>"+day[i]['Lieu']['nom']+"</a> <span style='color:#999'>"+day[i]['Lieu']['ville']+", "+day[i]['Lieu']['departement']+"</span>";
			}
			
			outp += "</div>";
			outp += "<div class='titre2' style='display:inline'>"+evenement['titre']+"</div><div class='soustitre2'>"+evenement['soustitre']+"</div>";
			outp += "<div style='padding-top:10px'>";
			outp += "<div class='titre2'><a href='"+Cake.base+"/evenements/voir/"+day[i]['Parent']['id']+"'>"+day[i]['Parent']['titre']+"</a></div>";
			outp += "<div class='soustitre2' style='display:inline'>"+day[i]['Parent']['soustitreformat']+"</div>";
			outp += "<div class='surtitre1'>"+day[i]['Parent']['dateformat']+"</div>";
			outp += "</div>";
			outp += "</td></tr></table>";
			outp += "</div>";
		}
		
	}
	outp += "</div>";
	$('sidecal_content').update(outp);
	
	cal_fuck_internet_explorer_open();
	
	//$('calendrier_menu').makePositioned();
	
	

}
function sidecal_display_month(month,year){
	new Ajax.Updater("sidecal_calendar",Cake.base+"/evenements/sidecal_month/"+month+"/"+year,{
	onComplete: sidecal_on_month
	
	});
	
  	cal_current_month.setMonth(month-1);
	cal_current_month.setDate(1);
	cal_current_month.setYear(year);
	//alert(cal_current_month);
	return false;
}

function sidecal_on_month(){
	cur_elem = $(cal_get_elem(cal_current_date))
	if(cur_elem){
		cur_elem.addClassName("dateSelected");
	}
	
}

function sidecal_display_day(day,month,year){
	//if(!sidecal_open){
	cur_elem = $(cal_get_elem(cal_current_date))
	if(cur_elem){
		cur_elem.removeClassName("dateSelected");
	}
	cal_fuck_internet_explorer_close();
	//alert("date : "+year+"/"+month+"/"+day);
	cal_current_date = new Date();
	cal_current_date.setFullYear(year);
	cal_current_date.setMonth(month-1);
	cal_current_date.setDate(day);
	
	$('sidecal_content').update( cal_get_loading_html());
	cal_fuck_internet_explorer_open();
	/*new Ajax.Request(
		Cake.base+"/evenements/jour/"+day+"/"+month+"/"+year+".json",
	{
      method:'get',
      onSuccess: function(transport){ 
        //alert(transport.statusText+":\n"+transport.responseJSON) 
        cal_current_day = transport.responseText.evalJSON();
        cal_print_content(cal_current_day);
      }
      
    }*/
    
    
    new Ajax.Updater(
    	"sidecal_content",
    	Cake.base+"/evenements/jour/"+day+"/"+month+"/"+year+".ajax",
    	{
    	method:'get',
    	onSuccess:function(){
    		$(cal_get_elem(cal_current_date)).addClassName("dateSelected");
    	}
    	}
    	
  );
	
	sidecal_start_open();
	//}
	
	return false;
}

