
var ecalendarField = '';
var emonth_fr = new Array('Jan.','Fév.','Mars','Avril','Mai','Juin','Juillet','Août','Sept.','Oct.','Nov.','Déc.');
var emonth_en = new Array('Jan.','Feb.','March','April','May','June','July','August','Sept.','Oct.','Nov.','Dec.');
var eweekdays_fr = new Array('D','L','M','M','J','V','S');
var eweekdays_en = new Array('S','M','T','W','T','F','S');
var xhr;

function eventGetFullYear(date)
{
	if (date.eventGetFullYear)
		return date.eventGetFullYear();
	var Year = date.getYear() % 100;
	return Year + (Year < 38 ? 2000 : 1900);
}
	
function eventDaysInMonth(date)
{
	var Year = eventGetFullYear(date);
	var Month = date.getMonth();
	var Values = [31,28,31,30,31,30,31,31,30,31,30,31];
	if (Month == 1 && ((Year % 4 == 0 && Year % 100 != 0) || (Year % 4 == 0 && Year % 100 == 0 && Year % 400 == 0)))
		return 29;
	return Values[Month];
}

function loadEventCalendarContent(service)
{	
	$('ul.evenement').html('');
	var content = $('#CalendrierEContent' + service + '');
	if (content)
	{
		content.empty();
		var today = new Date();
		var month = parseInt($("#CalendrierEMonth" + service + "").val());
		var year = parseInt($("#CalendrierEYear" + service + "").val());
		var nbOfDays = eventDaysInMonth(new Date(year, month, 1));
		var firstWeekday = new Date(year, month, 1).getDay();
		var lastWeekday = (firstWeekday+nbOfDays)%7;
		var days = $("<div></div>").attr('className','days' + service + '');
		
		for (var i = 1-firstWeekday; i <= nbOfDays+(lastWeekday > 0 ? 7-lastWeekday : 0); i++)
			if (i <= 0 || i > nbOfDays)
				days.append($("<div></div>").html('&nbsp;').css('float','left').css('width',(168/7)+'px'));
			else
				days.append($("<div></div>").attr('rel',i).text(i).addClass((year == eventGetFullYear(today) && month == today.getMonth() && i == today.getDate() ? 'today' : '')).css('float','left').css('text-align','center').css('width',(168/7)+'px'));
		content.append(days);
		
		xhr = $.ajax({
			type: "GET",
			url: "inc/Calendrier/chargeEvenement" + service + ".cfm",
			dataType: "xml",
			data: "mois="+(month+1)+"&annee="+year,
			success: function(xml){
			
				$(xml).find('evenement').each(function(){
					var dateDebut = $(this).find('dateDebut').text().split('/');
					var dateFin = $(this).find('dateFin').text().split('/');	
					var jourDebut = parseInt(dateDebut[0]);
					var moisDebut = parseInt(dateDebut[1]);
					var anneeDebut = parseInt(dateDebut[2]);
					var jourFin = parseInt(dateFin[0]);
					var moisFin = parseInt(dateFin[1]);
					var anneeFin = parseInt(dateFin[2]);
					var titre = $(this).find('titre').text();
					var type = $(this).find('evenementTypeID').text();
					var lieu = $(this).find('lieu').text();
					var lien = $(this).find('lien').text();
					var LaDate = $(this).find('laDate').text();
					var texte = $(this).find('texte').text();
					
					$('div.days' + service + ' div').each(function(){
						if($(this).children().is('a')){
							leJour = $(this).children('a').html();
						}else{
							leJour = $(this).html();
						}
						if((dateFin == '' && jourDebut == leJour || jourDebut == jourFin && moisDebut == moisFin && anneeDebut == anneeFin && jourDebut == leJour) || (moisDebut == moisFin && leJour >= jourDebut && leJour <= jourFin) || (anneeDebut == anneeFin && moisDebut < moisFin && (leJour >= jourDebut && (month+1) == moisDebut || leJour <= jourFin && (month+1) == moisFin)) || (anneeDebut < anneeFin && moisDebut > moisFin && (leJour >= jourDebut && (month+1) == moisDebut || leJour <= jourFin && (month+1) == moisFin))){	
							if($(this).hasClass('dayEvent' + service + '')){
								$(this).children("ul").append('<li>'+titre+'</li>');
							}else{
								$(this).addClass('dayEvent' + service + '');
								$(this).wrapInner('<a></a>');								
								$(this).children('a').attr('class',"type_" + type + "");
								$(this).append('<a class="infoEvenement' + service + ' type_' + type + '">'+titre+'</a>');
								$(this).children('a').attr('href',lien);
								$(this).children(".infoEvenement" + service + "").hide();
								$(this).hover(function(){
									$(this).children(".infoEvenement" + service + "").fadeIn("fast");
								},function(){
									$(this).children(".infoEvenement" + service + "").css('display','none');
								});
							}
						}
					});
					if(texte != ''){
						$('ul.evenement').append('<li><strong>'+LaDate+'</strong><br /><a href="'+lien+'">'+titre+'</a><br />'+lieu+'</li>');
					} else {
						$('ul.evenement').append('<li><strong>'+LaDate+'</strong><br />'+titre+'<br />'+lieu+'</li>');
					}
				});
				$(".evenement li:last").css("border-bottom","none");
			}
		});
	}
}

