var Objects = {
  getHeight: function(object) {
    return $(object).offsetHeight;
  },
  getWidth: function(object) {
    return $(object).offsetWidth;
  },
  getPageviewSize: function() {
	var width, height;
	if (self.innerHeight) {
		width = self.innerWidth;
		height = self.innerHeight;
	} else if (document.documentElement && document.documentElement.clientHeight) {
		width = document.documentElement.clientWidth;
		height = document.documentElement.clientHeight;
	} else if (document.body) {
		width = document.body.clientWidth;
		height = document.body.clientHeight;
	}
	arrayPageSize = {pageWidth:width,pageHeight:height}
	return arrayPageSize;  
  },
  getPageSize: function() {
	var xScroll, yScroll;
	if (window.innerHeight && window.scrollMaxY){
		xScroll = document.body.scrollWidth;
		yScroll = window.innerHeight + window.scrollMaxY;
	} else if (document.body.scrollHeight > document.body.offsetHeight){
		xScroll = document.body.scrollWidth;
		yScroll = document.body.scrollHeight;
	} else {
		xScroll = document.body.offsetWidth;
		yScroll = document.body.offsetHeight;
	}
	var windowWidth, windowHeight;
	if (self.innerHeight) {
		windowWidth = self.innerWidth;
		windowHeight = self.innerHeight;
	} else if (document.documentElement && document.documentElement.clientHeight) {
		windowWidth = document.documentElement.clientWidth;
		windowHeight = document.documentElement.clientHeight;
	} else if (document.body) {
		windowWidth = document.body.clientWidth;
		windowHeight = document.body.clientHeight;
	}
	if(yScroll < windowHeight) pageHeight = windowHeight;
	else pageHeight = yScroll;
	if(xScroll < windowWidth) pageWidth = windowWidth;
	else pageWidth = xScroll;
	arrayPageSize = {pageWidth:pageWidth,pageHeight:pageHeight,windowWidth:windowWidth,windowHeight:windowHeight}
	return arrayPageSize;
  },
  getPageScroll: function(){
	var yScroll;
	if (self.pageYOffset) yScroll = self.pageYOffset;
	else if (document.documentElement && document.documentElement.scrollTop) yScroll = document.documentElement.scrollTop;
	else if (document.body) yScroll = document.body.scrollTop;
	arrayPageScroll = {yScroll:yScroll};
	return arrayPageScroll;
  },
  getPosition:function(element){
	var left=0,top=0;
	if(!element) return {x:left, y:top};
	while (element.offsetParent){ left += element.offsetLeft; top  += element.offsetTop; element = element.offsetParent; }
	left += element.offsetLeft;
	top  += element.offsetTop;
	return {x:left, y:top};
  },
  grow:function(element,newsize,callBack) {
    var size = Objects.getSize(element);
  },
  dumpObject: function(obj) {
	var list=[],item,type;
	for(var i in obj) {
	  item=obj[i];
	  type=typeof obj[i];
	  if(type!='Function' || type!='object') {
		list[list.length]=i+' = '+item;
	  }
	}
	alert(list);
  }
}

var ShadowWindow = function() {}

ShadowWindow.create = function() {
	var pageSize = Objects.getPageSize();
	var divSombra = $('sombra');
	if(!divSombra) {
	  divSombra=$E('div');
	  divSombra.id = 'sombra';
	  divSombra.className = 'popSombra';
	  divSombra.style.height = (pageSize.pageHeight + 'px');	  
	  document.body.appendChild(divSombra);
	}
	divSombra.style.display='block';
	
	var divZoom = $E('div');
	divZoom.id = 'zoom';
	divZoom.className = 'popZoom';
	divZoom.style.width='400px';
	divZoom.style.height='300px';
	
	var divFechar = $E('div');
	divFechar.className = 'fechar';
	
	var aFechar = $E('a');
		aFechar.title = 'fechar';
	aFechar.className = 'fechar';
	aFechar.innerHTML = 'fechar';
	aFechar.href = '#';
	aFechar.onclick = function() {
		ShadowWindow.close(this);
		return false;
	}
	
	var divConteudo = $E('div');
	divConteudo.id='SW-div-conteudo';
	divConteudo.innerHTML='&nbsp;';
	divFechar.appendChild(aFechar);
	divZoom.appendChild(divFechar);
	divZoom.appendChild(divConteudo);
	document.body.appendChild(divZoom);	
	var pageScroll = Objects.getPageScroll();
	var boxTop = pageScroll.yScroll + ((pageSize.windowHeight - 233) / 2);
	var boxLeft = ((pageSize.pageWidth - 440) / 2);
	divZoom.style.top = (boxTop < 0) ? "0px" : boxTop + "px";
	divZoom.style.left = (boxLeft < 0) ? "0px" : boxLeft + "px";
  return divConteudo;
}

