var PTLgallery = new Class({
	//http://www.mootorial.com/wiki/mootorial/02-class#classes
	//Extends:,
	//http://www.mootorial.com/wiki/mootorial/02-class/01-class.extras#the-options-class
	//Implements: [Chain, Options, Events],
	options: {
		image_load: 0,
		image_container: 'bomba',
		image_source: 'fotenha',
		image_extesion: '.jpg',
		image_path: 'arquivos/',
		thumb_container: 'fotinhos',
		thumb_size: 130, //incluindo bordas
		thumb_trilha: 520,
		thumb_left: 0
	},
	initialize: function() {
		ops = this;
		this.image_container = $(this.options.image_container);
		this.image_source = $(this.options.image_source);
		this.esquerda = $('esquerda');
		this.direita = $('direita');
		this.thumb_container = $(this.options.thumb_container);
		this.requisicao();
	},
	requisicao: function(opa) {
		if(!opa){
			opa = 'destaque';
			}
		new Request.JSON({
			url: 'http://www.ronaldoinc.art.br/home/imgjson/'+opa,
			secure: false,
			method: 'get',
			onComplete: function(images) {
				ops.images = images;
				ops.transicao().start(0);
				//Galeria horizontal
				ops.thumb_container.empty();
				ops.contador = 0;
				ops.images.each(ops.mostra);
				$$('.thumbs').addEvent('click', function() {
					ops.options.image_load = this.getProperty('rel');
					//console.log(this.getProperty('rel'));
					ops.transicao().start(0);
				});
				ops.thumb_container.set('tween', {duration: 'long'});
				ops.thumb_container.tween('left', 0);
			}
		}).send();
	},
	navegar: function(direction) {
		if (this.fading) return;
		(direction == '+') ?
			ops.options.image_load++ :
			(direction == '-') ?
					ops.options.image_load-- :
					ops.options.image_load;
		this.transicao().start(0);
	},
	verifica: function() {
		(ops.options.image_load == 0) ?
			ops.esquerda.fade(0) :
			ops.esquerda.fade(1);
		((ops.images.length - 1) == ops.options.image_load) ?
			ops.direita.fade(0) :
			ops.direita.fade(1);
	},
	transicao: function() {
		return new Fx.Tween(ops.image_source, {
			property: 'opacity',
			link: 'cancel',
			onStart: function() {
				ops.fading = true;
			},
			onComplete: function() {
				ops.redimensiona();
				total = ops.options.image_load;
				$('ftotal').set('text', ops.images.length);
				$('fatual').set('text', ++total);
				$('fnome').set('text', ops.images[ops.options.image_load].nome);
			},
			onCancel: function() {
				alert('cancelado');
				//console.log('cancelado');
			}
		});
	},
	getImagePath: function(current) {
		return this.options.image_path + current + this.options.image_extesion;
	},
	redimensiona: function() {
		ops.verifica();
		new Asset.image(cuca = ops.getImagePath(ops.images[ops.options.image_load].id), {
			onload: function() {
				//console.log(cuca);
				ops.image_source.set({ src: cuca }).fade(0);
				var myEffect = new Fx.Morph(ops.image_container, {
					onComplete: function() {
						ops.image_source.fade(1);
						ops.fading = false;
					}
				}).start({
					width: ops.image_source.offsetWidth,
					height: ops.image_source.offsetHeight
				});
			}
		});
	},
	mostra: function(element) {
		var ovo = new Element('img', {
			src: ops.getImagePath(element.id+'_t'),
			'class': 'thumbs',
			rel: ops.contador
		}).inject(ops.thumb_container);
		ops.contador++;
	},
	varia: function() {
		largura = (ops.images.length * ops.options.thumb_size);
		ops.options.thumb_left = ops.options.thumb_left - ops.options.thumb_trilha;
		if(ops.options.thumb_left*-1 >= largura)
			ops.options.thumb_left = 0;
		ops.thumb_container.set('tween', {duration: 'long'});
		ops.thumb_container.tween('left', ops.options.thumb_left);
	},
	volta: function() {
		largura = (ops.images.length * ops.options.thumb_size);
		ops.options.thumb_left = ops.options.thumb_left + ops.options.thumb_trilha;
		if(ops.options.thumb_left >= 0)
			ops.options.thumb_left = 0;
		ops.thumb_container.set('tween', {duration: 'long'});
		ops.thumb_container.tween('left', ops.options.thumb_left);
	}
});

var start = function() {

	var myPTLgallery = new PTLgallery();

	$('direita').addEvents({
		click: function() {
			myPTLgallery.navegar('+');
		}
	});
	$('esquerda').addEvent('click', function() {
			myPTLgallery.navegar('-');
	});

	$$('.lino').addEvent('click', function() {
		myPTLgallery.requisicao(this.getElement('a').getProperty('rel'));
		myPTLgallery.options.image_load = 0;
		$$('.lino').getElement('a').set('class', 'menudesativo');
		this.getElement('a').set('class', 'menuativo');
	});
	
	$('ronaldoinc').addEvent('click', function() {
		$('biografia').set('tween', {duration: 'long'}).tween('left', 10);
		$('agenda').set('tween', {duration: 'long'}).tween('left', -2000);
		$('entrada').set('tween', {duration: 'long'}).tween('left', -2000);
		$('contato').set('tween', {duration: 'long'}).tween('left', -2000);
	});

	$('mcontato').addEvent('click', function() {
		$('biografia').set('tween', {duration: 'long'}).tween('left', -2000);
		$('agenda').set('tween', {duration: 'long'}).tween('left', -2000);
		$('entrada').set('tween', {duration: 'long'}).tween('left', -2000);
		$('contato').set('tween', {duration: 'long'}).tween('left', 10);
	});

	$('magenda').addEvent('click', function() {
		$('biografia').set('tween', {duration: 'long'}).tween('left', -2000);
		$('agenda').set('tween', {duration: 'long'}).tween('left', 10);
		$('entrada').set('tween', {duration: 'long'}).tween('left', -2000);
		$('contato').set('tween', {duration: 'long'}).tween('left', -2000);
	});

	$('percorre').addEvent('click', function() {
		myPTLgallery.varia();
	});

	$('retorna').addEvent('click', function() {
		myPTLgallery.volta();
	});

};

window.addEvent('domready', start);