//----------------------------------------------------------------------------//
function add( indice, nome_botao, codigoOnClick){
	var directory		= "../images/botoes/";
	var fileButton		= directory  + "bt_" + nome_botao;
	var fileButtonIn	= fileButton + "_in.gif";
	var fileButtonOut	= fileButton + "_out.gif";
	var fileButtonDown	= fileButton + "_down.gif";
	var imgObj			= myImage;

	indice= indice-1;  // para o usuário, começa no 1 ..

	var colunaObj= myBarra.coluna[indice];
	
	//--- Fazendo PreLoad das imagens caso necessário ---//
	imgObj.addImg(fileButtonIn);
	imgObj.addImg(fileButtonOut);
	imgObj.addImg(fileButtonDown);
	
	
	//--- Setando propriedades da coluna da barra aonde aparecerá o menu ---//
	colunaObj.text			= nome_botao;
	colunaObj.imagemSrc		= fileButtonOut;
	colunaObj.onClick		= codigoOnClick;
	colunaObj.onMouseOver	= fileButtonIn;
	colunaObj.onMouseOut	= fileButtonOut;
	colunaObj.onMouseDown	= fileButtonDown;
}

function change( indice, nome_botao, codigoOnClick){
	add(indice, nome_botao, codigoOnClick);
	show();
}


function show(){
	myBarra.show();
}


function clear(){
	if( arguments.length > 0){
		var indice= parseInt(arguments[0],10)-1;
		myBarra.limpa(indice);  // remove just one element
		myBarra.show();
	}else{
		myBarra.limpaBarra();  // remove all
	}
}


function create(botoes){
	clear();
	for( var i=0; i< botoes.length; i++)
		add(botoes[i][0], botoes[i][1], botoes[i][2]);
	show();
}

//-----------------------------------------------------------------------//


/*------------------------------------------------------------------
  @DESCRICAO: Utilizacao e padronizacao da barra de Botoes			
  em HTML.   														
 ------------------------------------------------------------------*/	
var myBarra;
var myImage; 
var isNav4, isIE4, IDTimeOut, miliSeg = 300000;

initImage();
	
	if(parseInt(navigator.appVersion.charAt(0)) >= 4){
	  isNav4 = (navigator.appName == "Netscape") ? true : false;
	  isIE4 = (navigator.appName.indexOf("Microsoft") != -1) ? true : false;
	}
/*------------------------------------------------------------------
  @NOME DA FUNCAO: function initBarra()								
  @DESCRICAO: Instancia o objeto Barra , sendo a variavel myBarra,	
  uma nova barra , serao criadas 6 colunas e sua propriedades seta-	
  das em valores vazios												 	
  em HTML's   														
  @PRAMETROS:Nenhum													 
  @RETORNO: Nenhum													 
 ------------------------------------------------------------------*/		
function initBarra(quant){
	myBarra = new Barra();
		for(i = 0; i<quant; i++){
			myBarra.coluna[i] 				= new Coluna();
			myBarra.coluna[i].onClick 		= "";
			myBarra.coluna[i].onMouseOver 	= "";
			myBarra.coluna[i].onMouseOut 	= "";
			myBarra.coluna[i].onMouseDown 	= "";
			myBarra.coluna[i].imagemSrc 	= "";
			myBarra.coluna[i].setaEvento();
		}
	return true;
}

/*------------------------------------------------------------------
  @NOME DA FUNCAO: function setaEvento_(index)						
  @DESCRICAO: Testa de  a propriedade OnClick se tem valor , se o	
  link esta desenhado senao seta o link sem valor.								|
  cada link tera a propriedade OnClick(javascript) que devera ser 
  setada na chamada de cada botao devera ser passado  as propriedades 
  OnMouseOver e OnMouseOut receberao as Funcoes imgOnMouseOver(index) 
  e imgOnMouseOout(index) que realizam o RollOver.											 	
  @PRAMETROS:index	(numer da coluna)								 
  @RETORNO: Nenhum													 
 ------------------------------------------------------------------*/		
function setaEvento_(index){
	if (this.onClick.length){
		this.a = "  onclick=\"" + this.onClick + "\" onMouseOver=\"imgOnMouseOver("+index+")\" onMouseOut=\"imgOnMouseOut("+index+")\"  onMouseUp=\"imgOnMouseOver("+index+")\" onMouseDown=\"imgOnMouseDown("+index+")\"";
	}else{
	  	this.a = "";
	}
	return true;
}

