var eventOpened		= null;
var eventWillOpen	= null;
var eventClose		= false;
var eventTimer		= null;
var eventDateX		= 0;
var eventDateY		= 0;

document.observe('dom:loaded', function() {	
	$$('a.event_link').invoke('observe', 'mouseover', observeEventOverTrigger);
	$$('a.event_link').invoke('observe', 'mouseout', observeEventOutTrigger);
		
	// chaque container se garde lui même ouvert, et déclare sa fermeture
	$$('div.event_container').invoke('observe', 'mouseover', observeEventContainerOverTrigger);
	$$('div.event_container').invoke('observe', 'mouseout', observeEventContainerOutTrigger);	
});


function observeEventOverTrigger(event) {
	event.stop();
	var element = event.element();

	// enregistrer le Event à ouvrir
	if (undefined != $(element.readAttribute('rel'))) {
		EventWillOpen 	= element.readAttribute('rel');
		
		position 		= element.getAttribute('id');
		position 		= position.split('@')
		eventDateX		= position[0];
		eventDateY		= position[1];

		refresheventTimer(500);
		
	}

}

function observeEventOutTrigger(event) {
	event.stop();
	var element = event.element();
	var linkedEvent = element.readAttribute('rel');

	// si on ressort sans avoir laissé le temps de s'ouvrir on ne s'ouvre pas
	if (EventWillOpen == linkedEvent) {
		EventWillOpen = null;

	}

	eventClose = true;

	refresheventTimer(700);

}

function observeEventContainerOverTrigger(event) {
	event.stop();
	var element = event.element();
	var linkedEvent = element.readAttribute('id');
	
	// on entre dans un container, on ne doit plus fermer
	eventClose = false;
	
}

function observeEventContainerOutTrigger(event) {
	event.stop();
	var element = event.element();
	var linkedEvent = element.readAttribute('id');

	// on sort d'un container, on est parti pour le fermer
	eventClose = true;
	refresheventTimer(700);
	
}

function executeEventState() {
	if (eventClose) {
		$$('div.event_container').each(function (item) {
			if (item.visible()) {
				item.hide();

			}
		});

		eventClose = null;

	}


	if (EventWillOpen) {
	
		$(EventWillOpen).show();
		
		positionTop = (eventDateY * 22) + 40;
		positionLeft = (eventDateX * 40) - 200;

		$(EventWillOpen).setStyle({
		  top: positionTop+'px',
		  left: positionLeft+'px'
		});
				
		EventWillOpen = null;
		EventOpened = EventWillOpen;

	}

}

function refresheventTimer(delay) {
	if (eventTimer) {
		clearTimeout(eventTimer);
		
	}
	
	eventTimer = setTimeout('executeEventState()', delay);
}
