/*
* JAVASCRIPT GERAL
* 
* Variáveis externas:
* - template_pastaImagens - Variavel gerada automaticamente pelo php no arquivo "pasta_sistema"/javascript/sistemaDados.php
*/


function confirma(pag,nome) {

resp=confirm("Deseja excluir \""+nome+"\"?")

	if(resp) {
		window.open(pag,'_self');
		return false;
	} else
		return false;
}

/* GERENCIAR OBJETOS */
function elemento(nome) {
	return document.getElementById(nome);
}

function $(id_obj){
 	
	// Verifica o tipo de parametro informa, se for do tipo string cria refencia
	var tipoObj = typeof(id_obj);
	var refObj = null;
	
	if(tipoObj == 'string'){
		refObj = document.getElementById(id_obj);
	}else if(tipoObj == 'object'){
		refObj = id_obj;
	}
	
	return refObj;
}

function _removerObjeto(id_obj){
	
	this.refObj = $(id_obj);
		
	if(this.refObj){
		this.noPaiJanela = this.refObj.parentNode;
		this.noPaiJanela.removeChild(this.refObj);		
	} else {
		alert('ERRO[_removerObjeto]: O objeto "'+id_obj+'" não existe.');
	}
}

function _consultarSubObjetos(id_obj,tag){
	
	this.dados = new Array();
	this.dados['total'] = 0;
	this.dados['objetos'] = new Array();
	
	this.refObj = $(id_obj);
		
	if(this.refObj){
		
		if(tag){		
			this.lstTag = this.refObj.getElementsByTagName(tag);
			this.dados.total = this.lstTag.length;
			for(t=0; t < this.dados.total; t++){
				this.dados.objetos[t] = this.lstTag[t];
			}	
		} else {
			alert('ERRO[_consultarSubItens]: Não é possível efetuar consulta de subitens, o segundo argumento tab não foi informado.');
		}	
	} else {
		alert('ERRO[_consultarSubItens]: O objeto "'+id_obj+'" não existe.');
	}
	
	return this.dados;
}

//POSICAO ELEMENTO DO ELEMENTO NA TELA
function findPosX(obj){

	var curleft=0;
	if(obj.offsetParent) {
	
		while(obj.offsetParent){
			curleft+=obj.offsetLeft
			obj=obj.offsetParent;
		}
	} else if(obj.x)
		curleft+=obj.x;	
		
		return curleft;
}

function findPosY(obj){
	var curtop=0;
	if(obj.offsetParent){
		while(obj.offsetParent){
			curtop+=obj.offsetTop
			obj=obj.offsetParent;
		}
	} else if(obj.y)
		curtop+=obj.y;
	
		return curtop;
}


function getPosicaoElemento(elemID){

    tipoObjeto = typeof(elemID);
    if(tipoObjeto == 'object')
    	var offsetTrail = elemID
    else if(tipoObjeto == 'string')
    	var offsetTrail = document.getElementById(elemID);
        	
    	
    var offsetLeft = 0;
    var offsetTop = 0;
    while (offsetTrail) {
        offsetLeft += offsetTrail.offsetLeft;
        offsetTop += offsetTrail.offsetTop;
        offsetTrail = offsetTrail.offsetParent;
    }
    if (navigator.userAgent.indexOf("Mac") != -1 && 
        typeof document.body.leftMargin != "undefined") {
        offsetLeft += document.body.leftMargin;
        offsetTop += document.body.topMargin;
    }
    
    return {left:offsetLeft, top:offsetTop};
}
// FIM - POSICAO ELEMENTO NA TELA
/* FIM - GERENCIAR OBJETOS */

function soNumero(e){
    var tecla=(window.event)?event.keyCode:e.which;
   
    if((tecla > 47 && tecla < 58)) 
    	return true;
    else{
	    if (tecla == 8) 
	    	return true;
	    else if (tecla == 0) 
	    	return true;
	    else if (tecla == 13) 
	    	return true;
	    else 
	    	return false;
    }
}



//POP-UP - Abre janela pop-up
function _areaDeTrabalho()
{
	this.Largura = (window.screen.width)
	this.Altura = (window.screen.height)				
}

var _telaAreaTrabalho = new _areaDeTrabalho()
function _abreJanela(URL,Largura,Altura)
{
	var janela = null;
	
	if(Largura == "")
		{
			Largura = 450;
		}
	if(Altura == "")
		{
			Altura = 600;
		}
	posicaoLeft = (_telaAreaTrabalho.Largura - Largura) / 2;
	posicaoTop = (_telaAreaTrabalho.Altura - Altura) / 2;
	opcao = "scrollbars=yes, status=no,addres=no,width=" + Largura + ",height=" + Altura + ",left=" + posicaoLeft + ",top=" + posicaoTop + "";
	    if (janela == null || janela.closed) 
		{
			janela = window.open(URL,"Nova_Janela",opcao)
		}
		else
		{
			janela.focus();
			janela.resizeTo(Number(Largura)+10,Number(Altura)+29)
			janela.location.href = URL;
		}
 	return janela;
}
//Fim : POP-UP - Abre janela pop-up


/*
// JANELA
function _adJanela(titulo,conteudo,dimensaoJanela,posicaoJanela){
	
	this.nomeDivBase = 'janelaPoup_';
	
	this.nomeNovaJanela = function(){
		
		lstDivJanela = new Array();
		
		lstDiv = document.getElementsByTagName('div');
		
		for(d=0; d<lstDiv.length; d++){
			if(lstDiv[d].id.indexOf(this.nomeDivBase) != -1)
				lstDivJanela[d] =lstDiv[d].id;
		}
		
		//alert('Total' + lstDivJanela.length +'-'+this.nomeDivBase + lstDivJanela.length);
		
		return this.nomeDivBase + lstDivJanela.length;
	}
	
	
	
	this.remover = function(){
		
		if(this.refJanela){
			this.noPaiJanela = this.refJanela.parentNode;
			this.noPaiJanela.removeChild(this.refJanela);
		} else {
			alert('ERRO[_adJanela]: Não existe referência a janela.');
		}
	}
	
	this.mover = function(event){
		if(event)
			e = event;
		else	
			e = window.event;
			
		x = e.clientX;
		y = e.clientY;
		
		if(this.refJanela){
			this.refJanela.style.top = this.posicaoX + 'px';
			this.refJanela.style.left = this.posicaoY + 'px';
		}
	}
	
	// CRIA ESTRUTURA
	// Div principal
	divEstrutura = document.createElement('div');
	divEstrutura.id = this.nomeNovaJanela();
	divEstrutura.className = 'janelaPopup_divBase';
	divEstrutura.style.position = "absolute";
	divEstrutura.style.zIndex = 100;
	// Tamanho
	if(dimensaoJanela){
		auxtamanho = dimensaoJanela.split('x');
	} else {
		auxtamanho = new Array();
		auxtamanho[0] = '400';
		auxtamanho[1] = '400';
	}
	divEstrutura.style.width = auxtamanho[0]+'px';
	divEstrutura.style.height = auxtamanho[1]+'px';
	// Posicao
	if(posicaoJanela){
		auxposicao = posicaoJanela.split('x');
	} else {
		auxposicao = new Array();
		auxposicao[0] = (screen.availHeight - auxtamanho[1])/2;
		auxposicao[1] = (screen.availWidth - auxtamanho[0])/2;
	}
	divEstrutura.style.top = auxposicao[0] + 'px';
	divEstrutura.style.left = auxposicao[1] + 'px';
	
	divEstrutura.style.display='block';
	
	//BARRA DE TITULO
	divBarraTitulo = document.createElement('div');
	divBarraTitulo.id= 'divBuscaBarraTitulo';
	divBarraTitulo.className = 'janelaPopup_barraTitulo';
	divBarraTitulo.style.backgroundImage="url(" + template_pastaImagens + "janelaPoupFundo.gif)";
	
	// Area texto da barra de titulo
	divTitulo = document.createElement('div');
	divTitulo.className = 'janelaPopup_barraTitulo_subDiv janelaPopup_barraTitulo_divTexto';
	//divTitulo.onMouseDown = this.mover;
	divTitulo.refJanela = divEstrutura;
	divBarraTitulo.appendChild(divTitulo);
	
	// Area botoes da barra de titulo
	divBotoes = document.createElement('div');
	divBotoes.className = 'janelaPopup_barraTitulo_subDiv janelaPopup_barraTitulo_divBotao';			
	divBarraTitulo.appendChild(divBotoes);		
	
	// Adiciona texto Titulo
	if(!titulo)
		titulo = '&nbsp;';
	divTitulo.innerHTML = titulo;
	
	//Botao fechar
	btFechar = document.createElement('div');
	btFechar.className = 'janelaPopup_barraTitulo';
	btFechar.style.position = 'relative';
	btFechar.style.cssFloat = 'right';
	btFechar.style.styleFloat = 'right';
	btFechar.style.width = '24px';
	btFechar.style.height = '18px';
	btFechar.refJanela = divEstrutura;
	btFechar.onclick = this.remover;
	btFechar.style.backgroundImage="url(" + template_pastaImagens + "janelaPoupBtFechar.gif)";
	
	divBotoes.appendChild(btFechar);
	
	// DIV CONTEUDO JANELA
	divConteudo = document.createElement('div');
	// Adiciona conteudo conforme tipo
	tipoConteudo = typeof(conteudo);
	if(tipoConteudo == 'string')
		divConteudo.innerHTML = conteudo;
	else if(tipoConteudo == 'object'){
		for(c=0; c < conteudo.length; c++){
			tipoConteudo2 = typeof(conteudo[c]);
			if(tipoConteudo2 == 'string')
				divConteudo.innerHTML = conteudo[c];
			else if(tipoConteudo2 == 'object'){
				divConteudo.appendChild(conteudo[c]);
			}
		}
	}
	
	// Adiciona itens na janela
	// Barra de titulo
	divEstrutura.appendChild(divBarraTitulo);
	// Conteudo
	divEstrutura.appendChild(divConteudo);
		
	document.body.appendChild(divEstrutura);
	
	return {refJanela:divEstrutura};
}

_removeJanelas = function(){
 	
	var refBody = document.body;
	var lstDiv = refBody.getElementsByTagName('div');
	
	if(lstDiv.length > 0){
		for(d=0; d < lstDiv.length; d++){
			if(lstDiv[d].id.indexOf(this.nomeDivBase) == 0){
				if(lstDiv[d]){
					this.noPaiJanela = lstDiv[d].parentNode;
					this.noPaiJanela.removeChild(lstDiv[d]);
				} else {
					alert('ERRO[_adJanela]: Não existe referência a janela.');
				}
				//this.refJanela = lstDiv[d];
				//this.remover();
			}
		}
	}
	
 }

// Cria objeto adicionar janela padrão; 
//objJanelaPadrao = new _adJanela();
// FIM - JANELA
*/

// JANELA
// Variavel global utilizada para manter tempo de fechamento automatico, função autoFechar da classe, verificar alternativa pois podera provocar erro quando utilizado com multiplos objetos
var _adJanela_tempoFechamento = null;

function _adJanela(titulo,conteudo,dimensaoJanela,posicaoJanela,ativarFundo){
	
	this.nomeDivBase = 'janelaPoup_';
	var larguraArea = document.body.offsetWidth;
	var alturaArea  = document.body.offsetHeight;
	
	this.idJanela = null;
	
	this.refJanela = new Array();			
	this.refJanela['estrutura'] = null;
	this.areaNavegador = {'largura':document.body.offsetWidth,'altura':document.body.offsetHeight};
	this.dimensao = {'largura':null, 'altura':null};
	this.posicao = {'topo':null, 'esquerda':null};
	this.fundoAtivo = false
	//barraTitulo - tipo: cor(#db4431) ou imagem(janelaPoupFundo.gif)
	this.cor = {'fundo':'#FFFFFF', 'borda':'#000000', 'barraTitulo':{'tipo':'imagem', 'dados':'janelaPoupFundo.gif'}, 'titulo':'#FFFFFF'};
	
	this.barraTitulo_altura = 20;
		
	// Verifica / Adiciona configurações
	if(titulo)
		this.titulo = titulo;
	else
		this.titulo = null;
		
	if(conteudo)
		this.conteudo = conteudo;
	else	
		this.conteudo = null;
	
	// Dimensoes
	if(dimensaoJanela){
		auxDimensao = dimensaoJanela.split('x');
		
		this.dimensao.largura = auxDimensao[0];
		this.dimensao.altura = auxDimensao[1];
			
	}
	// Posicao
	if(posicaoJanela){
		auxPosicao = posicaoJanela.split('x');
		
		this.posicao.topo = auxPosicao[0];
		this.posicao.esquerda = auxPosicao[1];
				
	}
			
	// Cria janela
	if(this.titulo && this.conteudo){
		
		this.novaJanela();
		
		if(this.titulo)
			this.adicionarTitulo(this.titulo);
					
		if(this.conteudo)
			this.montarConteudo();
	}
	
	// Fundo
	if(ativarFundo)
		this.fundoAtivo = ativarFundo;
	
	if(this.fundoAtivo)
		this.adicionarFundo();
	
}

_adJanela.prototype.nomeNovaJanela = function(){
		
	lstDivJanela = new Array();
	
	lstDiv = document.getElementsByTagName('div');
	
	for(d=0; d<lstDiv.length; d++){
		if(lstDiv[d].id.indexOf(this.nomeDivBase) != -1)
			lstDivJanela[d] =lstDiv[d].id;
	}
	
	//alert('Total' + lstDivJanela.length +'-'+this.nomeDivBase + lstDivJanela.length);
	
	return this.nomeDivBase + lstDivJanela.length;
}

_adJanela.prototype.novaJanela = function(){
	
	this.idJanela = this.nomeNovaJanela();	
	this.refJanela = new Array();
	
	// Tamanho
	if(!this.dimensao.largura)
		this.dimensao.largura = 400;
	if(!this.dimensao.altura)
	 	this.dimensao.altura = this.dimensao.largura;	
			
	// Posicao
	/*
	//this.posicao.topo = null;
	//this.posicao.esquerda = null;
	if(!this.posicao.topo){
		this.posicao.topo = (this.areaNavegador.altura/2); // - (this.dimensao.altura);
	}
	if(!this.posicao.esquerda)
		this.posicao.esquerda = (this.areaNavegador.largura/2); // -(this.dimensao.largura/2);
	*/
	
	//alert(this.posicao.topo+"x"+this.posicao.esquerda);		
		
	// Janela - Div principal estrutura
	this.refJanela['estrutura'] = document.createElement('div');
	this.refJanela['estrutura'].id = this.idJanela;
	this.refJanela['estrutura'].className = 'janelaPopup_divBase';
	this.refJanela['estrutura'].style.background = this.cor.fundo;
	if(this.cor.borda != '')
		this.refJanela['estrutura'].style.border = '1px solid ' + this.cor.borda;
	//this.refJanela['estrutura'].style.position = "fixed";
	this.refJanela['estrutura'].style.zIndex = 100;
	this.refJanela['estrutura'].style.width = this.dimensao.largura +'px';
	this.refJanela['estrutura'].style.height = this.dimensao.altura +'px';
	//this.refJanela['estrutura'].style.top = this.posicao.topo + 'px';
	//this.refJanela['estrutura'].style.left = this.posicao.esquerda + 'px';
	//this.refJanela['estrutura'].style.marginTop = '-' + (this.dimensao.altura/2) + 'px';//this.posicao.esquerda + 'px';
	//this.refJanela['estrutura'].style.marginLeft = '-' + (this.dimensao.largura/2) + 'px';//this.posicao.esquerda + 'px';
	this.refJanela['estrutura'].style.display='block';
	
	// Div Barra de título
	this.refJanela['barraTitulo'] = document.createElement('div');
	this.refJanela['barraTitulo'].id= 'divBuscaBarraTitulo';
	//this.refJanela['barraTitulo'].style.background = this.cor.barraTitulo;
	this.refJanela['barraTitulo'].className = 'janelaPopup_barraTitulo';
	this.refJanela['barraTitulo'].vAlign = 'middle';
	this.refJanela['barraTitulo'].style.height = this.barraTitulo_altura + 'px';
	//this.refJanela['barraTitulo'].style.backgroundImage="url(" + template_pastaImagens + "janelaPoupFundo.gif)";
	this.refJanela.estrutura.appendChild(this.refJanela.barraTitulo);
			
	// Div Titulo
	this.refJanela['titulo'] = document.createElement('div');
	this.refJanela['titulo'].className ="janelaPopup_barraTitulo_divTitulo";
	
	if(this.cor.barraTitulo.tipo == "cor")
		this.refJanela['titulo'].style.background = this.cor.barraTitulo.dados;
	else if(this.cor.barraTitulo.tipo == "imagem")
		this.refJanela['titulo'].style.backgroundImage="url(" + template_pastaImagens + this.cor.barraTitulo.dados + ")";
		
	//this.refJanela['titulo'].style.background = this.cor.barraTitulo;
	this.refJanela['titulo'].style.color = this.cor.titulo;
	//this.refJanela['titulo'].innerHTML = 'Titulo';
	this.refJanela.barraTitulo.appendChild(this.refJanela['titulo']);
	
	// Botao Fechar
	this.refJanela['botao'] = document.createElement('div');
	this.refJanela['botao'].className="janelaPopup_barraTitulo_divBotao";
	//this.refJanela['botao'].innerHTML = 'Fechar';
	this.refJanela['botao'].refJanela = new Array();
	this.refJanela['botao'].refJanela['estrutura'] = this.refJanela.estrutura;
	this.refJanela['botao'].onclick = this.remover;
	//this.refJanela['botao'].style.backgroundImage="url(" + template_pastaImagens + "janelaPoupBtFechar.gif)";
	this.refJanela['botao'].innerHTML = '<img src="'+template_pastaImagens + 'janelaPoupBtFechar.gif" border="0">';
		
	this.refJanela.barraTitulo.appendChild(this.refJanela['botao']);
	
			
	// DIV CONTEUDO
	this.refJanela['conteudo'] = document.createElement('div');
	this.refJanela.conteudo.style.padding = '2px';
	this.refJanela.conteudo.style.height = (this.dimensao.altura - this.barraTitulo_altura -6) + 'px';
	this.refJanela.conteudo.style.overflow = 'auto';
	//this.refJanela.conteudo.style.border = '1px solid';
	this.refJanela.estrutura.appendChild(this.refJanela.conteudo);
	
	
	// Titulo - Adiciona texto Titulo
	if(!this.titulo)
		this.titulo = '&nbsp;';
	this.adicionarTitulo(this.titulo);
	
	
	// Posicao
	this.mudarPosicao();
	
	document.body.appendChild(this.refJanela.estrutura);
	
}

_adJanela.prototype.getAlturaConteudo = function(){
	if(this.refJanela)
		return this.refJanela.conteudo.style.height;
}

_adJanela.prototype.adicionarTitulo = function(texto){
	this.refJanela.titulo.innerHTML = texto;
}

_adJanela.prototype.montarConteudo = function(){
	
	// DIV CONTEUDO JANELA
	//divConteudo = document.createElement('div');
	// Adiciona conteudo conforme tipo
	tipoConteudo = typeof(this.conteudo);
	if(tipoConteudo == 'string')
		this.refJanela.conteudo.innerHTML = this.conteudo;
	else if(tipoConteudo == 'object'){
		for(c=0; c < this.conteudo.length; c++){
			tipoConteudo2 = typeof(this.conteudo[c]);
			if(tipoConteudo2 == 'string')
				this.refJanela.conteudo.innerHTML = this.conteudo[c];
			else if(tipoConteudo2 == 'object'){
				this.refJanela.conteudo.appendChild(this.conteudo[c]);
			}
		}
	}
		
}

_adJanela.prototype.adicionarFundo = function(){
	// Fundo - Verifica / Adiciona fundo
	divFundo = null;
	if(this.fundoAtivo == true){
		//larguraArea = screen.availWidth;
		//alturaArea  = screen.availHeight;
					
		divFundo = document.createElement('div');
		divFundo.id = idJanela + '_fundo';
		divFundo.style.position = "absolute"
		divFundo.style.top = 0;
		divFundo.style.left = 0;
		divFundo.style.zIndex = this.refJanela.estrutura.style.zIndex -1;
		divFundo.style.background = '#000000';
		divFundo.style.opacity = '0.8';
	    divFundo.style.filter='alpha(opacity=80);'
		divFundo.style.width = this.areaNavegador.largura + 'px';
		divFundo.style.height = this.areaNavegador.altura + 'px';
		
		// Referencia fundo - Adiciona referência
		this.refJanela.botao.refFundo = divFundo;	
		
		//document.body.appendChild(div);
		document.body.appendChild(divFundo);	
	}
}

_adJanela.prototype.mover = function(event){
	if(event)
		e = event;
	else	
		e = window.event;
		
	x = e.clientX;
	y = e.clientY;
	
	if(this.refJanela){
		this.refJanela.style.top = this.posicaoX + 'px';
		this.refJanela.style.left = this.posicaoY + 'px';
	}
}

_adJanela.prototype.mudarDimensao = function(largura, altura){
	
	if(largura)
		this.dimensao.largura = largura;
	
	if(altura)
		this.dimensao.altura = altura;
	
	this.refJanela.estrutura.style.width = this.dimensao.largura + 'px';
	//this.refJanela.estrutura.style.marginLeft = '-' + (this.dimensao.largura/2) + 'px';
	this.refJanela.estrutura.style.height = this.dimensao.altura + 'px';
	//this.refJanela.estrutura.style.marginTop = '-' + (this.dimensao.altura/2) + 'px';
	
	this.mudarPosicao();
}

