// INITIALIZERS ///////////////////////////
var calendar_container;

function initCalendar(container, id, lang) {
	if(lang=='fr'){
		var requirements = checkRequirements();
		
		if (requirements.length) {
			logCalendarErrors(requirements);
			return false;
		}
		
		calendar_container = $('#' + container);
		
		var domain = 'legdpl.com';
		
		var url = 'http://' + domain + '/ajax-calendrier';
		
		if(lang=='en'){
			url = 'http://' + domain + '/en/ajax-calendar';		
		}
		
		$.ajax({
			url:url,
			type:'get',
			dataType:'jsonp',
			data:{},
			success:function(data) {
				calendar_container.html(data.content);
				onCalendarSuccess();
			}
		});
	}
}

function logCalendarErrors(error) {
	try {
		console.log(error);
	} catch (err) {}
}

function onCalendarSuccess(data) {
	$('#toggle-calendar').bind('click', onCalendarClick);
	
	$("#content-slider").slider({
		animate: true,
		value: 43,
		change: onSliderChange,
		slide: onSliderSlide,
		stop: onSliderStop
	});
	
	$("#calendar-container").animate({scrollLeft: $("#calendar-container table").width() / 2 - 350 }, 500);
	
	$('.moreInfoEvent').each(function(){
		var self = this;
		var id = this.id
		var parent_class = $(this).parents('tr').attr('class');
		
		switch (parent_class){
			case 'pierre':
				tooltip_class = 'ui-tooltip-orange'
			break;
			case 'le-1000-km':
				tooltip_class = 'ui-tooltip-blue'
			break;
			case 'leve-toi-et-bouge':
				tooltip_class = 'ui-tooltip-green'
			break;
			case 'aiguise-ta-matiere-grise':
				tooltip_class = 'ui-tooltip-grey'
			break;
		}
		
		var content = $('#'+id+'-container').html();
		
		$(self).click(function(e){
			e.preventDefault();
		});
		
		$(self).qtip({
			content: content,
			position: {
			  my: 'bottom right',  // Position my top left...
			  at: 'top left', // at the bottom right of...
			  target: 'mouse'
			},
			style: {
			  classes: tooltip_class+' ui-tooltip-rounded'
			}
		});
	});
}

function checkRequirements() {
	var requirements = [];
	
	if (!jQuery) {
		requirements.push('jQuery not loaded');
	}
	
	if (!$.ui) {
		requirements.push('jQuery UI not loaded');
	}
	
	if (!$().qtip) {
		requirements.push('jQuery qTip not loaded');
	}
	
	return requirements;
}

// EVENTS ///////////////////////////

function onCalendarClick(ev) {
	ev.preventDefault();
	$('#calendar-zone').toggle('slow',function(){
		if ($(this).is(':hidden')) {
			$('#toggle-calendar').html('[ OUVRIR ]');
		} else {
			$("#calendar-container").animate({scrollLeft: $("#calendar-container table").width() / 2 - 350 }, 200);
			$('#toggle-calendar').html('[ FERMER ]');
		} 
	});
}

function onSliderChange(ev, ui) {
	var maxScroll = $("#calendar-container").attr("scrollWidth") - $("#calendar-container").width();
	$("#calendar-container").animate({scrollLeft: ui.value * (maxScroll / 100) }, 1000);
}

function onSliderSlide(ev, ui) {
	var maxScroll = $("#calendar-container").attr("scrollWidth") - $("#calendar-container").width();
	$("#calendar-container").attr({scrollLeft: ui.value * (maxScroll / 100) });
}

function onSliderStop(ev, ui) {
	if(ui.value>95){
		$('.ui-slider-handle').css('left','95%');
	}
}
