//=====================================================================      v2.3
//
// Objeto AJAX para comunicação Assincrona com um servidor de aplicações WEB
// 
// obs: 
//		1 - verificar maneira de retirar todos os comentarios do codigo JS,
// 		para diminuir o tamanho do arquivo, aumenta a velocidade, verificar
// 		maneira de codificar o js 		
//
//		2 - verificar maneira de passar parametro para exibir uma div flutuante
//		informando que a dados sendo processados.
//
//================================================================================

var varNome = new Array();
function AJAX(url,metodo,params,processa,modo,loading) {
	this.url = url;
	this.metodo = (metodo) ? metodo : 'GET';
	this.loading = (loading) ? loading : 'z';
	this.params  = (metodo=='GET') ? null : params;
	this.processaresultado = processa;
	this.carregar = loading;
	this.Header = new Array();	
	this.modo = (modo) ? modo : 'T';
	if(this.modo!='T'&&this.modo!='X'){
		this.modo = 'T';
	}
	this.conectar();
}
AJAX.prototype = {
	addHeader:	function(h,v) {
					this.Header[h] = v;
				},
	delHeader:	function(h) {
					delete(this.Header[h]);
				},
	setHeader:	function() {
					if(this.httprequest==null) { return;} 
					for(h in this.Header) {
						this.httprequest.setRequestHeader(h,this.Header[h]);
					}
				},
	conectar:			function() {
							if(this.url==undefined||this.url=='') {
								return; 
							}
							this.httprequest = null;
						   	if (window.XMLHttpRequest) { // Mozilla, Safari,...
					         	this.httprequest = new XMLHttpRequest();
				        	} else if (window.ActiveXObject) { // IE
					         	try {
							     	 this.httprequest = new ActiveXObject("Msxml2.XMLHTTP");
				    	     	} catch (e) {
				               		try {
		        		           	 this.httprequest = new ActiveXObject("Microsoft.XMLHTTP");
									} catch (e) {}
								}
							}
							if(this.httprequest!=null&&this.httprequest!=undefined) {
								var obj = this;
								this.httprequest.onreadystatechange = 	function() {
																			obj.processaretorno.call(obj);
																		};
								if(this.metodo==undefined||this.metodo=='') { this.metodo = 'GET';}
								//==========================================================================
								//						ESTA LINHA É UM TESTE(VERIFICAR FUTURAMENTE)
								else{this.addHeader('Content-Type', 'application/x-www-form-urlencoded');}
								//==========================================================================
								
					        	this.httprequest.open(this.metodo,this.url, true);
								this.setHeader();
						        this.httprequest.send(this.params);
							}
						},
	processaretorno:	function() {
							if(this.loading != "z"){
								if(this.httprequest.readyState<4)
								{this.loading()}									
							}
							
							if(this.httprequest.readyState==4) {
								if(this.httprequest.status==200) {
									var resp = (this.modo=='T') ? 
												this.httprequest.responseText : 
												this.httprequest.responseXML;
									if(this.processaresultado!=null) {
										this.processaresultado(resp);
									} else {
										document.write(resp);
									}
								} else { 
									if (this.sem_erro == undefined){this.processaerro();}
								}
							}
						},
	processaerro:		function() {
							alert(this.httprequest.status + '-' + this.httprequest.statusText + ' :-> ' + this.url);
						}
};
//============================================================================
//							Documentação da classe							
//																			
//  Classe simples para usar DOM											
//  Autor: Adriano Luiz Skroch												
//																			
//	criar: cria um elemento													
//	append: = appendChild, adiciona	um elemento criado a um	ja existente	
//	id: pega o elemento pela id = getElementById('');						
//	tag: pega o elemento pelo nome da tag, usar em XML						
//  tagv: pega o valor do elemento pela tag e posicao						
//	tamanho: retorna o numero de elementos da tag							
//	classe: especifica uma classe											
//  atributo: seta um atributo, classe, id, href, onclick (testar no ie)	
//																			
//============================================================================
function dom(){
this.teste = "x";}
dom.prototype = {	
	criar: function (x)
	{
		return document.createElement(x);
	},
	append: function(alvo,valor)
	{
		return alvo.appendChild(valor);		
	},
	id: function(x)
	{
		return document.getElementById(x);
	},
	tag: function(alvo,valor)
	{
		return alvo.getElementsByTagName(valor);
	},
	tagv: function(alvo,tag,posicao)
	{
		var elemento = alvo.getElementsByTagName(tag)[posicao];
		if(elemento.hasChildNodes()){
		return unescape(alvo.getElementsByTagName(tag)[posicao].firstChild.nodeValue);
		}else{ return " ";}
	},
	tamanho : function(alvo,valor)
	{
		return alvo.getElementsByTagName(valor).length;
	},
	classe : function(alvo,estilo)
	{
		alvo.setAttribute('class',estilo);

	},
	atributo : function(alvo,attribute,valor)
	{
		alvo.attribute = valor;
		alvo.setAttribute(attribute,valor);
	},
	texto : function(x)
	{
		return document.createTextNode(x);
	},
	inner : function(alvo,valor)
	{
		return alvo.innerHTML = valor;
	},
	limpar : function(x)
	{
		var filhos = document.getElementById(x);
		while (filhos.firstChild) 
		{
			filhos.removeChild(filhos.firstChild);
		}
		return 1;
	}	
};
//====================================================================
//			FUNCAO PARA PREENCHER CAMPOS AUTOMATICAMENTE COM AJAX
//====================================================================