_adJanela.prototype.mudarPosicao = function(topo, esquerda){
	
	try{
		if(topo)
			top = topo;
		else if(this.posicao.topo)
			top = parseInt(this.posicao.topo);
		else
			top = ((this.areaNavegador.altura/2) - (parseInt(this.dimensao.altura) / 2));
			
		if(esquerda)
			left = esquerda;
		else if(this.posicao.esquerda)
			left = parseInt(this.posicao.esquerda);
		else
			left = ((this.areaNavegador.largura/2) - (parseInt(this.dimensao.largura) / 2));
		
		//alert(top + 'X' +left);
		
		// Verifica/Corrige posição a direita da janela se estoura area do navegador
		posicaoDireita = parseInt(this.dimensao.largura) + left;
		
		if(posicaoDireita > this.areaNavegador.largura){
			//alert('largura Area Navegador:' + this.areaNavegador.largura + ' \n posição a direita da janela:' + posicaoDireita);
			tamanhoEstouro = posicaoDireita - this.areaNavegador.largura;
			
			left = left - tamanhoEstouro - 4;
			
		}
		
		
		this.refJanela.estrutura.style.top = top + 'px';
		this.refJanela.estrutura.style.left = left + 'px';
	} catch(erro){
				
		alert('Erro[_adJanel, mudarPosicao]: ' + erro.description);
	}
}

_adJanela.prototype.remover = function(){
	
	/*
	if(this.refJanela)
		refJanela = this.refJanela;
	else if(this.refJanela.estrutura)
		refJanela = this.refJanela.estrutura;
	else
	*/
	
	refJanela = this.refJanela.estrutura;
		
	if(refJanela){
		this.noPaiJanela = refJanela.parentNode;
		this.noPaiJanela.removeChild(refJanela);
		
		if(this.refFundo){
			this.noPaiFundo = this.refFundo.parentNode;
			this.noPaiFundo.removeChild(this.refFundo);
		}
		
		// Verifica / Remove tempo para auto fechamento
		if(_adJanela_tempoFechamento)
			clearTimeout(_adJanela_tempoFechamento);
		
	} else {
		alert('ERRO[_adJanela]: Não existe referência a janela.');
	}
}

_adJanela.prototype.fechar = function(){
	this.remover();	
}

_adJanela.prototype.autoFechar = function(nomeVarObj, segFechamento){
	
	if(!segFechamento)
		segFechamento = 6000;
	
	//alert(nomeVarObj+".fechar()" + '-' + segFechamento);
		
	if(!nomeVarObj){
		alert('Atenção: Não foi possível adicionar auto fechamento da janela, o nome da variavel utilizada para refênciar ao objeto não foi informada.');
	} else {
		_adJanela_tempoFechamento = setTimeout(nomeVarObj+".fechar()",segFechamento);
	}
}

_removeJanelas = function(){
 	
	this.nomeDivBase = 'janelaPoup_';
	var refBody = document.body;
	var lstDiv = refBody.getElementsByTagName('div');
	
	if(lstDiv.length > 0){
		for(d=0; d < lstDiv.length; d++){
			if(lstDiv[d].id.indexOf(this.nomeDivBase) == 0){
				if(lstDiv[d]){
					this.noPaiJanela = lstDiv[d].parentNode;
					this.noPaiJanela.removeChild(lstDiv[d]);
				} else {
					alert('ERRO[_adJanela]: Não existe referência a janela.');
				}
				//this.refJanela = lstDiv[d];
				//this.remover();
			}
		}
	}
	
 }

//document.onmousemove = function(e){document.innerHTML += (e.clientX +"x"+e.clientY);};

// FIM - JANELA

function formatar(src, mask, event) 
{
  var i = src.value.length;
  var saida = mask.substring(0,1);
  var texto = mask.substring(i)
  var whichCode = (window.Event) ? event.which : event.keyCode
  	
	// Backspace - permite apagar os caracteres
	if(whichCode == 8) return false;
	
	if (texto.substring(0,1) != saida) 
	{			
		src.value += texto.substring(0,1);
	}
}

//-----------------------------------------------------
//Funcao: MascaraMoeda
//Sinopse: Mascara de preenchimento de moeda
//Parametro:
//   objTextBox : Objeto (TextBox)
//   SeparadorMilesimo : Caracter separador de milésimos
//   SeparadorDecimal : Caracter separador de decimais
//   e : Evento
//Retorno: Booleano
//Autor: Gabriel Fróes
//Data Criação: 15/02/2005
//-----------------------------------------------------
function MascaraMoeda(objTextBox, SeparadorMilesimo, SeparadorDecimal, e){
    var sep = 0;
    var key = '';
    var i = j = 0;
    var len = len2 = 0;
    var strCheck = '0123456789';
    var aux = aux2 = '';
    var whichCode = (window.Event) ? e.which : e.keyCode;
    
	// Teclas permitidas
	if (whichCode == 13) return true;
	if (whichCode == 8) return true;
	if (whichCode == 0) return true;
	
    key = String.fromCharCode(whichCode); // Valor para o código da Chave
    if (strCheck.indexOf(key) == -1) return false; // Chave inválida
    len = objTextBox.value.length;
    for(i = 0; i < len; i++)
        if ((objTextBox.value.charAt(i) != '0') && (objTextBox.value.charAt(i) != SeparadorDecimal)) break;
    aux = '';
    for(; i < len; i++)
        if (strCheck.indexOf(objTextBox.value.charAt(i))!=-1) aux += objTextBox.value.charAt(i);
    aux += key;
    len = aux.length;
    if (len == 0) objTextBox.value = '';
    if (len == 1) objTextBox.value = '0'+ SeparadorDecimal + '0' + aux;
    if (len == 2) objTextBox.value = '0'+ SeparadorDecimal + aux;
    if (len > 2) {
        aux2 = '';
        for (j = 0, i = len - 3; i >= 0; i--) {
            if (j == 3) {
                aux2 += SeparadorMilesimo;
                j = 0;
            }
            aux2 += aux.charAt(i);
            j++;
        }
        objTextBox.value = '';
        len2 = aux2.length;
        for (i = len2 - 1; i >= 0; i--)
        objTextBox.value += aux2.charAt(i);
        objTextBox.value += SeparadorDecimal + aux.substr(len - 2, len);
    }
    return false;
}

function DigitaData(campo) {
 var data = new String( campo.value );
 var wData = '';
 var cont = 0;

 for (i=0; i<data.length ; i++) {
  if (i <= 1) {
   if ( data.charAt(i) >= '0' && data.charAt(i) <= '9' )	{
    wData += data.charAt(i);
   }
   else {
    cont++;
   }
  }
	  
  if (i == 2) {	  
   if (data.charAt(i) == '/') {
    wData += data.charAt(i);
   }	  
   else {
    if (data.charAt(i) >= '0' && data.charAt(i) <= '9') {
	 wData += '/';
     wData += data.charAt(i);
     cont ++;
    }
    else {
     wData += '/';
	 cont ++;
    }
   }
  }

  if (i > 2 && i <= 4) {
   if (data.charAt(i) >= '0' && data.charAt(i) <= '9') {
    wData += data.charAt(i);
   }
   else {
    cont++;
   }
  }
	  
  if (i == 5) {	  
   if (data.charAt(i) == '/') {
    wData += data.charAt(i);
   }
   else {
    if (data.charAt(i) >= '0' && data.charAt(i) <= '9') {
     wData += '/';
     wData += data.charAt(i);
     cont++;
    }
    else {
     wData += '/';
     cont++;
    }
   }
  }

  if (i > 5 && i <= 9) {
   if (data.charAt(i) >= '0' && data.charAt(i) <= '9') {
    wData += data.charAt(i);
   }
   else {
    cont++;
   }
  }
	  
  if (i > 9) {
   cont++;
  }	  	  
 }
	
 if (cont > 0) {
  // Atualiza o campo 
  campo.value = wData;
 }
}

function valida_formulario(sNomeFormulario) {

this.txt = new Array()
this.txt[1]= '\n- O campo '
this.txt[2]= ' precisa ter no mí­nimo '
this.txt[3]= ' caracteres'
this.txt[4]= '\n- Preencha o campo '
this.txt[5]= '\n- Selecione um item no campo '
this.txt[6]= '\n- Digite uma senha'
this.txt[7]= '\n- Confirme a senha digitada'
this.txt[8]= '\n- A senha e a confirmação de senha são diferentes, digite e confirme uma senha'
this.txt[9]= '\n- A senha tem que ter no mínimo '
this.txt[10]= '\n- O e-mail informado está incorreto'
this.txt[11]= '\n- O e-mail informado não é válido'
this.txt[12]= '\n- A data digitada é inválida'
this.txt[13]= '\nERRO[Classe Validação]- '
this.txt[14]= this.txt[13] + 'O id do campo não foi informado.'
this.txt[15]= this.txt[13] + 'O objeto(campo) "'
this.txt[16]= '" não existe.'
this.txt[17]= ' é inválida'
this.txt[18]= ' precisa ter '
this.txt[19]= ' digitos'
this.txt[20]= ' suporta apenas números'
this.txt[21]= '\n- O Número de CPF é inválido'
this.txt[22]= '\n- O Número de CNPJ é inválido'


this.erro = 0
this.msg = 'Não é possí­vel enviar os dados, verifique:'

this.cont = 1
this.nome = new Array()
this.campo = new Array()
this.campo2 = new Array()
this.tipo_validacao = new Array()
this.parametro = new Array()

	// Verifica / Adiciona Formulário
	this.nomeFormulario = null;
	this.refFormularo = null;
	
	if(sNomeFormulario){
		this.nomeFormulario = sNomeFormulario;
		this.refFormulario = document.getElementById(this.nomeFormulario);		
	}
	
	this.criarReferencia = function(sCampo){
		
		refObj = null;
				
		if(this.refFormulario){
			refObj = this.refFormulario[sCampo];			
		} else
			refObj = document.getElementById(sCampo);
			
		return refObj;
	}
	
	this.insCampo = function(nome,campo,tipo,parametro,campo2) {
	
		
		this.nome[this.cont] = nome		
		this.campo[this.cont] = campo
		this.campo2[this.cont] = campo2
		this.tipo_validacao[this.cont] = tipo
		this.parametro[this.cont] = parametro
		
		// Incrementa indice dos array
		this.cont++
	}
	
	this.insErro = function(msg) {
		
		this.erro = 1;
		this.msg += msg; 	
	
	}	
	
	this.marcarCampo = function(obj,op) {
		
		if(obj){
			
			if(obj.style){
				if(op == 1)
					// Marca campo
					obj.style.background = "#ffffd9";
				else if(op == 0)
					obj.style.background = "#ffffff";
			}	
		}
	
	}

	this.email = function(nome,campo){
		
		var refCampoEmail = this.criarReferencia(campo);
		
		if(this.limpo(campo)){
			this.erro = 1			
			this.msg += this.txt[4] + nome
			
			// Marca campo
			this.marcarCampo(refCampoEmail,1);
		} else {	
			
			obj = refCampoEmail.value
			
			prim = obj.indexOf("@");
			
			if(prim < 2) {
				this.erro = 1			
				this.msg += this.txt[10]
				
				// Marca campo
				this.marcarCampo(refCampoEmail,1);
			} else if(obj.indexOf("@",prim + 1) != -1 || obj.indexOf(".") < 1 || obj.indexOf(" ") != -1 || obj.indexOf(".@") > 0 || obj.indexOf("@.") > 0 || obj.indexOf(".com.br.") > 0 || obj.indexOf("/") > 0 || obj.indexOf("[") > 0 || obj.indexOf("]") > 0 || obj.indexOf("(") > 0 || obj.indexOf(")") > 0 || obj.indexOf("..") > 0) {
				this.erro = 1			
				this.msg += this.txt[11]
				
				// Marca campo
				this.marcarCampo(refCampoEmail,1);
			} else {
				// Desmarca campo
				this.marcarCampo(refCampoEmail,0);
			}
		}
	}
	
	this.valida_data = function(campo) {
		 
		 refCampoData = this.criarReferencia(campo);
		 
		 dados_campo = refCampoData.value
		 
		 hoje = new Date();
		 anoAtual = hoje.getFullYear();
		 barras = dados_campo.split("/");
		 
		 if (barras.length == 3){
			 
		   dia = barras[0];
		   mes = barras[1];
		   ano = barras[2];
		   
		   resultado = (!isNaN(dia) && (dia > 0) && (dia < 32)) && (!isNaN(mes) && (mes > 0) && (mes < 13)) && (!isNaN(ano) && (ano.length == 4) && (ano <= 8000 && ano >= 1900));
		   
		 } else {
			 
			resultado=0;
			
		 }

		
		// Caso resultado senha 1, marca erro e adiciona texto a mensagem
		if(!resultado) {
			this.erro = 1			
			this.msg += this.txt[12]
			
			// Marca campo
			this.marcarCampo(refCampoData,1);
			
		} else {
		
			// Desmarca campo
			this.marcarCampo(refCampoData,0);		
		
		}
	
	}
	
	this.valida_cpf = function(campo) {
		
		var cpf;
		var msg_cpf = '';
		var resultado = 0
		var refCampoCPF = this.criarReferencia(campo);
		
		//Remove caracteres de formatação
		cpf = String(refCampoCPF.value).replace(/\D/g, "")
						
		if (this.limpo(campo)) {
			resultado = 1
			msg_cpf += this.txt[4] + 'CPF'
		}
		if (cpf.length > 0 && (cpf.length < 11 || cpf.length > 11)) {
			resultado = 1
			msg_cpf += this.txt[1] + 'CPF' + this.txt[18] + '11' + this.txt[19] 
		}
		
		var nonNumbers = /\D/;
		
		if (nonNumbers.test(cpf)){ 
			resultado = 1
			msg_cpf += this.txt[1] + 'CPF' + this.txt[20] 
		}
		
		if (cpf == "00000000000" || cpf == "11111111111" || cpf == "22222222222" || cpf == "33333333333" || cpf == "44444444444" || cpf == "55555555555" || cpf == "66666666666" || cpf == "77777777777" || cpf == "88888888888" || cpf == "99999999999"){
			resultado = 1
			msg_cpf += this.txt[21]
		}
		
		var a = [];
		var b = new Number;
		var c = 11;
		
		for (i=0; i<11; i++){
			a[i] = cpf.charAt(i);
			if (i < 9) b += (a[i] * --c);
		}
		  
		if ((x = b % 11) < 2) { a[9] = 0 } else { a[9] = 11-x }
			b = 0;
			c = 11;
		  
		for (y=0; y<10; y++) 
		  b += (a[y] * c--); 
		  		
		if ((x = b % 11) < 2) { 
		  a[10] = 0; 
		} else { 
		  a[10] = 11-x; 
		}
	  
	   if ((cpf.charAt(9) != a[9]) || (cpf.charAt(10) != a[10])){
			resultado = 1
			msg_cpf += this.txt[21]
	   }
			  
		// Caso resultado seja 1, marca erro e adiciona texto a mensagem
		if(resultado) {
			this.erro = 1			
			this.msg += msg_cpf
			
			// Marca campo
			this.marcarCampo(refCampoCPF,1);
			
		} else {
		
			// Desmarca campo
			this.marcarCampo(refCampoCPF,0);		
		
		}
	}
	
	this.valida_cnpj = function(campo) {
		 
		var CNPJ
		var msg_cnpj = ''
		var resultado = 0
		var refCampoCNPJ = this.criarReferencia(campo);
		
		//Remove caracteres de formatação
		CNPJ = String(refCampoCNPJ.value).replace(/\D/g, "")
		 
		if (this.limpo(campo)) {
			resultado = 1
			msg_cnpj += this.txt[4] + 'CNPJ'
		} 
		 
		if (CNPJ.length > 0 && CNPJ.length < 14) {
			resultado = 1
			msg_cnpj += this.txt[1] + 'CNPJ' + this.txt[18] + '14' + this.txt[19] 
		} 
	   
	   var a = [];
	   var b = new Number;
	   var c = [6,5,4,3,2,9,8,7,6,5,4,3,2];
	   for (i=0; i<12; i++){
			   a[i] = CNPJ.charAt(i);
			   b += a[i] * c[i+1];
		}
		
	   if ((x = b % 11) < 2) { a[12] = 0 } else { a[12] = 11-x }
	   b = 0;
	   for (y=0; y<13; y++) {
			   b += (a[y] * c[y]); 
	   }
	   if ((x = b % 11) < 2) { a[13] = 0; } else { a[13] = 11-x; }
	   if ((CNPJ.charAt(12) != a[12]) || (CNPJ.charAt(13) != a[13])){
			resultado = 1
			msg_cnpj += this.txt[22]
	   }
	    
	   // Caso resultado seja 1, marca erro e adiciona texto a mensagem
		if(resultado) {
			this.erro = 1			
			this.msg += msg_cnpj
			
			// Marca campo
			this.marcarCampo(refCampoCNPJ,1);
			
		} else {
		
			// Desmarca campo
			this.marcarCampo(refCampoCNPJ,0);		
		
		}
	}
	
	this.limpo = function(campo) {
		
		refCampo = this.criarReferencia(campo);
		
		if(refCampo.value == '')
			return 1
		else
			return 0
	}
			
	this.branco = function(nome,campo) {
		
		if(campo) {
		
			var objCampo = this.criarReferencia(campo);	
			
			if(objCampo) {
			
				if(this.limpo(campo)) {
						
					this.insErro(this.txt[4] + nome);
					
					// Marca campo
					this.marcarCampo(objCampo,1);
					
				} else {
				
					// Desmarca campo
					this.marcarCampo(objCampo,0);		
				
				}
				
			} else {
			
				this.insErro(this.txt[20]+campo+this.txt[16]);
			
			}
		
		} else {
			
			this.insErro(this.txt[19]);
		
		}
	}	
	
	this.minimo = function(nome,campo,parametro) {
		
		refCampoMinimo = this.criarReferencia(campo);
		
		if(refCampoMinimo.value.length < parametro) {
			this.erro = 1			
			this.msg += this.txt[1] + nome + this.txt[2] + parametro + this.txt[3]
		
			// Marca campo
			this.marcarCampo(refCampoMinimo,1);
			
		} else {
		
			// Desmarca campo
			this.marcarCampo(refCampoMinimo,0);		
		
		}
	}	
	
	this.selecao = function(nome,campo) {
		
		refSelect = this.criarReferencia(campo);
		
		if(refSelect.value == '') {
			this.erro = 1			
			this.msg += this.txt[5] + nome
			
			// Marca campo
			this.marcarCampo(refSelect,1);
			
		} else {
		
			// Desmarca campo
			this.marcarCampo(refSelect,0);		
		
		}
	}
	
	this.senha = function(campo,campo2,parametro) {
		
		if(campo) {
		
			objCampoSenha1 = this.criarReferencia(campo);
			
			if(objCampoSenha1) {
			
				if(this.limpo(campo)) {
				
					this.insErro(this.txt[6]);
					// Marca campo
					this.marcarCampo(objCampoSenha1,1);
					
				} else if(objCampoSenha1.value.length < parametro) {
				
					this.insErro(this.txt[9]	+ parametro + this.txt[3]);
					// Marca campo
					this.marcarCampo(objCampoSenha1,1);
					
				} else {
				
					// Desmarca campo
					this.marcarCampo(objCampoSenha1,0);	
					
				}
				
			} else {
			
				this.insErro(this.txt[1]+campo+this.txt[16]);
			
			}
		
		} else {
			
			this.insErro(this.txt[19]);
		
		}
			
		
		if(campo2) {
		
			objCampoSenha2 = this.criarReferencia(campo2);
			
			if(objCampoSenha2) {
			
				if(this.limpo(campo2)) {
					this.insErro(this.txt[7]);
					// Marca campo
					this.marcarCampo(objCampoSenha2,1);
				} else {
				
					// Desmarca campo
					this.marcarCampo(objCampoSenha2,0);	
					
				}
				
			} else {
			
				this.insErro(this.txt[20]+campo2+this.txt[16]);
			
			}
			
			 
		} else {
			
			this.insErro(this.txt[19]);
		
		}
		
		if(objCampoSenha1.value != objCampoSenha2.value) {
			this.insErro(this.txt[8]);
		}
		
	}
	
	this.executar = function() {
				
		// Virifica todos os dados conforme parametros informados
		for(c=1;c < this.campo.length; c++ ) {
			
			//alert(this.campo[c]);
			
			if(this.tipo_validacao[c] == 'branco')
				this.branco(this.nome[c],this.campo[c])		
				
			else if(this.tipo_validacao[c] == 'minimo')
				this.minimo(this.nome[c],this.campo[c],this.parametro[c])
				
			else if(this.tipo_validacao[c] == 'selecao')
				this.selecao(this.nome[c],this.campo[c])
				
			else if(this.tipo_validacao[c] == 'senha')
				this.senha(this.campo[c],this.campo2[c],this.parametro[c])
			else if(this.tipo_validacao[c] == 'email')
				this.email(this.nome[c],this.campo[c])
			else if(this.tipo_validacao[c] == 'data')
				this.valida_data(this.campo[c])
			else if(this.tipo_validacao[c] == 'cpf')
				this.valida_cpf(this.campo[c])
			else if(this.tipo_validacao[c] == 'cnpj')
				this.valida_cnpj(this.campo[c])
		}
			
		// Mostra erro, caso variavel this.erro for marcada com 1
		if(this.erro) {
			alert(this.msg)
			return false	
		}
		
		return true
		
	}

}

