function getAJAXObject()
{
	var xmlHttp;

	try
	{
		xmlHttp = new XMLHttpRequest();
	}
	catch(e)
	{
		var XmlHttpVersions = new Array('MSXML2.XMLHTTP.6.0',
		'MSXML2.XMLHTTP.5.0',
		'MSXML2.XMLHTTP.4.0',
		'MSXML2.XMLHTTP.3.0',
		'MSXML2.XMLHTTP',
		'Microsoft.XMLHTTP');
		
		for (var i=0; i<XmlHttpVersions.length && !xmlHttp; i++)
		{
			try
			{
				xmlHttp = new ActiveXObject(XmlHttpVersions[i]);
			}
			catch (e) 
			{
			}
		}
	}

	if (!xmlHttp)
	{
		return false;
	}
	else
	{
		return xmlHttp;
	}
}

function process(url, fill, indicator) 
{  

   var div = document.getElementById(fill);
 
   var ajax = getAJAXObject();
   
   if(indicator == "")
   {
   		div.innerHTML = "<img src='images/ajax/ajax_activity_indicator.gif' />";
   }
   
   ajax.open('GET', url);
   
   ajax.onreadystatechange = function() 
   {	   
      if(ajax.readyState == 4) 
      {
         div.innerHTML = ajax.responseText;
      }
   }

   ajax.send(null);
}

function processDone(url, fill, done_func, indicator) 
{   
   var div = document.getElementById(fill);
 
   var ajax = getAJAXObject();
   
   if(indicator == "")
   {
   		div.innerHTML = "<img src='images/ajax/ajax_activity_indicator.gif' />";
   }
   
   ajax.open('GET', url);
   
   ajax.onreadystatechange = function() 
   {	   
      if(ajax.readyState == 4) 
      {
         div.innerHTML = ajax.responseText;
		 window[done_func]();
      }
   }
   
   ajax.send(null);
}

function processByStatus(url, fill, done_func, error_func, indicator) 
{
   var div = document.getElementById(fill);
   
   var ajax = getAJAXObject();
   
   if(indicator == "")
   {
   		div.innerHTML = "<img src='images/ajax/ajax_activity_indicator.gif' />";
   }
   ajax.open('GET', url, true);
   ajax.send(null);
   ajax.onreadystatechange = function()
   {
	   if(ajax.readyState == 4) 
	   {
		  var result = ajax.responseText;
		  var status = result.substr(0, 1);
		  var result = result.substr(1, result.length);
		  result = result.replace(/\+/g, " ");
		  div.innerHTML = result;
		  
		  if(status == "D")
		  {
		  	  window[done_func]();
		  }
		  
		  if(status == "E")
		  {
		  	  window[error_func]();
		  }
	   }
   }
}