// parametro é o codigo que sera buscado no banco
// tamanho é a quantidade minima de numeros para fazer a busca
// obs, retornará somente 1 resultado para a busca
// deve-se usar a classe mysqlcon em classes.php para gerar o xml
// os campos a serem buscados no banco de dados devem ter os mesmos...
// dos campos do formulario, se preciso usar alias para os campos
// trazer só os campos necessários
// form é  a id do formulario, para ser limp se nao houver resultados
//		se nao informado nao limpa o formulario
//	1 -  url, se nao informado usa padrao
//  2 - postar na mesma página e fazer um case em php
//
//===================================================================

function aj_campos(parametro,acao,tamanho,url,form) 
{	
	if(parametro.length <tamanho ){return false;}	

	var a = new AJAX();
	var url = (url)? url: 'funcoes_ajax.php';
	a.url = url;
	a.params = "ajax_id="+parametro+"&ajax_acao="+acao;
	a.modo = "X";
	a.metodo = "POST";
	a.loading = function(){};
	a.processaresultado = function(xml)
	{	
		var d = new dom();
		var tamanho = d.tag(xml,"root");
		//alert(tamanho[0].hasChildNodes());
		if(tamanho[0].hasChildNodes())
		{//alert("teste ok");
			//****************************************
			//           teste de alerta
			var tamanho = d.tamanho(xml,"item");
			if(tamanho>0)
			{
				var alerta = d.tag(xml,"item");
				var id = unescape(alerta[0].getAttribute("id"));
				var label = unescape(alerta[0].getAttribute("label"));
				if(id=="alerta"){alert(label); tamanho=0;
				if(form){limpar_formulario(form);}else{}
					
					return false;}			
			}
		}
		
		//****************************************
		var campos = d.tagv(xml,"campos",0); 
		if(campos=="vazio"){
			if(form){limpar_formulario(form);}else{}
			
			return false;}			
		var nome_campos = campos.split(";");		
		var numero_registros = nome_campos.length;	
		
		for(i=0; i < (numero_registros-1);i++)
		{	
			var campo = nome_campos[i];
			var str = new String(campo);
			var nome = d.id(campo);
			if (nome)
			{
				//alert("OK");
			
			//alert(nome);
			var tipo = nome.type;
			switch (tipo)
			{
			case 'text':
//				if (nome){
					nome.value = d.tagv(xml, str, 0);
//				}
			break;
			
			case 'select-one':
				var valor = d.tagv(xml, str, 0);
				var opcao = d.criar("option");
				//opcao.value = valor;
				d.limpar(campo);
				
				//===========================
				
				var tx_temp = d.texto("Selecione");
			
				d.append(opcao,tx_temp);
				d.append(nome, opcao);		
				//===========================
					
				
				var opcao = d.criar("option");
				

				//**********************************
				var xxx = d.tagv(xml, str, 0);
				var array = xxx.split(";");						
					var valor_opcao = array[0];
					var texto_opcao = array[1];
					//var str = new String(campo);
					//var nome = d.id(campo);						
					//nome.value = d.tagv(xml, str, 0);
				opcao.value = valor_opcao;
						
				var texto2 = d.texto(texto_opcao);
				d.append(opcao,texto2);

				//**************************
				opcao.selected = "true";
				d.append(nome,opcao);
			break;}
			}
			
		}		
	};
	a.conectar(); 
	return true;
}

