/* (c) Jean Luc Biellmann - Groupe Ressources - 2009  */

var JumpBox = Class.create({
	initialize : function(id,dates) {
		var me = this;
		this.inc = 0.05; // opacity inc
		this.duration = 40; // setTimout inc
		this.pause = 5000; // setTimout inc
		this.id = id;
		this.num = 0;
		this.timeout = null;
		this.opacity = 0;
		var str = '';
		this.dates = dates;
		this.dates.each(function (h) {
			str += '\
				<div class="jumpbox">\
					<p>'+h.key+'<\/p>\
					<div>'+h.value+'<\/div>\
				<\/div>\
			';
		});		
		$(this.id).update(str);
		$$('div.jumpbox').each((function (diapo) {
			diapo.observe('mouseover',this.over.bind(this));
		}).bind(this));
	},
	over : function (e) {
		var obj = Event.element(e);
		while (obj && !obj.hasClassName('jumpbox'))
			obj = obj.parentNode;
		if (obj && obj.hasClassName('jumpbox')) {
			clearTimeout(this.timeout);
			this.opacity=0.5;
			$(this.id).select('div.jumpbox')[this.num].style.opacity = this.opacity;
			this.num = $$('.jumpbox').indexOf(obj);
			this.opacity = 1.;
			$(this.id).select('div.jumpbox')[this.num].style.opacity = this.opacity;
			this.timeout = setTimeout(this.hide.bind(this),this.pause);
		 }
	},
	hide : function () {
		clearTimeout(this.timeout);
		if (this.opacity>0.5) {
			this.opacity-=this.inc;
			$(this.id).select('div.jumpbox')[this.num].style.opacity = this.opacity;
			setTimeout(this.hide.bind(this),this.duration);
		} else {
			this.num = (this.num+1)%this.dates.keys().length;
			this.show();
		}
	},
	show : function () {
		if (this.opacity<1) {
			this.opacity+=this.inc;
			$(this.id).select('div.jumpbox')[this.num].style.opacity = this.opacity;
			setTimeout(this.show.bind(this),this.duration);
		} else {
			this.timeout = setTimeout(this.hide.bind(this),this.pause);
		}
	},
	start : function () {
		this.opacity = $(this.id).style.opacity || 0.5;
		this.timeout = setTimeout(this.show.bind(this),this.duration);
	},
	stop : function () {
		if (this.timeout)
			clearTimeout(this.timeout);
	}
});



