//
//  Biblioteca de DHTML. 
//  Professor Antonio Paulo Medeiros - janeiro de 2004
//
//  para tornar disponível esta biblioteca em sua página html, inclua na seção <head>
//  o seguinte comando: <script language="javascript" src="../Biblioteca.js">< /script>
//
//  Obs: trabalho baseado na lib fornecida pelo Professor Cézar Nunez- 
//       Universidade Estácio de Sá - pós graduação (2002/2003)
//========================================================================================
//   Funções Disponíveis:
//
//   mensagem(texto)        -> exibe mensagem na página via write
//   criaObj( id )          -> cria objeto a partir do ID
//   movePara( obj, x , y ) -> move obejto para as coordenadas x y informadas
//   move( obj , x , y )    -> move objeto x pixels na horizontal e y pixels na vertical
//   setZIndex( obj , z )   -> indica o índice de empilhamento vertical do objeto
//   setBGColor( obj , cor )-> especifica cor de fundo do objeto
//   exibeObj( obj )        -> torna o objeto visível
//   escondeObj( obj )      -> esconde o obejto
//   posX( obj )            -> retorna a coordenada horizontal do canto superior esquerdo
//   posY( obj )            -> retorna a coordenada vertical do canto superior esquerdo    
//   largura( obj )         -> retorna a largura (width) do objeto
//   altura( obj )          -> retorna a altura (height) do objeto
//   larguraJanela()        -> retorna a largura da área cliente do browser
//   alturaJanela()         -> retorna a altura da área cliente do browser
//   testaDOM( url )        -> redireciona p/página de erro se navegador não aceitar DOM
//                             da W3C (nem mesmo parcialmente) 
//========================================================================================


// Variáveis globais que indicam o tipo de browser

var ie   = ( document.all ) ? true : false;
var ie4  = ( document.all && !document.getElementById ) ? true : false;
var ns4  = ( document.layers) ? true : false;
var ns6  = ( !document.all  &&  document.getElementById ) ? true : false;
var ie5  = ( ie && !document.fireEvent ) ? true : false;
var ie55 = ( ie && document.fireEvent && !document.createComment ) ? true : false;
var ie6  = ( ie && document.fireEvent && document.createComment ) ? true : false;
var Dom  = ( document.getElementById ) ? true : false;

//
// Função utilizada para escrever no documento html
//

function mensagem( texto ) 
{
      document.write( texto );
}
	  
//	  
// Inicializa objeto a partir do ID da Tag
//
function criaObj(id)
{
	if(ns4)
	{	
		this.css=document.layers[id];
		this.doc=document.layers[id].document;
	}
	else if(Dom)   // IE5+ e NS6+
	{
		this.css=document.getElementById(id).style;
		this.doc=document.getElementById(id);
	}
	else   // IE4
	{
		this.css=document.all[id].style;
		this.doc=document.all[id];
	}
}

//
// Posiciona o objeto numa coordenada em pixels da tela
//
function movePara(obj,x,y)
{
	if(ns4)
	{
		obj.css.moveTo(x,y);
	}
	else if(Dom)
	{
		obj.css.left=x;
		obj.css.top=y;
	}
	else
	{
		obj.css.pixelLeft=x;
		obj.css.pixelTop=y;
	}
}

//
// Desloca o objeto os valores x e y pixels
//
function move(obj,x,y)
{
	if(ns4)
	{
		obj.css.moveBy(x,y);
	}
	else if(Dom)
    {
		obj.css.left=x + posX(obj);
		obj.css.top =y + posY(obj);
	}
	else
	{
		obj.css.pixelLeft+=x;
		obj.css.pixelTop+=y;
	}
}

//
// Especifica o z-index de um objeto
//
function setZIndex(obj,z)
{
	obj.css.zIndex=z;
}

//
// Especifica a cor de fundo do objeto
//
function setBGColor(obj,cor)
{
	if(ns4)
	{
		obj.css.bgColor=cor;
	}
	else
	{
		obj.css.backgroundColor=cor;
	}
}

//
// Especifica a visibilidade do objeto para visivel
//
function exibeObj(obj)
{
	if(ns4)
	{
		obj.css.visibility="show";
	}
	else
	{
		obj.css.visibility="visible";
	}
}

//
// Especifica a visibilidade do objeto para invisível
//
function escondeObj(obj)
{
	if(ns4)
	{
		obj.css.visibility="hide";
	}
	else
	{
		obj.css.visibility="hidden";
	}
}

//
// Retorna o valor da coordenada x de um objeto
//
function posX(obj)
{
	if(ns4)
	{
		return obj.css.left;
	}
    else if( Dom )
	{
		return parseInt(obj.css.left);
	}
	else
	{
		return obj.css.pixelLeft;
	}
}

//
// Retorna o valor da coordenada y de um objeto
//
function posY(obj)
{
	if(ns4)
	{
		return obj.css.top;
	}	
	else if(Dom)
	{
	    return parseInt(obj.css.top);
	}
	else
	{
		return obj.css.pixelTop;
	}	
}

//
// Retorna o valor da largura do conteudo de um objeto
//
function largura(obj)
{
	if(ns4)
	{
		return obj.css.clip.width;
	}
	else if(Dom)
	{
		return obj.doc.offsetWidth;
	}
	else
	{
		return obj.css.pixelWidth;
	}
}

//
// Retorna o valor da altura do conteudo de um objeto
//
function altura(obj)
{
	if(ns4)
	{
		return obj.css.clip.height;
	}
	else if(Dom)	
	{
		return obj.doc.offsetHeight;	
	}
	else
	{
		return obj.css.pixelHeight;
	}
}

//
// Retorna a largura da janela do browser
//
function larguraJanela()
{
	if(ns4 || ns6)
	{
		return window.innerWidth;
	}
	else
	{
		return document.body.clientWidth;
	}
}

//
// Retorna a altura da janela do browser
//
function alturaJanela()
{
	if(ns4 || ns6)
	{
		return window.innerHeight;
	}
	else
	{
		return document.body.clientHeight;
	}
}

function testaDOM( erro ) {
    if (!document.getElementById ) document.location.href=erro;
}