//====================================================================
//			FUNCAO PARA PREENCHER UMA COMBOBOX AUTOMATICAMENTE
//====================================================================
//	
//	parametro = cod a ser usado na busca no banco
//  tamanho = tamanho minimo para efetuar a busca
//	idcombo = id da combo onde vai ser montado o resultado
//	url = pagina onde sera feita a consulta em ajax
//			se a url n for especificada vai cair na mesma pagina
//			usar um switch $acao  no inicio do codico
//	acao = para ser usada em um case, para varias requesições
//  atencao : sera usado os dois primeiros campos da consulta
//			exemplo: SELECT cod, nome, status from produtos
//			o value da combo vai ser  o cod e o texto o nome
//
//====================================================================

function aj_combo(parametro,idcombo,acao,tamanho,url) 
{	
	
	if(parametro.length <tamanho)
	{
		return false;
	}


	var a = new AJAX();
	var url = (url)? url: 'funcoes_ajax.php';
	a.url = url;
	a.params = "ajax_id="+parametro+"&ajax_acao="+acao;
	a.metodo = "POST";
	a.modo = "X";
	a.loading = function()
	{
		var id_combo = new String(idcombo);
		var d = new dom();	
		d.limpar(id_combo);		
		var combo = d.id(id_combo);
		var opcao = d.criar("option");
		var tx_temp = d.texto("Carregando...");
		d.append(opcao,tx_temp);
		d.append(combo, opcao);		
	};
	a.processaresultado = function(xml)
	{	
		
		var id_combo = new String(idcombo);
		var d = new dom();	
		var tamanho = d.tamanho(xml,"item");
		//****************************************
		//           teste de alerta
		if(tamanho>0){
		var alerta = d.tag(xml,"item");
		var id = unescape(alerta[0].getAttribute("id"));
		var label = unescape(alerta[0].getAttribute("label"));
		if(id=="alerta"){alert(label); tamanho=0;}}
		
		
		//****************************************
		d.limpar(id_combo);		
		var combo = d.id(id_combo);
		//var tamanho = d.tamanho(xml,"item");
		var valores = d.tag(xml,"item");
		var opcao = d.criar("option");
		if(tamanho>0){var tx_temp = d.texto("Selecione");}
		else{var tx_temp = d.texto("Indisponivel");}
		d.append(opcao,tx_temp);
		d.append(combo, opcao);		
		
		for(var i=0; i<tamanho;i++)
		{						
			var opcao = d.criar("option");
			var valor = unescape(valores[i].getAttribute("id"));
			var texto1 = unescape(valores[i].getAttribute("label"));
			var texto2 = d.texto(texto1);
			opcao.value = valor;			
			d.append(opcao,texto2);
			d.append(combo,opcao);
		}		
	};
	a.conectar(); 
	return true;
}
//====================================================================
//				FUNÇÃO QUE RETORNA UM UNICO VALOR
//====================================================================

function aj_uni(parametro,idcampo,acao,tamanho,url) 
{	
	if(parametro.length <tamanho)
	{
		return false;
	}
	var a = new AJAX();
	var url = (url)? url: 'funcoes_ajax.php';
	a.url = url;
	a.params = "ajax_id="+parametro+"&ajax_acao="+acao;
	a.metodo = "POST";
	a.modo = "X";
	a.loading = function(){};
	a.processaresultado = function(xml)
	{	
		var id_campo = new String(idcampo);
		var d = new dom();	
		var tamanho = d.tamanho(xml,"item");
	
		//****************************************
		//           teste de alerta
		if(tamanho>0){
		var alerta = d.tag(xml,"item");
		var id = unescape(alerta[0].getAttribute("id"));
		var label = unescape(alerta[0].getAttribute("label"));
		if(id=="alerta"){alert(label); tamanho=0;}}
		
		
		//****************************************
		
		
		if(tamanho> 0){			
		d.limpar(id_campo);		
		var campo = d.id(id_campo);
		var valores = d.tag(xml,"item");
							
			//var opcao = d.criar("option");
			var valor = unescape(valores[0].getAttribute("id"));
			//var texto1 = unescape(valores[0].getAttribute("label"));
			//var texto2 = d.texto(valor);
			//opcao.value = valor;			
			campo.value = valor;
			//d.append(combo,opcao);
		}
		else
		{			
			document.getElementById(id_campo).value = "";
		}
				
	};
	a.conectar(); 
	return true;
}