/*------------------------------------------------------------------
  @NOME DA FUNCAO: function showButton()						
  @DESCRICAO: Desabilita uma coluna específica do Objeto barra 
  @PRAMETROS:nenhum								 
  @RETORNO: Nenhum													 
 ------------------------------------------------------------------*/		
/*function showButton(ind){
	if(document.all('imagem').length > 1){
		document.all('imagem')[ind-1].style.display = "";
	}else{
		document.all('imagem').style.display = "";
	}
}*/ 

/*------------------------------------------------------------------
  @NOME DA FUNCAO: function hideButton()		
  @DESCRICAO: Desabilita uma coluna específica do Objeto barra 
  @PRAMETROS:nenhum								 
  @RETORNO: Nenhum													 
 ------------------------------------------------------------------*/		
/*function hideButton(ind){
	if(document.all('imagem').length > 1){
		document.all('imagem')[ind-1].style.display = "none";
	}else{
		document.all('imagem').style.display = "none";
	}
}*/

/*------------------------------------------------------------------
  @NOME DA FUNCAO: function desabilita()						
  @DESCRICAO: Desabilita uma coluna específica do Objeto barra 
  @PRAMETROS:nenhum								 
  @RETORNO: Nenhum													 
 ------------------------------------------------------------------*/		
/*function desabilitaBotao(ind){
	imgOnMouseDown(ind-1);
	if(document.all('imagem').length > 1){
		document.all('imagem')[ind-1].disabled = true;
	}else{
		document.all('imagem').disabled = true;
	}
}*/

/*------------------------------------------------------------------
  @NOME DA FUNCAO: function desabilita()						
  @DESCRICAO: Desabilita uma coluna específica do Objeto barra 
  @PRAMETROS:nenhum								 
  @RETORNO: Nenhum													 
 ------------------------------------------------------------------*/		
/*function habilitaBotao(ind){
	if(document.all('imagem').length > 1){
		document.all('imagem')[ind-1].disabled = false;
	}else{
		document.all('imagem').disabled = false;
	}
	imgOnMouseOut(ind-1);

}*/


/*------------------------------------------------------------------
  @NOME DA FUNCAO: function limpa_()						
  @DESCRICAO: Limpa uma coluna específica do Objeto barra 
  @PRAMETROS:nenhum								 
  @RETORNO: Nenhum													 
 ------------------------------------------------------------------*/		
function limpa_(ind){
	this.coluna[ind].imagemSrc 		= "";
	this.coluna[ind].onClick	 	= "";
	this.coluna[ind].onMouseOver 	= "";
	this.coluna[ind].onMouseOut 	= "";
	this.coluna[ind].onMouseDown 	= "";
	this.coluna[ind].setaEvento();
}

/*------------------------------------------------------------------
  @NOME DA FUNCAO: function limpaBarra_()						
  @DESCRICAO: Limpa o Objeto barra setando sua propriedade
  ex: myBarra.coluna[1].imagemSrc ="";											 	
  @PRAMETROS:nenhum								 
  @RETORNO: Nenhum													 
 ------------------------------------------------------------------*/		
function limpaBarra_(){
	for(i = 0; i<this.coluna.length; i++){
		this.coluna[i].imagemSrc 	= "";
		this.coluna[i].onClick		= "";
		this.coluna[i].onMouseOver 	= "";
		this.coluna[i].onMouseOut 	= "";
		this.coluna[i].onMouseDown 	= "";
		this.coluna[i].setaEvento();

	}
	this.show();
	return true;
}
/*------------------------------------------------------------------
  @NOME DA FUNCAO: function show_()						
  @DESCRICAO:Desenha as colunas no layer Chama a funcao setaEvento , passando
  o index gera uma string que contem toda a formatcao impressa
  se nao ouver valor em myBarra.coluna[i].length nao sera gerado o link
  e sera impresso um pixel em branco. 
  @PRAMETROS:nenhum								 
  @RETORNO: Nenhum													 
 ------------------------------------------------------------------*/