function menu_troca_campo() {

	function campos(titulo,pagina,modulo,link) {
		
		elemento('titulo_campo_tipo').innerHTML = titulo
		
		elemento('lst_pagina').style.display = pagina
		elemento('lst_modulo').style.display = modulo
		elemento('link').style.display = link
			
	}
	
	
	origem = elemento('origem').value
	
	if( origem == 'pagina')
		campos('P&aacute;gina:','block','none','none')
	else if(origem  == 'modulo')
		campos('M&oacute;dulo:','none','block','none')
	else if(origem  == 'link')
		campos('URL:','none','none','block')
	else
		campos('','none','none','none')
}

function visualizador_img() {
	
	this.trocar_imagem = function(numero) {
		
			imagem = img_src + img_lista[numero];
		
			// Cria imagem
			tag_img = document.createElement('img');
			tag_img.border = 0;
			tag_img.src = imagem;
			
			elemento(img_div).innerHTML = '';
			elemento(img_div).appendChild(tag_img);
			
			this.navegar_atualizar(numero);
			
	}
	
	this.navegar_atualizar = function(numero) {
		
		document.getElementById("img_atual").value = numero;
		objeto = document.getElementById("titulo_nome_imagem");
		objeto.innerHTML = img_lista[numero];
		
	}
	
	this.navegar = function(op) {
		
		// Imagem atual - Pega dados do imput oculto
		var n=parseInt(document.getElementById("img_atual").value);
	
		if(op=="voltar") {
			
			if(n>0)
				p=n-1;
			else
				return false;
				
		} else if(op=="proximo") {
			
			if(n < (img_lista.length - 1))
				p=n+1;
			else
				return false;
				
		}
			
		this.trocar_imagem(p);
	}
	
}

function popup_img(src,campo,op) {

	if(op == 'v') {
				
		img = elemento(campo).value;
		
		src_img = src + img;
		
		tag_img = '<img src="'+src_img+'" border="0">';
				
		return overlib(tag_img);
			
	} else if(op == 'f') {
		return nd();
	}
	
}

// DOM
// Função retorna referência ao primeiro nó do elemento 
function get_lastchild(n)
{
	var x=n.lastChild;
	while (x.nodeType!=1)
	  {
	  x=x.previousSibling;
	  }
	return x;
}

function get_nextsibling(n)
{
	var x=n.nextSibling;
	
	while (x.nodeType!=1)
	  {
	  x=x.nextSibling;
	  }
	
	return x;
	
}
// FIM - DOM
			
function _alternarOBJ(idRadio,listaOBJ) {
	
	this.obj = this;
	this.tituloErro = "[_alternarOBJ]";
	this.nomeObjeto = null;
	this.id = null;
	this.sufixo = null;
	this.nomeObjDestino = null;
	this.nomeRadio = null;
	this.listaItens = null;
	this.valueAtivo = null;
	this.lstFuncao = new Array();
	
	//if(idRadio){
		
		this.idRadio = idRadio;
		
		//if(listaOBJ) {
			
			this.listaOBJ = listaOBJ;
			
		//} else {
			//alert('ERRO: A lista de objetos não foi informada.');
		//}
	//} else {
		//alert('ERRO[_alternarOBJ]: O id do radio buttom não foi informado.');
	//}

}

_alternarOBJ.prototype.adNomeObjeto = function(nome){
	if(nome)
		this.nomeObjeto = nome;
}

_alternarOBJ.prototype.adID = function(id){
	if(id)
		this.id = id;
}

_alternarOBJ.prototype.adSufixo = function(s){
	if(s)
		this.sufixo = s;
}

_alternarOBJ.prototype.adNomeObjetoDestino = function(nome){
	if(nome)
		this.nomeObjDestino = nome;
}

_alternarOBJ.prototype.adNomeRadio = function(nome){
	if(nome)
		this.nomeRadio = nome;
}

_alternarOBJ.prototype.adFuncao = function(nome){
	if(nome)
		this.lstFuncao.push(nome);
}

_alternarOBJ.prototype.adItem = function(nome, value, nomeObjeto, valueAtivo){
	
	if(this.listaItens == null){
		this.listaItens = new Array();
		this.listaItens['nome'] = new Array();
		this.listaItens['value'] = new Array();
		this.listaItens['nomeObjeto'] = new Array();
		this.listaItens['valueAtivo'] = new Array();
	}
	
	if(nome && value && nomeObjeto){
		this.listaItens.nome.push(nome);
		this.listaItens.value.push(value);
		this.listaItens.nomeObjeto.push(nomeObjeto);
		this.listaItens.valueAtivo.push(valueAtivo);
	}
	
}

_alternarOBJ.prototype.adValueAtivo = function(v){
	if(v)
		this.valueAtivo = v;
}

_alternarOBJ.prototype.criar = function(){
			
	tituloMsg = this.tituloErro + " criar: \n"; 
	
	if(this.nomeObjDestino){
		this.refObjDestino = $(this.nomeObjDestino);		
		if(this.refObjDestino){
			
			if(this.adNomeRadio){
				
				qtdeItem = this.listaItens.nome.length;
				
				this.radio = new Array();
								
				for(i=0; i<qtdeItem; i++){
					this.radio[i] = document.createElement('input');
					this.radio[i].type = "radio";
					this.radio[i].id = this.nomeRadio;
					this.radio[i].name = this.nomeRadio;
					this.radio[i].value = this.listaItens.value[i];
					this.radio[i].obj = this;
					this.radio[i].onclick = this.alternar;
									
					txtNome = document.createTextNode(this.listaItens.nome[i]);				
					txtEspaco = document.createTextNode('  ');
					
					this.refObjDestino.appendChild(this.radio[i]);
					this.refObjDestino.appendChild(txtNome);
					this.refObjDestino.appendChild(txtEspaco);					
				}
				
				// Verifica / Ativa value
				if(this.valueAtivo)
					this.ativar(this.valueAtivo);
				
			}else {
				alert(tituloMsg + ' - O nome do radio não foi informado.');
			}
			
		}
		/*
		else {
			alert(tituloMsg + ' - O objeto destino "'+this.nomeObjDestino+'" não existe.');
		}
		*/
	} else {
		alert(tituloMsg + ' - O nome do objeto destino não foi informado.');
	}
	
}

_alternarOBJ.prototype.alternar = function(){
	
	tituloMsg = this.obj.tituloErro + " alternar: \n"; 
	
	qtdeItem = this.obj.listaItens.nome.length;
	
	this.checked = true;
				
	for(i=0; i<qtdeItem; i++){
		
		if(this.value == this.obj.listaItens.value[i]){	
			display = "block";	
					
		} else {
			display = "none";			
		}
		
		refObjAtivo = $(this.obj.listaItens.nomeObjeto[i]);
			
		if(refObjAtivo){
			refObjAtivo.style.display = display;			
		} else {
			alert(tituloMsg + ' - O objeto "'+this.obj.listaItens.nomeObjeto[i]+'" não existe.');
		}
	}
	
	this.obj.executarFuncoes(this.value);	
		
}

_alternarOBJ.prototype.ativar = function(value){
	
	tituloMsg = this.tituloErro + " ativar: \n"; 
	
	if(value) {
		qtdeRadio = this.radio.length;
		for(r=0; r<qtdeRadio; r++){			
			if(value == this.radio[r].value){
				this.radio[r].click();
				break;		
			}
		}
	}	
}

// Utilizado para visualizar o objeto desejado
_alternarOBJ.prototype.visualizar = function(refRadio){
	
	if(refRadio){
				
		// Percorre array lista de objetos e deixa visivel o obj informado e oculta o restante
		for(o=0; o < this.listaOBJ.length; o++) {
			
			obj_atual = document.getElementById(this.listaOBJ[o]);
			
			if(obj_atual) {
				
				// Testa e deixa visivel o obj informado e oculta o restante
				if(obj_atual.id == refRadio.className)
					obj_atual.style.display = 'block';
				else
					obj_atual.style.display = 'none';
					
			} else {
				
				alert('ERRO: O objeto ' + this.listaOBJ[o] + 'não existe.');
				
			}
					
		}
	
	}
	
}

_alternarOBJ.prototype.marcar = function(value){
	
	if(value){
		marcarRefRadio = document.getElementById(this.idRadio);
		if(marcarRefRadio){
			refForm = marcarRefRadio.form;
			if(refForm){
				qtdeRadio = refForm[marcarRefRadio.id].length;
				
				for(r=0; r < qtdeRadio; r++){
					rdoAtual = refForm[marcarRefRadio.id][r];
					
					if(rdoAtual.value == value){
						rdoAtual.click();						
					}
				}
			}
		}else {
			alert('ERRO[_alterarOBJ]: O radio "'+this.idRadio+'" não existe');
		}
	}
		
	
}

_alternarOBJ.prototype.executarFuncoes = function(value){
	totalFuncao = this.lstFuncao.length;
	
	if(totalFuncao > 0){
		for(f=0; f < totalFuncao; f++){
			
			lstArgFuncao = new Array();
			lstArgFuncao.push(value);
			
			sistema.chamarFuncao(this.lstFuncao[f], lstArgFuncao);
		}
	}	
}

/* JAVASCRIPT AUXILIAR XAJAXRESPONSE EXTENDIDO */
/* AUTO COMPLETAR - PARTE JAVASCRIPT*/
function _autoCompletar(nomeCampoPai,nomeCampoDestinoValue,functionAjaxAutoCompletar,nomeObj,nomeSelectLista,divDestino,funcaoClickItem,dadosRepasseFuncao) {
	this.nomeDivAutoCompletar = 'divAutoCompletar';
	this.nomeSelectAutoCompletar = 'selectListaAutoCompletar';
	
	this.nomeParcialDivCampo = 'autoCompletar_divCampo_';
	this.nomeParcialImgBotao = 'imgBotao_';
	
	this.funcaoClickItem = funcaoClickItem;
	this.dadosRepasseFuncao = dadosRepasseFuncao;
	
	//deixa como padrão inseção de informação em divDestino	com o mesmo nome do campo pai(div_nomecampopai)
	if(divDestino == 0){
		this.divDestino = divDestino;
	}else
		this.divDestino = 1;
	
	
	if(nomeCampoPai){
		
		this.nomeCampoPai = nomeCampoPai;
		var objCampoPai = document.getElementById(this.nomeCampoPai);
		
		if(objCampoPai) {
			
			objCampoPai.obj = this;
			objCampoPai.onkeyup= this.consultar;
			objCampoPai.onfocus = this.entrarCampo;
			objCampoPai.onblur = this.sairCampo;				
			
		} else {
		
			alert('ERRO AUTOCOMPLETAR: O campo "' + this.nomeCampoPai + '" informado, nao existe.');
			
		}
			
	} else {
		alert('ERRO: O campo texto  não foi informado.');
	}
		
	
	if(nomeCampoDestinoValue) 
		this.nomeCampoDestinoValue = nomeCampoDestinoValue;	
		
	if(functionAjaxAutoCompletar)	
		this.functionAjaxAutoCompletar = functionAjaxAutoCompletar;
		
	if(nomeObj)	
		this.nomeObj = nomeObj;
	
	if(nomeSelectLista)	
		this.nomeSelectLista = nomeSelectLista;
	
	
}
	
_autoCompletar.prototype.consultar = function() {
	
	var posicaoX = findPosX(this);
	var posicaoY = findPosY(this);
	var largura_select = this.offsetWidth;
	var altura_select = this.offsetHeight;	
	var divContainer = document.getElementById(this.obj.nomeDivAutoCompletar);	
			
	
	if(this.value != '') {
	
		select = document.createElement('select');
		select.id = this.obj.nomeSelectAutoCompletar;
		select.name = this.obj.nomeSelectAutoCompletar;
		select.style.width = largura_select  + 'px';
		select.size = 6;
		select.objAutoCompletar = this.obj;
		select.onclick = this.obj.copiarSelecionado;
		select.style.background = "#FFFFFF";
		
		// Cria div conteiner
		
		if(divContainer) {
			
			divContainer.style.top = posicaoY + altura_select + 'px';
			divContainer.style.zIndex = "1005";
			divContainer.style.background = "#FFFFFF";
			divContainer.style.left = posicaoX + 'px';
			divContainer.style.display = 'block';
			
		} else {
		
		
			var divContainer = document.createElement('div');
			divContainer.id = this.obj.nomeDivAutoCompletar;
			divContainer.style.position = 'absolute';
			divContainer.style.zIndex = 1000;
			divContainer.style.top = posicaoY + altura_select + 'px';
			divContainer.style.left = posicaoX + 'px';
			divContainer.style.display = 'block';
			
			document.body.appendChild(divContainer);
		}
		
		divContainer.innerHTML = '';
		divContainer.appendChild(select);
		
		this.obj.consultarPalavra(this.value);
		
		
	} else {
		
		divContainer.innerHTML = '';
		divContainer.style.display="none";
		
	}
	
}

_autoCompletar.prototype.ocultar = function() {
	
	var divContainer = document.getElementById(this.nomeDivAutoCompletar);
	
	if(divContainer) {
		divContainer.innerHTML = '';
		divContainer.style.display="none";
		
		// Oculta Div Campo
		this.fecharCampoBusca();
	}
			
}

_autoCompletar.prototype.consultarPalavra = function (palavra) {
	
	if(palavra) {
				
		this.functionAjaxAutoCompletar(palavra,this.nomeObj,this.dadosRepasseFuncao);
		
	}
	
}

_autoCompletar.prototype.entrarCampo = function() {
			
	// Define cor conforme status
	this.style.border='1px solid #3176BA';
	//this.style.background='#F9F9F9';
	this.ativo = 1;
	
}

_autoCompletar.prototype.sairCampo = function(e) {
		
	// Adiciona cor padrão do formulário e Marca status com desativado
	this.style.border='1px solid #000000';
	//this.style.background='#FFFFFF';
	this.ativo = 0;
	
	if(!e)
		e = window.event;
	
	
	dados = null;
	var i;
	
	//for(i in this){
		//dados += i + '=' +this[i] + '\n';
		//for(p in this['compareDocumentPosition']['prototype'])
		//	dados += p +'='+ this['compareDocumentPosition']['prototype'][p];
	//}
	
	//document.getElementById('txtObservacao').value = dados;
	
	setTimeout(this.obj.nomeObj+'.ocultar()',200)
			
}

_autoCompletar.prototype.adItemSelect = function(value,texto) {
	
	var select = document.getElementById(this.nomeSelectAutoCompletar);
	
	if(select) {
		
		if(texto) {	
		
			var existeValue = 0;
			
			for(s=0; s<select.options.length; s++){
				if(value == select.options[s].value)
					existeValue = 1;
			}
			
			if(!existeValue){
				var option = new Option(texto,value);
				select.options.add(option);
			}
		}
			
	} 
	
}

_autoCompletar.prototype.copiarSelecionado = function() {
	
	if(this.options[this.selectedIndex].value != 'nenhum'){
					
		var objDestino = document.getElementById(this.objAutoCompletar.nomeCampoDestinoValue);
		var objCampoPai = document.getElementById(this.objAutoCompletar.nomeCampoPai);
		var objSelectLista = document.getElementById(this.objAutoCompletar.nomeSelectLista);
		
		var valueSeleciona = this.options[this.selectedIndex].value;
		var textoSeleciona = this.options[this.selectedIndex].text;
		
		// Copia value para campo destino informado ao criar objeto
		if(objDestino) {
									
			// Armazena Value do item selecionado no campo oculto informado
			objDestino.value = valueSeleciona;
			
			// Adiciona informação na div	
			if(this.objAutoCompletar.divDestino == 1){
				var nomeDivVisualizacao = 'div_' + this.objAutoCompletar.nomeCampoPai;
				var objDivSelecionado = document.getElementById(nomeDivVisualizacao);
			
				if(objDivSelecionado){
					objDivSelecionado.innerHTML = valueSeleciona + ' - ' + textoSeleciona;
					objCampoPai.value = '';
				} else 
					alert('ERRO: A div de visualização "' + nomeDivVisualizacao +'" não existe.');
			}else{
				
				objCampoPai.value = textoSeleciona;
								
			}
			
			// Executa função ao clicar item
			if(this.objAutoCompletar.funcaoClickItem)
				this.objAutoCompletar.funcaoClickItem.call(this,valueSeleciona);
			
		} else if(objSelectLista) {
			
			for(o=0; o < objSelectLista.options.length; o++){
				
				if(objSelectLista.options[o].value == valueSeleciona)
					objSelectLista.selectedIndex = o;
					
				
				
			}
			
		} else{
			//alert('ERRO: O campo de destino ' + this.objAutoCompletar.nomeCampoDestinoValue + ' nao existe.');
			objCampoPai.value = textoSeleciona;
		}
	}
	
		
	this.objAutoCompletar.ocultar();
	
}

_autoCompletar.prototype.mostrarCampoBusca = function() {
	
	
	
	refDivCampo = document.getElementById(this.nomeParcialDivCampo + this.nomeObj);
	
	if(refDivCampo){
		
		ptopo = getPosicaoElemento(this.nomeParcialImgBotao + this.nomeObj).top;
		pdireita = getPosicaoElemento(this.nomeParcialImgBotao + this.nomeObj).left;
		
		// Oculta todos os campos busca abertos
		_autoCompletar_ocultarTdodos();
		
		refDivCampo.style.position='absolute';
		refDivCampo.style.display='top:' + ptopo + 'px';
		refDivCampo.style.display='left:' + pdireita + 'px';
		refDivCampo.style.background='#FFFFFF';
		refDivCampo.style.border='2px solid #999999';
		refDivCampo.style.padding='4px';
		refDivCampo.style.margin='4px';
		refDivCampo.style.display='block';
		
	} else {
		alert('ERRO[_autoCompletar, mostrarCampoBusca]: A div do campo não existe.');
	}
	
}

_autoCompletar.prototype.fecharCampoBusca = function() {
	
	refDivCampo = document.getElementById(this.nomeParcialDivCampo + this.nomeObj);
	
	if(refDivCampo){
		
		refDivCampo.style.display='none';
		
	} else {
		alert('ERRO[_autoCompletar, fecharCampoBusca]: A div do campo não existe.');
	}
}

_autoCompletar_ocultarTdodos = function(){
	
	var refBody = document.body;
	var lstDiv = refBody.getElementsByTagName('div');
	var nomeParcialDivCampo = 'autoCompletar_divCampo_';
	
	if(lstDiv.length > 0){
		for(d=0; d < lstDiv.length; d++){
			if(lstDiv[d].id.indexOf(nomeParcialDivCampo) == 0){
				lstDiv[d].style.display = 'none';
			}
		}
	}
}

/* AUTO COMPLETAR - PARTE JAVASCRIPT*/

/*FORMULÁRIO*/
function _localizarNomeFormularioPai(obj) {
	
	noPai = obj.parentNode;
	for(;;) {
		if(noPai.nodeName == 'FORM'){
			
			return noPai;
			
		} else {
			
			if(noPai.nodeName == 'BODY')
				return false;
			
			noPai = noPai.parentNode;
		}
		
	}
	
	
	return false;	
}
function _formularioSubmit(nomeFormulario){
	
	// Verifica se recebeu nome e cria referencia do formulário, 
	// Botão - Caso o nome não seja informado localiza/cria referencia formulário nó logo acima botao
	if(nomeFormulario && typeof(nomeFormulario) != 'object')
		refFormulario = document.getElementById(nomeFormulario);
	else
		refFormulario = _localizarNomeFormularioPai(this);
		
	if(refFormulario)
		refFormulario.submit();
	else
		alert('ERRO[FORMULÁRIO - FUNCAO PADRÃO]: O formulário não foi encontrado.');

}

function _formularioReset(nomeFormulario){
	
	// Verifica se recebeu nome e cria referencia do formulário, 
	// Botão - Caso o nome não seja informado localiza/cria referencia formulário nó logo acima botao
	if(nomeFormulario && typeof(nomeFormulario) != 'object'){
		refFormulario = document.getElementById(nomeFormulario);
		
	} else
		refFormulario = _localizarNomeFormularioPai(this);
		
	if(refFormulario)
		refFormulario.reset();
	else
		alert('ERRO[FORMULÁRIO - FUNCAO PADRÃO]: O formulário não foi encontrado.');
	
}
/*FIM - FORMULÁRIO*/

/*PAINEL BOTOES
 * 
 * Variavel modelo 
 * var painelBotao_dados = {
 * 		'nome':['Novo','Localizar','Imprimir'],
 * 		'funcao':['produto_cjs_novo','sistema_localizar','sistema_imprimir'],
 * 		'imagem':['novo.png','localizar.png','print.png'],
 * }
 **/
function _painelBotao(){
	this.prefixo = 'painelBotao_';
	this.nome = null;
	this.nomeObjDestino = null;
	this.dados = null;
	
	this.refObjDestino = null;
	
	this.erro = 0;
	this.tituloMsg = '_painelBotao';
	this.msg = 'Não foi possível ';
}

_painelBotao.prototype.adMsg = function(texto){
	if(texto){
		this.msg += ' \n - ' + texto;
		this.erro = 1;
	}
}

_painelBotao.prototype.alerta = function(texto, titulo){
	
	if(titulo)
		this.msg = '[' + titulo + '] \n ' + this.msg;
	
	this.adMsg(texto);
	
	alert(this.msg);
}

_painelBotao.prototype.adNome = function(nome){
	this.nome = nome;
}

_painelBotao.prototype.adNomeObjDestino = function(nome){
	this.nomeObjDestino = nome;
}

_painelBotao.prototype.adDados = function(dados){
	this.dados = dados;
}

