	//
	// Copyright © ECILIA SARL
	//

	/*
	* Fonctions générales du site
	*/

	var fades = new Array()

	function fade(container_id) {
		this.period    = 40
		this.duration  = 2000
		this.container = $(container_id)

		fades.push(this)
		this.index = fades.length - 1

		this.start = fade_start
	}

	function fade_start(from_color, to_color) {
		var steps = Math.floor(this.duration / this.period)

		var rf = parseInt(from_color.substr(1, 2), 16)
		var gf = parseInt(from_color.substr(3, 2), 16)
		var bf = parseInt(from_color.substr(5, 2), 16)
		var rt = parseInt(to_color.substr(1, 2), 16)
		var gt = parseInt(to_color.substr(3, 2), 16)
		var bt = parseInt(to_color.substr(5, 2), 16)

		for(var i = 0; i < steps; i++) {
			var r = Math.floor(rf + (rt - rf) / steps * i)
			var g = Math.floor(gf + (gt - gf) / steps * i)
			var b = Math.floor(bf + (bt - bf) / steps * i)
			var color = rgb_to_hex(r, g, b)
			setTimeout('fade_step(' + this.index + ", '" + color + "')", i * this.period)
		}
	}

	function fade_step(index, color) {
		fades[index].container.style.backgroundColor = color
	}

	function create_fade(container_id, from_color, to_color) {
		if( ! $(container_id) )	return

		var object = new fade(container_id)
		object.start(from_color, to_color)
		return object
	}

	/*
	* Fonctions pour l'habillage Octopus
	*/
	var initOctopusDone = false;

	function rgb_to_hex(r, g, b) {
		r = r.toString(16); if( r.length == 1 ) r = '0' + r;
		g = g.toString(16); if( g.length == 1 ) g = '0' + g;
		b = b.toString(16); if( b.length == 1 ) b = '0' + b;
		return '#' + r + g + b;
	}

	function initOctopus(classNames) {

		classTree     = new Array(3);
		classTree[0]  = ['north', 'east', 'south', 'west', 'ne', 'se', 'sw', 'nw'];
		classTree[1]  = ['faux', 'north', 'south'];
		classTree[2]  = ['north', 'east', 'west', 'south'];

		tempdivs = [];
		divs = document.getElementsByTagName('div');

		for (i=0;i<divs.length;i++) {
			for (j=0; j<3; j++) {
				cdiv = divs[i];
				if (cdiv.className.indexOf(classNames[j]) > -1) {
					tempinner = cdiv.innerHTML;
					cdiv.innerHTML = '';
					prevdiv = cdiv;
					for (a=0; a<classTree[j].length; a++) {
					    tempdivs[a]           = document.createElement('div');
					    tempdivs[a].className = classTree[j][a];
					    prevdiv.appendChild(tempdivs[a]);
					    prevdiv = tempdivs[a];
					}
					prevdiv.innerHTML = tempinner;
				}
			}
		}
		initOctopusDone = true;
	}

	function hideLangPanel () {
		Element.hide('lang_panel');
	}

	/* Charge les écouteurs JS sur tout le site */
	function loadAnimation() {

		/* Charge l'habillage ombré pour les css listés */
		initOctopus(['blue']);
		initOctopus(['grey']);
		initOctopus(['orange']);
		initOctopus(['article']);

		if( $('error_panel') ){
			create_fade('error_panel', '#FFFFFF', '#FFDDDD')
		}

		/* Charge les écouteurs d'événements sur les ID's */
		Event.observe('current_lang', 'mouseover',
			function(e){
				Element.show('lang_panel');
			}
		);

		if( $('trial_form')) {
			Event.observe('submit', 'click',
				 function(e) {
					$('trial_form').submit();
					$('submit').disabled = true;
				}
			);
		}

		Event.observe('lang_panel', 'mouseout',
			function(e) {
				var pe = new PeriodicalExecuter(hideLangPanel, 10);
			}
		);
	}

	// Appelle la fonction loadAnimation au chargement de la page
	Event.observe(window, 'load', loadAnimation);