load_calendar = function(tps){
  $('blk_calendar').update(display_calendar(tps+",", true));
}



/*calendar*/
function cal(month, year, str_tps, selectable){
	
	var index_all_tps_month = 0
	
	if(!str_tps)str_tps="";

	var calendar = "";
	var arr_tps;
	
	//var reg = /,/;
	arr_str_tps = str_tps.split(new RegExp(','));
	
	var arr_jour = new Array("D", "L", "M", "M", "J", "V", "S");
	var arr_month = new Array("Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Decembre");
	var arr_year = new Array("2010","2011", "2012", "2013", "2014");
	
	var the_month;
	var day = 0;
	var arr_day_days = new Array(7);
	var arr_day_tpss = new Array(7);
	var arr_all_tps_month = new Array();
	
	if(selectable){
	  var sel_month = "<select id=\"cal_sel_month\" onChange=\"select_change();\" style=\"width:100px;\">";
  		for (i=0;i<=11;i++){
  			if (i==month){
  				sel_month += "<option value=\""+ i+"\" selected=\"selected\">"+arr_month[i]+"</option>";
  			}
  			else{
  				sel_month += "<option value=\""+i+"\">"+arr_month[i]+"</option>";
  			}
  		}
  	sel_month += "</select>";

  	var sel_year = "<select id=\"cal_sel_year\" onChange=\"select_change();\" style=\"width:90px;\">"
  		for (ii=0;ii<=4;ii++){
  			if (arr_year[ii]==year){
  				sel_year += "<option value= " + arr_year[ii] + " selected=\"selected\">" + arr_year[ii] + "</option>"
  			}
  			else{		
  				sel_year += "<option value= " + arr_year[ii] + ">" + arr_year[ii] + "</option>"
  			}
  		}
  	sel_year += "</select>";
	}else{
	  the_month = arr_month[month] + "&nbsp;"+ year;
	}
	
	
	for(i=0;i<7;i++){
		arr_day_days[i] = new Array(31);
		arr_day_tpss[i] = new Array(31);
	}
	
	i = 0;
	
	for(day=1;day<=31;day++){
		dte = new Date(year,month,day);
		tps = dte.getTime();
		num_day = dte.getDay();
		
		tmp_dte = new Date(tps)
		if(tmp_dte.getMonth() ==  month){
		  arr_day_days[num_day][i] = day ;
  		arr_day_tpss[num_day][i] = tps ;
		}
		i++;
	}

	for(num_jour=1;num_jour<8;num_jour++){
	
		if(num_jour==7)num_jour=0;
		var arr_day = arr_day_days[num_jour];
		var arr_tps = arr_day_tpss[num_jour];
		var style="";
		if(num_jour==6 || num_jour==0) style = "background:silver;";
		
		calendar += "<div style=\"width:20px;float:left;margin-right:12px;"+style+"\">";
		calendar += "<b>"+arr_jour[num_jour]+"</b>";
		
		num = num_jour;
		if(num==0)num=7;
		
		arr_day_length = 0;
		first_num_jour = 0;
		for(y=0;y<arr_day.length;y++){
			if( arr_day[y] ){ 
				if( arr_day_length ==0) first_num_jour = arr_day[y];
				arr_day_length++;
			}
		}
		
		if(arr_day_length >= 4 && (first_num_jour - num) > 0){
			calendar += "<div style=\"width:20px;padding:2px;\">&nbsp;</div>";
		}
		
		for(y=0;y<arr_day.length;y++){
			tps = arr_tps[y];
			if(tps){
  			var style="";
  			for(u=0;u<arr_str_tps.length;u++){
  				if(tps==arr_str_tps[u]){
  					style = "background:red;font-weight:bold;";
  					break;
  				}
  			}
  			
  			if(selectable){
  			  index_all_tps_month++;
  			  arr_all_tps_month[index_all_tps_month] = tps;
  			  
  			  calendar += "<div style=\"width:20px;padding:2px;"+style+"\"><a href=\"javascript:sel_day('"+tps+"');\">"+arr_day[y]+"</a></div>";
  			}else{
			    calendar += "<div style=\"width:20px;padding:2px;"+style+"\">"+arr_day[y]+"</div>";
  			}
			}
		}
		calendar += "</div>";	
		if(num_jour==0)break;
	}
	
	if(selectable){
  	return "<div style=\"width:300px;margin-bottom:6px;\">"+sel_month+"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"+sel_year+"<br /><br />"+calendar+"</div>" +
  	"<input type=\"hidden\" id=\"calendar_tps_\" name=\"calendar_tps_\" value=\""+str_tps+"\">"+
  	"<input type=\"hidden\" name=\"post_date[timestamps]\" value=\""+str_tps+"\">"+
  	"<input type=\"hidden\" id=\"month\" value=\""+month+"\">"+
  	"<input type=\"hidden\" id=\"year\" value=\""+year+"\">" + 
  	"<input type=\"hidden\" id=\"str_all_tps_month\" value=\""+arr_all_tps_month.join(",")+"\">"+
  	"<div><a href=\"javascript:sel_all_day();\">Cocher tout le mois</a>&nbsp;&nbsp;|&nbsp;&nbsp;<a href=\"javascript:sel_all_day(1);\">Vider le calendier</a></div>";
	}else{
	  return "<div style=\"width:230px;margin-bottom:6px;\"><div style=\"text-align:center;margin-bottom:6px;border-bottom:1px dotted silver;font-size:13px;\"><b>"+the_month+"</b></div><div>"+calendar+"</div></div>";
	}
}


function display_calendar(calendar_tps, selectable){
  
  if(!calendar_tps){calendar_tps = "";}
	var calendar = "<div id=\"cal\"></div>";
	var arr_str_tps = calendar_tps.split(new RegExp(','));
	arr_str_tps.sort();
	if(arr_str_tps.length>0 && Number(arr_str_tps[arr_str_tps.length - 1]) > 0){
		var date = new Date(Number(arr_str_tps[arr_str_tps.length - 1]));
	}
	else{var date = new Date();}
	
	return "<div id=\"cal\">"+cal(date.getMonth(), date.getFullYear(), calendar_tps, selectable)+"</div>";
}

function select_change(){
	$('cal').update(cal($('cal_sel_month').value , $('cal_sel_year').value, $('calendar_tps_').value, true));
}

function sel_day(tps){
	var str_tps = $('calendar_tps_').value;
	var reg = new RegExp(tps);
	if(parseInt(str_tps.search(reg))>=0){
		str_tps = str_tps.replace(reg,"");
	}else{
		str_tps += ","+tps;
	}
	$('cal').update(cal($('cal_sel_month').value, $('cal_sel_year').value,str_tps, true));
}
function sel_all_day(decoche){
  str_all_tps_month = $('str_all_tps_month').value;
  arr_all_tps_month = str_all_tps_month.split(new RegExp(','));
  if(decoche == 1){
    $('calendar_tps_').value = '';
  }else{
    $('calendar_tps_').value = $('calendar_tps_').value + str_all_tps_month;
  }
  arr_tps = str_all_tps_month.split(new RegExp(','));
  for(y=0;y<arr_tps.length;y++){
		sel_day(arr_tps[y]);
  }
  if(decoche != 1){alert("Pensez à déchocher les jours de relache !");}
}
