var imageArray = new Array;
var activeImage;
String.prototype.stripHTML = function() {
	return this.replace(/<.*?>/g, "");
}
var GaleriaDestacada = Class.create();
GaleriaDestacada.prototype = {
	initialize: function() {
		this.paginaActual = 0;
		this.cantidadPaginas = 0;
		this.atrasBtn = "";
		this.adelanteBtn = "";
		this.barraThumbnails = "";
		this.thumbs = new Array();
		this.enlacesImagenes = new Array();
		this.cargadores = new Array();
		this.miniaturas = new Array();
		this.cantidadImagenes = 0;
		this.thumbActivo = "";
		this.idImagenActual = "imagenDestacada";
		this.imagenDestacadaCambio = $("imagenDestacadaCambio");
		this.imagenDestacada = $("imagenDestacada");
		this.pathVideoPlayer = "";
		this.boolMostrandoImagenes = true;
		this.boolAnimandoBarra = false;
		this.idImagenInicial = 0;
	},

	start: function (intImagenInicial) {
		this.idImagenInicial = intImagenInicial;
		var anchors = document.getElementsByTagName('a');
		for (var i = 0; i < anchors.length; i++){
			var anchor = anchors[i];
			if (anchor.getAttribute('href') && (anchor.getAttribute('rel') == "galeriaDestacada")){
				imageArray.push({
					pathThumb: anchor.getAttribute('href'), 
					pathMedia: anchor.getAttribute('alt'), 
					tipoMedia: anchor.getAttribute('name'), 
					title: anchor.getAttribute('title')
				})
			}
		}
		this.barraThumbnails.ownerClip = this;
		this.cantidadImagenes = imageArray.length;
		
		
		if (intImagenInicial != 0) {
			var boolPaginaExacta = intImagenInicial%5 > 0 ? false : true;
			this.paginaActual = Math.ceil(intImagenInicial / 5) - (boolPaginaExacta ? 0 : 1);
		}
		this.actualizarEstadoNavegacion();
		
		this.imagenDestacadaCambio.ownerClip = this;
		this.imagenDestacada.ownerClip = this;
		
		this.imagenDestacadaCambio.onload = function () {
			new Effect.Fade(this.ownerClip.imagenDestacada, { duration: 0.5 });
			new Effect.Appear(this, { duration: 0.5});
			this.ownerClip.thumbActivo.cargador.hide();
			this.ownerClip.thumbActivo.imagenCargada = true;
		}
		this.imagenDestacada.onload = function () {
			new Effect.Fade(this.ownerClip.imagenDestacadaCambio, { duration: 0.5 });
			new Effect.Appear(this, { duration: 0.5});
			this.ownerClip.thumbActivo.cargador.hide();
			this.ownerClip.thumbActivo.imagenCargada = true;
		}
		
		$f("videoPlayerHome", this.pathVideoPlayer, 
			{ 
				plugins: { 
					
					controls: null
				
				},
				
				canvas: { 
 
				    backgroundColor: '#000000', 
				    backgroundGradient: 'none'
				    
				}
			}
		);
		$("videoPlayerWrapper").hide();
	},
	
	prevPage: function () {
		if (this.boolAnimandoBarra == false) {
			if (this.paginaActual > 0) {
				this.atrasBtn.setOpacity(1);
				this.barraThumbnails.setStyle({ left: -1000 + 'px' });
				new Effect.Move(this.barraThumbnails, {x:1000, y:0, mode: 'relative', afterFinish : function (effect) { effect.element.ownerClip.actualizarPaginasThumbsAtras(); }});
				this.paginaActual--;
				this.actualizarEstadoNavegacion("anterior");
				this.boolAnimandoBarra = true;
			} 
		}
	},
	
	nextPage: function () {
		if (this.boolAnimandoBarra == false) {
			if (this.paginaActual < (this.cantidadPaginas - 1)) {
				this.adelanteBtn.setOpacity(1);
				new Effect.Move(this.barraThumbnails, { x:-1000, y:0, mode: 'relative', afterFinish : function (effect) { effect.element.ownerClip.actualizarPaginasThumbsAdelante(); }});
				this.paginaActual++;
				this.actualizarEstadoNavegacion("adelante");
				this.boolAnimandoBarra = true;
			}
		} 
	},
	
	actualizarPaginasThumbsAtras: function() {
		Element.remove($("pagina_" + (this.paginaActual + 1)));
		this.barraThumbnails.setStyle({ left: 0 + 'px' });
		this.boolAnimandoBarra = false;
	},
	
	actualizarPaginasThumbsAdelante: function() {
		Element.remove($("pagina_" + (this.paginaActual - 1)));
		this.barraThumbnails.setStyle({ left: 0 + 'px' });
		this.boolAnimandoBarra = false;
	},

	setAtrasBtn: function (atrasBtnElement) {
		this.atrasBtn = atrasBtnElement;
		this.atrasBtn.ownerClip = this;
		this.atrasBtn.onclick = function() {
			this.ownerClip.prevPage();
		}
	},
	
	setAdelanteBtn: function (adelanteBtnElement) {
		this.adelanteBtn = adelanteBtnElement;
		this.adelanteBtn.ownerClip = this;
		this.adelanteBtn.onclick = function() {
			this.ownerClip.nextPage();
		}
	},
	
	actualizarEstadoNavegacion: function (strDireccion) {
		if (this.paginaActual == 0) {
			this.atrasBtn.setOpacity(0.2);
			this.adelanteBtn.setOpacity(1);
		} else if (this.paginaActual == (this.cantidadPaginas - 1)) {
			this.atrasBtn.setOpacity(1);
			this.adelanteBtn.setOpacity(0.2);
		} else {
			this.atrasBtn.setOpacity(1);
			this.adelanteBtn.setOpacity(1);
		}
		this.cargarSetMiniaturas(strDireccion);
	},
	
	cargarSetMiniaturas: function(strDireccion) {
		var intInicio = this.paginaActual * 5;
		
		if ((intInicio + 5) < this.cantidadImagenes) { 
			var intFin = intInicio + 5;
		} else { 
			var intFin = intInicio + (this.cantidadImagenes - intInicio);
		}
		
		var paginaThumbs = document.createElement("div");
		Element.extend(paginaThumbs);
		paginaThumbs.addClassName("paginaThumbs");
		paginaThumbs.setAttribute("id", "pagina_" + this.paginaActual);
		for (var i = intInicio; i < intFin; i++) {
			var contenedorThumb = document.createElement("div");
			Element.extend(contenedorThumb);
			contenedorThumb.addClassName("thumb");
			var thumb = new Image(170, 115);
			Element.extend(thumb);
			thumb.ownerClip = this;
			thumb.setOpacity(0.3);
			thumb.id = i;
			thumb.src = imageArray[i].pathThumb;
			thumb.pieFoto = imageArray[i].title;
			thumb.title = imageArray[i].title.stripHTML();
			thumb.tipoMedia = imageArray[i].tipoMedia;
			thumb.pathMedia = imageArray[i].pathMedia;
			thumb.imagenCargada = false;
			thumb.addClassName("miniatura");
			thumb.setStyle({cursor : "pointer"});
			thumb.onmouseover = function () {
				if (!this.active) {
					this.setOpacity(1);
				}
			}
			thumb.onmouseout = function () {
				if (!this.active) {
					this.setOpacity(0.3);
				}
			}
			thumb.activar = function () {
				this.active = true;
				this.setOpacity(1);
			}
			thumb.desactivar = function () {
				this.active = false;
				this.setOpacity(0.3);
			}
			thumb.onclick = function () {
				if (!this.active) {
					this.ownerClip.idImagenInicial = this.id;
					$("pieFoto").innerHTML = this.pieFoto;
					// $("ubicacion").innerHTML = this.this.ubicacion;
					if (this.tipoMedia == "imagen") {
						this.ownerClip.cambiarImagen(this.pathMedia, this);
						this.ownerClip.desactivarThumbActual(this);
						return false;
					} else if (this.tipoMedia == "video") {
						this.ownerClip.mostrarVideo(this.pathMedia, this);
						this.ownerClip.desactivarThumbActual(this);
						return false;
					}
				}
			}
			if (i == this.idImagenInicial) {
				this.thumbActivo = thumb;
				thumb.activar();
			}
			if (thumb.tipoMedia == "video") {
				var contenedorPlayBtn = document.createElement("div");
				Element.extend(contenedorPlayBtn);
				contenedorPlayBtn.addClassName("videoBtn");
				var playBtn = new Image(170, 115);
				Element.extend(playBtn);
				playBtn.ownerClip = thumb;
				playBtn.setStyle({cursor : "pointer"});
				playBtn.src = "/img/shared/botones/playVideoBtn.png";
				playBtn.alt = "Ver video";
				playBtn.title = thumb.title;
				playBtn.onmouseover = function () {
					if (!this.ownerClip.active) {
						this.ownerClip.setOpacity(1);
					}
				}
				playBtn.onmouseout = function () {
					if (!this.ownerClip.active) {
						this.ownerClip.setOpacity(0.3);
					}
				}
				playBtn.onclick = function () {
					$("pieFoto").innerHTML = this.ownerClip.pieFoto;
					this.ownerClip.ownerClip.mostrarVideo(this.ownerClip.pathMedia, this.ownerClip);
					this.ownerClip.ownerClip.desactivarThumbActual(this.ownerClip);
					return false;
				}
				contenedorPlayBtn.appendChild(playBtn);
				contenedorThumb.appendChild(contenedorPlayBtn);
			}
			var cargador = new Image(170, 4);
			Element.extend(cargador);
			cargador.src = "/img/shared/iconos/loadingIco.gif";
			cargador.addClassName("cargador");
			cargador.hide();
			thumb.cargador = cargador;
			contenedorThumb.appendChild(cargador);
			contenedorThumb.appendChild(thumb);
			paginaThumbs.appendChild(contenedorThumb);
		}
		switch (strDireccion) {
			case "anterior" :
				this.barraThumbnails.insertBefore(paginaThumbs, $("pagina_" + (this.paginaActual + 1)));
				break;
			case "siguiente" :
				this.barraThumbnails.appendChild(paginaThumbs);
				break;
			default: 
				this.barraThumbnails.appendChild(paginaThumbs);
			
		}		
		
	},
	
		
	cambiarImagen: function (strPathImagen, objThumb) {
		if (!this.boolMostrandoImagenes) {
			this.imagenDestacadaCambio.show();
			this.imagenDestacada.show();
			this.boolMostrandoImagenes = true;
			$("videoPlayerWrapper").hide();
			$f("videoPlayerHome").stopBuffering();
		}
		if (!objThumb.imagenCargada) {
			objThumb.cargador.show();
		}
		if (this.idImagenActual == "imagenDestacada") {
			this.imagenDestacadaCambio.src = strPathImagen;
			this.idImagenActual = "imagenDestacadaCambio";
		} else {
			this.imagenDestacada.src = strPathImagen;
			this.idImagenActual = "imagenDestacada";
		}
	},
	
	
	
	mostrarVideo: function (strPathVideo, objThumb) {
		$("videoPlayerWrapper").show();
		$f("videoPlayerHome").play({url: strPathVideo, autoPlay: true, scaling: "fit"});
		if (this.boolMostrandoImagenes) {
			this.imagenDestacadaCambio.hide();
			this.imagenDestacada.hide();
			this.boolMostrandoImagenes = false;
		}
	},
	
	mostrarVideoFueraPlayer: function (strPathVideo) {
		scrollTo(0,0);
		$("videoPlayerWrapper").show();
		$f("videoPlayerHome").play({url: strPathVideo, autoPlay: true, scaling: "fit"});
		if (this.boolMostrandoImagenes) {
			this.imagenDestacadaCambio.hide();
			this.imagenDestacada.hide();
			this.boolMostrandoImagenes = false;
		}
	},
	
	desactivarThumbActual: function (objNuevoThumb) {
		this.thumbActivo.desactivar();
		this.thumbActivo = objNuevoThumb;
		this.thumbActivo.activar();
	}
	
}