function id(id) {
  var elemento = document.getElementById(id);
  return elemento;
}
lightbox = {
	contentBox : '',
	divBox : '',
	position : '',

	abrir : function(box, fadeColor, position){
		this.position = position;
		if (id('opacity')) {
			this.fechar();
		}
		document.onkeyup = this.KeyCheck;
		
		var divOpacity = document.createElement("a");
		var objBody = document.getElementsByTagName("body").item(0);
		if (fadeColor == undefined) {
			fadeColor="000000";
		}

		divOpacity.setAttribute('id','opacity');
		divOpacity.setAttribute('href','javascript:lightbox.fechar();');
		divOpacity.style.cursor="default";
		divOpacity.style.position="absolute";
		divOpacity.style.zIndex=888;
		divOpacity.style.top="0px";
		divOpacity.style.left="0px";
		divOpacity.style.lineHeight="0px";
		divOpacity.style.background="#"+fadeColor;
		divOpacity.style.width=this.pegaMedidas().pw+"px";
		divOpacity.style.height=this.pegaMedidas().ph+"px";
		divOpacity.style.MozOpacity=.0; // transparencia FF
		divOpacity.style.opacity=.0; // transparencia  FF, Opera, Safari, Netscape
		divOpacity.style.filter="Alpha(Opacity=0)"; // transparencia  IE
		objBody.appendChild(divOpacity);

		this.apagaCombos();
		this.reexibeCombos(box);

		this.divBox = id(box);
		this.divBox.style.filter = 'alpha(opacity=0)';
		this.divBox.style.opacity = '0';
		this.divBox.style.display = '';
		this.divBox.style.position = "absolute";
		this.divBox.style.zIndex=999;
		
		if (this.position != undefined){
			this.divBox.style.top = id(position).offsetTop + this.divBox.offsetTop + "px";
			this.divBox.style.left =  id(position).offsetLeft + this.divBox.offsetLeft +"px";
		}else {
			this.divBox.style.top = this.pegaMedidas().sv + (this.pegaMedidas().wh - this.divBox.offsetHeight)/2 + "px";
			this.divBox.style.left = this.pegaMedidas().sh + (this.pegaMedidas().ww - this.divBox.offsetWidth)/2 + "px";
		}

		lightbox.animaOpacity('opacity',0,95,50);
		lightbox.animaOpacity(box,0,100,1000);
	},

	KeyCheck :  function (e) {
		var KeyID = (window.event) ? event.keyCode : e.keyCode;
		if (KeyID==27) {
			lightbox.fechar();
		}
	},

	fechar : function(){
		var situacao = '';
		this.removeElement('opacity')
		if (this.position  =! undefined) {
			this.divBox.style.top = '';
			this.divBox.style.left =  '';
		}
		this.reexibeCombos();
		//lightbox.animaOpacity('divTestes',100,0,100);
		this.divBox.style.display = 'none';
		document.onkeyup = '';

	},

	animaOpacity : function (objId, opacInicio, opacFim, tempo) {
		var velocidade = Math.round(tempo / 100);
		var cont = 0;
		if(opacInicio > opacFim) {
			for(i = opacInicio; i >= opacFim; i--) {
				//alert(i);
				//setTimeout("lightbox.trocaOpacity2(" + i + ",'" + objId + "')",(cont * velocidade));
				lightbox.trocaOpacity2(i, objId)
				if (i == 0) {
					//alert('terminou anima');
				}
				cont++;
			}
		} else if(opacInicio < opacFim) {
			for(i = opacInicio; i <= opacFim; i++) {
				setTimeout("lightbox.trocaOpacity(" + i + ",'" + objId + "')",(cont * velocidade));
				cont++;
			}
		}
		//alert(objId);
		return 'done';
	},

	trocaOpacity : function(opacity, objId) {
		if (id(objId)){
			var objeto = id(objId).style;
			objeto.opacity = (opacity / 100);
			objeto.MozOpacity = (opacity / 100);
			objeto.KhtmlOpacity = (opacity / 100);
			objeto.filter = "alpha(opacity=" + opacity + ")";
		}
	},

	trocaOpacity2 : function(opacity, objId) {
			//alert('opac=' + opacity + 'id=' + objId);
			//alert(opacity);
			var objeto = id(objId).style;
			objeto.opacity = (opacity / 100);
			objeto.MozOpacity = (opacity / 100);
			objeto.KhtmlOpacity = (opacity / 100);
			objeto.filter = "alpha(opacity=" + opacity + ")";
	},

	apagaCombos : function(){
		drops = document.body.getElementsByTagName('select');
		for(c=0;c<drops.length;c++){
			drops[c].style.visibility='hidden';
		}
	},

	reexibeCombos : function(box){
		if (id(box)) {
			drops = id(box).getElementsByTagName('select');
		}else {
			drops = document.body.getElementsByTagName('select');
		}
		for(c=0;c<drops.length;c++){
			drops[c].style.visibility='visible';
		}
	},

	removeElement: function(divApagada) {
	  var oldDiv = id(divApagada);
	  document.body.removeChild(oldDiv);
	},

	pegaMedidas : function(){
		// Pega altura e largura do conteudo da pagina
		var windowWidth, windowHeight;
		if (self.innerHeight) {	// Todos exceto IE entram aqui
			windowWidth = self.innerWidth;
			windowHeight = self.innerHeight;
		} else if (document.documentElement && document.documentElement.clientHeight) { // IE 6, IE 7 entraram aqui
			windowWidth = document.documentElement.clientWidth;
			windowHeight = document.documentElement.clientHeight;
		} else if (document.body) { // Nenhum testado entrou aqui, deixo por garantia
			windowWidth = document.body.clientWidth;
			windowHeight = document.body.clientHeight;
		}
		// Pega altura e largura da pagina
		var pageWidth, pageHeight;
		
		if (window.innerHeight && window.scrollMaxY) {	// Nenhum testado entrou aqui, mas deixo por garantia
			pageWidth = document.body.scrollWidth;
			pageHeight = window.innerHeight + window.scrollMaxY;
		} else if (document.body.scrollHeight > document.body.offsetHeight){ 
			// Opera9, Mac 3 para windows entram aqui
			pageWidth = document.body.scrollWidth;
			pageHeight = document.body.scrollHeight;
		} else { //IE6, IE7, FF, Netscape entram aqui.
			pageWidth = document.body.offsetWidth;
			pageHeight = document.body.offsetHeight;
		}	

		if(pageHeight < windowHeight){
			pageHeight = windowHeight;
		}else {
			if(/Internet Explorer/.test(navigator.appName)) {
				//pageHeight+=30;  // corrigir bug IE
			}
		}

		/*if(pageWidth < windowWidth){
			pageWidth = windowWidth;
		}*/

		// Pega altura e largura do scroll
		var scrollH, scrollV;

		if (self.pageYOffset) {
			scrollV = self.pageYOffset;
			scrollH = self.pageXOffset;
		} else if (document.documentElement && (document.documentElement.scrollTop || document.documentElement.scrollLeft)){	 // Explorer 6 Strict
			scrollV = document.documentElement.scrollTop;
			scrollH = document.documentElement.scrollLeft;
		} else if (document.body) {// all other Explorers
			scrollV = document.body.scrollTop;
			scrollH = document.body.scrollLeft;	
		}

		return {pw:pageWidth,ph:pageHeight,ww:windowWidth,wh:windowHeight,sh:scrollH,sv:scrollV};
	}
}