/*
	#################################################
	#                  CLASSE AJAX                  #
	#    Auto: Thiago Silva (Pedreiro Digital)      #
	#          www.pedreirodigital.com.br           #       
	#################################################
*/

//variaveis
var xhReq;
var funcao;
var getstr;
var sel;

//classe ajax
var Ajax = function()
{
	xhReq = this.createXMLHttpRequest();
}

//função que criar o retorno do xml
Ajax.prototype.createXMLHttpRequest = function () {
   try{ return new ActiveXObject("Msxml2.XMLHTTP"); }catch(e){}
   try{ return new ActiveXObject("Microsoft.XMLHTTP"); }catch(e){}
   try{ return new XMLHttpRequest(); }catch(e){}
   alert("XMLHttpRequest not supported");
   return null;
}

//função enviar dados
Ajax.prototype.enviar = function(_url,_form,_funcao)
{
	var form        = document.getElementById(_form);
	var form_string = this.get(form);
	
	xhReq.open("post",_url,true);
	xhReq.setRequestHeader('Content-Type','application/x-www-form-urlencoded');

    xhReq.onreadystatechange = _funcao;
    xhReq.send(form_string);
}

//função para pegar os campos do formulario
Ajax.prototype.get = function (obj) 
{
  getstr = "";
	
	for (i=0; i<obj.length; i++) 
	{
		if (obj.elements[i].tagName == "INPUT") 
		{
			if (obj.elements[i].type == "text" || obj.elements[i].type == "hidden" || obj.elements[i].type == "password") 
			{
				getstr += obj.elements[i].name + "=" + escape(obj.elements[i].value) + "&";
			}
			
			if (obj.elements[i].type == "checkbox") 
			{
				if (obj.elements[i].checked) 
				{
					getstr += obj.elements[i].name + "=" + escape(obj.elements[i].value) + "&";
				} 
				else 
				{
					getstr += obj.elements[i].name + "=&";
				}
			}
			
			if (obj.elements[i].type == "radio") 
			{
				if (obj.elements[i].checked) 
				{
					getstr += obj.elements[i].name + "=" + escape(obj.elements[i].value) + "&";
				}
			}
			if(obj.elements[i].type == "file")
			{
				getstr += obj.elements[i].name + "=" + obj.elements[i].value + "&";
			}
		} 
		else if (obj.elements[i].tagName == "SELECT") 
		{
			sel = obj.elements[i];
			getstr += sel.name + "=" + escape(sel.options[sel.selectedIndex].value) + "&";
		}
		else if (obj.elements[i].type == "textarea") 
		{
			getstr += obj.elements[i].name + "=" + escape(obj.elements[i].value) + "&";
		}
	}
  return getstr;
}

//função include
Ajax.prototype.include = function (_url,_parametros,_div)
{
	xhReq.open("post",_url,true);
	xhReq.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	
    xhReq.onreadystatechange = function() 
	{
		if(xhReq.readyState==4)
		{ 
			document.getElementById(_div).innerHTML = xhReq.responseText; 
		}
		if(xhReq.readyState!=4)
		{ 
			return;
		}
	}
	xhReq.send(_parametros);
}


//função executar
Ajax.prototype.executar = function(_url,_parametros,_funcao)
{
	xhReq.open("post",_url,true);
	xhReq.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	
	xhReq.onreadystatechange = _funcao;
	xhReq.send(_parametros);
}

