var http = getHTTPObject();

function getHTTPObject() 
{
    var http_obj;
    if (window.XMLHttpRequest)     {  http_obj = new XMLHttpRequest();  } 
	else if (window.ActiveXObject) {  http_obj = new ActiveXObject("Microsoft.XMLHTTP");   }
    return http_obj;
}

function getActiveObject(def_obj)
{
	var http_obj = def_obj;
	if ( http_obj == null )		http_obj = http;
	return ( http_obj );
}

function xmlHTTPPost(strURL, form, cb_func) 
{
	if ( !http )		return;
	http.abort();		// in case another request was running...
    http.open('POST', strURL, true);
    http.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    http.onreadystatechange = cb_func;     
    http.send(getQueryString(form));
}

function getQueryString(form) 
{
	if ( !form )	return ("");
    var qstr     = "form=" + form.name ;
    
	for(var i = 0; i < form.elements.length; i++)
	{
		var field = form.elements[i].name;
		var value = form.elements[i].value;
      	if(field && value)	qstr += "&" + field + "=" + value ;		
	}
	return qstr;
}

function http_done()
{
	var retval = false;
	if ( http )
		if (http.readyState == 4)		retval = true;
	return ( retval );
}

function success ()
{
	var retval = false;
	if ( http )
		if ( (http.readyState == 4) && (http.status == 200) )	retval=true;
	return ( retval );
}

function get_result ()
{
	var retval = "";
	if ( http )		retval = http.responseText ;
	return ( retval );
}

function handleResponse() 
{
    if (http.readyState == 4) 
	{
        if (http.status == 200) 
		{
		    updatePage ( http.responseText );
		}
	}
}

function updatePage(str)
{
	var form     = document.forms['form'];
	if ( form && form.result )
	{
    	form.result.value += str;
    }
}

function getResponseHeader(header)
{
	return ( http.getResponseHeader(header) );
}