ShadowWindow.resize=function(obj) {
	var largura = obj.width;
	var altura = obj.height;
	if(obj.element && obj.element.style) obj.element.style.visibility='visible';
	var box = obj.element.parentNode;
	if(box.id=='zoom') {
		var pageSize = Objects.getPageSize();
		var pageScroll = Objects.getPageScroll();
		var boxTop = pageScroll.yScroll + ((pageSize.windowHeight - altura - 33) / 2);
		var boxLeft = ((pageSize.pageWidth - largura - 40) / 2);
		box.style.top = (boxTop < 0) ? "0px" : boxTop + "px";
		box.style.left = (boxLeft < 0) ? "0px" : boxLeft + "px";
		box.style.width=obj.width + 'px';
		box.style.height='auto';
	}
}

ShadowWindow.apply=function(obj){
  var v=$('SW-div-conteudo');
  if(v && v.id!='') {
	v.innerHTML=obj.content.responseText;
  }
  ShadowWindow.resize({width:obj.width,height:obj.height,element:v});
}

ShadowWindow.close=function() {
  document.body.removeChild($('zoom'));
  $('sombra').style.display='none';
}

var SWFVideo = function(){}
SWFVideo.list = new Array();
SWFVideo.show = function(id) {
  if(document && document.all) {
	open('/videos/'+id,'','width=430,height=350');
  } else {
  var win = ShadowWindow.create()
  if(win) {
	Ajax.Get('/videos/'+id,'NH=1','SW-div-conteudo','POST',SWFVideo.apply);
  } else {
	alert('Ocorreu um erro ao tentar exibir o vídeo!\nVerifique se seu navegador suporta Javascript e se ele está atualizado.\n\nO vídeo será exibido em uma pop-up.');
	open('/videos/'+id,'','width=450,height=400');
  }
  }
}
SWFVideo.apply = function(html) {
  var div=$('SW-div-conteudo'),larg='500px',alt='400px';
  div.style.textAlign = 'center';
  if(div) {
	larg = (div.width?div.width:Objects.getWidth(div))+30;
	alt = (div.height?div.height:Objects.getHeight(div))+30;
  }
  var obj = {content:html,width:larg,height:alt};
  SWFVideo.list.push(obj);
  ShadowWindow.apply(obj);
}

var Images = function(){}
Extend(Images,{
  currentPage:0,
  totalPages:0,
  num:4,
  list: new Array(),
  apply: function() {
	var target = $('lista-box'),list=this.list;
	if(target && target.childNodes.length>0) {
	  for(var i=0,L=target.childNodes;i<L.length;i++) {
		if(L[i].className && L[i].className=='imagem') list.push(L[i]);
	  }
	  this.totalPages = Math.ceil(L.length/this.num);
	  this.setPage(0);
	}
  },
  zoom:function(id) {
	var target=$('imagem-grande');
	var tagIMG=$E('img');
	tagIMG.src='/imagem/s/'+id;
	tagIMG.alt='Carregando imagem...'
	tagIMG.id='tag-img-grande';
	tagIMG.height='300';
	tagIMG.onclick=new Function('window.Images.showFull('+id+')');
	target.innerHTML = '';
	target.appendChild(tagIMG);
  },
  showFull:function(id) {
	var win = ShadowWindow.create();
	if(win) {
	  Ajax.Get('/imagem/f/'+id,'',null,'GET',Images.setFull);
	}
  },
  setFull: function(html) {
	var img = $('tag-img-grande');
	var div=$('SW-div-conteudo'),larg=800,alt=600;
	div.style.textAlign = 'center';
	var obj = {content:html,width:larg,height:alt};
	ShadowWindow.apply(obj);
  },
  prevPage: function() {
	if(this.currentPage>0) {
	  this.setPage(this.currentPage-1);
	}
  },
  nextPage: function() {
	if(this.currentPage<this.totalPages-1) {
	  this.setPage(this.currentPage+1);
	}
  },
  setPage: function(id) {
	var list=this.list, range1=id*this.num,range2=range1+this.num;
	for(var i=0;i<list.length;i++) {
	  if(i>=range1&&i<range2)
	    list[i].style.display='block';
	  else
	    list[i].style.display='none';
	}
	this.currentPage=id;
  }
});