//////////////////////////////////////////////////
//GLERIA
var galeria = {
	opt:{
		albums: [],
		images: [],
		preloaded: [],
		btnEvent: false
	},
	loadImages: function(gal, cur) {
		var index = this.opt.albums.length;
		if ( this.opt.albums.contains( gal.dir ) ) {
			index = this.opt.albums.indexOf( gal.dir );
		} else {
			this.opt.albums.include(gal.dir);
			this.opt.images.include(gal.images);
			this.opt.preloaded.include([]);
		}
		$('box').empty();
		$('box').setStyles({
			'width': 'auto',
			'left': 0
		});
		this.insertImages(index);
		this.carousel();
		this.showFull(index, 0);
		this.fxFull_1 = false;
		this.fxFull_2 = false;
		$$('.album-item').each(function(it) {
			it.removeClass('current');
		});
		$(cur).addClass('current');
	},
	insertImages: function( index ) {
		var box = $('box');
		//cont-item
		var cont = $('cont-item');
		
		// Verifica si las images ya fueron precargadas
		var pre_act = this.opt.preloaded[index];
		if ( pre_act.length ) {
			pre_act.each(function(v, k) {
				
				v.setStyle('opacity', '0');
				
				var item = cont.clone();
				item.addClass('cont-item');
				
				var img = item.getElement('a[rel=cont-img]');
				img.removeProperty('rel');
				v.inject(img);
				item.inject(box);
				
				new Fx.Tween(v, {
					property: 'opacity',
					duration: 500
				}).start(0,1);
			});
			return false;
		} else {
			
			var dir = this.opt.albums[index];
			var images = this.opt.images[index];
			var preload = [];
			images.each(function(v, k) {
				
				var item = cont.clone();
				item.addClass('cont-item');
				item.addClass('loader');
				
				url = 'lib/resize.php?dir='+dir+'&img='+v+'&s=70';
				var loader = new Asset.image(url, {
					onload: function(){
						item.removeClass('loader');
						img_act = this;
						new Fx.Tween(img_act, {
							property: 'opacity',
							duration: 500
						}).start(0,1);
					}
				}).setStyle('opacity', '0');
				
				preload.include(loader);
				
				var img = item.getElement('a[rel=cont-img]');
				img.removeProperty('rel');
				img.addEvent('click', function(e, i) {
					e.stop();
					galeria.showFull(i, k);
				}.bindWithEvent(this, index));
				loader.inject(img);
				item.inject(box);
			});
			this.opt.preloaded[index] = preload;
		}
	},
	carousel: function() {
		var s1 = new slideJC({
			box: $('box'),
			classItems: 'cont-item',
			autoComplete: false,
			infinite: false,
			showItems: 6,
			duration: 800
		});
		var ant = $('btn_ant');
		var sig = $('btn_sig');
		ant.removeEvents();
		sig.removeEvents();
		ant.addEvent('click', function(e) {
			e.stop();
			s1.previous();	
		});
		sig.addEvent('click', function(e) {
			e.stop();
			s1.next();
		});
	},
	showFull: function( in_album, in_img ) {
		
		if ( this.fxFull_1 )
			this.fxFull_1.cancel();
		
		if ( this.fxFull_2 )
			this.fxFull_2.cancel();
		
		$('image-full').empty();
		
		var dir = this.opt.albums[in_album];
		var img = this.opt.images[in_album][in_img];
		
		$('btn-down').setProperty('href', 'download.php?dir='+dir+'&img='+img);
		
		url = 'lib/resize.php?dir='+dir+'&img='+img+'&s=400';
		var full = new Asset.image(url, {
			onload: function(){
				var img_act = this;
				var y = this.getSize().y;
				galeria.fxFull_1 = new Fx.Tween('image-full', {
					property: 'height',
					duration: 500,
					onComplete: function() {
						galeria.fxFull_2 = new Fx.Tween(img_act, {
							property: 'opacity',
							duration: 500
						}).start(0,1);
					}
				}).start(y);
			}
		}).setStyle('opacity', '0');
		full.inject('image-full');
	}
};