function show_(){
	var str, i, evento, iInseridos = 0;
	var iLinhas = 1;
	for(i = 0; i<this.coluna.length; i++){
		this.coluna[i].setaEvento(i);
	}
	if(myBarra.quebraBarra ){
		str = "<table id='tbBut' border=\"0\" cellpadding=\"0\" cellspacing=\"0\"  >";
	}else{
		str = "<table id='tbBut' border=\"0\" cellpadding=\"0\" cellspacing=\"0\"  >";
	}
	str = str + "<tr><td align=\"middle\" width=\"0%\"></td><td align=\"middle\" width=\"0%\">";
//	window.alert(this.coluna.length)
	var iImgBranco, totElem = this.coluna.length
	if((totElem >= myBarra.colunas && totElem != (myBarra.colunas*2) && totElem != (myBarra.colunas*3) && totElem != (myBarra.colunas*4) )){
		iImgBranco = eval(((parseInt(totElem/myBarra.colunas) + 1) * myBarra.colunas) - totElem);
	} else {
		iImgBranco = 0;
	}
	for(i = 0; i< this.coluna.length; i++){
		if(this.coluna[i].a.length){
			evento =  this.coluna[i].a;
		}
		if(myBarra.quebraBarra && (iInseridos==(myBarra.colunas) ||iInseridos==(myBarra.colunas*2) ||iInseridos==(myBarra.colunas*3)||iInseridos==(myBarra.colunas*4) )){
			str = str + "<tr><td align=\"middle\" width=\"0%\"></td><td align=\"middle\" width=\"0%\">";
			iLinhas++;
		}
		if (iImgBranco< 0){
			iImgBranco = eval(iImgBranco * -1)
		}
		if (iImgBranco != 0){
			for (j=0; j<iImgBranco; j++){
				iInseridos ++;
				str += "</td><td align=\"middle\" width=\"0%\">";
			}
			iImgBranco = 0;
		}
		
		if(this.coluna[i].imagemSrc.length){
			str = str + "<img style=\"cursor:hand\" name='imagem' src=\"" + this.coluna[i].imagemSrc + "\" "+evento+">";
			//this.coluna[i].text
			//str += "<input type='button' value='"+this.coluna[i].text+"' name='imagem'  "+evento+">";
			iInseridos ++;
		}else{
			str += "<IMG name='imagem' src='branco.gif' >";
			iInseridos ++;
		}
		str += "</td><td align=\"middle\" width=\"0%\">";
	}
	str += "</td></tr></table>";
	//window.alert(str);			
	var sClass = "FmButtons"
	if (eval(iLinhas>1)){
		sClass += iLinhas
	}
	if(isIE4){
		document.all.layer_IE.style.visibility = "hidden";
		document.all.layer_IE.className = sClass
		document.all.layer_IE.innerHTML = str;
		document.all.layer_IE.style.visibility = "visible";
	}else{
		document.all.layer_IE.visibility = "hidden";
		document.all.layer_IE.className = sClass
		document.all.layer_IE.document.open();
		document.all.layer_IE.document.writeln (str);
 		document.all.layer_IE.document.close();
		document.all.layer_IE.visibility = "visible";
	}
return true;
}
/*------------------------------------------------------------------
  @NOME DA FUNCAO: function Barra()						
  @DESCRICAO:Funcao construtora do Objeto barra. instacia em Barra um Array de colunas
  e instacia dois metodos show_ (que desenha a barra) o metodo LimpaBarra
  que (reseta todas configuracoes de Barra) 
  @PRAMETROS:nenhum								 
  @RETORNO: Nenhum													 
 ------------------------------------------------------------------*/
function Barra(){
	this.coluna 	= new Array(); 
	this.show 		= show_; 
	this.limpaBarra = limpaBarra_;
	this.limpa		= limpa_;
	this.quebraBarra = false;
	this.colunas = 4;
return true;
}
/*------------------------------------------------------------------
  @NOME DA FUNCAO: function Coluna()						
  @DESCRICAO:Funcao construtora do Objeto Coluna().define todas as 
  propriedades em "" define o metodo setaEvento_(); 
  @PRAMETROS:nenhum								 
  @RETORNO: Nenhum													 
 ------------------------------------------------------------------*/
function Coluna(){
	this.text			= "";
	this.imagemSrc		= "";
	this.onClick		= "";
	this.onMouseOver	= "";
	this.onMouseOut		= "";
	this.onMouseDown	= "";
	this.a 				= "";
	this.setaEvento 	= setaEvento_;
	return true;
}
/*------------------------------------------------------------------
  @NOME DA FUNCAO: function imgOnMouseOver(index)						
  @DESCRICAO:verifica qual o tipo do navegador e 
  no caso de ser o netscape ele necessitara usar o nome do layer
  e vai trocar o source da figura a ser mostrado; 
  @PRAMETROS:index								 
  @RETORNO: Nenhum													 
 ------------------------------------------------------------------*/