_painelBotao.prototype.verificaObjDestino = function(){
	
	// Verifica Instancia Objeto destino	
	if(this.nomeObjDestino)
		this.refObjDestino = $(this.nomeObjDestino);
	else {
		this.adMsg('Adicione o Nome do Objeto de Destino');
		return false;
	}
	
	return this.refObjDestino;
}

_painelBotao.prototype.getNomePainel = function(){
	
	return this.prefixo + this.nome;
	
}

_painelBotao.prototype.adPainel = function(){
	
	if(this.verificaObjDestino()){
	
		// Verifica nome e Cria Div Base Painel
		if(this.nome){
			
			nomePainel = this.getNomePainel();
									
			this.refObjPainel = $(nomePainel);
					
			if(this.refObjPainel){
				//this.adMsg('O painel já existe.');
				//return false;
				this.refObjPainel.innerHTML = "";
			} else {
				
				// Div base
				//this.refObjDestino.innerHTML = "";
				
				this.refObjPainel = document.createElement('div');
				this.refObjPainel.id = nomePainel;
				
				this.refObjDestino.appendChild(this.refObjPainel);
			}
						
		}else
			this.adMsg('Adicione o Nome de Painel.');
	
	} else {
		this.adMsg('O objeto destino não existe.');
	}
		
	return this.refObjPainel;
}

_painelBotao.prototype.adBotao = function(nome, sFuncao, imagem){
	
	if(this.refObjPainel){
		
		idBotao = this.getNomePainel() + "_" + nome;
				
		// Div botao
		objDivBotao = document.createElement('div');
		objDivBotao.id = idBotao;
		//objDivBotao.style.position = 'relative';
		//objDivBotao.style.display = 'inline';
		//objDivBotao.style.left = '2px';
		objDivBotao.className = 'divBaseBotao';
		objDivBotao.style.width = '58px';
		objDivBotao.style.height = '54px';
		objDivBotao.style.textAlign = 'center';
		objDivBotao.style.cssFloat = 'left';
		objDivBotao.style.styleFloat = 'left';
		objDivBotao.sFuncao = sFuncao;
		objDivBotao.onclick = this.chamarFuncao;
		this.refObjPainel.appendChild(objDivBotao);
						
		// Link
		objLink = document.createElement('a');
		objLink.id = 'linkBT_'+nome;
		objLink.href = "javascript:;";
		objLink.className = '_painelBotao_linkBotao';
		objLink.style.width = '58px';
		objLink.style.height = '54px';
		//objLink.onclick = funcao;
		
		// Imagem
		if(imagem){
			objImg = document.createElement('img');
			objImg.src = template_pastaImagens + imagem;
			objImg.border = 0;
			objImg.alt = nome;
			
			objLink.appendChild(objImg);
		}
		
		// Adiciona dados ao link
		// nova linha
		objBr = document.createElement('br');
		objLink.appendChild(objBr);
		
		// Nome
		objNome = document.createTextNode(nome);			
		objLink.appendChild(objNome);
		
		// Adiciona link na div botao
		objDivBotao.appendChild(objLink);
		
	} else {
		
		this.alerta('O objeto div painel não existe', 'adBotao');
		return false;
		
	}
	
	// Adiciona botão na coluna base
	//this.refObjDestino.appendChild(objDivBotao);
	return objDivBotao;
	
}

_painelBotao.prototype.chamarFuncao = function(){
	
	funcao = eval(this.sFuncao);
	
	if(funcao)
		funcao.call(this);
}

_painelBotao.prototype.criar = function(){
		
	this.adPainel();
	
	if(!this.erro){
		
		if(this.dados){
			
			totalBotao = this.dados.nome.length;
						
			for(b=0; b < totalBotao; b++){
				this.adBotao(this.dados.nome[b],this.dados.funcao[b],this.dados.imagem[b]);
			}
	
		}
				
	} else {
		
		this.alerta(null,'Não é possível criar painel');
	}
		
}
/*FIM - PAINEL BOTOES*/

/*BOTAO*/
function _rmBotoes(nomeObjBase){
	
	this.nomeObjBase = nomeObjBase;
		
	refObjBase = document.getElementById(this.nomeObjBase);	
	
	if(refObjBase)
		refObjBase.innerHTML = '';
	
	
}

function _adBotao(nome,imagem,funcao,nomeObjDestino, nomeBotao){
	
	this.nomeObjDestino = nomeObjDestino;
		
	this.removeBotoes = function() {
		
		if(this.nomeObjDestino){
			
			this.refObjDestino = document.getElementById(this.nomeObjDestino);
		
			if(this.refObjDestino)
				this.nomeObjDestino.innerHTML = '';
			else
				alert('ERRO[classBotao, removeBotoes]: Não foi possível remover botões, o objeto destino não existe.');
		}
	
	}
	
	// Monta botoes
	this.criarBotao = function(nome,imagem,funcao, nomeBotao){	
		
		// Verifica dados
		if(!nome) {
			alert('ERRO[classBotao, adicionarBotao]: Não foi possível adicionar botão, o nome não foi informado.');
			return false;
		}
		
		if(this.refObjDestino){
						
			// Div botao
			objDivBotao = document.createElement('div');
			//objDivBotao.style.position = 'relative';
			//objDivBotao.style.display = 'inline';
			//objDivBotao.style.left = '2px';
			objDivBotao.className = 'divBaseBotao';
			objDivBotao.style.width = '58px';
			objDivBotao.style.height = '54px';
			objDivBotao.style.textAlign = 'center';
			objDivBotao.style.cssFloat = 'left';
			objDivBotao.style.styleFloat = 'left';
			objDivBotao.onclick = funcao;
			
			
			// Link
			objLink = document.createElement('a');
			objLink.id = 'linkBT_'+nome;
			if(nomeBotao)
				objLink.id += '_' + nomeBotao;
			objLink.href = "javascript:;";
			objLink.className = '_painelBotao_linkBotao';
			objLink.style.width = '58px';
			objLink.style.height = '54px';
			//objLink.onclick = funcao;
			
			// Imagem
			if(imagem){
				objImg = document.createElement('img');
				objImg.src = template_pastaImagens + imagem;
				objImg.border = 0;
				objImg.alt = nome;
				
				objLink.appendChild(objImg);
			}
			
			// Adiciona dados ao link
			// nova linha
			objBr = document.createElement('br');
			objLink.appendChild(objBr);
			
			// Nome
			objNome = document.createTextNode(nome);			
			objLink.appendChild(objNome);
			
			// Adiciona link na div botao
			objDivBotao.appendChild(objLink);
			
			// Adiciona botão na coluna base
			//this.refObjDestino.appendChild(objDivBotao);
			return objDivBotao;
			
		} else {
			alert('ERRO[classBotao, adicionarBotao]: Não foi possível adicionar botão, o objeto destino não existe.');
			return false;
		}
		
	}	
	
	// Verifica / Cria botão no objeto destino
	if(this.nomeObjDestino){
		this.refObjDestino = document.getElementById(this.nomeObjDestino);
		
		if(this.refObjDestino){
			
			refNovoBotao = this.criarBotao(nome,imagem,funcao,nomeBotao);
			
			this.refObjDestino.appendChild(refNovoBotao);
			
			return {refDivEstrutura:objDivBotao,refLink:objLink,refImg:objImg,refNome:objNome};
		
		} else
			alert('ERRO[jg, _adBotao]:O objeto destino informado não existe');
		
	} else {
		alert('ERRO[jg, _adBotao]:O nome do objeto destino não foi informado');
	}

}
/*FIM - BOTÃO*/

/*BOTÃO FORMULÁRIO*/
// Adicionar botões personalizados
function _rmBotoesFormulario(nomeFormulario){
	
	this.nomeTabelaBotao = 'tbFormulario_' + nomeFormulario;
	this.nomeColBaseBotao = this.nomeTabelaBotao + '_botao';
		
	refColBaseBotao = document.getElementById(this.nomeColBaseBotao);	
	
	if(refColBaseBotao)
		refColBaseBotao.innerHTML = '';
	
}
function _adBotaoFormulario(nome,imagem,funcao,nomeFormulario){
	
	this.nomeTabelaBotao = 'tbFormulario_' + nomeFormulario;
	this.nomeColBaseBotao = this.nomeTabelaBotao + '_botao';
	
	
	this.removeBotoes = function() {
	
		refColBaseBotao = document.getElementById(this.nomeColBaseBotao);	
		
		if(refColBaseBotao)
			refColBaseBotao.innerHTML = '';
	
	}
	
	// Monta botoes
	this.adicionarBotao = function(nome,imagem,funcao){	
		
		// Verifica dados
		if(!nome) {
			alert('ERRO[classBotaoFormulario]- Formulário ' + nomeFormulario + ': Não foi possível adicionar botão, o nome não foi informado.');
			return false;
		}
		
		/*
		if(!funcao) {
			alert('ERRO[classBotaoFormulario]- Formulário ' + nomeFormulario + ': Não foi possível adicionar botão "' + nome + '", a função não foi informado.');
			return false;
		}
		*/
		
		if(this.refColBaseBotao){
			
			
			// Div botao
			objDivBotao = document.createElement('div');
			//objDivBotao.style.position = 'relative';
			//objDivBotao.style.display = 'inline';
			//objDivBotao.style.left = '2px';
			objDivBotao.className = 'divBaseBotao';
			objDivBotao.style.width = '62px';
			objDivBotao.style.height = '54px';
			objDivBotao.style.textAlign = 'center';
			objDivBotao.style.cssFloat = 'left';
			objDivBotao.style.styleFloat = 'left';
			
			
			// Link
			objLink = document.createElement('a');
			objLink.id = 'linkBT_'+nome;
			objLink.href = "javascript:;";
			objLink.className = '_painelBotao_linkBotao';
			objLink.style.width = '58px';
			objLink.style.height = '54px';
			objLink.onclick = funcao;
			
			// Imagem
			if(imagem){
				objImg = document.createElement('img');
				objImg.src = template_pastaImagens + imagem;
				objImg.border = 0;
				objImg.alt = nome;
				
				objLink.appendChild(objImg);
			}
			
			// Adiciona dados ao link
			// nova linha
			objBr = document.createElement('br');
			objLink.appendChild(objBr);
			
			// Nome
			objNome = document.createTextNode(nome);			
			objLink.appendChild(objNome);
			
			// Adiciona link na div botao
			objDivBotao.appendChild(objLink);
			
			// Adiciona botão na coluna base
			this.refColBaseBotao.appendChild(objDivBotao);
		
		} else {
			alert('ERRO[classBotaoFormulario]- Formulário ' + nomeFormulario + ': Não foi possível adicionar botão, a tabela base não existe.');
			return false;
		}
		
	}	
	
	/*
	if(nomeFormulario){		
		auxNomeFormulario = nomeFormulario;
	}else
		auxNomeFormulario = document.getElementsByTagName('form')[0].id;	
	*/
	// Referencia do formulário
	this.objLstForm = document.getElementById(nomeFormulario);
	this.nomeDivBotao += '_' + nomeFormulario; // Personaliza nome div botao
	
	// Adiciona botão
	if(this.objLstForm) {
			
		// Cria referencia
		this.refColBaseBotao = document.getElementById(this.nomeColBaseBotao);
		
		// Verifica / Cria Tabela base botões
		if(!this.refColBaseBotao){
			
			//Tabela
			/*
			objtabela = document.createElement('table');
			objtabela.style.width = '100%';
			objtabela.id = this.nomeTabelaBotao;
			objtabela.cellPadding = 0;
			objtabela.cellSpacing = 0;
			objtabela.align="center";
			*/
			
			objtabela = document.getElementById(nomeFormulario);
			
			linha1 = objtabela.insertRow(0);
			
			this.refColBaseBotao = linha1.insertCell(0);
			this.refColBaseBotao.id = this.nomeColBaseBotao;
			this.refColBaseBotao.align="center";

						
			this.objLstForm.insertBefore(objtabela,get_lastchild(this.objLstForm));
		} 
		
		// Verifica / Adiciona div ao formulário
		if(this.refColBaseBotao){
						
			this.adicionarBotao(nome,imagem,funcao);
			
			return {refDivEstrutura:objDivBotao,refLink:objLink,refImg:objImg,refNome:objNome};
			
		} else
			alert('ERRO[classBotaoFormulario]- Formulário ' + nomeFormulario + ': A tabela base dos botões não foi encontrada.');
					
	} else {
		alert('ERRO[classBotaoFormulario]: O formulário "' + nomeFormulario + '" não existe.');
	}

}
/*FIM - BOTÃO FORMULÁRIO*/
/* BUSCA FORMULÁRIO */
/*
function _buscaFormulario(frmBusca,nomeFrmCadastro){
	
	this.tituloErro = 'ERRO[classe _buscaFormulario Javascript]';
	this.idLinkBusca = 'linkBT_Localizar';
	this.frmBusca = frmBusca;
	this.nomeFrmCadastro = nomeFrmCadastro;
	this.nomeDivBusca = 'divBusca';
	this.nomeDivForm = this.nomeDivBusca+'_frm_'+this.nomeFrmCadastro;
	this.nomeDivLista = this.nomeDivBusca+'_lst_'+this.nomeFrmCadastro;
	
	this.refJanela;
		
	//Adiciona botao
	refBtLocalizar = _adBotaoFormulario('Localizar','localizar.png',this.visualizar,this.nomeFrmCadastro).refLink;
	
	refBtLocalizar.refObjBusca = this;
	
}

_buscaFormulario.prototype.visualizar = function() {
	
	if(this.refObjBusca){
		//Posição botao
		btTop = getPosicaoElemento(this).top;
		btLeft = getPosicaoElemento(this).left;
		
		// Cria array com os objetos conteudo da janela
		conteudoJanela = new Array();
		
		// Formulário
		conteudoJanela[0] = document.createElement('div');
		conteudoJanela[0].id= this.refObjBusca.nomeDivForm;
		conteudoJanela[0].style.padding='2px';
		conteudoJanela[0].style.border='1px solid #F4F4F4';
		conteudoJanela[0].innerHTML = this.refObjBusca.frmBusca;
		
		// Lista
		conteudoJanela[1] = document.createElement('div');
		conteudoJanela[1].id=this.refObjBusca.nomeDivLista;
		conteudoJanela[1].style.width='100%';
		conteudoJanela[1].style.height = '180px';
		conteudoJanela[1].style.overflow = 'auto';
		conteudoJanela[1].style.padding='2px';
		conteudoJanela[1].innerHTML = 'Para efetuar uma busca, preencha os campos desejados e clique em OK.';
		
		
		// Cria janela de busca
		this.refObjBusca.refJanela = _adJanela('Localizar',conteudoJanela,'350x400',btTop+'x'+btLeft).refJanela;
		
		//alert(conteudoJanela[0].nodeValue);
		
	}else
		alert('ERRO[class _buscaFormulario javascript, visualizar]: O botao não possui referencia ao objeto Busca Formulario.');
	
}

_buscaFormulario.prototype.ocultar = function() {
	// Utiliza var this.refJanela adicionada ao objeto na criação da janela(funcao this.visualizar)
	_adJanela:remover.call(this);
}

_buscaFormulario.prototype.montarTabela = function(dadosTabela,funcaoClickLinha) {
	
	// Adiciona função de retorno ao objeto
	this.funcaoClickLinha = funcaoClickLinha;
	
	// Verifica se a div lista de destino existe
	refDivLista = document.getElementById(this.nomeDivLista);
		
	if(refDivLista){
					
		if(dadosTabela && dadosTabela != ''){
			
			// Verifica se a busca retornou dados
			if(dadosTabela[0][1].length > 0){
					
				tblstResultado = document.createElement('table');
				tblstResultado.id = 'tbResultadoBusca';
				tblstResultado.width="100%";
						
				//Linha Título
				linhaTitulo = tblstResultado.insertRow(0);
				linhaTitulo.style.background="#F4F4F4";
				for(c=0; c<dadosTabela.length; c++){
					refColuna = linhaTitulo.insertCell(c);
					refColuna.innerHTML = dadosTabela[c][0];
				}
				
				//Linhas
				for(l=0; l < dadosTabela[0][1].length; l++){
					numLinha = (l+1);
					
					linhaTitulo = tblstResultado.insertRow(numLinha);
					
					linhaTitulo.objFrm = this;
					linhaTitulo.onmouseover = this.linhaMouseOver;
					linhaTitulo.onmouseout = this.linhaMouseOut;
					linhaTitulo.onclick = this.linhaClick;
					
					for(c=0; c<dadosTabela.length; c++){
						refColuna = linhaTitulo.insertCell(c);
						//refColuna = linhaTitulo.insertCell(1);
						refColuna.innerHTML = dadosTabela[c][1][l];
					
						//alert('Coluna'+c+':'+dadosTabela[c][0]+'- linha'+numLinha+' '+dadosTabela[c][1][l]);
					}
				}
				
				refDivLista.innerHTML = '';
				refDivLista.appendChild(tblstResultado);
			
				//alert('Total linhas:'+dadosTabela[0][1].length);
			} else {
				
				refDivLista.innerHTML = 'A busca não retornou resultado.';
				
			}
		} 
		
	} else {
		alert(this.tituloErro + ' montarTabela, A div destino lista não existe.');
	}	
	
}

_buscaFormulario.prototype.linhaMouseOver = function(){
	this.bgColor="#F4F4F4";
}

_buscaFormulario.prototype.linhaMouseOut = function(){
	this.bgColor="";
}

_buscaFormulario.prototype.linhaClick = function(){

	//Pega dados da primeira coluna selecinada
	colunas = this.getElementsByTagName('td');
	
	txtCol1 = colunas[0].innerHTML;
	
	if(this.objFrm.funcaoClickLinha){
		this.objFrm.funcaoClickLinha.call(this,txtCol1);
		this.objFrm.ocultar();
	}else
		alert(txtCol1);
}
*/
/* FIM - BUSCA FORMULÁRIO */


/* BUSCA */
function _busca(frmBusca,id_objBotao,dimensao,listaResultado){
	
	this.tituloErro = 'ERRO[classe _busca Javascript]';
	this.idLinkBusca = 'linkBT_Localizar';
	this.frmBusca = frmBusca;
	//this.nomeFrmCadastro = nomeFrmCadastro;
	this.nomeDivBusca = 'divBusca';
	this.nomeDivForm = this.nomeDivBusca+'_frm_'+this.nomeFrmCadastro;
	this.nomeDivLista = this.nomeDivBusca+'_lst_'+this.nomeFrmCadastro;
	
	this.objJanela = null;
	
	if(dimensao){
		this.dimensao = dimensao;
	}else
		this.dimensao = '350x400';
	
	if(listaResultado==false){
		this.listaResultado = false;
	}else
		this.listaResultado = true;
	
	this.refJanela;
		
	//BOTÃO - Adiciona informações ao Botão
	tipoObjeto = typeof(id_objBotao);
    if(tipoObjeto == 'object')
    	this.refBtBusca = id_objBotao
    else if(tipoObjeto == 'string'){
    	this.refBtBusca = document.getElementById(id_objBotao);
		if(this.refBtBusca){
			this.refBtBusca.refObjBusca = this;
			this.refBtBusca.onclick = this.visualizar;
		}else
			alert(this.tituloErro+'Não existe objeto com o nome '+id_objBotao);	
	}else
		alert(this.tituloErro+'O id_objBotao não é um objeto ou uma string.');
	
}

_busca.prototype.visualizar = function() {
		
	if(this.refObjBusca){
		//Posição botao
		//btTop = getPosicaoElemento(this).top;
		//btLeft = getPosicaoElemento(this).left;
		btTop = findPosY(this);
		btLeft = findPosX(this);
		
		//alert(btTop);
				
		// Cria array com os objetos conteudo da janela
		conteudoJanela = new Array();
		
		// Formulário
		conteudoJanela[0] = document.createElement('div');
		conteudoJanela[0].id= this.refObjBusca.nomeDivForm;
		conteudoJanela[0].style.padding='2px';
		conteudoJanela[0].style.border='1px solid #F4F4F4';
		conteudoJanela[0].innerHTML = this.refObjBusca.frmBusca;
		
		
		// Lista
		if(this.refObjBusca.listaResultado){
			conteudoJanela[1] = document.createElement('div');
			conteudoJanela[1].id=this.refObjBusca.nomeDivLista;
			conteudoJanela[1].style.width='99%';
			conteudoJanela[1].style.height = '180px';
			//conteudoJanela[1].style.overflow = 'auto';
			conteudoJanela[1].style.padding='2px';
			conteudoJanela[1].innerHTML = 'Para efetuar uma busca, preencha os campos desejados e clique em OK.';
		}
				
		// Cria janela de busca
		//this.refObjBusca.refJanela = _adJanela('Localizar',conteudoJanela,this.refObjBusca.dimensao,btTop+'x'+btLeft).refJanela;
		//if(!this.refObjBusca.objJanela)
			this.refObjBusca.objJanela = new _adJanela('Localizar',conteudoJanela,this.refObjBusca.dimensao,btTop+'x'+btLeft);
		//this.refObjBusca.objJanela = this.objJanela.refJanela.estrutura;
				
	}else
		alert('ERRO[class _buscaFormulario javascript, visualizar]: O botao não possui referencia ao objeto Busca Formulario.');
	
}

_busca.prototype.ocultar = function() {
	// Utiliza var this.refJanela adicionada ao objeto na criação da janela(funcao this.visualizar)
	//_adJanela:remover.call(this);
	this.objJanela.remover();
}