//====================================================================
//				FUNÇÃO QUE VAI AO SERVIDOR E FAZ VALIDAÇÃO
//====================================================================

function aj_verifica(parametro,acao,tamanho,url) 
{	

	var d = new dom();
	
	//parametro = new String(parametro);
	var valor = parametro.value;
	//var valor = parametro.value;
	if(valor.length <tamanho)
	{
		return false;
	}
	var a = new AJAX();
	var url = (url)? url: 'funcoes_ajax.php';
	a.url = url;
	a.params = "ajax_id="+valor+"&ajax_acao="+acao;
	a.metodo = "POST";
	a.modo = "X";
	a.loading = function(){};
	a.processaresultado = function(xml)
	{	
	var d = new dom();
		//var id_combo = new String(idcombo);
		
		var tamanho = d.tamanho(xml,"item");
		//****************************************
		//           teste de alerta
		if(tamanho>0){
		var alerta = d.tag(xml,"item");
		var id = unescape(alerta[0].getAttribute("id"));
		var label = unescape(alerta[0].getAttribute("label"));
		if(id=="alerta"){alert(label); parametro.value = "";
		parametro.className = "invalido";
		return false;}
		else if(label=="ok")
		{
			parametro.className = "validado";
			d.atributo(parametro,"class","validado");
			
		}
		}
		
				
	};
	a.conectar(); 
	return true;
}
//===============================================================
//				LIMPA O FORMULARIO COM A ID INFORMADA, RESET
//===============================================================
function limpar_formulario(x)
{
	var formulario = new String(x);		
	document.getElementById(formulario).reset();
	return true;
}

//============================================================================

// funcao tipo google suggest, retirada da internet e adaptada por Adriano
// autor original:Rafael Dohms (rafael at rafaeldohms dot com dot br)
// http://www.rafaeldohms.com.br//

//============================================================================


