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="ffffff";
		}

		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";
		}

		if (navigator.userAgent.toLowerCase().indexOf('gecko/') != -1){
			lightbox.OpacityInicia('opacity',18,0,90,box);
		}else{
			lightbox.OpacityInicia('opacity',30,0,90,box);
		}
	},

	KeyCheck :  function (e) {
		var KeyID = (window.event) ? event.keyCode : e.keyCode;
		if (KeyID==27) {
			lightbox.fechar();
		}
	},

	fechar : function(){
		if (id('opacity')){
			this.removeElement('opacity');
		}
		if (this.position  =! undefined) {
			this.divBox.style.top = '';
			this.divBox.style.left =  '';
		}
		this.reexibeCombos();
		this.divBox.style.display = 'none';
		document.onkeyup = '';
	},

	Opacity_elemento : '',
	Opacity_tamanho_final : 0,
	Opacity_tamanho_atual : 0,
	Opacity_taxa : 0,

	OpacityInicia : function(elemento,taxa,inicio,fim,box){
		this.Opacity_elemento = elemento;
		this.Opacity_taxa = taxa;
		this.Opacity_tamanho_final = fim;
		this.Opacity_tamanho_atual = inicio;
		this.OpacityAnima(box);
	},

	OpacityAnima : function(box){
		if(this.Opacity_tamanho_final!=this.Opacity_tamanho_atual){
			if(this.Opacity_tamanho_final<this.Opacity_tamanho_atual){
				this.Opacity_tamanho_atual = this.Opacity_tamanho_atual-this.Opacity_taxa ;
			}else{
				this.Opacity_tamanho_atual = this.Opacity_tamanho_atual+this.Opacity_taxa ;
			}
			id(this.Opacity_elemento).style.filter = 'alpha(opacity=' + this.Opacity_tamanho_atual + ')';
			id(this.Opacity_elemento).style.opacity = this.Opacity_tamanho_atual/100;
			setTimeout("lightbox.OpacityAnima('" + box + "')",1);
		}else{
			if (box != 'undefined'){
				if (navigator.userAgent.toLowerCase().indexOf('gecko/') != -1){
					lightbox.OpacityInicia(box,5,0,100);
				}else{
					lightbox.OpacityInicia(box,10,0,100);
				}
			}
		}
	},

	apagaCombos : function(){
		drops = document.body.getElementsByTagName('select');
		for(c=0;c<drops.length;c++){
			drops[c].style.visibility='hidden';
		}
		drops = document.body.getElementsByTagName('object');
		for(c=0;c<drops.length;c++){
			drops[c].style.visibility='hidden';
		}
	},

	reexibeCombos : function(box){
		if (id(box)) {
			drops = id(box).getElementsByTagName('select');
			object = id(box).getElementsByTagName('object');
		}else {
			drops = document.body.getElementsByTagName('select');
			object = document.body.getElementsByTagName('object');
		}
		for(c=0;c<drops.length;c++){
			drops[c].style.visibility='visible';
		}
		for(c=0;c<object.length;c++){
			object[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};
	}
}