/*
_busca.prototype.montarTabela2 = function(dadosTabela,funcaoClickLinha) {
	
	// Adiciona função de retorno ao objeto
	this.funcaoClickLinha = funcaoClickLinha;
	
	// Verifica se a div lista de destino existe
	refDivLista = document.getElementById(this.nomeDivLista);
		
	if(refDivLista){
					
		if(dadosTabela && dadosTabela != ''){
			
			// Verifica se a busca retornou dados
			if(dadosTabela[0][1].length > 0){
				
				// ESTRUTURA	
				tbEstruturaResultado = document.createElement('table');
				tbEstruturaResultado.id = 'tbEstruturaResultadoBusca';
				tbEstruturaResultado.width="100%";
				tbEstruturaResultado.className="tbLista";
						
				//Linha Título
				linhatbEstruturaTitulo = tbEstruturaResultado.insertRow(0);
				for(c=0; c<dadosTabela.length; c++){
					refTbEstruturaColunaTitulo = linhatbEstruturaTitulo.insertCell(c);
					refTbEstruturaColunaTitulo.className="tbLista_titulo";
					refTbEstruturaColunaTitulo.innerHTML = dadosTabela[c][0];
				}
				
				linhaConteudo = tbEstruturaResultado.insertRow(1);
				refCelulaConteudo = linhaConteudo.insertCell(0);
				refCelulaConteudo.colSpan=c;
				
				refDivConteudo = document.createElement('div');	
				refDivConteudo.style.width="100%";
				refDivConteudo.style.height = '180px';
				refDivConteudo.style.overflow = 'auto';
				refCelulaConteudo.appendChild(refDivConteudo);
				
				
				// LISTA
				tblstResultado = document.createElement('table');
				tblstResultado.id = 'tbLstResultadoBusca';
				tblstResultado.width="100%";
				
				//Linhas
				for(l=0; l < dadosTabela[0][1].length; l++){
					numLinha = l;
					
					linhaTitulo = tblstResultado.insertRow(numLinha);
					linhaTitulo.className="tbLista_linha";
					
					linhaTitulo.objFrm = this;
					//linhaTitulo.onmouseover = this.linhaMouseOver;
					//linhaTitulo.onmouseout = this.linhaMouseOut;
					linhaTitulo.onclick = this.linhaClick;
					
					for(c=0; c<dadosTabela.length; c++){
						refColuna = linhaTitulo.insertCell(c);
						refColuna.className="tbLista_texto";
						//refColuna = linhaTitulo.insertCell(1);
						refColuna.innerHTML = dadosTabela[c][1][l];
					
						// Define largura colunas do titulo conforme resultado
						tbEstruturaResultado.rows[0].cells[c].style.width = refColuna.style.width;
						
					}
				}
				
				
				// Adiciona tabela estrutura
				refDivLista.innerHTML = '';
				refDivLista.appendChild(tbEstruturaResultado);
				// Adiciona tabela lista resultado
				refDivConteudo.innerHTML = '';
				refDivConteudo.appendChild(tblstResultado);
			
				//alert('Total linhas:'+dadosTabela[0][1].length);
			} else {
				
				refDivLista.innerHTML = 'A busca não retornou resultado.';
				
			}
		} 
		
	} else {
		alert(this.tituloErro + ' montarTabela, A div destino lista não existe.');
	}	
	
}
*/

_busca.prototype.montarTabela = function(dadosTabela,funcaoClickLinha) {
	
	// Adiciona função de retorno ao objeto
	this.funcaoClickLinha = funcaoClickLinha;
	
	// Verifica se a div lista de destino existe
	refDivLista = document.getElementById(this.nomeDivLista);
		
	if(refDivLista){
					
		if(dadosTabela && dadosTabela != ''){
			
			// Verifica se a busca retornou dados
			if(dadosTabela[0][1].length > 0){
								
				// ESTRUTURA	
				tbEstruturaResultado = document.createElement('table');
				tbEstruturaResultado.id = 'tbEstruturaResultadoBusca';
				tbEstruturaResultado.width="100%";
				tbEstruturaResultado.className="tbLista";
						
				//Linha Título
				linhatbEstruturaTitulo = tbEstruturaResultado.insertRow(0);
				for(c=0; c<dadosTabela.length; c++){
					refTbEstruturaColunaTitulo = linhatbEstruturaTitulo.insertCell(c);
					refTbEstruturaColunaTitulo.className="tbLista_titulo";
					refTbEstruturaColunaTitulo.width = dadosTabela[c][2];
					refTbEstruturaColunaTitulo.innerHTML = dadosTabela[c][0];
				}
				
				linhaConteudo = tbEstruturaResultado.insertRow(1);
				refCelulaConteudo = linhaConteudo.insertCell(0);
				refCelulaConteudo.colSpan=c;
				
				refDivConteudo = document.createElement('div');	
				refDivConteudo.style.width="100%";
				refDivConteudo.style.height = '180px';
				refDivConteudo.style.overflow = 'auto';
				refCelulaConteudo.appendChild(refDivConteudo);
				
				
				// LISTA
				tblstResultado = document.createElement('table');
				tblstResultado.id = 'tbLstResultadoBusca';
				tblstResultado.width="100%";
				
				//Linhas
				for(l=0; l < dadosTabela[0][1].length; l++){
					numLinha = l;
					
					linhaTitulo = tblstResultado.insertRow(numLinha);
					linhaTitulo.className="tbLista_linha";
					
					linhaTitulo.objFrm = this;
					//linhaTitulo.onmouseover = this.linhaMouseOver;
					//linhaTitulo.onmouseout = this.linhaMouseOut;
					linhaTitulo.onclick = this.linhaClick;
					
					for(c=0; c<dadosTabela.length; c++){
						refColuna = linhaTitulo.insertCell(c);
						refColuna.className="tbLista_texto";
						//refColuna = linhaTitulo.insertCell(1);
						refColuna.innerHTML = dadosTabela[c][1][l];
						
						// Define largura colunas do titulo conforme resultado
						refColuna.width = dadosTabela[c][2];
						
					}
				}
				
				
				// Adiciona tabela estrutura
				refDivLista.innerHTML = '';
				refDivLista.appendChild(tbEstruturaResultado);
				// Adiciona tabela lista resultado
				refDivConteudo.innerHTML = '';
				refDivConteudo.appendChild(tblstResultado);
			
			} else {
				
				refDivLista.innerHTML = 'A busca não retornou resultado.';
				
			}
		} 
		
	} else {
		alert(this.tituloErro + ' montarTabela, A div destino lista não existe.');
	}	
	
}

_busca.prototype.linhaMouseOver = function(){
	this.bgColor="#F4F4F4";
}

_busca.prototype.linhaMouseOut = function(){
	this.bgColor="";
}

_busca.prototype.linhaClick = function(){

	//Pega dados da primeira coluna selecinada
	colunas = this.getElementsByTagName('td');
	
	txtCol1 = colunas[0].innerHTML;
	
	if(this.objFrm.funcaoClickLinha){
		this.objFrm.funcaoClickLinha.call(this,txtCol1);
		this.objFrm.ocultar();
	}else
		alert(txtCol1);
}

/* FIM - BUSCA */
/* FIM - JAVASCRIPT AUXILIAR XAJAXRESPONSE EXTENDIDO */

/* Moeda */
function moeda2float(moeda){

   moeda = moeda.replace(".","");

   moeda = moeda.replace(",",".");

   return parseFloat(moeda);

}

function float2moeda(num) {

   x = 0;

   if(num<0) {
      num = Math.abs(num);
      x = 1;
   }

   if(isNaN(num)) num = "0";
      cents = Math.floor((num*100+0.5)%100);

   num = Math.floor((num*100+0.5)/100).toString();

   if(cents < 10) cents = "0" + cents;
      for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
         num = num.substring(0,num.length-(4*i+3))+'.'
               +num.substring(num.length-(4*i+3));

   ret = num + ',' + cents;

   if (x == 1) ret = ' - ' + ret;return ret;

}
/* fim Moeda */

/* Soma Lista de Horas */
function somarHoras(lstHora){
	
	var totalHora = new Array();
		
	if(lstHora){
		
		totalHoraSegundo = 0;
						
		for(hora in lstHora){
			
			dadosHora = lstHora[hora].split(":");
			
			totalHoraSegundo += dadosHora[0]*3600;
			if(dadosHora[1])
				totalHoraSegundo += dadosHora[1]*60;
			if(dadosHora[2])
				totalHoraSegundo += dadosHora[2];
			
		}
		
		hora = parseInt(totalHoraSegundo/3600);
		minuto =  parseInt((totalHoraSegundo - (hora*3600))/60);
		segundo = totalHoraSegundo - ((hora*3600)+(minuto*60));
		
		totalHora['hora'] = hora;
		totalHora['minuto'] = minuto;
		totalHora['segundo'] = segundo;
		
	}
	
	return totalHora;
}
/* Soma Lista de Horas */

/*ABAS*/
var abasDados = {
	'nome':['Ordem de serviço','Produtos'],
	'div':['sistema_divModulo_OS','sistema_divModulo_produto']
};

function _abas(nomeObjDestino, dadosAba){
	
	this.nomeObjDestino = nomeObjDestino;
	this.prefixoDivConteudo = "abas_DivConteudo_";
	
	this.dados = dadosAba;
	
	if(!this.dados) {
		// Cria variaveis
		this.dados = new Array();
		this.dados.nome = new Array();
		this.dados.div = new Array();
		this.dados.id = new Array();
	}
	
	this.obj = this;
	
	this.idLista = 'abas';
	this.idLista_li = this.idLista + '_li_';
	this.nomeEstilo = "abas_padrao";
	
	this.abaAnterior = -1;
	this.ativa = 0;
	//alert('Nome obj destino:'+nomeObjDestino+' - Total abas:'+dadosAba.nome.length);
	
	this.tamanhoObjDestino = 0;
	this.tamanhoOcupadoAbas = 0;
	
}

_abas.prototype.adNomeEstilo = function(nome){
	if(nome && nome != '')
		this.nomeEstilo = nome;
	
	return this.nomeEstilo;
}

_abas.prototype.$ = function(id_obj){
 	
	// Verifica o tipo de parametro informa, se for do tipo string cria refencia
	var tipoObj = typeof(id_obj);
	var refObj = null;
	
	if(tipoObj == 'string'){
		refObj = document.getElementById(id_obj);
	}else if(tipoObj == 'object'){
		refObj = id_obj;
	}
	
	return refObj;
}

_abas.prototype.pesquisa = function(variavel, dado){
	
	var dadosAba = new Array();
	
	dadosAba.indice = -1;
	
	if(variavel != null && dado != null){
				
		for(numero in this.dados[variavel]){
			if(this.dados[variavel][numero] == dado){
				dadosAba.indice = numero;
				dadosAba.nomeDiv = this.dados.div[numero];
				break;
			}
		}
	} 
	
	return dadosAba;
		
}

_abas.prototype.ativar = function(numAba, opcao){
	
	if(opcao){
		abaClassName = 'ativa';
		divDisplay = 'block';
	} else {
		abaClassName = '';
		divDisplay = 'none';
	}
	
	//alert('Tentando ativar aba' + this.idLista_li + numAba);
	
	refAba = this.$(this.idLista_li + numAba);
	refAba.className = abaClassName;
			
	refDiv = this.$(this.dados.div[numAba]);
	
	if(refDiv){
		_removeJanelas();
		refDiv.style.display = divDisplay;
	}else
		alert("ERRO[_abas, mudar]:A div '"+this.dados.div[numAba]+"' não existe");
		
}

_abas.prototype.mudar = function(numAba){
	
	if(numAba){
		this.abaAnterior = this.ativa;
		this.ativa = numAba;		
	} else if(!this.ativa)
		this.ativa = 0;
	
	//Desativa aba anterior
	if(this.abaAnterior != -1)
		this.ativar(this.abaAnterior,false);
	
	//Ativa aba
	this.ativar(this.ativa,true);
	
	
	
	
	/*
	totalAbas = this.dados.nome.length;	
	for(a=0; a < totalAbas; a++){
				
		if(a == this.ativa){
			abaClassName = 'ativa';
			divDisplay = 'block';
		} else {
			abaClassName = '';
			divDisplay = 'none';
		}
		
		refAba = this.$(this.idLista_li + a);
		refAba.className = abaClassName;
				
		refDiv = this.$(this.dados.div[a]);
		
		if(refDiv)
			refDiv.style.display = divDisplay;
		else
			alert("ERRO[_abas, mudar]:A div '"+this.dados.div[a]+"' não existe");
	}
	*/
}

_abas.prototype.clique = function(){
	
	if(this.obj.ativa != this.numAba){
		
		this.obj.abaAnterior = this.obj.ativa;
		
		this.obj.ativa = this.numAba;
		this.obj.mudar();
	}
	
}

_abas.prototype.criarDivBase = function(objDestino){
		
	totalAbas = this.dados.nome.length;
		
	// Cria div base para o conteudo
	nomeDivConteudo = this.prefixoDivConteudo + totalAbas;
	objDivConteudoAtivo = document.createElement('div');
	objDivConteudoAtivo.id = nomeDivConteudo;
	objDivConteudoAtivo.style.display = "none";
	//objDivConteudoAtivo.style.background = "#cccccc";
	//objDivConteudoAtivo.innerHTML = descricao;
	
	// Adiciona div a area do conteudo base
	if(objDestino){
		if(objDestino = this.$(objDestino));
			objDestino.appendChild(objDivConteudoAtivo);
	}
	
	return {'nome':nomeDivConteudo, 'referencia':objDivConteudoAtivo}
	
}

_abas.prototype.nova = function(nome,div,ativar,id){
		
	// Adiciona dados
	totalNome = this.dados.nome.push(nome);
	totalDiv = this.dados.div.push(div);
	if(id)
		this.dados.id.push(id);
	else
		this.dados.id.push(totalNome - 1);
	
	if(this.$(this.idLista)){
		
		indiceNome = totalNome - 1;
		indiceDiv = totalDiv -1;
		
		if(indiceNome == indiceDiv){
			
			this.abaAnterior = this.ativa;
			this.ativa = indiceNome;	
			this.adAba(nome,this.ativa);	
			
			if(ativar){				
				this.mudar();
			}
			
		} else {
			alert("ERRO[_abas, nova]:Os indices dos dados nome e div não são iguais");
		}
		
	} else {
		this.criar();
	}
}

_abas.prototype.criar = function(){
	
	refObjDestino = this.$(this.nomeObjDestino);
	
	if(refObjDestino){
		
		this.tamanhoObjDestino = refObjDestino.offsetWidth - 40;
		
		refObjDestino.innerHTML = '';
		
		// Div base
		
		if(document.all)
			sFloat = "styleFloat";
		else
			sFloat = "cssFloat";
		
		this.divBase = document.createElement('div');
		this.divBase.style.width = this.tamanhoObjDestino + "px";
		this.divBase.style.height = "21px";
		this.divBase.style.overflowX = "hidden";
		this.divBase.style.position = "relative";
		this.divBase.style[sFloat] = "left";
		//this.divBase.style.border = "1px solid";
		refObjDestino.appendChild(this.divBase);
		
		this.divBtRolagem = document.createElement('div');
		this.divBtRolagem.style.width = "35px";
		this.divBtRolagem.style.position = "relative";
		this.divBtRolagem.style[sFloat] = "left";
		//this.divBtRolagem.style.border = "1px solid";
		//this.divBtRolagem.innerHTML = "< >";
		refObjDestino.appendChild(this.divBtRolagem);
		
		this.divAbas = document.createElement('div');
		//this.divAbas.style.width = this.tamanhoObjDestino + 300 + "px";
		this.divAbas.style.position = "relative";
		this.divBase.appendChild(this.divAbas);
		
		// Ul - Lista	
		this.refUlAbas = document.createElement('ul');
		this.refUlAbas.id = this.idLista;
		this.refUlAbas.className = "abas " + this.nomeEstilo;
		this.divAbas.appendChild(this.refUlAbas);
			
		totalAbas = this.dados.nome.length;	
		for(a=0; a < totalAbas; a++){
			/*
			li = document.createElement('li');
			li.id = this.idLista_li + a;
			ul.appendChild(li);
			
			link = document.createElement('a');
			link.href = "javascript:;";
			link.obj = this;
			link.numAba = a;
			link.onclick = this.clique;
			li.appendChild(link);
			
			nome = document.createTextNode(this.dados.nome[a]);
			link.appendChild(nome);
			*/
			this.adAba(this.dados.nome[a],a);
		}
		dadosObj = '';
				
		// Muda para aba ativa
		this.mudar();
	} else {
		alert("ERRO[_abas, criar]:O objeto de destino '"+this.nomeObjDestino+"' não existe");
	}
	
}

_abas.prototype.atualizar = function(){
	
	// Remove abas	
	lstAbas = _consultarSubObjetos(this.idLista,'li');
	
	for(a=0; a<lstAbas.total; a++){
		_removerObjeto(lstAbas.objetos[a]);
	}
	
	
	//Atualiza	
	this.tamanhoOcupadoAbas = 0;
						
	totalAbas = this.dados.nome.length;	
	for(a=0; a < totalAbas; a++){
		this.adAba(this.dados.nome[a],a);
	}
	
	this.abaAnterior = -1;	
	if(totalAbas > 0){
		this.mudar();
		
		this.rolarInicioAbas();
	}
}

_abas.prototype.adAba = function(texto,id){
	
	refObjUl = this.$(this.idLista);
				
	if(refObjUl){
		
		li = document.createElement('li');
		li.id = this.idLista_li + id;
						
		link = document.createElement('a');
		link.href = "javascript:;";
		link.obj = this;
		link.numAba = id;
		link.onclick = this.clique;
		li.appendChild(link);
		
		// Texto Aba
		if(texto.length > 30)
			sTexto = texto.slice(0,26) + '...';
		else
			sTexto = texto;
			
		txt = document.createTextNode(sTexto);
		link.appendChild(txt);
		
		link2 = document.createElement('a');
		link2.href = "javascript:;";
		link2.obj = this;
		link2.numAba = id;
		link2.onclick = this.remover;
		li.appendChild(link2);
				
		btFechar = new Image();
		btFechar.src = template_pastaImagens + 'fileclose.png';
		btFechar.border = 0;
		btFechar.align = 'absbottom';
		link2.appendChild(btFechar);
						
		//if((this.tamanhoOcupadoAbas + 20) >= this.tamanhoObjDestino){
			novoTamanhoBaseAbas = this.tamanhoOcupadoAbas + 200;
			this.divAbas.style.width = novoTamanhoBaseAbas + "px";
			this.refUlAbas.style.width = novoTamanhoBaseAbas + "px";
		//}
				
		refObjUl.appendChild(li);
		this.tamanhoOcupadoAbas += li.offsetWidth;	
							
		this.adBotaoRolagem();
		
		this.rolarFimAbas();
		
		//this.divAbas.style.width = (this.tamanhoOcupadoAbas + 20) + "px";
		
		//alert('Tamanho Objeto Destino:' + this.tamanhoObjDestino + ' \n Total ocupado por abas:' + this.tamanhoOcupadoAbas);
		
	} else {
		alert("ERRO[_abas, nova]:O objeto lista UL '"+this.idLista+"' não existe");
	}	
}

_abas.prototype.remover = function(){
	//alert("Fechar aba " + this.obj.dados.nome[this.numAba])
	
	totalAbas = (this.obj.dados.nome.length - 1);
	
	// Remove Div
	_removerObjeto(this.obj.dados.div[this.numAba]);
	// Remove Aba
	//_removerObjeto(this.obj.idLista_li + this.numAba);
	
	// Atualiza total ocupacao abas
	//this.obj.tamanhoOcupadoAbas -= $(this.idLista_li + this.numAba).offsetWidth;
	
	// Remove dados
	this.obj.dados.nome.splice(this.numAba,1);
	this.obj.dados.div.splice(this.numAba,1);
	this.obj.dados.id.splice(this.numAba,1);
			
	// Verifica e marca aba anterior como ativa
	if(this.obj.ativa == this.numAba){
		// Caso a aba atual for a ultima ativa anterior, senão mantem o numero ativo q será a proxima aba
		if(this.numAba == totalAbas){			
			if(this.numAba > 0)
				this.obj.ativa = this.numAba-1;
			else
				this.obj.ativa = 0;				
		} 
		
	} else {
		
		// Mantem aba ativa mudando para anterior somente se for maior q 0 e aba fechada não for maior que a ativa
		if(this.obj.ativa > 0 && this.numAba < this.obj.ativa)
			this.obj.ativa--;	
		
	}
	
	this.obj.atualizar();
	
	//alert(this.obj.dados.nome.length);
}

_abas.prototype.adBotaoRolagem = function(){
	
	//alert('Tamanho Objeto Destino:' + this.tamanhoObjDestino + ' \n Total ocupado por abas:' + this.tamanhoOcupadoAbas);
	
	if(this.tamanhoOcupadoAbas > this.tamanhoObjDestino || this.posLeftAtual < 0){
		
		if(!this.linkE){
			// Esquerda
			this.linkE = document.createElement('a');
			this.linkE.href = "javascript:;";
			this.linkE.obj = this;
			this.linkE.sentido = 'esquerda';
			this.linkE.onclick = this.rolarAbas;
			this.divBtRolagem.appendChild(this.linkE);
			
			this.btE = new Image();
			this.btE.src = template_pastaImagens + "ir-voltar.png";
			this.btE.border = 0;
			this.linkE.appendChild(this.btE);
			
			// Direita
			this.linkD = document.createElement('a');
			this.linkD.href = "javascript:;";
			this.linkD.obj = this;
			this.linkD.sentido = 'direita';
			this.linkD.onclick = this.rolarAbas;
			this.divBtRolagem.appendChild(this.linkD);
			
			this.btD = new Image();
			this.btD.src = template_pastaImagens + "ir-proximo.png";
			this.btD.border = 0;
			this.linkD.appendChild(this.btD);
		}
		
	} else {
		
		this.linkE = null;
		this.divBtRolagem.innerHTML = "";
		
	}
		
}

