// JavaScript Document
// Author : Claudio Zanin
// Midiaweb Inteligencia Interativa
// Realiza consultas remotas via httpRequest

function consultaRemota()
{
	
	var thisBox = this;

	var consultaObj;
	var consultaCallback;

	function consultar(endereco, parametros, callback){

		consultaCallback = callback;

		var tipo = "application/x-www-form-urlencoded; charset=UTF-8";

		if (window.XMLHttpRequest) {
			consultaObj = new XMLHttpRequest();
		} else if (window.ActiveXObject) {
			consultaObj = new ActiveXObject("Microsoft.XMLHTTP");
		}

		consultaObj.open("post", endereco, true);
		consultaObj.onreadystatechange = verificar;
		consultaObj.setRequestHeader("Content-Type", tipo);
		consultaObj.send(parametros);

	}
	this.consultar = consultar;

	function verificar(){
		
		var saida_label = new Array();
		var saida_valor = new Array();

		if (consultaObj.readyState == 4) {

	        if (consultaObj.status == 200) {

				// processando resposta xml
				if (window.ActiveXObject) {
					
					var xml_itens = consultaObj.responseXML.getElementsByTagName("itens");
					var xml_label = null;
					var xml_valor = null;
					
					if(xml_itens.length == 1){

						xml_label = consultaObj.responseXML.getElementsByTagName("itens/item/label");
						xml_valor = consultaObj.responseXML.getElementsByTagName("itens/item/valor");

						for(i = 0; i < xml_label.length; i++){

							saida_label[i] = xml_label[i].text;
							saida_valor[i] = xml_valor[i].text;

						}

					}else{

						for(var i = 0; i < xml_itens.length; i++){

							xml_label = xml_itens[i].getElementsByTagName("label");
							xml_valor = xml_itens[i].getElementsByTagName("valor");

							var tmpVetorLabel = new Array();
							var tmpVetorValor = new Array();

							for(var i2 = 0; i2 < xml_label.length; i2++){

								tmpVetorLabel[i2] = xml_label[i2].text;
								tmpVetorValor[i2] = xml_valor[i2].text;

							}

							saida_label[i] = tmpVetorLabel;
							saida_valor[i] = tmpVetorValor;

						}

					}

				}else{

					var parser = new DOMParser();
					var xmlDoc = parser.parseFromString(consultaObj.responseText, "text/xml");
					
					var xml_itens = xmlDoc.getElementsByTagName("itens");
					var xml_label = null;
					var xml_valor = null;

					if(xml_itens.length == 1){

						xml_label = xmlDoc.getElementsByTagName("label");
						xml_valor = xmlDoc.getElementsByTagName("valor");

						for(i = 0; i < xml_label.length; i++){

							saida_label[i] = xml_label[i].firstChild.nodeValue;
							saida_valor[i] = xml_valor[i].firstChild.nodeValue;

						}

					}else{

						for(var i = 0; i < xml_itens.length; i++){

							xml_label = xml_itens[i].getElementsByTagName("label");
							xml_valor = xml_itens[i].getElementsByTagName("valor");

							var tmpVetorLabel = new Array();
							var tmpVetorValor = new Array();

							for(var i2 = 0; i2 < xml_label.length; i2++){

								tmpVetorLabel[i2] = xml_label[i2].firstChild.nodeValue;
								tmpVetorValor[i2] = xml_valor[i2].firstChild.nodeValue;

							}

							saida_label[i] = tmpVetorLabel;
							saida_valor[i] = tmpVetorValor;

						}

					}

				}

				consultaCallback(saida_label, saida_valor);

			}

		}

	}
	this.verificar = verificar;

}