function toggleEventCalendar(fieldId,lang,service)
{

	var calendar = $('#Calendrier' + service + '');
	if (calendar.length == 0)
	{
		calendar = $("<div></div>").attr('id','CalendrierEvenement' + service + '').css('display','block').css('padding','5px').css('text-align','center');
		$("#CalendrierEvenement" + service + "").append(calendar);
	}
	if (calendar.children().length == 0)
	{
		var regDate = /^((19|20)[0-9][0-9]|[0-9][0-9])\-(0[1-9]|[1-9]|1[012])\-(0[1-9]|[1-9]|[12][0-9]|3[01])$/;
		if(!gup('date') || !gup('date').match(regDate)){
			var d = new Date();
		}else{ 
			var dateURL = gup('date').split('-');
			var d = new Date(dateURL[0],(dateURL[1]-1),dateURL[2]);
		}
		var form = $("<div></div>").attr('className','controls' + service + '').css('margin','0 0 5px 0').css('text-align','left');
		var hidden = $("<input>").attr('type','hidden').attr('id','CalendrierEMonth' + service + '').val(d.getMonth());
		form.append(hidden);
		var hidden = $("<input>").attr('type','hidden').attr('id','CalendrierEYear' + service + '').val(eventGetFullYear(d));
		form.append(hidden);
		
		if (lang == 'fr') {
			form.append($('<a href="' + service + '-calendrier.html">Calendrier annuel</a>').attr('id', 'titreCalendrier' + service + ''));
		} else {
			form.append($('<a href="' + service + '-calendrier.html">Full calendar</a>').attr('id', 'titreCalendrier' + service + ''));
		}
		
		//var buttonPrec = $("<a>").click(function () { xhr.abort(); var month = parseInt($("#CalendrierEMonth").val());var year = parseInt($("#CalendrierEYear").val());$('#CalendrierEYear').val(month > 0 ? year : year-1);$('#CalendrierEMonth').val(month > 0 ? month-1 : 11);$('.textemois').html((lang == 'fr' ? emonth_fr[$('#CalendrierEMonth').val()] : emonth_en[$('#CalendrierEMonth').val()]) + " " + $('#CalendrierEYear').val());loadEventCalendarContent();});
		var buttonPrec = $("<a>").addClass('moisPrec' + service + '').click(function () { xhr.abort(); var month = parseInt($("#CalendrierEMonth" + service + "").val());var year = parseInt($("#CalendrierEYear" + service + "").val());$('#CalendrierEYear' + service + '').val(month > 0 ? year : year-1);$('#CalendrierEMonth' + service + '').val(month > 0 ? month-1 : 11);$('.textemois' + service + '').html((lang == 'fr' ? emonth_fr[$('#CalendrierEMonth' + service + '').val()] : emonth_en[$('#CalendrierEMonth' + service + '').val()]) + " " + $('#CalendrierEYear' + service + '').val());loadEventCalendarContent(service);});
		form.append(buttonPrec);
		
		var textemois = $("<span></span>").attr('class','textemois' + service + '').html((lang == 'fr' ? emonth_fr[d.getMonth()] : emonth_en[d.getMonth()]) + " " + eventGetFullYear(d));
		form.append(textemois);
		
		$(textemois).clone().appendTo('#titreMois' + service + '');		
		
		var buttonSuiv = $("<a>").addClass('moisSuiv' + service + '').click(function () { xhr.abort(); var month = parseInt($("#CalendrierEMonth" + service + "").val());var year = parseInt($("#CalendrierEYear" + service + "").val());$('#CalendrierEYear' + service + '').val(month < 11 ? year : year+1);$('#CalendrierEMonth' + service + '').val(month < 11 ? month+1 : 0);$('.textemois' + service + '').html((lang == 'fr' ? emonth_fr[$('#CalendrierEMonth' + service + '').val()] : emonth_en[$('#CalendrierEMonth' + service + '').val()]) + " " + $('#CalendrierEYear' + service + '').val());loadEventCalendarContent(service);});
		form.append(buttonSuiv);
		//form.appendTo(calendar);	
		
		
		var weekdays = $("<div></div>").attr('className','weekdays' + service + '');
		for (var i=0; i < 7; i++)
			weekdays.append($("<div></div>").html((lang == 'fr' ? eweekdays_fr[i] : eweekdays_en[i])).css('float','left').css('text-align','center').css('width',(168/7)+'px'));
		calendar.append(weekdays);
		calendar.append($("<div></div>").attr('id','CalendrierEContent' + service + '').css('padding','0 0 0 4px'));
		form.appendTo(calendar);
		loadEventCalendarContent(service);
	}
}

function gup( name )
{
  name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
  var regexS = "[\\?&]"+name+"=([^&#]*)";
  var regex = new RegExp( regexS );
  var results = regex.exec( window.location.href );
  if( results == null )
    return false;
  else
    return results[1];
}