function dmsAutoComplete(elem,divname,acao,tamanho,url){
	
	//if(elem.length <tamanho+1){return false;}
	var me = this;
	this.elem = document.getElementById(elem);
	this.highlighted = -1;
	
	this.arrItens = new Array();
	this.ajaxTarget = (url)? url: 'funcoes_ajax.php';

	this.chooseFunc = null;
	this.div = document.getElementById(divname);
	var id_ativa;
	var valor_ativo;
	
	var TAB = 99; // O CORRETO É 9
	var ESC = 27;
	var KEYUP = 38;
	var KEYDN = 40;
	var ENTER = 13;
	this.div.style.width = this.elem.style.width;	
	me.elem.setAttribute("autocomplete","off");
	this.ajaxReq = createRequest();
	me.elem.onkeydown = function(ev)
	{
		var key = me.getKeyCode(ev);
		switch(key)
		{
			case TAB:
			case ENTER:
				if (me.highlighted.id != undefined){
					me.acChoose(me.highlighted.id);
				}
				me.hideDiv();
				return false;
			break;

			case ESC:
				me.hideDiv();
				return false;
			break;

			case KEYUP:
				me.changeHighlight('up');
				return false;
			break;

			case KEYDN:
				me.changeHighlight('down');
				return false;
			break;
		}
		
	};
	
	this.setElemValue = function(){
		var a = me.highlighted.firstChild;
		me.elem.value = a.innerTEXT;
	};
	
	this.highlightThis = function(obj,yn){
		if (yn = 'y'){
			me.highlighted.className = '';
			me.highlighted = obj;
			me.highlighted.className = 'selected';			
			me.setElemValue(obj);			
		}else{
			obj.className = '';
			me.highlighted = '';
		}
	};
	
	this.changeHighlight = function(way){		
		if (me.highlighted != '' && me.highlighted != null ){
			me.highlighted.className = '';
			switch(way){
				case 'up':
					if(me.highlighted.parentNode.firstChild == me.highlighted){
						me.highlighted = me.highlighted.parentNode.lastChild;
					}else{
						me.highlighted = me.highlighted.previousSibling;
					}
				break;
				case 'down':
					if(me.highlighted.parentNode.lastChild == me.highlighted){
						me.highlighted = me.highlighted.parentNode.firstChild;
					}else{
						me.highlighted = me.highlighted.nextSibling;
					}
				break;				
			}
			me.highlighted.className = 'selected';
			me.setElemValue();
		}else{
			switch(way){
				case 'up':
					me.highlighted = me.div.firstChild.lastChild;
				break;
				case 'down':
					me.highlighted = me.div.firstChild.firstChild;
				break;				
			}
			me.highlighted.className = 'selected';
			me.setElemValue();
		}
	};	
	
	me.elem.onkeyup = function(ev) 
	{
		var key = me.getKeyCode(ev);
		switch(key)
		{		
		case TAB:
		case ESC:
		case KEYUP:
		case KEYDN:
			return;
		case ENTER:
			return false;
			break;
		default:			
			me.ajaxReq.abort();			
			if (me.ajaxReq != undefined){
				var text32 = new String(me.elem.value);
				if(text32.length<tamanho){return false;}
				me.ajaxReq.open("POST", me.ajaxTarget, true);
				me.ajaxReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
				me.ajaxReq.onreadystatechange = me.acResult;				
				var param = 'ajax_acao='+acao+'&ajax_id=' + me.elem.value;	
				var pol = me.elem.value;
				var z = pol.split(" ");
				if(z[0] ==""){}
				else
				{
					me.ajaxReq.send(param);				
				}				
			}						
			me.highlighted = '';
		}
	};	
	me.elem.onblur = function() {
		me.hideDiv();
	};	
	
	this.acResult = function(){		
		if (me.ajaxReq.readyState == 4){				
			me.showDiv();						
			var xmlRes = me.ajaxReq.responseXML;			
			if (xmlRes == undefined){ return false;	}
			var itens = xmlRes.getElementsByTagName('item');
			var itCnt = itens.length;	
			me.div.innerHTML = '';
			var ul = document.createElement('ul');
			me.div.appendChild(ul);
			
			if (itCnt > 0){
				for (i=0; i<itCnt; i++){					
					me.arrItens[itens[i].getAttribute("id")] = new Array();
					me.arrItens[itens[i].getAttribute("id")]['label'] = itens[i].getAttribute("label");
					me.arrItens[itens[i].getAttribute("id")]['flabel'] = itens[i].getAttribute("flabel");
								
					var li = document.createElement('li');
					li.id = itens[i].getAttribute("id");
					li.onmouseover = function(){ this.className = 'selected'; me.highlightThis(this,'y')};
					li.onmouseout  = function(){ this.className = '';  me.highlightThis(this,'n')};
					li.onmousedown = function() {
						me.acChoose(this.id);
						me.hideDiv();
						return false;
					};
					
					var a = document.createElement('a');
					a.href = '#';
					a.onclick = function() { return false; };
					a.innerHTML = unescape(itens[i].getAttribute("label"));
					if(itens[i].getAttribute("flabel") != null){
						a.innerTEXT = unescape(itens[i].getAttribute("flabel"));
					}else{
						a.innerTEXT = unescape(itens[i].getAttribute("label"));
					}

					li.appendChild(a);
					ul.appendChild(li);	
				}
			}else{
				me.hideDiv();	
			}
		}
	};
	
	this.acChoose = function (id){
		
		if (id != ''){			
			if (me.chooseFunc != null){
				me.chooseFunc(id,unescape(me.arrItens[id]['label']));
			}
		}
		me.hideDiv();
		
		var xx = unescape(me.arrItens[id]['label']);
		me.elem.value = xx;
	};

	this.positionDiv = function()
	{
		var el = this.elem;
		var x = 0;
		var y = el.offsetHeight;		
		while (el.offsetParent && el.tagName.toUpperCase() != 'BODY')
		{
			x += el.offsetLeft;
			y += el.offsetTop;
			el = el.offsetParent;
		}
		x += el.offsetLeft;
		y += el.offsetTop;

		this.div.style.left = x + 'px';
		this.div.style.top = y + 'px';
	};

	this.hideDiv = function(){
		
		me.highlighted = '';
		me.div.style.display = 'none';
	
	};

	this.showDiv = function(){
		
		me.highlighted = '';
		me.positionDiv();
		me.div.style.display = 'block';
	
	};	
	/********************************************************
			para pegar valores de teclas, concertado
	********************************************************/
	this.getKeyCode = function(ev)
	{
		if(ev)			//Mozila
		{
			
			return ev.keyCode;
		}
		if(window.event)	//IE
		{
			return window.event.keyCode;
		}
	};	
	this.getEventSource = function(ev)
	{
		if(ev)			//Moz
		{
			return ev.target;
		}
	
		if(window.event)	//IE
		{
			return window.event.srcElement;
		}
	};
	this.cancelEvent = function(ev)
	{
		if(ev)			//Moz
		{
			ev.preventDefault();
			ev.stopPropagation();
		}
		if(window.event)	//IE
		{
			window.event.returnValue = false;
		}
	}
};