function imgOnMouseOver(index){
	if(isNav4){
		document.all.layer_NS.document.getElementsByName('imagem')[index].src = myBarra.coluna[index].onMouseOver;
	}else{
		if(document.all['imagem'].length > 1){
			if(!document.all['imagem'][index].disabled){
				document.all['imagem'][index].src=myBarra.coluna[index].onMouseOver;
			}
		}else{
			if(!document.all['imagem'].disabled){
				document.all['imagem'].src=myBarra.coluna[index].onMouseOver;
			}
		}
	}
	return true;
}
/*------------------------------------------------------------------
  @NOME DA FUNCAO: function imgOnMouseOut(index)						
  @DESCRICAO: verifica qual o tipo do navegador e 
  no caso de ser o netscape ele necessitara usar o nome do layer
  e vai trocar o source da figura a ser mostrado; 
  @PRAMETROS:index								 
  @RETORNO: Nenhum													 
 ------------------------------------------------------------------*/		
function imgOnMouseOut(index){
	if(isNav4){
		document.all.layer_NS.document.getElementsByName('imagem')[index].src=myBarra.coluna[index].onMouseOut;
	}else{
		if(document.all['imagem'].length > 1){
			if(!document.all['imagem'][index].disabled){
				document.all['imagem'][index].src=myBarra.coluna[index].onMouseOut;
			}
		}else{
			if(!document.all['imagem'].disabled){
				document.all['imagem'].src=myBarra.coluna[index].onMouseOut;
			}
		}
	}
	return true;
}

/*------------------------------------------------------------------
  @NOME DA FUNCAO: function imgOnMouseDown(index)						
  @DESCRICAO: verifica qual o tipo do navegador e 
  no caso de ser o netscape ele necessitara usar o nome do layer
  e vai trocar o source da figura a ser mostrado; 
  @PRAMETROS:index								 
  @RETORNO: Nenhum													 
 ------------------------------------------------------------------*/		
function imgOnMouseDown(index){
	if(isNav4){
		document.all.layer_NS.document.getElementsByName('imagem')[index].src=myBarra.coluna[index].onMouseDown;
	}else{
		if(document.all['imagem'].length > 1){
			if(!document.all['imagem'][index].disabled){
				document.all['imagem'][index].src= myBarra.coluna[index].onMouseDown;
			}
		}else{
			if(!document.all['imagem'].disabled){
				document.all['imagem'].src= myBarra.coluna[index].onMouseDown;
			}
		}
	}
	return true;
}

/*------------------------------------------------------------------
  @NOME DA FUNCAO: function initImage()						
  @DESCRICAO: instacia ao objeto Imagens(); 
  @PRAMETROS:Nenhum								 
  @RETORNO: Nenhum													 
 ------------------------------------------------------------------*/
function initImage(){
	myImage = new Imagens();
	return true;
}
/*------------------------------------------------------------------
  @NOME DA FUNCAO: function initImage()						
  @DESCRICAO: instacia ao objeto Imagens(); 
  @PRAMETROS:Nenhum								 
  @RETORNO: Nenhum													 
 ------------------------------------------------------------------*/
function Imagens(){
	this.addImg= addImg_;
	this.imagem= new Array();
return true;
}
/*------------------------------------------------------------------
  @NOME DA FUNCAO: function addImg_(vImg)						
  @DESCRICAO: Verifica se  o a omagem a ser  adicionada ja nao existe no
  documento carrgado se existir retorna o valor=-1. Realiza cache!!!
  @PRAMETROS:Nenhum								 
  @RETORNO: -1 (nop caso de ja exixtir) ou 
  (this.imagem.length -1) valor  do indice da  ultima figura utilizada 													 
 ------------------------------------------------------------------*/
function addImg_(vImg){
	var x, result = 0;	
	for(x=0;x<this.imagem.length;x++){
		if(this.imagem[x].src == vImg){
		return -1;
		}
	}
	this.imagem[this.imagem.length] = new Image();
	this.imagem[this.imagem.length -1].src = vImg;

	return (this.imagem.length -1);
}
/*------------------------------------------------------------------
  @NOME DA FUNCAO: function initialize()						
  @DESCRICAO: Executa toda as funcoes necessarias, no caso soh
  adiciona as imagens ao documento . Ela pode ser usada para inicializar 
  todo o documento
  @PRAMETROS:Nenhum								 
  @RETORNO: -1 (nop caso de ja exixtir) ou 
  (this.imagem.length -1) valor  do indice da  ultima figura utilizada 													 
 ------------------------------------------------------------------*/		
function initialize(){
	if (!document.all) {
		document.all = document.layers;
	}
	return true;
}