slideshow = {
	slide : function(i) { 
		a = i; // precedente
		b = this.rand(a); //successivo
		caption = this.caption;
		eff = new Fx.Morph(caption[b], {
			duration: '2000',
			transition: Fx.Transitions.linear
			});
		eff2 = new Fx.Morph(caption[a], {
			duration: '2000',
			transition: Fx.Transitions.linear
			});
		eff.start({'opacity': 1});
		eff2.start({'opacity': 0});

		(function() {slideshow.slide(b);}).delay(4000)

		},

	setElsAbsolute : function(len, caption) {
		for (i=0; i<len; i++) {
			caption[i].setStyle('position','absolute');
			if (i == this.len-1) {
				this.slide(i);
				break;
				}
			else caption[i].setStyle('opacity',0);
			}			

		},
	start : function(caption) {
		this.caption = caption;
		this.len = caption.length;
		if (this.len >1) {
			this.setElsAbsolute(this.len, caption);
			}
		},
	rand : function(prec) {
		p = prec;
		successivo = $random(0, this.len-1);
		while (successivo == prec) { this.rand(p); }
		return successivo;
		}
	}

var slideshow2 = new Class({
		slide : function(prec, succ)
			{ alert(prec+' e '+succ);
				fadeImages = new Array( $(this.images[prec]), $(this.images[succ]) );
				var fxImages = new Fx.Elements(fadeImages, {
					duration : 2000,
					transition: Fx.Transitions.linear
					});
				fxImages.start({
					'0': {
						'opacity': [1,0]
						},
					'1': {
						'opacity': [0,1]
						}
					});
			},
		rand : function()
			{
				var successivo = $random(0, this.images.length-1);
				while (successivo == active) { this.rand(active); }
				return successivo;
			},

		initialize : function(wrapper)
			{
				this.wrapper = $(wrapper);
				this.images = $(wrapper).getElements('img');
				this.setElsAbsolute();
				var rand = this.rand();
				this.slide(activeImage, rand);
			},

		setElsAbsolute : function()
			{
				var images = this.images;
				Array.each(images, function(image, i)
					{
						var op = (i == images.length-1) ? 1 : 0;
						images[i].setStyles({position : 'absolute', opacity : op});
					});
			}
	});

slidingtab = function(prev, next, slidearea, init_tab) {
	this.prev = prev;
	this.next = next;
	this.slidearea = slidearea;
	this.wrapper = $(slidearea).getElements('ul')[0];
	this.tabs = $(slidearea).getElements('li');
	this.activeTab = init_tab-1 || 0; 
	this.visibleArea = {
		w : $(this.slidearea).getStyle('width'),
		h : $(this.slidearea).getStyle('height')
		}

	this.setup = function() {
		var area = this.slidearea;
		var w = this.visibleArea.w.toInt();
		var h = this.visibleArea.h.toInt();
		var activeTab = this.activeTab;
		var wrapper = this.wrapper;
		var tabs = this.tabs;
		var slide = this.slide;
		var max=0;

		$(area).setStyle('overflow','hidden');
		$(area).setStyle('position','relative');
		$(wrapper).setStyle('width',w*this.tabs.length);
		tabs.each(function(i,j){
			max=j++;
			i.setStyle('width',w);
			});

		var fx = new Fx.Scroll(area);
		fx.toElement(tabs[activeTab]);

		$(this.prev).addEvent('click', function(e) { 
			e.stop();					
			if (activeTab > 0) 
				activeTab--;					
			fx.toElement(tabs[activeTab]);
		});
		$(this.next).addEvent('click', function(e) {
			e.stop();
			if (activeTab < max) 
				activeTab++;					
			fx.toElement(tabs[activeTab]);
		});
		}

	this.slide = function() {
		fx.toElement(tabs[prev]);
		}

	}

