function AJAX_elementChange(str_theURL, str_theElementID, boo_javascriptExecute, str_theMethod)
{
  if ( (typeof(str_theURL) == 'string') && (typeof(str_theElementID) == 'string') )
  {

    var GetXmlHttpObject = function()
    {
      var xmlHttp=null;
      try
      {
        // Firefox, Opera 8.0+, Safari
        xmlHttp=new XMLHttpRequest();
      } catch (e)
      {
        //Internet Explorer
        try
        {
          //xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e)
        {
          xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
        }
      }
      return xmlHttp;
    };

/*
    if (true)
    //if querystring elements are not present
    //this needs tons of work: what if there's a # present?
    {
      str_theURL += "?";
    } else
    {
      str_theURL += "&";
    }
    str_theURL += "sid="+Math.random();
*/
    var xmlHttp = GetXmlHttpObject();

    if (xmlHttp == null)
    {
      //alert ("Browser does not support HTTP Request");
      return;
    }

    xmlHttp.onreadystatechange = function stateChanged()
    {
      if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
      {
        if (typeof(document.getElementById(str_theElementID).innerHTML) == "string")
        {
          var obj_theElement = document.getElementById(str_theElementID);
          obj_theElement.innerHTML = xmlHttp.responseText;

/*===*/
          if ( boo_javascriptExecute)
          //to execute JavaScript on AJAX xmlHttp responseText load
          {
            col_theElementScripts = obj_theElement.getElementsByTagName('script');

            for (i = 0; i < col_theElementScripts.length; i++)
            {
              if (col_theElementScripts.item(i).innerHTML != null)
              {
                if (col_theElementScripts.item(i).innerHTML != "")
                {
/*
alert(document + "\n\n" + col_theElementScripts.item(i).parentNode.toString() + "\n\n" + 
Object.prototype.toString.call(col_theElementScripts.item(i)) + " " + 
col_theElementScripts.item(i).parentNode.nodeName + " " + col_theElementScripts.item(i).parentNode.nodeType + "\n\n" + 
col_theElementScripts.item(i).innerHTML.replace(/document.write/, "this.write"));
*/
                  eval(col_theElementScripts.item(i).innerHTML);
                }
              }
            }
          }
/*===*/

        }
      } 
    };


    if (typeof(str_theMethod) == 'string')
    {
      str_theMethod = str_theMethod.toUpperCase();
      if (! ( (str_theMethod == "GET") || (str_theMethod == "POST")) )
      {
        str_theMethod = "GET";
      }
    } else
    {
      str_theMethod = "GET";
    }

    var parameters = null;
    xmlHttp.open(str_theMethod, str_theURL, true);
    switch (str_theMethod)
    {
      case "POST":
        xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        parameters = "name=asdasdas&dage=23";//this needs work
        break;
      case "GET":
        //xmlHttp.send(null);//do this after the switch since parameters==null
        break;
      default:
        break;
    }
    xmlHttp.send(parameters);
  }

  return;
}

