/*
  This is an AJAX impletation using a class, the way to use is:
    var myConn = new AJAXob(targetId,url,params);
    myConn.request("GET"); //or POST
    
  Developed by: Ayoze Roberto Bernardo 
                ayoze@linuxlover.org
                http://ayoze.linuxlover.org

*/

function AJAXob(targetId, url, params,fnDone) {

  this.makeurl = function(params) {
    newurl = "?"
    for (i=0;i<params.length;i++) {
      //alert(params[i][0] +" -> " + params[i][1]);
      newurl += params[i][0] +"="+ encodeURI(params[i][1]);
      if (params[i+1]) newurl += "&";
    }
    return newurl;
  }
  
    this.request = function(sMethod) {
    this.bComplete = false;
    sMethod = sMethod.toUpperCase();
    try {
      if (sMethod == "GET") { //GET
        this.xmlhttp.open(sMethod, this.url+((this.params=="?")?"":this.params), true);
        this.xmlhttp.send(null);
      }
      else { //POST
        this.params = this.params.substring(1);
        
        this.xmlhttp.open(sMethod, this.url, true);
        this.xmlhttp.setRequestHeader("Method", "POST "+this.url+" HTTP/1.1");
        this.xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
        this.xmlhttp.send(this.params);
      }
      
    }
    catch(z) { return false; }
    return true;
  }
  
  this.setUrl = function(url) {
    this.url = url;
  }
  
  this.setParams = function(params) {
    this.params = this.makeurl(params);
  }
  
  this.target = document.getElementById(targetId);
  this.url = url;
  if (params) this.params = this.makeurl(params);
  this.bComplete = false;
  //alert(this.target.innerHTML);
  //this.target.innerHTML = '<p class="lloading">Cargando seccion</p>';

  var pointer = this;
  
  try { this.xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); }
  catch (e) {
    try { this.xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); }
    catch (e) {
      try { this.xmlhttp = new XMLHttpRequest(); }
      catch (e) { this.xmlhttp = false; }
    }
  }
  
  if (!this.xmlhttp) {
    alert("Your browser doesn't support XMLHTTP, try with a newer one");
    return false;
  }
  

  this.xmlhttp.onreadystatechange = function() {
    if ((pointer.xmlhttp.readyState == 4) && (!pointer.bComplete)) {
      pointer.bComplete = true;
      pointer.target.innerHTML = pointer.xmlhttp.responseText;
      if (fnDone)
        fnDone(pointer.xmlhttp.responseText);
    }
  }
  

  
  return this;
}