var timer;
	
$(function(e) {

	var currentDate = getURLParam('date');
	var datePickerOptions = {
		inline: true,
		dayNames: ['Dimanche', 'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi'],
		dayNamesMin: ['D', 'L', 'M', 'M', 'J', 'V', 'S'],
		dayNamesShort: ['Dim', 'Lun', 'Mar', 'Mer', 'Jeu', 'Ven', 'Sam'],
		monthNames: ['Janvier','Février','Mars','Avril','Mai','Juin','Juillet','Août','Septembre','Octobre','Novembre','Décembre'],
		beforeShowDay : function(date) {
			var className = '';
			var d = zeroPad(date.getDate(), 2);
			var y = date.getFullYear();
			var m = zeroPad(date.getMonth()+1, 2);
			var mysql_date = y + '-' + m + '-' + d;
			
			if(typeof(concerts[mysql_date]) != 'undefined') {
				className = 'ui-state-event';
			}
			
			return [true, className, mysql_date];
		},
		minDate: calMinDate,
		maxDate: calMaxDate

	};
	
	if(currentDate != '') {
		var year = parseInt(currentDate.substring(0,4), 10);
		var month = parseInt(currentDate.substring(5,7), 10) - 1;
		var day = parseInt(currentDate.substring(8,10), 10);
		
		datePickerOptions['defaultDate'] = new Date(year, month, day);

	}

	$calendrier = $('#calendrier');

	$calendrier.datepicker(datePickerOptions);
	
	$calendrier_hover = $('#calendrier_hover');
	
	setHoverEvents();

});

function setHoverEvents() {

	var hoverX1;
	
	$('#calendrier td.ui-state-event[title]').mouseenter(function(e1) {
		clearTimeout(timer);
	
		var date = $(this).attr('title');
		var boxContent = new Array();

		if(typeof(concerts[date]) != 'undefined') {
			var i = 0;
			var htmlData = [];
			$.each(concerts[date], function(id, data) {
				if(id != 'fr') {
					htmlData.push('<div class="calendar_hover_show">');
					htmlData.push('<h2><a href="'+data.link+'">'+data.title+'</a></h2>');
					if(typeof(salles[data.room]) != 'undefined') {
						htmlData.push('<p>'+salles[data.room]+', '+ data.time +'</p>');
					}
					else {
						htmlData.push('<p>'+ data.time +'</p>');
					}
					htmlData.push('</div>');
				}
			});
			
			var left = $(this).position().left;
			var top = parseInt($(this).position().top, 10);
			
			if(typeof(home_page) != 'undefined') {
				$calendrier_hover.css('top', top+82+'px');
				$calendrier_hover.css('left', left+2+'px');
			}
			else {
				$calendrier_hover.css('top', top+219+'px');
				$calendrier_hover.css('left', left+23+'px');
			}
			
			$calendrier_hover.html(htmlData.join(''));
			
			hoverX1 = findPos($calendrier_hover.get(0)).left;
			hoverY1 = findPos($calendrier_hover.get(0)).top;
			
			hoverX2 = hoverX1 + $calendrier_hover.width();
			hoverY2 = hoverY1 + $calendrier_hover.height();
			
			$('#calendrier_close').click(function(e2) {
				$calendrier_hover.css('top', '-10000px');
			});
		}
	});
	
	$('#calendrier td.ui-state-event').mouseleave(function(e2) {
		
		if(e2.pageX >= hoverX1 && e2.pageX <= hoverX2 && e2.pageY >= hoverY1 && e2.pageY <= hoverY2) {}
		else {
			timer = setTimeout(hideOver, 1000);
		}
	});
	
	$calendrier_hover.mouseleave(function(e3) {
		timer = setTimeout(hideOver, 1000);
	});
	
	function hideOver() {
		$calendrier_hover.css("top", "-10000px");
	}

}

function zeroPad(num,count) {
	var numZeropad = num + '';
	while(numZeropad.length < count) {
		numZeropad = "0" + numZeropad;
	}
	return numZeropad;
}

function findPos(obj) {
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		do {
			curleft += obj.offsetLeft;
			curtop += obj.offsetTop;
		} while (obj = obj.offsetParent);
	}
	return {'left':curleft, 'top': curtop};
}

function getURLParam(name) {
	name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
	var regexS = "[\\?&]"+name+"=([^&#]*)";
	var regex = new RegExp( regexS );
	var results = regex.exec( window.location.href );
	
	if(results == null) {
		return "";
	}
	else {
		return results[1];
	}
}