// Ajax Objects
// Author.......: Edmundo N. Oliveira Jr
// Date.........: 28/06/2007
// Last Update..: 07/08/2007
////////////////////////////////////////////////////////////////////

function setFieldReturn(par0,par1,par2) {
	var fields = new Array();
	if	(par0 != null) {
		fields[0] = par0;
	}
	if	(par1 != null) {
		fields[1] = par1;
	}
	if	(par2 != null) {
		fields[2] = par2;
	}
	return fields;
}

// Parameters:
// - inputValue : conteúdo do input que servirá de parâmetro de busca na tabela
// - inputName  : nome do input
// - codePHPSql : código PHP que fará o SQL na tabela e gerará o XML
// - aFields    : array gerado pela setFieldReturn com os campos do resultado a ser apresentado a partir do XML
// - fieldId	: nome do campo do ID da tabela
function ajaxValidateField(inputValue,inputName,codePHPSql,aFields,fieldId) {

	if	(inputValue == "") {
		return true;
	}

	try {
 		ajax = new ActiveXObject("Microsoft.XMLHTTP");
  	} catch(e) {
		try {
    		ajax = new ActiveXObject("Msxml2.XMLHTTP");
 		} catch(ex) {
    		try {
      				ajax = new XMLHttpRequest();
	   		} catch(exc) {
				alert('Esse browser não tem recursos para uso do Ajax');
   				ajax = null;
    		}
 		}
	}
	
	if	(ajax) {
		for (var y = 0; y < aFields.length; y++) {
			document.forms[0].elements[aFields[y]].value = "";
		}
 		ajax.open("POST", codePHPSql, true);
 		ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
 
 		ajax.onreadystatechange = function() {
	    	if	(ajax.readyState == 4 ) {
		   		if	(ajax.responseXML) {
		      		processXMLEdit(ajax.responseXML,fieldId,aFields,inputName);
		   		}
	    	}
 		}
 		var params = fieldId+"="+inputValue;
        ajax.send(params);
	}
}
   
function processXMLEdit(obj,fieldId,aFields,inputName) {
	
	var dataArray = obj.getElementsByTagName(fieldId);
	
  	if	(dataArray.length > 0) {
 		for	(var i = 0 ; i < dataArray.length ; i++) {
			var item = dataArray[i];
			for (var y = 0; y <= aFields.length; y++) {
				document.forms[0].elements[aFields[y]].value = item.getElementsByTagName(aFields[y])[0].firstChild.nodeValue;
			}
	 	}
  	} else {
  		alert('Registro não encontrado!');
  		document.forms[0].elements[inputName].value = "";
  		document.forms[0].elements[inputName].focus();
	}	  
}


// Parameters:
// - parValor	  		: valor do primeiro combo (  onChange="ajaxSetCombo(this.value);"  )
// - parFormName  		: nome do form onde estão os combos 
// - parSecondComboId   : ID do segundo combo, a ser alterado pelo primeiro
// - codePhp 			: código PHP que fará o SQL na tabela e gerará o XML
function ajaxSetCombo(parValor,parFormName,parSecondComboId,codePhp) {
	try {
		ajax = new ActiveXObject("Microsoft.XMLHTTP");
	} catch(e) {
		try {
			ajax = new ActiveXObject("Msxml2.XMLHTTP");
		} catch(ex) {
			try {
				ajax = new XMLHttpRequest();
			} catch(exc) {
				alert("Esse browser não tem recursos para uso do Ajax");
               	ajax = null;
			}
		}
	}
	if	(ajax) {
		var aa = document.getElementById(parSecondComboId);
		aa.length = 1;
		
		idOpcao  = document.getElementById("options");
		 
		ajax.open("POST", codePhp, true);
		ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		 
		ajax.onreadystatechange = 
			function() {
				if	(ajax.readyState == 1) {
				   	idOpcao.innerHTML = "Carregando...!";   
		        }
	            if	(ajax.readyState == 4 ) {
			   		if	(ajax.responseXML) {
			      		processXMLCombo(ajax.responseXML,parFormName,parSecondComboId);
				   	} else {
					   idOpcao.innerHTML = "--Selecione--";
				   	}
            	}
	         }
		var params = "id=" + parValor;
		ajax.send(params);
	}	
}

function processXMLCombo(obj,formName,comboId) {
	var dataArray = obj.getElementsByTagName("idField");
	if	(dataArray.length > 0) {
		for(var i = 0 ; i < dataArray.length ; i++) {
			var item = dataArray[i];
			var codigo	  = item.getElementsByTagName("codigo")[0].firstChild.nodeValue;
			var descricao = item.getElementsByTagName("descricao")[0].firstChild.nodeValue;
			
	        //idOpcao.innerHTML = "--Selecione--";
			
			var novo = document.createElement("option");
			    novo.setAttribute("id", "opcao");
			    novo.value = codigo;
			    novo.text  = descricao;
			    var aa = document.getElementById(comboId);
				aa.options.add(novo);
		}
	} else {
		idOpcao.innerHTML = "--Não Cadastrado--";
	}	  
}