﻿// ON override les effects scriptaculous
Object.extend(Element, {
	setHeight: function(element,h) {
   		element = $(element);
    	element.style.height = h + 'px';
	},
	setTop: function(element,t) {
	   	element = $(element);
    	element.style.top = t + 'px';
	}
});

Object.extend(Effect, {
	crossfade: function(elem1, elem2, fadeDuration) {
		Effect.fading = new Effect.Fade(elem1, {duration: fadeDuration});
		Effect.appearing = new Effect.Appear(elem2, {duration: fadeDuration});
	},

	cancelCrossfade: function() {
		if(Effect.fading) Effect.fading.cancel();
		if(Effect.appearing) Effect.appearing.cancel();
	}
});

// Class du ImagesSlideShow
var ImagesSlideShow = Class.create({
	initSlide: function()
	{
		this.iss_cycle = null;
		
		var Iss = $$('.Iss');

		this.iss_count = Iss.length;
		this.iss_current = null;

		for(var i=0; i<this.iss_count; i++)
		{
			Iss[i].observe('mouseover', this.stopSlide.bind(this));
			Iss[i].observe('mouseout', this.startSlide.bind(this));

			var id = parseInt(this.StrRight(Iss[i].readAttribute('id'), 1));
			if(id != 1) Iss[i].hide();
			var onglet = $('ongletIss' + id);
			if(onglet)
			{
				if(id == 1) onglet.addClassName('active');
				onglet.observe('mouseover', function(event,id) { this.stopSlide(); this.toggleSlide(id); }.bindAsEventListener(this,id) );
				onglet.observe('mouseout', this.startSlide.bind(this));
			}
		}

		this.startSlide();
	},

	toggleSlide: function(id, interval) 
	{
		if(interval == null) { 	interval = 0; }
		if(this.iss_current == null) this.iss_current = 1;
		if(id == this.iss_current) return;
		
		$$('.ongletIss').invoke('removeClassName', 'active');

		if(interval != 0)
		{
			Effect.crossfade($('Iss' + this.iss_current), $('Iss' + id), interval);
		}
		else
		{
			Effect.cancelCrossfade();
			$('Iss' + id).setOpacity(1).show();
			$('Iss' + this.iss_current).setOpacity(1).hide();
		}
		$('ongletIss' + id).addClassName('active');
		this.iss_current = id;
	},

	nextSlide: function()	{
		if(this.iss_current == null) this.iss_current = 1;
		
		
		//var next = Math.max(1, (this.iss_current + 1) % (this.iss_count + 1));
		
		var next = (this.iss_current+1);
		if (next > this.iss_count) next = 1;
		
		this.toggleSlide(next, 0.7);
	},

	startSlide: function(oInstance) {
	    
	    this.DestroySlide();
	    
		this.iss_cycle = setInterval(this.nextSlide.bind(this), 4000);
		
		
	},

	stopSlide: function() {
	        clearInterval(this.iss_cycle);
		
	},
	StrRight: function(str, n){
        if (n <= 0)
           return "";
        else if (n > String(str).length)
           return str;
        else {
           var iLen = String(str).length;
           return String(str).substring(iLen, iLen - n);
        }
    },
    DestroySlide: function() {
		
		    clearInterval(this.iss_cycle);
		    
		
	}
});