_abas.prototype.rolarAbas_deslocamentoMaximo = function(){
	tamanhoDivAbas = this.divAbas.style.width.replace('px','');
	qtdeMaximaDeslocamento = (tamanhoDivAbas - this.tamanhoObjDestino);
	
	return qtdeMaximaDeslocamento;
}

_abas.prototype.rolarAbas = function(){
	
	this.qtdeDeslocamento = 20;
	
	if(this.obj.posLeftAtual == null){
		this.obj.posLeftAtual = 0;
	}
		
	if(this.sentido == 'esquerda'){
		if(this.obj.posLeftAtual < 0)
			this.obj.posLeftAtual += this.qtdeDeslocamento;
	} else if(this.sentido == 'direita'){
		/*
		tamanhoDivAbas = this.obj.divAbas.style.width.replace('px','');
		
		qtdeMaximaDeslocamento = (tamanhoDivAbas - this.obj.tamanhoObjDestino);
		*/
			
		if(Math.abs(this.obj.posLeftAtual) < this.obj.rolarAbas_deslocamentoMaximo())		
			this.obj.posLeftAtual -= this.qtdeDeslocamento;
	}
		
	this.obj.divAbas.style.left = this.obj.posLeftAtual + "px";	
	this.obj.adBotaoRolagem();	
}

_abas.prototype.rolarInicioAbas = function(){
	
	if(this.tamanhoOcupadoAbas < this.tamanhoObjDestino){
		if(this.posLeftAtual < 0){	
			this.posLeftAtual = 0;	
			this.rolarAbas();
		}
	}	
}

_abas.prototype.rolarFimAbas = function(){
	
	if(this.tamanhoOcupadoAbas > this.tamanhoObjDestino){			
			this.posLeftAtual = -this.rolarAbas_deslocamentoMaximo();	
			this.rolarAbas();
	}	
}
/*FIM - ABAS*/

/* BUSCA DE REGISTRO */
function _buscaRegistro(dados){
	
	this.prefixo = 'buscaRegistro_';
	this.nomeObjeto = null;
	this.id = null;
	this.sufixo = null;
	this.pastaImagens = template_pastaImagens;
	this.nomeImgBtBusca = 'busca1.png';
	this.nomeImgBtBusca_fechar = 'busca_fechar.png';
	this.tituloMsg = '[classe javascript _buscaRegistro] \n ';
	
	this.obj = this;
	
	this.dados = null;
	this.nomeObjDestino = null;
	this.lstFuncao = new Array();
	this.lstFiltro = null;
	
	if(dados)
		this.dados = dados;
	
	this.nomeTabela = null;
	this.nomeCampoCodigo = null;
	this.nomeCampoTexto = null;
	this.nomeCampoInformacao = null;
	this.nomeCampoInformacao2 = null;
	this.nomeCampoInformacao3 = null;
	this.nomeInputOcultoEnvio = null;
		
	this.indiceAtivo = null;
	this.divBase = null;
	
	this.tempoDigitacao = 2000;
	this.temporizadorDigitacao = null;
	
	this.palavra = '';
	this.codigoAtivo = null;
}

_buscaRegistro.prototype.adNomeObjeto = function(nome){
	if(nome)
		this.nomeObjeto = nome;
}

_buscaRegistro.prototype.adID = function(id){
	if(id)
		this.id = id;
}

_buscaRegistro.prototype.adSufixo = function(s){
	if(s)
		this.sufixo = s;
}

_buscaRegistro.prototype.adNomeObjetoDestino = function(nome){
	if(nome)
		this.nomeObjDestino = nome;
}

_buscaRegistro.prototype.adNomeTabela = function(nome){
	if(nome)
		this.nomeTabela = nome;
}

_buscaRegistro.prototype.adNomeCampoCodigo = function(nome){
	if(nome)
		this.nomeCampoCodigo = nome;
}

_buscaRegistro.prototype.adNomeCampoTexto = function(nome){
	if(nome)
		this.nomeCampoTexto = nome;
}

_buscaRegistro.prototype.adNomeCampoInformacao = function(info){
	if(info)
		this.nomeCampoInformacao = info;
}

_buscaRegistro.prototype.adNomeCampoInformacao2 = function(info2){
	if(info2)
		this.nomeCampoInformacao2 = info2;
}

_buscaRegistro.prototype.adNomeCampoInformacao3 = function(info3){
	if(info3)
		this.nomeCampoInformacao3 = info3;
}

_buscaRegistro.prototype.adNomeInputOcultoEnvio = function(nome){
	if(nome)
		this.nomeInputOcultoEnvio = nome;
}

_buscaRegistro.prototype.adFiltro = function(nomeCampo, dados, nomeFormulario, nomeCampoFormulario, separador, separadorFiltro){
	if(this.lstFiltro == null){
		this.lstFiltro = new Array();
		this.lstFiltro['nomeCampo'] = new Array();
		this.lstFiltro['dados'] = new Array();
		this.lstFiltro['nomeFormulario'] = new Array();
		this.lstFiltro['nomeCampoFormulario'] = new Array();
		this.lstFiltro['separador'] = new Array();
		this.lstFiltro['separadorFiltro'] = new Array();
	}
	
	if(nomeCampo && (dados || nomeFormulario)){
		this.lstFiltro['nomeCampo'].push(nomeCampo);
		this.lstFiltro['dados'].push(dados);
		this.lstFiltro['nomeFormulario'].push(nomeFormulario);
		this.lstFiltro['nomeCampoFormulario'].push(nomeCampoFormulario);
		this.lstFiltro['separador'].push(separador);
		this.lstFiltro['separadorFiltro'].push(separadorFiltro);		
	}
}

_buscaRegistro.prototype.adFuncao = function(nome){
	if(nome)
		this.lstFuncao.push(nome);
}
_buscaRegistro.prototype.prefixoID = function(){
	
	prefixo = this.prefixo;
	
	if(this.id != null)
		prefixo += this.id + '_';
		
	if(this.sufixo != null)
		prefixo += this.sufixo + '_';
		
	return prefixo;
}
_buscaRegistro.prototype.adPadrao = function(codigo){
	//if(codigo)
	//	this.nomeObjDestino = codigo;
}
_buscaRegistro.prototype.adDados = function(dados){
	if(dados)
		this.dados = dados;
}
_buscaRegistro.prototype.adItem = function(codigo, texto, informacao){
	
	if(this.dados == null){
		this.dados = new Array();
		this.dados['codigo'] = new Array();
		this.dados['texto'] = new Array();
		this.dados['informacao'] = new Array();
	}
	
	if(codigo && texto){
		this.dados.codigo.push(codigo);
		this.dados.texto.push(texto);
		this.dados.informacao.push(informacao);
	}
	
}

_buscaRegistro.prototype.adBotaoBusca = function(op){
	
	if(op == 1){
		nomeImg = this.nomeImgBtBusca;
		funcaoClique = this.visualizar;
	} else if(op == 2){
		nomeImg = this.nomeImgBtBusca_fechar;
		funcaoClique = this.ocultar;
	}
	
	// Botão
	srcImg = this.pastaImagens + nomeImg;
	
	if(this.btBusca){
		
		this.btBusca.onclick = funcaoClique;
		this.imgBtBusca.src = srcImg;
		
	} else {
	
		this.btBusca = document.createElement('a');
		this.btBusca.id = this.prefixoID() + "btBusca";
		//this.btBusca.style.width = "20px";
		this.btBusca.href = "javascript:;";
		this.btBusca.obj = this;
		this.btBusca.onclick = funcaoClique;
		this.tbEstrutura_celBotao.appendChild(this.btBusca);
				
		this.imgBtBusca = new Image();
		this.imgBtBusca.id = this.prefixoID() + "imgBtBusca";
		this.imgBtBusca.src = srcImg;
		this.imgBtBusca.border = 0;
		this.btBusca.appendChild(this.imgBtBusca);
	}
	
}

_buscaRegistro.prototype.criar = function(){
		
	this.nomeDivBase =	this.prefixoID() + 'divBase';
	
	tituloMsgFuncao = this.tituloMsg + '- criar(), \n';
	
	refDivBase = $(this.nomeDivBase);
		
	if(refDivBase){		
		//alert(tituloMsgFuncao + 'O nome "'+this.nomeDivBase+'" já existe.')
		//return false;
		this.nomeDivBase += "_2";
	}
					
	// Verifica se possui o nome do objeto destino
	if(this.nomeObjDestino == null){
		alert(tituloMsgFuncao + '-- O nome do objeto destino não foi informado.');
		return false;
	} else {
		
		this.refObjDestino = $(this.nomeObjDestino);
		
		// Verifica se objeto destino existe
		if(this.refObjDestino){
			this.divBase = document.createElement('div');
			this.divBase.id = this.nomeDivBase;
			
			// Adicona div base
			this.refObjDestino.appendChild(this.divBase);
			
			// Adiciona Tabela Estrutura
			this.nomeTbEstrutura = this.prefixoID() + 'tabelaEstrutura';
			this.tbEstrutura = document.createElement('table');
			this.tbEstrutura.id = this.nomeTbEstrutura;
			this.tbEstrutura.width = "100%";
			this.tbEstrutura.border = 0;
			this.divBase.appendChild(this.tbEstrutura);
			
			this.tbEstrutura_linhaBotaoDados = this.tbEstrutura.insertRow(0);
			
			this.tbEstrutura_celBotao = this.tbEstrutura_linhaBotaoDados.insertCell(0);
			this.tbEstrutura_celBotao.width = "20px";
			this.tbEstrutura_celDados = this.tbEstrutura_linhaBotaoDados.insertCell(1);
			
			// Campo Oculto Envio
			this.cOculto = document.createElement('input');
			this.cOculto.type = "hidden";
			this.cOculto.id = this.nomeInputOcultoEnvio;
			this.cOculto.name = this.nomeInputOcultoEnvio;
			this.cOculto.value = "";
			this.tbEstrutura_celBotao.appendChild(this.cOculto);				
			
			// Botão	
			this.adBotaoBusca(1);
			
		} else {
			alert(tituloMsgFuncao + '-- O objeto destino "'+this.nomeObjDestino+'" não existe.');
		}
	}	
}

_buscaRegistro.prototype.visualizar = function(){
	
	this.obj.nomeDivBusca = this.obj.prefixoID() + 'buscaDivBase';
	
	this.obj.refDivBaseBusca = $(this.obj.nomeDivBusca);
	
	posicaoBotao = getPosicaoElemento(this);
	//alert(posicaoBotao.top + '' + posicaoBotao.left);
	
	if(this.obj.refDivBaseBusca){
		this.obj.refDivBaseBusca.style.display = "block";		
	} else {
		this.obj.criarBusca();
	}
	
	// Adiciona foco no campo
	this.obj.cTexto.focus();
	this.obj.cTexto.value = '';
	
	this.obj.todosRegistros();	
	
	// Altera ação botão
	this.obj.adBotaoBusca(2);
}

_buscaRegistro.prototype.criarBusca = function(){
	
	this.obj.refDivBaseBusca = document.createElement('div');
	this.obj.refDivBaseBusca.id = this.obj.nomeDivBusca;
	this.obj.refDivBaseBusca.style.width = "280px";
	this.obj.refDivBaseBusca.style.height = "150px";
	this.obj.refDivBaseBusca.style.background = "#ffffff";
	//this.obj.refDivBaseBusca.style.border = "1px solid #000000";
	this.obj.refDivBaseBusca.style.position = "absolute";
	
	// Adicona div base
	this.obj.divBase.appendChild(this.obj.refDivBaseBusca);
	
	// Adiciona Tabela Estrutura
	this.obj.nomeTbEstrutura_busca = this.obj.prefixoID() + 'tabelaEstrutura_busca';
	this.obj.tbEstrutura_busca = document.createElement('table');
	this.obj.tbEstrutura_busca.id = this.obj.nomeTbEstrutura_busca;
	this.obj.tbEstrutura_busca.width = "100%";
	this.obj.tbEstrutura_busca.border = 0;
	this.obj.tbEstrutura_busca.className = 'buscaRegistro_tbBusca';
	this.obj.tbEstrutura_busca.style.background = "#ffffff";
	this.obj.refDivBaseBusca.appendChild(this.obj.tbEstrutura_busca);
	
	// Linha 1
	this.tbEstrutura_linha1 = this.obj.tbEstrutura_busca.insertRow(0);
	this.tbEstrutura_linha1.className = 'buscaRegistro_tbBusca_linha1';
	
	this.obj.tbEstrutura_linha1_cel1 = this.tbEstrutura_linha1.insertCell(0);
	this.obj.tbEstrutura_linha1_cel1.style.width = "90%";
	this.obj.tbEstrutura_linha1_cel1.style.height = "26px";
	this.obj.tbEstrutura_linha1_cel1.innerHTML = "Palavra:";
	//this.tbEstrutura_linha1_cel1.innerHTML = "1";
	this.obj.tbEstrutura_linha1_cel2 = this.tbEstrutura_linha1.insertCell(1);
	this.obj.tbEstrutura_linha1_cel2.style.width = "10%";
	
	//this.tbEstrutura_linha1_cel3 = this.tbEstrutura_linha1.insertCell(2);
	//this.tbEstrutura_linha1_cel3.style.width = "20%";
	//this.tbEstrutura_linha1_cel3.innerHTML = "3";
	
	// Linha2
	this.tbEstrutura_linha2 = this.obj.tbEstrutura_busca.insertRow(1);
	
	this.obj.tbEstrutura_linha2_cel1 = this.tbEstrutura_linha2.insertCell(0);
	this.obj.tbEstrutura_linha2_cel1.id = this.obj.nomeTbEstrutura_busca + "_texto";
	this.obj.tbEstrutura_linha2_cel1.colSpan = "2";
	this.obj.tbEstrutura_linha2_cel1.style.height = "24px";
	
	// Linha3
	this.tbEstrutura_linha3 = this.obj.tbEstrutura_busca.insertRow(2);
		
	this.obj.tbEstrutura_linha3_cel1 = this.tbEstrutura_linha3.insertCell(0);
	this.obj.tbEstrutura_linha3_cel1.id = this.obj.nomeTbEstrutura_busca + "_lista";
	this.obj.tbEstrutura_linha3_cel1.colSpan = "2";
	this.obj.tbEstrutura_linha3_cel1.style.height = "89px";
	this.obj.tbEstrutura_linha3_cel1.className = 'buscaRegistro_tbBusca_celLista';
	
	this.obj.refDivLista = document.createElement('div');
	this.obj.refDivLista.id = this.obj.nomeDivBusca + "_lista";
	this.obj.refDivLista.style.height = "89px";
	this.obj.refDivLista.style.overflow = "auto";
	this.obj.refDivLista.style.overflowX = 'hidden';
	//this.obj.refDivLista.style.border = "1px solid";
	this.obj.tbEstrutura_linha3_cel1.appendChild(this.obj.refDivLista);
		
	//this.obj.refDivLista.innerHTML = "Lista";
	
	
	// Adiciona dados
	this.obj.cTexto = document.createElement('input');
	this.obj.cTexto.type = "text";
	this.obj.cTexto.id = this.obj.prefixoID() + "campo";
	this.obj.cTexto.name = this.obj.prefixoID() + "campo";
	this.obj.cTexto.size = "15";
	this.obj.cTexto.style.font = "12px Arial, Verdana, Tahoma";
	this.obj.cTexto.style.border = "1px solid";
	this.obj.cTexto.obj = this.obj;
	//this.obj.cTexto.onkeyup = this.obj.digitando;
	//this.obj.cTexto.onblur = this.obj.ocultar;
	this.obj.tbEstrutura_linha1_cel1.appendChild(this.obj.cTexto);
	
	this.obj.btOk = document.createElement('input');
	this.obj.btOk.type = "button";
	this.obj.btOk.id = this.obj.prefixoID() + "btOK";
	this.obj.btOk.name = this.obj.prefixoID() + "btOK";
	this.obj.btOk.value = "OK";
	this.obj.btOk.style.font = "12px Arial, Verdana, Tahoma";
	this.obj.btOk.style.border = "1px solid";
	this.obj.btOk.style.background = "#f4f4f4";
	this.obj.btOk.obj = this.obj;
	this.obj.btOk.onclick = this.obj.enviar;
	this.obj.tbEstrutura_linha1_cel1.appendChild(this.obj.btOk);
	
	//Botão todos registros
	this.obj.btTodos = document.createElement('a');
	this.obj.btTodos.id = this.prefixoID() + "btTodos";
	this.obj.btTodos.href = "javascript:;";
	this.obj.btTodos.obj = this.obj;
	this.obj.btTodos.onclick = this.obj.todosRegistros;
	this.obj.tbEstrutura_linha1_cel2.appendChild(this.btTodos);
		
	imgBt = new Image();
	imgBt.id = this.obj.prefixoID() + "imgBtLista";
	imgBt.src = this.obj.pastaImagens + 'lista2.png';
	imgBt.border = 0;
	this.obj.btTodos.appendChild(imgBt);
	
}

_buscaRegistro.prototype.ocultar = function(){
	this.obj.refDivBaseBusca.style.display = "none";
	
	// Altera ação botão
	this.obj.adBotaoBusca(1);
}

_buscaRegistro.prototype.iniciarTempoDigitacao = function(){
	
	tituloMsgFuncao = this.tituloMsg + '- iniciarTempoDigitacao(), \n';
	
	if(this.nomeObjeto){
		this.temporizadorDigitacao = setTimeout(this.nomeObjeto + ".consultar()",this.tempoDigitacao);
	} else {
		alert(tituloMsgFuncao + '-- O nome do objeto principal não foi informado."');
	}
}

_buscaRegistro.prototype.pararTempoDigitacao = function(){	
	clearTimeout(this.temporizadorDigitacao);
}

_buscaRegistro.prototype.reiniciarTempoDigitacao = function(){	
	this.pararTempoDigitacao();
	this.iniciarTempoDigitacao();
}

_buscaRegistro.prototype.enviar = function(){
	
	this.obj.palavra = this.obj.cTexto.value;
	
	if(this.obj.palavra.length)
		this.obj.consultar();
}

_buscaRegistro.prototype.digitando = function(){
	
	this.obj.palavra = this.value;
	
	this.obj.reiniciarTempoDigitacao();
}

_buscaRegistro.prototype.montarCondicaoSQL = function(palavra){
	
	tituloMsgFuncao = this.tituloMsg + '- montarCondicaoSQL(), \n';
	
	strSQL = '';
	
	if(this.lstFiltro){
		
		qtdeFiltro = this.lstFiltro.nomeCampo.length;
		
		for(f=0; f < qtdeFiltro; f++){
			
			auxStrSQL = '';
			
			// Separador da condicao
			if(this.lstFiltro.separadorFiltro[f] == '' && palavra != null)
				auxStrSQL += ' AND ';
			if(this.lstFiltro.separadorFiltro[f] != null && (palavra != null || f > 0))
				auxStrSQL += ' ' + this.lstFiltro.separadorFiltro[f] + ' ';
			
									
			// NOme do campo
			if(this.lstFiltro.nomeCampo[f] != null)
				auxStrSQL += ' '+this.lstFiltro.nomeCampo[f];
					
			//Separador do campo e dados
			if(this.lstFiltro.separador[f] != '')
				auxStrSQL += this.lstFiltro.separador[f];
			else
				auxStrSQL += '=';
			
			// Dados	
			if(this.lstFiltro.dados[f] != '')
			
				auxStrSQL += this.lstFiltro.dados[f];
			
			else {
				
				if(this.lstFiltro.nomeFormulario[f] != ''){
					
					frm = $(this.lstFiltro.nomeFormulario[f]);
					
					if(frm){
																		
						if(frm[this.lstFiltro['nomeCampoFormulario'][f]]){
							
							if(frm[this.lstFiltro['nomeCampoFormulario'][f]].value != ''){
								auxStrSQL += frm[this.lstFiltro['nomeCampoFormulario'][f]].value;
							} else {
								alert(tituloMsgFuncao + '- O campo "'+this.lstFiltro['nomeCampoFormulario'][f]+'" do formulário "'+this.lstFiltro.nomeFormulario[f]+'" esta em branco.');
								return strSQL;
							}
						} else {
							alert(tituloMsgFuncao + '- O campo "'+this.lstFiltro['nomeCampoFormulario'][f]+'" não existe no formulário "'+this.lstFiltro.nomeFormulario[f]+'"');
							return strSQL;
						}
					} else {
						alert(tituloMsgFuncao + '- O formulário "'+this.lstFiltro.nomeFormulario[f]+'" não existe.');
						return strSQL;
					}				
					
				}
			}
			
			strSQL += auxStrSQL;
		}
	}
		
	return strSQL;
	
}

_buscaRegistro.prototype.consultar = function(){
	
	this.obj.carregandoLista();
	
	if(this.obj.palavra.length > 0){
		palavra = this.obj.palavra;
	} else {
		palavra = null;
	}
		
	// Executa busca
	sistema_buscaRegistro(this.obj.nomeObjeto, this.obj.nomeTabela, this.obj.nomeCampoCodigo, this.obj.nomeCampoTexto, this.obj.nomeCampoInformacao, this.obj.nomeCampoInformacao2, this.obj.nomeCampoInformacao3, palavra, this.montarCondicaoSQL(palavra));
}

