var Obras = {
	initialize: function(sources){
		this.sources = sources;

		if(this.sources.length > 0){

			var	ref = document.id('obras').getElement('p'),
				container = new Element('div').injectBefore(ref).adopt(ref),
				temp,
				i;

			this.path = BASE.www + 'img/obras/';
			this.opacity = 0.5;

			if(this.sources.length > 1){
				this.images = [];
				this.handles = [];
				this.items = ref.getChildren();

				temp = new Element('ul', {'id': 'obrasHandles'}).setStyle('z-index', this.sources.length).inject(container);
				for(i = 0; i < this.items.length; i++){
					this.items[i].empty();
					this.handles[i] = new Element('li', {'class': 'obra' + ( i + 1)}).setOpacity(0).inject(temp);
				}

				this.loadSource(0);

			}else{
				new Element('img', {'src': this.path + this.sources[0]}).inject(container);
			}
		}
	},

	loadSource: function(i){
		this.images[i] = new Asset.image(this.path + this.sources[i], {onload: this.onLoadSource.pass([i],this)});
	},

	onLoadSource: function(i){
		if(i === 0){
			this.handles[i].setOpacity(1);
			this.items[i].setOpacity(0).fade('in');
		}else{
			this.handles[i].tween('opacity', 0, this.opacity);
			this.items[i].setOpacity(0);
		}

		this.images[i].inject(this.items[i]);

		i += 1;

		if(this.sources.length === i){
			this.onLoadSources();
		}else{
			this.loadSource.delay(100, this, [i]);
		}
	},

	onLoadSources: function(){
		this.viewer = new myViewer(this.items, {
			interval: 5000,
			mode: 'alpha',
			onWalk: this.onWalk.bind(this)
		});

		this.handles.each(function(el, i){
			el.addEvent('click', this.show.pass([i], this));
		},this);

		document.id('obras').getElement('p').addEvents({
			mouseenter: function(){
				this.viewer.stop();
			}.bind(this),
			mouseleave: function(){
				this.viewer.play(true);
			}.bind(this)
		});

		this.viewer.play(true);
	},

	show: function(i){
		this.viewer.walk(i, true);
		this.viewer.play(true);
	},

	onWalk: function(j){
		for(i = 0; i < this.handles.length; i++){
			this.handles[i].setOpacity(i === j ? 1 : this.opacity);
		}
	}
};

