  var MiniAlbum = {

  	"objMiniAlbum" : new Array(), // objeto do div principal
  	"objImagem"    : new Array(), // objeto das imagens grandes
  	"objLegenda"   : new Array(),	// objeto das legendas
  	"objLinks"     : new Array(),	// objeto dos links
  	"objFotos"     : new Array(),	// array com os objetos dos ULs
  	"lastClick"    : new Array(),	// objeto do último thumb clicado

  	"inicio" : function() {
  		// lista de álbuns
  		var listaAlbuns = document.getElementsByTagName("div");
  		var n = 0;

  		for(var album = 0; album < listaAlbuns.length; album++) {

					if(listaAlbuns[album].className == "miniAlbum") {
		  			// obj do album
		  			this.objMiniAlbum[n] = listaAlbuns[album];

			  		// objeto da imagem maior
			  		this.objImagem[n] = this.objMiniAlbum[n].getElementsByTagName("img")[0];

			  		// objeto da legenda
			  		this.objLegenda[n] = this.objMiniAlbum[n].getElementsByTagName("p")[0];

			  		// objeto dos links
			  		this.objLinks[n] = this.objMiniAlbum[n].getElementsByTagName("a")[0];

						// objeto da lista de imagens
						this.objFotos[n] = this.objMiniAlbum[n].getElementsByTagName("ul")[0];

						// coloca os clicks nas imagens
						var objThumbs = this.objFotos[n].getElementsByTagName("li");
						for(var x = 0; x < objThumbs.length; x++) {
							var Thumb = objThumbs[x].getElementsByTagName("img")[0];
							//Thumb.onclick = MiniAlbum.click(Thumb.parentNode.parentNode, Thumb);
							Thumb.onclick = function() { MiniAlbum.click( this.parentNode.parentNode, this ); }
						}

						// se for apenas uma imagem, dá um 'display:none' nos thumbs
						if(this.objMiniAlbum[n].getElementsByTagName("ul")[0].getElementsByTagName("li").length <= 1)
							this.objMiniAlbum[n].getElementsByTagName("ul")[0].style.display = "none";

						// coloca a primeira imagem maior
						this.click(this.objFotos[n].getElementsByTagName("li")[0].parentNode, this.objFotos[n].getElementsByTagName("li")[0].getElementsByTagName("img")[0]);
						n++;
	  		}
  		}
	 	},

  	// Recebe como parâmetro o objeto do LI onde está a imagem e o número de array do objeto UL
  	"showPicture" : function(objLi, n) {
  		var objImg     = objLi.getElementsByTagName("img")[0];
  		var objLegenda = objLi.getElementsByTagName("strong")[0];
  		var objLink    = objLi.getElementsByTagName("a")[0]

			// nome da imagem
  		//var	thumb      = objImg.getAttribute("real").substring(objImg.getAttribute("real").lastIndexOf("/")+1, objImg.getAttribute("real").length); // pega o nome do arquivo
  		//var thumbMaior = thumb.replace(/(.*?)\.(jpg|jpeg|gif)/, "$1_maior.$2"); // adiciona o sufixo '_maior' no nome do arquivo (antes da extensão)

			// altera a imagem maior
  		this.objImagem[n].src   = objImg.getAttribute("real");
  		this.objImagem[n].alt   = objImg.alt;
  		this.objImagem[n].title = objImg.title;

			// altera a legenda
  		this.objLegenda[n].getElementsByTagName("a")[0].innerHTML = objLegenda.innerHTML;
  		this.objLegenda[n].getElementsByTagName("a")[0].href = objLink.href;

  		// altera o link
  		this.objLinks[n].href = objLink.href;
  	},



		// Altera a classe do thumb clicado. Recebe o objeto do thumb e da UL
		"setClick" : function(objImg, n) {
			if(objImg != this.lastClick[n]) {
				//objImg.className = "clicado";
				objImg.src = "http://ce.i.uol.com.br/retrospectiva2007/ativo.gif";
				if(typeof this.lastClick[n] != "undefined")
					this.lastClick[n].src = "http://ce.i.uol.com.br/retrospectiva2007/inativo.gif";
					//this.lastClick[n].className = "";
				this.lastClick[n] = objImg;
			}
		},



		// Recebe como parâmetro o objeto do A, dentro do LI onde está a imagem
		"click" : function(objUl, objImg) {
			// verifica em qual array está o objeto clicado
			var number = 0;
			for(var x = 0; x < this.objFotos.length; x++)
				if(this.objFotos[x] == objUl) {
					number = x;
					break;
				}

			this.numLastImg = number;
			// chama o método para mudar a imagem
			this.setClick(objImg, number);
			setTimeout(function() { MiniAlbum.showPicture(objImg.parentNode, number); }, 20);
		},

		
		"getNumUl" : function (objUl) {
			// verifica em qual array está o próximo objeto
			var number = 0;
			for(var x = 0; x < this.objFotos.length; x++)
				if(this.objFotos[x] == objUl) {
					number = x;
					break;
				}

			return number;
		},

		"proximo" : function(theA) {

			var theUl  = theA.parentNode.parentNode.getElementsByTagName("ul")[0];
			var number = this.getNumUl(theUl);

			// se não for a última foto
			if(this.lastClick[number] != this.objFotos[number].getElementsByTagName("li")[ this.objFotos[number].getElementsByTagName("li").length - 1 ].getElementsByTagName("img")[0]) {
				var proxObj = this.lastClick[ number ].parentNode.nextSibling;
				while(proxObj.nodeName != "LI")
					proxObj = proxObj.nextSibling;

				this.click(proxObj.parentNode.parentNode.getElementsByTagName("ul")[0], proxObj.getElementsByTagName("img")[0]);
			}
			else
		  	this.click(theUl, theUl.getElementsByTagName("li")[0].getElementsByTagName("img")[0]);
		},
		
		"anterior" : function(theA) {
			var theUl  = theA.parentNode.parentNode.getElementsByTagName("ul")[0];
			var number = this.getNumUl(theUl);

			// se não for a última foto
			if(this.lastClick[number] != this.objFotos[number].getElementsByTagName("li")[0].getElementsByTagName("img")[0]) {
				var proxObj = this.lastClick[ number ].parentNode.previousSibling;
				while(proxObj.nodeName != "LI")
					proxObj = proxObj.previousSibling;

				this.click(proxObj.parentNode.parentNode.getElementsByTagName("ul")[0], proxObj.getElementsByTagName("img")[0]);
			}
			else
		  	this.click(theUl, theUl.getElementsByTagName("li")[ theUl.getElementsByTagName("li").length - 1 ].getElementsByTagName("img")[0]);
		}
  }

  window.onload = function () {
		MiniAlbum.inicio();
	}
