function http_request() {

  var request;
  var handler;
  var method;
  var url;
  var content;

  var arg = http_request.arguments;

  if    (arg[0])                          { url = arg[0]; }

  if    (arg[1].toLowerCase() ==  "post") { method  = "POST"; }
  else                                    { method  = "GET";  }

  if    (arg[2])                          { handler = arg[2]; }
  else                                    { handler = null;   }

  if    (arg[3])                          { content = arg[3]; }

  var handler_arg = "request";

  for (i=0; i<arg.length; i++)  {

    if  (i > 3) { handler_arg += ",'" + arg[i] + "'"; }

  }

  try {
    request = new XMLHttpRequest();
  }
  catch (e) {

    try {
      request = new ActiveXObject("Microsoft.XMLHTTP");
    }
    catch (e) {
      request = null;
    }

  }

  if (request) {

    request.onreadystatechange = function() {

      if (request.readyState == 4)  {

        if (request.status == 200)  {

          if  (handler)  {
            eval(handler + "(" + handler_arg + ");");
          }

        }
        else  {


        }

      }

    };

    request.open(method,url,true);

    if (method  == "POST") {
      request.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    }

    request.send(content);

  }


}

function ajax_request_handler()  {

  var arg = ajax_request_handler.arguments;

  var  request  =  arg[0];

  var  id  =  arg[1];

  document.getElementById(id).innerHTML  =  request.responseText;

}


function ajax_url()  {

	var arg = ajax_url.arguments;

	var	contentfile	=	arg[0];
	var	contentid		=	arg[1];
  var handler   	= "ajax_request_handler";

  http_request(contentfile,'POST',handler,'',contentid);

	return false;

}

/**********************************************************************************/
/*                                                                                */
/*  Function Name:  ajax_fetch_url()                                              */
/*  Description:                                                                  */
/*  Parameters      url, content                                                  */
/*  Input:                                                                        */
/*  Output:         object                                                        */
/*                                                                                */
/*  Author:         Raymond Chow                                                  */
/*  Date:           17 October 2007                                               */
/*                                                                                */
/**********************************************************************************/

function  ajax_fetch_url()  {

  var arg = ajax_fetch_url.arguments;

  var ajaxurl 	= arg[0];
  var targetid	= arg[1];

  var input   = "";

  var handler = "ajax_request_handler";

  http_request(ajaxurl,'GET',handler,input,targetid);

  return false;

}

/**********************************************************************************/
/*                                                                                */
/*  Function Name:  ajax_form_post()                                              */
/*  Description:                                                                  */
/*  Parameters      formref, targetid, ajaxurl                                    */
/*  Input:                                                                        */
/*  Output:         object                                                        */
/*                                                                                */
/*  Author:         Raymond Chow                                                  */
/*  Date:           30 January 2010                                               */
/*                                                                                */
/**********************************************************************************/

function ajax_form_post()  {

  var arg = ajax_form_post.arguments;

  var formref   = arg[0];
  var targetid  = arg[1];
  var ajaxurl   = arg[2];

  var input = form_qs(formref);
	
  var handler   = "ajax_request_handler";

  http_request(ajaxurl,'POST',handler,input,targetid);

  return false;

}