_buscaRegistro.prototype.todosRegistros = function(){
	
	this.obj.palavra = '';	
	this.obj.consultar();
	
}

_buscaRegistro.prototype.montarLista = function(){
			
	this.obj.totalRegistro = this.obj.dados.texto.length;
	
	// Monta lista
	this.lista = document.createElement('ul');	
	this.lista.className = "buscaRegistro_listaResultado";
		
	for(t=0; t < this.obj.totalRegistro; t++){
		//Item da lista
		this.item = document.createElement('li');
		this.lista.appendChild(this.item);
		
		// Link
		this.link = document.createElement('a');
		this.link.href = "javascript:;";
		this.link.obj = this.obj;
		this.link.numero = t;
		this.link.onclick = this.obj.selecionar;
		if(this.obj.dados.codigo[t] == this.obj.codigoAtivo)
			this.link.className = "selecionado";
		this.item.appendChild(this.link);
		
		// Texto
		this.texto = this.obj.dados.codigo[t] + ' - ' + this.obj.dados.texto[t];
		if(this.obj.dados.informacao[t] != null)
			this.texto += ', ' + this.obj.dados.informacao[t];
		if(this.obj.dados.informacao2[t] != null)
			this.texto += ', ' + this.obj.dados.informacao2[t];
		if(this.obj.dados.informacao3[t] != null)
			this.texto += ', ' + this.obj.dados.informacao3[t];
		
		this.textoItem = document.createTextNode(this.texto);
		this.link.appendChild(this.textoItem);
	}
	
	// Define Texto de resultado
	this.txtResultado = this.totalRegistro + " registro";
	
	if(this.obj.palavra.length > 0)
		this.txtResultado += ' com "' + this.obj.palavra + '"';
	else
		this.txtResultado += ' cadastrado'
	
	this.obj.tbEstrutura_linha2_cel1.innerHTML = this.txtResultado;
	
	// Adiciona Lista
	this.obj.refDivLista.innerHTML = '';
	this.obj.refDivLista.appendChild(this.lista);
}

_buscaRegistro.prototype.carregandoLista = function(){
	
	this.refDivLista.innerHTML = '';
	
	imgBt = new Image();
	imgBt.id = this.prefixoID() + "imgCarregando";
	imgBt.src = this.pastaImagens + 'carregando.gif';
	imgBt.border = 0;
	this.refDivLista.appendChild(imgBt);
}

_buscaRegistro.prototype.selecionar = function(){
	
	strCodigo = this.obj.dados.codigo[this.numero];
	strTexto = this.obj.dados.texto[this.numero];
	strInformacao = this.obj.dados.informacao[this.numero];
	strInformacao2 = this.obj.dados.informacao2[this.numero];
	strInformacao3 = this.obj.dados.informacao3[this.numero];
	
	txtDados =  strCodigo + ' - ' + strTexto;
	if(strInformacao != null)
		txtDados += ', ' + strInformacao;
	if(strInformacao2 != null)
		txtDados += ', ' + strInformacao2;
	if(strInformacao3 != null)
		txtDados += ', ' + strInformacao3;
	
	// Adicona dados
	this.obj.gravarDados(strCodigo, txtDados);
		
	// Fecha busca
	this.obj.ocultar();
	
}

_buscaRegistro.prototype.gravarDados = function(codigo, texto){
	
	this.codigoAtivo = codigo;
	
	// Atualiza campo oculto envio
	this.cOculto.value = codigo;
	
	// Adiciona dados selecionados	
	this.tbEstrutura_celDados.innerHTML = texto;
	
	// Executa Funções
	this.executarFuncoes();
}

_buscaRegistro.prototype.executarFuncoes = function(){
	totalFuncao = this.lstFuncao.length;
	if(totalFuncao > 0){
		for(f=0; f < totalFuncao; f++){
			funcao = eval(this.lstFuncao[f]);
			funcao.call(this,this.codigoAtivo);
		}
	}
		
}

_buscaRegistro.prototype.limparDados = function(){
	
	this.codigoAtivo = null;
	
	// Atualiza campo oculto envio
	this.cOculto.value = '';
	
	// Adiciona dados selecionados	
	this.tbEstrutura_celDados.innerHTML = '';
	
}
/* FIM - BUSCA DE REGISTRO */

/* BUSCA */
function __busca(){
	
	this.obj = this;
	
	this.tipo = null;
	this.id = null;
	this.nomeVarObjeto = null;
	this.prefixo = '_busca_';
	this.sufixo;
	this.titulo = null;
	this.tamanho = new Array();
	this.tamanho['largura'] = 300;
	this.tamanho['altura'] = 300;
	this.ativarListaResultado = true;
	this.tipoResultado = 'funcao';
	this.funcaoBusca = null;
	this.funcaoSelecao = new Array();
	this.lstCampoOculto = null;
	this.sFormulario = null;
	
	this.pastaImagens = template_pastaImagens;
	
	this.nomeBotao = 'Localizar';
	this.imagemBotao = 'localizar.png';
	
	this.nomeObjPainelBotao = null;
	this.nomeObjDestinoBotao = null;
	
	this.refObjBotao = null;
	
}

__busca.prototype.adID = function(id){
	if(id)
		this.id = id; 
}

__busca.prototype.adSufixo = function(s){
	if(s)
		this.sufixo = s; 
}

__busca.prototype.adNomeVarObjeto = function(n){
	if(n)
		this.nomeVarObjeto = n; 
}

__busca.prototype.adTipo = function(t){
	if(t)
		this.tipo = t;
}

__busca.prototype.adNomeObjetoPainelBotao = function(n){
	if(n)
		this.nomeObjPainelBotao = n;
}

__busca.prototype.adNomeBotao = function(n){
	if(n)
		this.nomeBotao = n;
}

__busca.prototype.adImagemBotao = function(i){
	if(i)
		this.imagemBotao = i;
}

__busca.prototype.adNomeObjetoDestinoBotao = function(n){
	if(n)
		this.nomeObjDestinoBotao = n;
}

__busca.prototype.adTituloJanela = function(t){
	if(t)
		this.titulo = t;
}

__busca.prototype.adTamanhoJanela = function(largura, altura){
	if(largura)
		this.tamanho['largura'] = largura;
		
	if(altura)
		this.tamanho['altura'] = altura;
}

__busca.prototype.adCampoOculto = function(nomeCampo, value, nomeFormulario, nomeCampoFormulario){
	
	if(this.lstCampoOculto == null){
		this.lstCampoOculto = new Array();
		this.lstCampoOculto['nome'] = new Array();
		this.lstCampoOculto['value'] = new Array();
		this.lstCampoOculto['nomeFormulario'] = new Array();
		this.lstCampoOculto['nomeCampoFormulario'] = new Array();
	}
	
	if(nomeCampo){
		this.lstCampoOculto.nome.push(nomeCampo);
		this.lstCampoOculto.value.push(value);
		this.lstCampoOculto.nomeFormulario.push(nomeFormulario);
		this.lstCampoOculto.nomeCampoFormulario.push(nomeCampoFormulario);
	}
}

__busca.prototype.adFormulario = function(sf){
	if(sf)
		this.sFormulario = sf;
}

__busca.prototype.adAtivarListaResultado = function(ativa){
	if(ativa)
		this.ativarListaResultado = true;
	else
		this.ativarListaResultado = false;
}

__busca.prototype.adTipoResultado = function(t){
	if(t)
		this.tipoResultado = t;
}

__busca.prototype.adFuncaoBusca = function(f){
	if(f)
		this.funcaoBusca = f;
}

__busca.prototype.adFuncaoSelecao = function(f){
	if(f)
		this.funcaoSelecao.push(f);
}

__busca.prototype.criar = function(){
	
	
	if(this.tipo){
		
		// Verifica / Criar botão
		this.refObjBotao = null;
		
		if(this.tipo == 'painel'){
			if(this.nomeObjPainelBotao == null){
				alert('_busca, criar: O nome do objeto do painel de botão não foi informado');
				return false;
			} else {
							
				this.refPainelBotao = eval(this.nomeObjPainelBotao);
				
				//alert(this.nomeObjPainelBotao);
				
				if(this.refPainelBotao){
					
					this.refObjBotao = this.refPainelBotao.adBotao(this.nomeBotao,null,this.imagemBotao);
					
					//alert('Painel' + this.refObjBotao.id);
					
				} else {
					alert('_busca, criar: O objeto do painel de botão "'+this.nomeObjPainelBotao+'" não existe');
					return false;
				}
			}
				
		} else if(this.tipo == 'botao'){
			
			if(this.nomeObjDestinoBotao){
				
				this.refObjDestinoBotao = $(this.nomeObjDestinoBotao);
				
				if(this.refObjDestinoBotao){		
					
					/*	
					this.refObjBotao = document.createElement('div');
					this.refObjBotao.className = "linkBotao";
					this.refObjDestinoBotao.appendChild(this.refObjBotao);
					*/
										
					this.refObjBotao = document.createElement('a');
					this.refObjBotao.href = 'javascript:;';
					this.refObjBotao.className = "linkBotao";
					//this.refObjBotao.onclick = eval('_teste'); // Mudar
					this.refObjDestinoBotao.appendChild(this.refObjBotao);
					
					if(this.imagemBotao){ // Mudar
						imgBt = new Image();
						imgBt.src = this.pastaImagens + this.imagemBotao;
						imgBt.border = 0;
						
						this.refObjBotao.appendChild(imgBt);
					}
					
					txtBt = document.createTextNode(this.nomeBotao); // Mudar
					this.refObjBotao.appendChild(txtBt);
					
				} else {
					alert('_busca, criar: O objeto destino do botão "'+this.nomeObjDestinoBotao+'" não existe');
					return false;
				}
			} else {
				alert('_busca, criar: O nome do objeto destino do botão não foi informado');
				return false;
			}
			
			
		} else {
			alert('_busca, criar: O tipo de botão informado "'+this.tipo+'" não é válido.');
			return false;
		}
				
		// Cria tela e adicona no botão
		if(this.refObjBotao){
			
			// Adiciona evento clique ao botão
			this.refObjBotao.obj = this;
			this.refObjBotao.onclick = this.visualizar;
			//alert('O botão no painel foi criado');
						
		} else {
			alert('_busca, criar: O botão não existe.');
			return false;
		}
		
	} else {
		alert('_busca, criar: O tipo de botão não foi informado');
		return false;
	}
}

__busca.prototype.visualizar = function(){
		
	if(this.obj){
		//Posição botao
		btTop = getPosicaoElemento(this).top;
		btLeft = getPosicaoElemento(this).left;
		//btTop = findPosY(this);
		//btLeft = findPosX(this);
						
		// CONTEUDO - Cria array com os objetos conteudo da janela
		this.obj.conteudoJanela = new Array();
		
		// Formulário	
		nomeDivFormulario = this.obj.prefixo + 'divFormulario_' + this.obj.id;
		if(this.obj.sufixo){nomeDivFormulario += this.obj.sufixo;};
		this.obj.conteudoJanela[0] = document.createElement('div');
		this.obj.conteudoJanela[0].id = nomeDivFormulario;
		this.obj.conteudoJanela[0].style.padding='2px';
		this.obj.conteudoJanela[0].style.border='1px solid #e4e4e4';
		//this.obj.conteudoJanela[0].style.textAlign = "center";
		//this.obj.conteudoJanela[0].innerHTML = this.obj.sFormulario;
				
		nomeFormulario = this.obj.prefixo + 'form_' + this.obj.id;
		if(this.obj.sufixo){nomeFormulario += this.obj.sufixo;};
		this.obj.formulario = document.createElement('form');
		this.obj.formulario.id = nomeFormulario;
		this.obj.formulario.name = nomeFormulario;
		this.obj.formulario.method = "post";
		this.obj.formulario.action = "javascript:void(null);";
		this.obj.formulario.obj = this.obj;
		this.obj.formulario.onsubmit = this.obj.enviarBusca;
		this.obj.formulario.style.position = 'relative';
		this.obj.formulario.style.margin = '0';
		this.obj.conteudoJanela[0].appendChild(this.obj.formulario);
		
		this.obj.formulario.innerHTML += this.obj.sFormulario;
		
		this.obj.ocultoNomeObj = document.createElement('input');
		this.obj.ocultoNomeObj.type = "hidden";
		this.obj.ocultoNomeObj.id = "nomeVarObjeto";
		this.obj.ocultoNomeObj.name = "nomeVarObjeto";
		this.obj.ocultoNomeObj.value = this.obj.nomeVarObjeto;
		this.obj.formulario.appendChild(this.obj.ocultoNomeObj);
		
		// Verifica adiciona campos oculto
		if(this.obj.lstCampoOculto){
			
			totalCampoOculto = this.obj.lstCampoOculto.nome.length;
			
			for(co=0; co < totalCampoOculto; co++){
				
				value = '';
				
				if(this.obj.lstCampoOculto.value[co]){
					value = this.obj.lstCampoOculto.value[co];
				} else if(this.obj.lstCampoOculto.nomeFormulario[co] && this.obj.lstCampoOculto.nomeCampoFormulario[co]){
					
					refFormularioOrigem = $(this.obj.lstCampoOculto.nomeFormulario[co]);
					
					if(refFormularioOrigem){
						
						if(refFormularioOrigem[this.obj.lstCampoOculto.nomeCampoFormulario[co]]){
							value = refFormularioOrigem[this.obj.lstCampoOculto.nomeCampoFormulario[co]].value;
						}else {
							alert('ERRO[class __busca, visualizar]: Não foi possível adicionar campo oculto no formulário de busca, o campo "'+this.obj.lstCampoOculto.nomeCampoFormulario[co]+'" não existe no "'+this.obj.lstCampoOculto.nomeFormulario[co]+'".');
							continue;
						}	
						
					} 
					/*
					else {
						alert('ERRO[class __busca, visualizar]: Não foi possível adicionar campo oculto  no formulário de busca, formulário "'+this.obj.lstCampoOculto.nomeFormulario[co]+'" não existe.');
						continue;
					}*/
										
				}else {
					alert('ERRO[class __busca, visualizar]: Não foi possível adicionar campo oculto  no formulário de busca, é preciso informar o value ou o nome do formulário e campo de origem.');
					continue;
				}	
					
			
				this.campoOculto = document.createElement('input');
				this.campoOculto.type = "hidden";
				this.campoOculto.id = this.obj.lstCampoOculto.nome[co];
				this.campoOculto.name = this.obj.lstCampoOculto.nome[co];
				this.campoOculto.value = value;
				this.obj.formulario.appendChild(this.campoOculto);			
			}			
			
		}
		
		this.obj.btEnviar = document.createElement('input');
		this.obj.btEnviar.type = "submit";
		this.obj.btEnviar.className = "frm_Botao";
		this.obj.btEnviar.id = "enviar";
		this.obj.btEnviar.name = "enviar";
		this.obj.btEnviar.value = "Buscar";
		this.obj.formulario.appendChild(this.obj.btEnviar);
		
		espaco1 = document.createTextNode(' ');
		this.obj.formulario.appendChild(espaco1);
		
		this.obj.btLimpar = document.createElement('input');
		this.obj.btLimpar.type = "reset";
		this.obj.btLimpar.className = "frm_Botao";
		this.obj.btLimpar.id = "btLimpar";
		this.obj.btLimpar.name = "btLimpar";
		this.obj.btLimpar.value = "Limpar";
		this.obj.formulario.appendChild(this.obj.btLimpar);
		
		espaco2 = document.createTextNode('  ');
		this.obj.formulario.appendChild(espaco2);
		
		this.obj.btTodos = document.createElement('input');
		this.obj.btTodos.type = "submit";
		this.obj.btTodos.className = "frm_Botao";
		this.obj.btTodos.id = "btTodos";
		this.obj.btTodos.name = "btTodos";
		this.obj.btTodos.value = "Visualizar Todos";
		this.obj.formulario.appendChild(this.obj.btTodos);
		
		// Lisa		
		if(this.obj.ativarListaResultado){
			
			this.obj.conteudoJanela[1] = document.createElement('div');
			this.obj.conteudoJanela[1].id = this.obj.prefixo + 'divTituloLista_' + this.obj.id;
			this.obj.conteudoJanela[1].style.width='100%';
			this.obj.conteudoJanela[1].style.height = '20px';
			this.obj.conteudoJanela[1].style.paddingTop = "8px";
			//this.obj.conteudoJanela[1].style.border = "1px solid";
			
			this.obj.conteudoJanela[2] = document.createElement('div');
			this.obj.conteudoJanela[2].id = this.obj.prefixo + 'divLista_' + this.obj.id;
			this.obj.conteudoJanela[2].style.width='100%';
			//this.obj.conteudoJanela[2].style.height = '180px';
			//this.obj.conteudoJanela[2].style.overflow = 'auto';
			//this.obj.conteudoJanela[2].style.padding='2px';
			//this.obj.conteudoJanela[2].style.border='1px solid #e4e4e4';
			this.obj.conteudoJanela[2].innerHTML = 'Para efetuar uma busca, preencha os campos desejados e clique em OK.';
		
		}
						
		// Cria janela de busca
		//this.refObjBusca.refJanela = _adJanela('Localizar',this.obj.conteudoJanela,this.refObjBusca.dimensao,btTop+'x'+btLeft).refJanela;
		//if(!this.refObjBusca.objJanela)
		tituloJanela = this.obj.nomeBotao;
		if(this.obj.titulo)
			tituloJanela += ' - ' + this.obj.titulo;
			
		this.obj.objJanela = new _adJanela(tituloJanela, this.obj.conteudoJanela, this.obj.tamanho['largura']+'x'+this.obj.tamanho['altura'],btTop+'x'+btLeft);
		
		//alert(btTop+'x'+btLeft);
		
		// Tamanho Area Conteudo
		alturaAreaConteudo = this.obj.objJanela.getAlturaConteudo().replace('px', '');
		
		alturaFormulario = this.obj.conteudoJanela[0].scrollHeight;
				
		if(this.obj.ativarListaResultado){
			
			alturaTituloLista = this.obj.conteudoJanela[1].style.height.replace('px', '');
			
			difAltura = 15
			
			// Define altura da lista
			this.obj.alturaLista = alturaAreaConteudo - alturaFormulario - alturaTituloLista - difAltura;
			this.obj.conteudoJanela[2].style.height = this.obj.alturaLista + 'px';
						
			this.obj.btEnviar.click();
			
		} else {
			this.obj.objJanela.mudarDimensao(null, alturaFormulario + 30);
		}
				
	}else
		alert('ERRO[class _busca, visualizar]: O botao não possui referencia ao objeto Busca.');
	
}

__busca.prototype.ocultar = function(){
	
}

__busca.prototype.enviarBusca = function(){
	
	refFrmBusca = this.obj.formulario;
	
	if(refFrmBusca){
		
		try {
			
			// Corrige Bug IE - Adiciona novamente nome nomeVarObjeto no campo oculto do formulário
			refFrmBusca.nomeVarObjeto.value = this.obj.nomeVarObjeto;
			
			dadosFormulario = xajax.getFormValues(refFrmBusca.name);
			
			auxFuncaoBusca = eval(this.obj.funcaoBusca);
			auxFuncaoBusca.call(this, dadosFormulario);
			
			// Limpa dados formulário			
			refFrmBusca.btLimpar.click();	
			
			if(!this.obj.ativarListaResultado){
				//Fecha janela
				this.obj.objJanela.fechar();
			}			
			
		} catch(err) {
			
			msg = "ERRO[__busca, enviarBusca] \n\n";
			msg += err.description;
			
			alert(msg);
		}
		
	} else	
		alert('ERRO[javascript __busca jg.js, enviarBusca]: O formulário não existe.');

}


