var SlideGroup = new Class({
	Implements: [Options, Events],
	currentIndex: 0,
	elements: [],
	sliders: [],
	width: [],
	links: [],
	options: {
		elements: [],
		timer: null
	},
	initialize: function(options){
		this.setOptions(options);
		this.addElEvents(this.options['elements']);
	},
	addElEvents: function(els) {
		els.each(function(el, i) {
			var link = el.getElement('a');
			var div = el.getElement('div');
			if(link && div) {
				this.sliders[i] = new Fx.Morph(div);
				div.setStyle("display", "block");
				var w = 0;
				div.getElements("*").each(function(el) {
					w = el.getSize( ).x > w ? el.getSize( ).x : w;
				});
				this.links[i] = link;
				this.width[i] = w;
				this.sliders[i].set({
					"width": 0, "opacity": 0
				});

				parentSite = el.getParent(".site");
				if(parentSite) {
					parentSite.addEvent("click", function(ev) {
						this.sliders.each(function(el, j) {
							this.links[j].removeClass("active");
							if(j != i) {el.start({
								"width": 0, "opacity": 0
							});}
						}.bind(this));
					}.bind(this));
				}

				link.addEvent("click", function(ev) {
					var e = new Event(ev);
					e.stop( );

					this.sliders.each(function(el, j) {
						this.links[j].removeClass("active");
						if(j != i) {el.start({
							"width": 0, "opacity": 0
						});}
					}.bind(this));
	
					if(this.sliders[i].element.getSize( ).x >= this.width[i]) {
						this.sliders[i].start({
							"width": 0, "opacity": 0
						});
					} else {
						this.links[i].addClass("active");
						this.sliders[i].start({
							"width": this.width[i], "opacity": 1
						});
					}
				}.bind(this));
			}
		}.bind(this));
	}
});
