var Galeria = Class.create ();

Galeria.prototype = {
	
	initialize:		function (	array_fotos, // array con las fotos y sus medidas
							  		array_fotos_grand, // lo mismo pero con las fotos grandes
									raiz_fotos, // raiz de las fotos
									ampliacion, // boleano, si hay ampliacion o no
									minaturas_display, // array [mostrar miniaturas primera muestra, mostrar miniaturas segunda muestra]
									medidas, // [primera muestra, primera muestra pie, segunda muestra, extra segunda muestra (en caso de float para miniaturas)]
									objeto) { // el nombre del objeto que se ha creado
							this.array_fotos = array_fotos;
							this.array_fotos_min = array_fotos;
							this.array_fotos_grand = array_fotos_grand;
							this.ampliacion = ampliacion;
							this.minaturas_display = minaturas_display,
							this.medidas = medidas,
							this.id_foto = 'lienzoFoto';
							this.raiz_fotos = raiz_fotos;
							this.contenedor = 'lienzoContenedor';
							this.contador = 0;
							this.el_ampliar = 'galAmpliar';
							this.numerador = 'galContador';
							this.pie = 'galPieTexto';
							this.miniaturas = 'galMiniaturas';
							this.ultima_foto = array_fotos.length - 1;
							var ob_prev_boton = $('prevLink');
							var ob_next_boton = $('nextLink');
							ob_prev_boton.objeto = objeto;
							ob_next_boton.objeto = objeto;
							this.extra_contenedor = 2;
							
							$(this.el_ampliar).objeto = objeto;
							$('galCerrar').objeto = objeto;
							
							if (array_fotos.length > 1)
							{
								Event.observe ('prevLink', 'click', this.prevFoto, true);
								Event.observe ('nextLink', 'click', this.nextFoto, true);
							}
							else
							{
								$('prevLink').style.display = 'none';
								$('nextLink').style.display = 'none';
							}
							if (this.ampliacion)
							{
								Event.observe (this.el_ampliar, 'click', this.ampliar, true);
								Event.observe ('galCerrar', 'click', this.cerrar, true);
							}
							else
							{
								$(this.el_ampliar).style.display = 'none';
							}
							if (this.minaturas_display [0] && this.array_fotos.length > 1)
								$(this.miniaturas).style.display = 'block';
							else 
								$(this.miniaturas).style.display = 'none';
							//Event.observe ('pantallaOscura', 'click', this.cerrar, true);
					},
					
							show:		function () {
							$(this.contenedor).style.width = parseInt (this.array_fotos [this.contador][1]) + 2 + 'px';
							$(this.contenedor).style.height= parseInt (this.array_fotos [this.contador][2]) + 5 + 'px';
							$('galeriaFotos').style.width = parseInt (this.array_fotos [this.contador][1]) + this.extra_contenedor + 'px';
							Element.hide (this.id_foto);
							$(this.id_foto).src = this.raiz_fotos + this.array_fotos [this.contador][0];
							new Effect.Appear(this.id_foto, {duration: 0.5, queue: 'end'});
							$(this.numerador).innerHTML = this.contador + 1 + '/' + (this.ultima_foto + 1);
							$(this.pie).innerHTML = this.array_fotos [this.contador][3];
					},
					
	prevFoto:	function (e) {
							var el = Event.element (e);
							var objeto = eval (el.objeto);
							objeto.contador--;
							if (objeto.contador < 0)
								objeto.contador = objeto.ultima_foto;
							objeto.show ();
							
					},
					
	ampliar:		function (e) {
							var el = Event.element (e);
							var objeto = eval (el.objeto);
							objeto.array_fotos = objeto.array_fotos_grand;
							var ob_body = document.getElementsByTagName('body')[0];
							ob_body.style.position = 'relative';
							var offset = Position.realOffset (ob_body);
							var dimensions = Element.getDimensions( ob_body );
							$('pantallaOscura').style.height = dimensions.height;
							$('pantallaOscura').style.visibility = 'visible';
							el.style.display = 'none';
							var galeriaFotos = $('galeriaFotos');
							galeriaFotos.style.position = 'absolute';
							galeriaFotos.style.top = offset[1] + 100 + 'px';
							galeriaFotos.style.left = '100px';
							objeto.extra_contenedor = objeto.medidas [3];
							galeriaFotos.style.width = '680px';
							galeriaFotos.style.borderWidth = '3px';
							$('galPie').style.width =objeto.medidas [2] + 'px';
							$('galBotonera').style.width = objeto.medidas [2] + 'px';
							if (objeto.minaturas_display [1] && objeto.array_fotos.length > 1)
								$(objeto.miniaturas).style.display = 'block';
							else $(objeto.miniaturas).style.display = 'none';
							
							$('galCerrar').style.display = 'block';
							$('galAmpliar').style.display = 'none';
							objeto.show ();
					},
	
							

	cerrar:		function (e) {
							var el = Event.element (e);
							var objeto = eval (el.objeto);
							objeto.array_fotos = objeto.array_fotos_min;
							var ob_body = document.getElementsByTagName('body')[0];
							ob_body.style.position = 'static';
							var offset = Position.realOffset (ob_body);
							$('pantallaOscura').style.visibility = 'hidden';
							el.style.display = 'none';
							$('galeriaFotos').style.position = 'static';
							$('galeriaFotos').style.width = objeto.medidas [0] + 'px';
							$('galPie').style.width = objeto.medidas [1] + 'px';
							$('galBotonera').style.width = objeto.medidas [1] + 'px';
							$('galeriaFotos').style.borderWidth = '1px';
							$(objeto.miniaturas).style.display = 'none';
							$('galAmpliar').style.display = 'block';
							objeto.extra_contenedor = 2;
							objeto.show ();
					},

	nextFoto:	function (e) {
							var el = Event.element (e);
							var objeto = eval (el.objeto);
							objeto.contador++;
							if (objeto.contador > objeto.ultima_foto)
								objeto.contador = 0;
							objeto.show ();
					}
};
						