__busca.prototype.montarListaResultado = function(dadosTabela){
	
	this.dadosTabelaResultado = dadosTabela;
	
	// Verifica se a div lista de destino existe
	this.refDivTituloLista = this.conteudoJanela[1];
	this.refDivLista = this.conteudoJanela[2];
		
	if(this.refDivLista){
					
		if(this.dadosTabelaResultado && this.dadosTabelaResultado != ''){
			
			// Verifica se a busca retornou dados
			if(this.dadosTabelaResultado[0][1].length > 0){
								
				// ESTRUTURA	
				this.tbEstruturaResultado = document.createElement('table');
				this.tbEstruturaResultado.id = 'tbEstruturaResultadoBusca';
				this.tbEstruturaResultado.width="100%";
				this.tbEstruturaResultado.className="tbLista";
				// Adiciona tabela estrutura
				this.refDivLista.innerHTML = '';
				this.refDivLista.appendChild(this.tbEstruturaResultado);
						
				//Linha Título
				this.linhatbEstruturaTitulo = this.tbEstruturaResultado.insertRow(0);
				for(c=0; c<this.dadosTabelaResultado.length; c++){
					this.refTbEstruturaColunaTitulo = this.linhatbEstruturaTitulo.insertCell(c);
					this.refTbEstruturaColunaTitulo.className="tbLista_titulo";
					this.refTbEstruturaColunaTitulo.width = this.dadosTabelaResultado[c][2];
					this.refTbEstruturaColunaTitulo.innerHTML = this.dadosTabelaResultado[c][0];
				}
				
				this.linhaConteudo = this.tbEstruturaResultado.insertRow(1);
				this.refCelulaConteudo = this.linhaConteudo.insertCell(0);
				this.refCelulaConteudo.colSpan=c;
				this.refCelulaConteudo.style.height = (this.alturaLista - 28) + 'px';
				
				this.refDivConteudo = document.createElement('div');	
				this.refDivConteudo.style.width="100%";
				this.refDivConteudo.style.height = '100%';
				this.refDivConteudo.style.overflow = 'auto';
				this.refDivConteudo.style.overflowX = 'hidden';
				this.refCelulaConteudo.appendChild(this.refDivConteudo);
				
				
				// LISTA
				this.tblstResultado = document.createElement('table');
				this.tblstResultado.id = 'tbLstResultadoBusca';
				this.tblstResultado.width="100%";
				// Adiciona tabela lista resultado
				this.refDivConteudo.innerHTML = '';
				this.refDivConteudo.appendChild(this.tblstResultado);
				
				//Linhas
				this.totalRegistro = this.dadosTabelaResultado[0][1].length;
				
				this.refDivTituloLista.innerHTML = this.totalRegistro + ' Registro(s)';
				
				for(l=0; l < this.totalRegistro; l++){
					this.numLinha = l;
					
					this.linhaTitulo = this.tblstResultado.insertRow(this.numLinha);
					this.linhaTitulo.className="tbLista_linha";
					
					this.linhaTitulo.objFrm = this;
					//this.linhaTitulo.onmouseover = this.linhaMouseOver;
					//this.linhaTitulo.onmouseout = this.linhaMouseOut;
					this.linhaTitulo.obj = this;
					this.linhaTitulo.numero = l;
					this.linhaTitulo.onclick = this.cliqueLinhaItem;
					
					for(c=0; c<this.dadosTabelaResultado.length; c++){
						this.refColuna = this.linhaTitulo.insertCell(c);
						this.refColuna.className="tbLista_texto";
						//this.refColuna = this.linhaTitulo.insertCell(1);
						this.refColuna.innerHTML = this.dadosTabelaResultado[c][1][l];
						
						// Define largura colunas do titulo conforme resultado
						this.refColuna.width = this.dadosTabelaResultado[c][2];
						
					}
				}
				
				/*
				// Adiciona tabela estrutura
				this.refDivLista.innerHTML = '';
				this.refDivLista.appendChild(this.tbEstruturaResultado);
				// Adiciona tabela lista resultado
				this.refDivConteudo.innerHTML = '';
				this.refDivConteudo.appendChild(this.tblstResultado);
				*/
			} else {
								
				this.refDivTituloLista.innerHTML = '0 Registro(s)';
				this.refDivLista.innerHTML = 'A busca não retornou resultado.';
			}
		} 
		
	} else {
		alert('__busca, montarListaResultado, A div destino lista não existe.');
	}
	
}

__busca.prototype.cliqueLinhaItem = function(){
	//Pega dados da primeira coluna selecinada
	try{
		colunas = this.getElementsByTagName('td');
		
		txtCol1 = colunas[0].innerHTML;	
		
		if(this.obj.funcaoSelecao.length > 0){
			// Executa funções e passa como paramentro o codigo
			for(ef=0; ef < this.obj.funcaoSelecao.length; ef++){
				auxFuncaoSelecao = eval(this.obj.funcaoSelecao[ef]);
				auxFuncaoSelecao.call(this, txtCol1);
			}
			
			//Fecha janela
			this.obj.objJanela.fechar();
		}

	} catch(err){
		msg = "ERRO[__busca, montarListaResultado] \n";
		msg += err.description;
		alert(msg);
	}
}
/* FIM - BUSCA */

function _teste(codigo){
	alert("Função _teste('"+codigo+"')");
}

function _teste2(codigo){
	alert("Função _teste2('"+codigo+"')");
}

function _adicionarImagem(pastaBase, dados){
	

	
	this.pastaImagens = "imagens/";	
	
	this.pastaBase = pastaBase;
	this.dados = dados;
	
	this.obj = this;
		
	this.divBase = {'nome':'divBase_listaImagem', 'referencia':null};
	this.dimensao = {'largura':300, 'altura':400};
	this.posicao = {'topo':null, 'esquerda':null};
	
	this.idListaPasta = 'adicionarImagem_listaPasta';
	this.idListaImagem = 'adicionarImagem_listaImagem';
	
	this.larguraImg = 180;
	
	this.formaEscolha = "uma";
	this.nomeObjDestino = null;
	this.larguraImgDestino = null;
	
	// Botao
	this.nomeObjetoDestino_botao = null
	this.nomeImgBotao = "escolherImagem.gif";
	this.tituloBotao = "Adicionar Imagem";
		
	this.nomePastaAtiva = null;
	this.nomeImagemAtiva = null;
	
	this.codigoPastaAtiva = null;
}

_adicionarImagem.prototype.adDados = function(dados){
	if(dados)
		this.dados = dados;
}

_adicionarImagem.prototype.adDimensao = function(largura,altura){
	if(largura)
		this.dimensao.largura = largura;
	
	if(altura)
		this.dimensao.altura = altura;
}

_adicionarImagem.prototype.adPosicao = function(topo,esquerda){
	if(topo)
		this.posicao.topo = topo;
	
	if(esquerda)
		this.posicao.esquerda = esquerda;
}

_adicionarImagem.prototype.multiplaEscolha = function(){
	this.formaEscolha = "multipla";
}

_adicionarImagem.prototype.adNomeObjetoDestinoBotao = function(no){
	
	if(no){
		this.nomeObjetoDestino_botao = no;
	} 
	
}

_adicionarImagem.prototype.adTituloBotao = function(tb){
	
	if(tb){
		this.tituloBotao = tb;
	} 
	
}

_adicionarImagem.prototype.adNomeObjetoDestinoImagem = function(nomeObj){
	
	if(nomeObj){
		this.nomeObjDestino = nomeObj;
	} 
	
}

_adicionarImagem.prototype.adLarguraImagemDestino = function(l){
	
	if(l){
		this.larguraImgDestino = l;
	} 
	
}

_adicionarImagem.prototype.adNomePastaAtiva = function(pasta){
	if(pasta)
		this.nomePastaAtiva = pasta;
}

_adicionarImagem.prototype.adNomeImagemAtiva = function(img){
	if(img)
		this.nomeImagemAtiva = img;
}

_adicionarImagem.prototype.montarBase = function(){
	
	this.tamanho_alturaTitulo = 20;
	this.tamanho_alturaBusca = 40;
	this.tamanho_alturaBotao = 20;
	
	// Base janela
	this.divBase.referencia = document.createElement('div');
	this.divBase.referencia.id = this.divBase.nome;
	this.divBase.referencia.style.position = 'absolute';
	this.divBase.referencia.style.zIndex = 111;
	this.divBase.referencia.style.top = '50%';
	this.divBase.referencia.style.left = '50%';
	this.divBase.referencia.style.width = this.dimensao.largura+'px';
	this.divBase.referencia.style.marginLeft = '-' + (this.dimensao.largura/2)+'px';
	this.divBase.referencia.style.height = this.dimensao.altura+'px';
	this.divBase.referencia.style.marginTop = '-' + (this.dimensao.altura/2) + 'px';
	this.divBase.referencia.style.background = '#f5f5b5';
	this.divBase.referencia.style.border = '1px solid #000000';
	
	// Titulo
	this.divBase.divTitulo = document.createElement('div');
	this.divBase.divTitulo.className = 'adicionarImagem_titulo';
	this.divBase.divTitulo.style.height = this.tamanho_alturaTitulo + 'px';
	//this.divBase.divTitulo.innerHTML = 'Imagens';
	//this.divBase.divTitulo.style.border = '1px solid #996600'; //#000000';
	this.divBase.divTitulo.style.background = '#996600'; //'#000000';
	this.divBase.divTitulo.style.color = '#FFFFFF';
	this.divBase.referencia.appendChild(this.divBase.divTitulo);
	
	tb = document.createElement('table');
	tb.width = "100%";
	tb.border = "0";
	this.divBase.divTitulo.appendChild(tb);

	linha = tb.insertRow(0);
	
	coltitulo = linha.insertCell(0);
	coltitulo.width = "90%";
	coltitulo.innerHTML = 'Imagens';
	
	colBotao = linha.insertCell(1);
	colBotao.width = "10%";
	colBotao.innerHTML = "Fechar";
	colBotao.style.cursor = "pointer";
	colBotao.obj = this;
	colBotao.onclick = this.ocultar;
		
	
	// BUSCA - FILTRO
	this.divBase.divBusca = document.createElement('div');
	this.divBase.divBusca.className = 'adicionarImagem_texto';
	this.divBase.divBusca.style.height = this.tamanho_alturaBusca + 'px';
	//this.divBase.divBusca.innerHTML = 'Nome:<input type="text" id="adicionarImagem_busca" name="adicionarImagem_busca" size="20" value="" class="cTexto"/>';
	this.divBase.divBusca.style.padding = '2px';
	this.divBase.referencia.appendChild(this.divBase.divBusca);
	
	// Pasta
	
	
	// CONTEUDO
	tamanhoConteudo = this.dimensao.altura;
	tamanhoConteudo -= (this.tamanho_alturaTitulo + 4);
	tamanhoConteudo -= (this.tamanho_alturaBusca + 4);
	if(this.formaEscolha == "multipla")
		tamanhoConteudo -= (this.tamanho_alturaBotao + 4);
		
	this.divBase.divConteudo = document.createElement('div');
	this.divBase.divConteudo.style.height = (tamanhoConteudo - 8) + 'px';
	//this.divBase.divConteudo.innerHTML = 'Conteudo';
	//this.divBase.divConteudo.style.border = '1px solid #000000';
	this.divBase.divConteudo.style.background = '#FFFFFF';
	this.divBase.divConteudo.style.overflow = 'auto';
	this.divBase.divConteudo.style.margin = '8px';
	this.divBase.referencia.appendChild(this.divBase.divConteudo);
	
	if(this.formaEscolha == "multipla"){
		this.divBase.divBotao = document.createElement('div');
		this.divBase.divBotao.className = 'adicionarImagem_botao';
		this.divBase.divBotao.style.height = this.tamanho_alturaBotao + 'px';
		this.divBase.divBotao.innerHTML = '<input type="button" id="" name="" value="Adicionar" class="botao" />';
		this.divBase.divBotao.align = 'right';
		this.divBase.referencia.appendChild(this.divBase.divBotao);
	}
	
	document.body.appendChild(this.divBase.referencia);
	
}

_adicionarImagem.prototype.montarListaPasta = function(){
	
	totalPasta = this.dados.length;
	
	if(totalPasta > 0){
		
		// Padrão primeiro pasta da lista
		if(this.codigoPastaAtiva == null)
			this.codigoPastaAtiva = 0;
		
		// Lista principal - Pasta
		this.divBase.divBusca.innerHTML = "Pastas:";
		this.listaPasta  = document.createElement('select');
		this.listaPasta.id = "adicionarImagegm_selectPasta";
		this.listaPasta.className = "lstBox";
		this.listaPasta.obj = this;
		this.listaPasta.onchange = this.alterarPasta;
		this.divBase.divBusca.appendChild(this.listaPasta);
		
		for(p=0; p < totalPasta; p++){
			itemPasta  = document.createElement('option');
			itemPasta.value = p;
			itemPasta.text = this.dados[p].nome;
						
			try{
		    	this.listaPasta.add(itemPasta,null);
		    } catch(ex) {
		    	this.listaPasta.add(itemPasta);
		    }
		}
		
		// Monta primeiro item lista
		this.montarListaImagem();
	}	
}

_adicionarImagem.prototype.alterarPasta = function(){
	
	this.obj.codigoPastaAtiva = this.value;
	
	this.obj.montarListaImagem();
	
}

_adicionarImagem.prototype.montarListaImagem = function(){
	
	if(this.obj.codigoPastaAtiva != null){
		
		this.divBase.divConteudo.innerHTML = "";
		
		totalArquivo = this.dados[this.obj.codigoPastaAtiva].arquivos.length;
			
		if(totalArquivo > 0){
								
			// Lista de arquivo da pasta
			this.listaImagem = document.createElement('ul');
			this.listaImagem.id = this.idListaImagem;
			this.divBase.divConteudo.appendChild(this.listaImagem);
				
			for(a=0; a < totalArquivo; a++){
								
				this.listaImagem_li = document.createElement('li');
				this.listaImagem_li.obj = this;
				this.listaImagem_li.numPasta = this.obj.codigoPastaAtiva;
				this.listaImagem_li.numArquivo = a;
				this.listaImagem_li.onclick = this.adicionarImagem;
				this.listaImagem.appendChild(this.listaImagem_li);
			
				// Define Base imagem
				if(this.formaEscolha == "multipla"){
					tb = document.createElement('table');
					tb.width = "100%";
					tb.border = "0";
					this.listaImagem_li.appendChild(tb);
				
					linha = tb.insertRow(0);
					
					col1 = linha.insertCell(0);
					col1.width = "90%";
					col2 = linha.insertCell(1);
					col2.width = "10%";
					col2.innerHTML = '<input type="checkbox" id="adicionarImagem_escolha_'+p+':'+a+'" value="'+p+':'+a+'"/>';
					
					baseImg = tb;
					
				} else {
					baseImg = this.listaImagem_li;
				}	
				pastaNomeArquivo = this.pastaBase + '/' + this.dados[this.obj.codigoPastaAtiva].nome + '/' + this.dados[this.obj.codigoPastaAtiva].arquivos[a];
				
				objCarragarImgGaleria = new _carregarImg();
				objCarragarImgGaleria.adImagem(baseImg, pastaNomeArquivo, this.larguraImg , null,this.dados[this.obj.codigoPastaAtiva].arquivos[a]);
				objCarragarImgGaleria.executar();
				
				//nomeArquivo = document.createTextNode(pastaNomeArquivo);
				//this.listaImagem_li.appendChild(nomeArquivo);
			}
		} else {
			this.divBase.divConteudo.innerHTML = "Pasta sem imagens";
		}
	}
	
	/*
	totalPasta = this.dados.length;
	
	if(totalPasta > 0){
		
		// Lista principal - Pasta
		this.listaPasta  = document.createElement('ul');
		this.listaPasta.id = this.idListaPasta;
		this.divBase.divConteudo.appendChild(this.listaPasta);
		
		for(p=0; p < totalPasta; p++){
									
			this.listaPasta_liNomePasta = document.createElement('li');
			this.listaPasta_liNomePasta.className = 'adicionarImagem_tituloLista';
			this.listaPasta.appendChild(this.listaPasta_liNomePasta);
			
			nomePasta = document.createTextNode(this.dados[p].nome);
			this.listaPasta_liNomePasta.appendChild(nomePasta);
			
			totalArquivo = this.dados[p].arquivos.length;
			
			if(totalArquivo > 0){
				
				this.listaPasta_liListaArquivo = document.createElement('li');
				this.listaPasta.appendChild(this.listaPasta_liListaArquivo);
				
				// Lista de arquivo da pasta
				this.listaImagem = document.createElement('ul');
				this.listaImagem.id = this.listaImagem;
				this.listaPasta_liListaArquivo.appendChild(this.listaImagem);
					
				for(a=0; a < totalArquivo; a++){
									
					this.listaImagem_li = document.createElement('li');
					this.listaImagem_li.obj = this;
					this.listaImagem_li.numPasta = p;
					this.listaImagem_li.numArquivo = a;
					this.listaImagem_li.onclick = this.adicionarImagem;
					this.listaImagem.appendChild(this.listaImagem_li);
				
					// Define Base imagem
					if(this.formaEscolha == "multipla"){
						tb = document.createElement('table');
						tb.width = "100%";
						tb.border = "0";
						this.listaImagem_li.appendChild(tb);
					
						linha = tb.insertRow(0);
						
						col1 = linha.insertCell(0);
						col1.width = "90%";
						col2 = linha.insertCell(1);
						col2.width = "10%";
						col2.innerHTML = '<input type="checkbox" id="adicionarImagem_escolha_'+p+':'+a+'" value="'+p+':'+a+'"/>';
						
						baseImg = tb;
						
					} else {
						baseImg = this.listaImagem_li;
					}	
					pastaNomeArquivo = this.pastaBase + '/' + this.dados[p].nome + '/' + this.dados[p].arquivos[a];
					
					objCarragarImgGaleria = new _carregarImg();
					objCarragarImgGaleria.adImagem(baseImg, pastaNomeArquivo, this.larguraImg , null,this.dados[p].arquivos[a]);
					objCarragarImgGaleria.executar();
					
					//nomeArquivo = document.createTextNode(pastaNomeArquivo);
					//this.listaImagem_li.appendChild(nomeArquivo);
				}
			}
			
		}
	}
	*/	
}

_adicionarImagem.prototype.visualizar = function(){
	
	if(this.obj.divBase.referencia == null){
		this.obj.montarBase();
		//this.obj.montarListaImagem();
		this.obj.montarListaPasta();
	} else {
		this.obj.divBase.referencia.style.display = "block";
	}
	
	
}

_adicionarImagem.prototype.ocultar = function(){
	
	if(this.obj.divBase.referencia != null){
		this.obj.divBase.referencia.style.display = "none";
	}
	
	
}

_adicionarImagem.prototype.adicionarImagem = function(){
	
	if(this.obj.nomeObjDestino){
				
		pasta = this.obj.dados[this.numPasta].nome;
		imagem = this.obj.dados[this.numPasta].arquivos[this.numArquivo];
		
		refObjDestino = document.getElementById(this.obj.nomeObjDestino);
		
		if(refObjDestino){
			
			refObjDestino.innerHTML = '';
						
			if(this.obj.larguraImgDestino)
				larguraImg = this.obj.larguraImgDestino;
			else
				larguraImg = this.obj.larguraImg;
			
			caminhoImagem = this.obj.pastaBase +'/'+ pasta +'/'+ imagem;
			
			// Div base imagem
			divBaseImg = document.createElement("div");
			refObjDestino.appendChild(divBaseImg);
			
			objCarragarImgGaleria = new _carregarImg();
			objCarragarImgGaleria.adImagem(divBaseImg, caminhoImagem, larguraImg , null,imagem);
			objCarragarImgGaleria.executar();
			
			//Campo Oculto
			campoOcultoPasta = document.createElement("input");
			campoOcultoPasta.type = "hidden";
			campoOcultoPasta.name = "pasta_imagem";
			campoOcultoPasta.id = "pasta_imagem";
			campoOcultoPasta.value = pasta;
			refObjDestino.appendChild(campoOcultoPasta);
			
			campoOcultoImagem = document.createElement("input");
			campoOcultoImagem.type = "hidden";
			campoOcultoImagem.name = "arquivo_imagem";
			campoOcultoImagem.id = "arquivo_imagem";
			campoOcultoImagem.value = imagem;
			refObjDestino.appendChild(campoOcultoImagem);
			
		} else {
			alert("ERRO[_adicionarImagem, adicionar]: Não foi possível adicionar imagem, o objeto de destino '" + this.obj.nomeObjDestino + "' não existe.");
		}
		
	}
	
	this.obj.ocultar();
		
}

_adicionarImagem.prototype.adicionarBotao = function(){
	if(this.nomeObjetoDestino_botao != null){
		
		refObjDestino = document.getElementById(this.nomeObjetoDestino_botao);
		
		if(refObjDestino){
			
			refObjDestino.style.width = "150px";
			refObjDestino.obj = this;
			refObjDestino.onclick = this.visualizar;
			refObjDestino.className = "adicionarImagem_botao";
			
			tb = document.createElement('table');
			tb.width = "100%";
			tb.border = "0";
			refObjDestino.appendChild(tb);
		
			linha = tb.insertRow(0);
			
			col1 = linha.insertCell(0);
			col1.width = "20%"
			col2 = linha.insertCell(1);
			col2.width = "80%";
			
			//Imagem
			objCarragarImgGaleria = new _carregarImg();
			objCarragarImgGaleria.adImagem(col1, this.pastaImagens + this.nomeImgBotao, null , null,null);
			objCarragarImgGaleria.executar();
			
			// Titulo
			col2.innerHTML = this.tituloBotao;
												
		} else {
			alert("ERRO[_adicionarImagem, adicionarBotao]: Não foi possível adicionar botão, o objeto de destino '" + this.nomeObjetoDestino_botao + "' não existe.");
		}
		
	}else {
		alert("ERRO[_adicionarImagem, adicionarBotao]: Não foi possível adicionar botão, o nome do objeto de destino não foi informado.");
	}
}

_adicionarImagem.prototype.ativarImagem = function(){
	
	this.numPasta = null;
	this.numArquivo = null;
	

	if(this.nomePastaAtiva && this.nomeImagemAtiva){
		totalPasta = this.dados.length;
		
		for(p=0; p < totalPasta; p++){
			
			auxNumPasta = this.dados[p].nome.indexOf(this.nomePastaAtiva);
			
			if(auxNumPasta != -1) {
				
				this.numPasta = p;
				
				totalArquivo = this.dados[this.numPasta].arquivos.length;
				
				for(a=0; a < totalArquivo; a++){
					
					//alert('informada:'+this.nomeImagemAtiva + ' - base:' + this.dados[this.numPasta].arquivos[a]);
					
					auxNumArquivo = this.dados[this.numPasta].arquivos[a].indexOf(this.nomeImagemAtiva);
					
					if(auxNumArquivo != -1){
						//alert('Ativa:' + this.dados[this.numPasta].nome + '/' + this.dados[this.numPasta].arquivos[a]);
						this.numArquivo = a;
						this.adicionarImagem();
						return {'pasta':this.numPasta,'arquivo':this.numArquivo};
					}
					
				}
				
			}
		}
	}		

}



_adicionarImagem.prototype.executar = function(){
	this.adicionarBotao();
}
/*FIM ADICIONAR IMAGEM*/