function createRequest() {
  try {
    request = new XMLHttpRequest();
  } catch (trymicrosoft) {
    try {
      request = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (othermicrosoft) {
      try {
        request = new ActiveXObject("Microsoft.XMLHTTP");
      } catch (failed) {
        request = false;
      }
    }
  }

if (!request)
    alert("Error initializing XMLHttpRequest!");
  else
  	return request;
}

//rever os comentarios e colocar em arquivo separado

function aj_unlock(x)
{
	var d = new dom();
	x.className = "s_edit";
	//alert("");	
}
function aj_edita(parametro,id_busca,acao)
{
	
	var identificador = document.getElementById(id_busca).value;
	//alert(identificador);
	var valor = parametro.value;
	var d = new dom();
	var a = new AJAX();
	a.metodo = "POST";
	a.modo = "T";
	var url = (url)? url: 'funcoes_ajax.php';
	a.url = url;
	a.params = "ajax_id="+valor+"&cod="+identificador+"&ajax_acao="+acao;	
	a.loading = function()  
	{
		parametro.className = "l_edit";
	};
	a.processaresultado = function(x)
	{
		parametro.className = "n_edit";
	};
	a.conectar();		
}


//===================================================================
//		FUNÇÃO QUE ENVIA MULTIPLOS VALORES E PREENCHE MULTIPLOS CAMPOS
//		EM UM LOOP
//===================================================================
function aj_campos_loop(parametro,acao,tamanho,url,form) 
{	
	//if(parametro.length <tamanho+1 ){return false;}	
	//************************************************
	var d = new dom();
	
	var separa = parametro.split(";");
	var parametros = separa[0].split(",");
	var campos = separa[1].split(",");	
	//alert(parametro);
	var tamanho_campos = campos.length;
	var tamanho_parametros = parametros.length;
	var params = "";
	//for para pegar valor dos campos
	for(i=0;i<tamanho_parametros;i++)
	{
		parametros[i] = parametros[i].replace("(","") ;		
		var campo = d.id(parametros[i]);
		if(campo==""){return false;}
		params += "var"+i+"="+campo.value+"&";
	}
//    alert(params);
	
	for(i=0;i<tamanho_campos;i++)
	{
		campos[i] = campos[i].replace(")","") ;
		//alert(campos[i]);
		var campo = d.id(campos[i]);
		//campo.value = campos[i];
	}
	var a = new AJAX();
	var url = (url)? url: 'funcoes_ajax.php';
	a.url = url;
	a.params = params+"ajax_acao="+acao;
	a.modo = "X";
	a.metodo = "POST";
	a.loading = function(){};
	a.processaresultado = function(xml)
	{		
		var tamanho = d.tag(xml,"root");		
		var qtd_campos = d.tagv(xml,"campos",0); 
		if(qtd_campos=="vazio"){
			//alert("não encontrado");			
			if(form){limpar_formulario(form);}else{}return false;}			
		var nome_campos = qtd_campos.split(";");		
		var numero_registros = nome_campos.length;	
		
		for(i=0; i < tamanho_campos;i++)
		{	
			var campo = nome_campos[i];
			var str = new String(campo);
			var nome = d.id(campos[i]);						
			nome.value = d.tagv(xml, str, 0);
		}			
	}
	a.conectar(); 
	return true;

		
}



//====================================================================
//			FUNCAO PARA PREENCHER CAMPOS AUTOMATICAMENTE COM AJAX
//====================================================================

// parametro é o codigo que sera buscado no banco
// tamanho é a quantidade minima de numeros para fazer a busca
// obs, retornará somente 1 resultado para a busca
// deve-se usar a classe mysqlcon em classes.php para gerar o xml
// os campos a serem buscados no banco de dados devem ter os mesmos...
// dos campos do formulario, se preciso usar alias para os campos
// trazer só os campos necessários
// form é  a id do formulario, para ser limp se nao houver resultados
//		se nao informado nao limpa o formulario
//	1 -  url, se nao informado usa padrao
//  2 - postar na mesma página e fazer um case em php
//
//===================================================================
function aj_campos_multi(parametro,acao,tamanho,url,form,linha) 
{	
	if(parametro.length <tamanho+1 ){return false;}	

	var a = new AJAX();
	var url = (url)? url: 'funcoes_ajax.php';
	a.url = url;
	a.params = "ajax_id="+parametro+"&ajax_acao="+acao+"&linha="+linha;
	a.modo = "X";
	a.metodo = "POST";
	a.loading = function(){};
	a.processaresultado = function(xml)
	{	
		var d = new dom();
		var tamanho = d.tag(xml,"root");
		//alert(tamanho[0].hasChildNodes());
		if(tamanho[0].hasChildNodes())
		{//alert("teste ok");
			//****************************************
			//           teste de alerta
			var tamanho = d.tamanho(xml,"item");
			if(tamanho>0)
			{
				var alerta = d.tag(xml,"item");
				var id = unescape(alerta[0].getAttribute("id"));
				var label = unescape(alerta[0].getAttribute("label"));
				if(id=="alerta"){alert(label); tamanho=0;
				if(form){limpar_formulario(form);}else{}
					
					return false;}			
			}
		}
		
		//****************************************
		var campos = d.tagv(xml,"campos",0); 
		if(campos=="vazio"){
			if(form){limpar_formulario(form);}else{}
			
			return false;}			
		var nome_campos = campos.split(";");		
		var numero_registros = nome_campos.length;	
		
		for(i=0; i < (numero_registros-1);i++)
		{	
			var campo = nome_campos[i];
			var str = new String(campo);
			var nome = d.id(campo);
			if (nome){
				nome.value = d.tagv(xml, str, 0);
			}
		}		
	};
	a.conectar(); 
	return true;
}



//====================================================================
//			FUNCAO PARA PREENCHER CAMPOS AUTOMATICAMENTE COM AJAX
//====================================================================

// parametro é o codigo que sera buscado no banco
// tamanho é a quantidade minima de numeros para fazer a busca
// obs, retornará somente 1 resultado para a busca
// deve-se usar a classe mysqlcon em classes.php para gerar o xml
// os campos a serem buscados no banco de dados devem ter os mesmos...
// dos campos do formulario, se preciso usar alias para os campos
// trazer só os campos necessários
// form é  a id do formulario, para ser limp se nao houver resultados
//		se nao informado nao limpa o formulario
//	1 -  url, se nao informado usa padrao
//  2 - postar na mesma página e fazer um case em php
//
//===================================================================
function aj_variaveis_multi(parametro,acao,tamanho,url,form,linha, empresa) 
{	
	
	if(parametro.length <tamanho+1 ){return false;}	

	var a = new AJAX();
	var url = (url)? url: 'funcoes_ajax.php';
	a.url = url;
	a.params = "ajax_id="+parametro+"&ajax_acao="+acao+"&linha="+linha+"&codigo_empresa_usuario="+empresa;
	a.modo = "X";
	a.metodo = "POST";
	a.loading = function(){};
	a.processaresultado = function(xml)
	{	
		var d = new dom();
		var tamanho = d.tag(xml,"root");
		//alert(tamanho[0].hasChildNodes());
		if(tamanho[0].hasChildNodes())
		{//alert("teste ok");
			//****************************************
			//           teste de alerta
			var tamanho = d.tamanho(xml,"item");
			if(tamanho>0)
			{
				var alerta = d.tag(xml,"item");
				var id = unescape(alerta[0].getAttribute("id"));
				var label = unescape(alerta[0].getAttribute("label"));
				if(id=="alerta"){alert(label); tamanho=0;
				if(form){limpar_formulario(form);}else{}
					
					return false;}			
			}
		}
		
		//****************************************
		var campos = d.tagv(xml,"campos",0); 
		if(campos=="vazio"){
			if(form){limpar_formulario(form);}else{}
			
			return false;}			
		var nome_campos = campos.split(";");		
		var numero_registros = nome_campos.length;	
		
		for(i=0; i < (numero_registros-1);i++)
		{	
			var campo = nome_campos[i];
			var str = new String(campo);
			//var nome = d.id(campo);
			
			varNome[i]=  d.tagv(xml, str, 0);
		}		
	};
	a.conectar(); 
	return true;
}

