
var _httpRequest = false;
var moz = false;

function _makeRequest(url, parameters)
{
	_httpRequest = false;
	if (window.XMLHttpRequest)
	{ 
		// Mozilla, Safari,...
		moz = true;
		try
		{
			_httpRequest = new XMLHttpRequest();
			//_httpRequest.overrideMimeType('text/xml');
		}
		catch (e)
		{
			alert(e);
			return false;
		}
	}
	else if (window.ActiveXObject)
	{ 
		// IE
		try
		{
			_httpRequest = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e)
		{
			try
			{
				_httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (e) {}
		}
	}
	if (!_httpRequest)
	{
		alert('Cannot create XMLHTTP instance');
		return false;
	}
	/*******************************************************
	// Parâmetros para GET
	_httpRequest.onreadystatechange = alertContents;
	_httpRequest.open('GET', url + parameters, true);
	_httpRequest.send(null);
	//******************************************************/
	
	//*******************************************************
	// Parâmetros para POST
	_httpRequest.onreadystatechange = _alertContents;
	_httpRequest.open('POST', url, true);
	_httpRequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded; charset=UTF-8");
	_httpRequest.setRequestHeader("Content-length", parameters.length);
	_httpRequest.setRequestHeader("Connection", "close");
	_httpRequest.send(parameters);
	//******************************************************/
	return true;
}

function createRequestObject(){
	var request_;
	var browser = navigator.appName;

	if(browser == "Microsoft Internet Explorer"){
		request_ = new ActiveXObject("Microsoft.XMLHTTP");
	}else{
		request_ = new XMLHttpRequest();
	}

	return request_;
}

// executa e joga o resultado em um innerHTML
//url = endereço da página que conté uma ação (consulta) a ser executada. ex: noticias_getDados.inc.php?ID=100
//campo = nome da DIV (OBJ) que receberá o conteúdo da ação executada na página. ex: retorna uma GRID, está será exibida (carregada) dentro da DIV.
function getPage(url, campo){

	var xmlhttp = createRequestObject();
	var conteudo = parent.document.getElementById(campo);
	xmlhttp.open("GET", url,true);

	xmlhttp.onreadystatechange=function() {
		if (xmlhttp.readyState==4){
			var texto = xmlhttp.responseText;
			texto = (texto);
			texto = unescape(texto);
			texto = (texto);
			conteudo.innerHTML = (texto);
		}
	}
	xmlhttp.send(null);
}

// só executa
//url = endereço da página que executa alguma ação. ex: registro_deleteDados.inc.php?id=100
function getPage2(url){
	var xmlhttp = createRequestObject();
	xmlhttp.open("GET", url,true);
	xmlhttp.send(null);
}

// executa e faz um eval do resultado
//url = endereço da página que contém algo a ser executado, dentro da página deve conter um javascript com uma função a ser executada. ex: usuarios_postDados.inc.php?nome_usu=Developer, em seu código deve contém a penas um JS(sem as tag de abertura <script> e encerramento </ script>) apenas alert('Dados cadastrados com sucesso!');
function getPage3(url){
	var xmlhttp = createRequestObject();
	xmlhttp.open("GET", url,true);
	
	xmlhttp.onreadystatechange=function() {
		if (xmlhttp.readyState==4){
			var texto = xmlhttp.responseText;
			eval(texto);
		}
	}
	
	xmlhttp.send(null);
}

// executa e joga o resultado em um innerHTML, e depois faz um eval em uma função
//url = endereço da página com QueryString (GET); ex: pagina_getDados.inc.php?pagina=controle
//campo = Nome da DIV (ou obj) que deverá receber o retorno da ação (Consulta) efetuada. ex: 'div_grid_resultado'
//funcao = funcao javascript, que será executada após efetuar a ação. ex: alert('Ação executada com sucesso!');
function getPage4(url, campo, funcao){

	var xmlhttp = createRequestObject();
	var conteudo = parent.document.getElementById(campo);
	xmlhttp.open("GET", url,true);

	xmlhttp.onreadystatechange=function() {
		if (xmlhttp.readyState==4){
			var texto = xmlhttp.responseText;
			texto = (texto);
			texto = unescape(texto);
			texto = (texto);
			conteudo.innerHTML = (texto);
			eval(funcao);
		}
	}
	xmlhttp.send(null);
}

// executa e joga o resultado em um Elemento (DIV, SPAN, ETC...) dentro de um iFrame através de innerHTML
//url = endereço da página que conté uma ação (consulta) a ser executada. ex: noticias_getDados.inc.php?ID=100
//campo = nome da DIV (OBJ) que receberá o conteúdo da ação executada na página. ex: retorna uma GRID, está será exibida (carregada) dentro da DIV.
//parent_frame = ID do iFrame que contém a div a ser alimentado com resultado.
function getPage5(url, parent_frame, campo){
	var xmlhttp = createRequestObject();
	var target = parent.document.getElementById(parent_frame);
	var conteudo;// = parent.document.getElementById(parent_frame).contentDocument.getElementById(campo);
	
	var oIframe = parent.document.getElementById(parent_frame);
    var oDoc = oIframe.contentWindow || oIframe.contentDocument;
    if (oDoc.document) {
        conteudo = oDoc.document.getElementById(campo);
    }

	
	/*
	if (target == undefined) {
		conteudo = parent.document.getElementById(parent_frame).document.getElementById(campo);
	} else if (target.contentDocument) {
		conteudo = parent.document.getElementById(parent_frame).contentDocument.getElementById(campo);
	} else if (target.contentWindow) {
		conteudo = parent.document.getElementById(parent_frame).contentWindow.getElementById(campo);
	} else if (target.document) {
		conteudo = parent.document.getElementById(parent_frame).document.getElementById(campo);
	}
	*/
	xmlhttp.open("GET", url,true);

	xmlhttp.onreadystatechange=function() {
		if (xmlhttp.readyState==4){
			var texto = xmlhttp.responseText;
			texto = (texto);
			texto = unescape(texto);
			texto = (texto);
			conteudo.innerHTML = (texto);
		}
	}
	xmlhttp.send(null);
	
		
}


function _alertContents() {
	if (_httpRequest.readyState == 4) {
		if (_httpRequest.status == 200) {
			result = _httpRequest.responseText;
			eval(result);
		} else {
			alert('There was a problem with the request.');
		}
	}
}

//pagina = página de destino
//Obj = formulário que dejesa Postar
function _getAjax (pagina, obj)
{
	
	//var getstr = "?";
	var getstr = "";
	var i;
	

	//******************************************************
	// Concatena POST pelo elements
	for (i=0; i<obj.elements.length; i++)
	{
		//alert(obj.elements[i].tagName);
			if (obj.elements[i].tagName == "TEXTAREA")
			{
					getstr += obj.elements[i].name + "=" + escape(obj.elements[i].value) + "&"; 
			}
			if (obj.elements[i].tagName == "INPUT")
			{
				if (obj.elements[i].type == "text") 	{ getstr += obj.elements[i].name + "=" + escape(obj.elements[i].value) + "&"; }
				if (obj.elements[i].type == "hidden") 	{ getstr += obj.elements[i].name + "=" + escape(obj.elements[i].value) + "&"; }
				if (obj.elements[i].type == "password") { getstr += obj.elements[i].name + "=" + escape(obj.elements[i].value) + "&"; }
				if (obj.elements[i].type == "checkbox") {
					var sel = obj.elements[i];
					if (sel.checked) { getstr += sel.name + "=" + sel.value + "&"; }
					else { getstr += sel.name + "=&"; }
				}
				if (obj.elements[i].type == "radio")
				{
					if (obj.elements[i].checked) { getstr += obj.elements[i].name + "=" + obj.elements[i].value + "&"; }
				}				
				
			}
			else if (obj.elements[i].tagName == "SELECT")
			{
				var sel = obj.elements[i];
				
				if(obj.elements[i].multiple==true){
				
					for(k=0;k<sel.length;k++){					
					//	alert(sel.options[k].value);
						getstr += sel.name + "=" + sel.options[k].value + "&";
					}
				
				}else{
					
					getstr += sel.name + "=" + sel.options[sel.selectedIndex].value + "&";
				}
						
//				
			}
	}
	//******************************************************/
	
	/******************************************************
	// Concatena POST pelo parentNode
	for (i=0; i<obj.childNodes.length; i++)
	{
		if (obj.childNodes[i].tagName)
		{
			if (obj.childNodes[i].tagName == "INPUT")
			{
				if (obj.childNodes[i].type == "text") 		{ getstr += obj.childNodes[i].name + "=" + obj.childNodes[i].value + "&"; }
				if (obj.childNodes[i].type == "hidden") 	{ getstr += obj.childNodes[i].name + "=" + obj.childNodes[i].value + "&"; }
				if (obj.childNodes[i].type == "password") 	{ getstr += obj.childNodes[i].name + "=" + obj.childNodes[i].value + "&"; }
				if (obj.childNodes[i].type == "checkbox") 	{
					if (obj.childNodes[i].checked) { getstr += obj.childNodes[i].name + "=" + obj.childNodes[i].value + "&"; }
					else { getstr += obj.childNodes[i].name + "=&"; }
				}
				if (obj.childNodes[i].type == "radio")
				{
					if (obj.childNodes[i].checked) { getstr += obj.childNodes[i].name + "=" + obj.childNodes[i].value + "&"; }
				}
			}
			else if (obj.childNodes[i].tagName == "SELECT")
			{
				var sel = obj.childNodes[i];
				getstr += sel.name + "=" + sel.options[sel.selectedIndex].value + "&";
			}
		}
	}
	//******************************************************/
	//alert(pagina);
	//alert(getstr);
	_makeRequest (pagina, getstr);
	return false;
	
}
