function ajaxManager()
{
var args = ajaxManager.arguments;
var x = (window.ActiveXObject) ? new ActiveXObject("Microsoft.XMLHTTP"): new XMLHttpRequest();
switch (args[0])
	{
	case "load_page":
		if (x)
			{
				
			x.onreadystatechange = function()
				{
					if (x.readyState == 4 && x.status == 200)
					{
				
						el = document.getElementById(args[2]);
//						alert(x.responseText); 
						/*
						if(x.responseText.indexOf('index') > 0)
						{
				
							var getheadTag = document.getElementsByTagName('head')[0];
													setjs = document.createElement('script');
													setjs.setAttribute('type', 'text/javascript');
													getheadTag.appendChild(setjs);
													setjs.text = x.responseText;
						}
						else
						{
							//*/
							el.innerHTML = x.responseText;
							/*
						}
						//*/
					}
				}
				
			x.open("GET", args[1], true);
			x.send(null);
			}
		break;
	case "load_js":
		if (x)
			{					
			x.onreadystatechange = function()
				{
				if (x.readyState == 4 && x.status == 200)
					{
					var getheadTag = document.getElementsByTagName('head')[0];
					setjs = document.createElement('script');
					setjs.setAttribute('type', 'text/javascript');
					getheadTag.appendChild(setjs);
					setjs.text = x.responseText;
					}
				}
			x.open("GET", args[1], true);
			x.send(null);
			}
		break;
	case "display_info":
		document.getElementById(args[2]).innerHTML = args[1];		
		break;

	case "start_up":
	
		ajaxManager('load_page',args[1],args[2]);
		break;
	} 
}

var globalDivId = '';
	
function asynchronousProcessByPost(form,divId)
{
	try
	{
		// try to create XMLHttpRequest object
		xmlHttp = new XMLHttpRequest();
	}
	catch(e)
	{
		// assume IE6 or older
		var XmlHttpVersions = new Array('MSXML2.XMLHTTP.6.0','MSXML2.XMLHTTP.5.0','MSXML2.XMLHTTP.4.0','MSXML2.XMLHTTP.3.0','MSXML2.XMLHTTP','Microsoft.XMLHTTP');
		// try every prog id until one works
		for (var i=0; i<XmlHttpVersions.length && !xmlHttp; i++)
		{
			try
			{
			// try to create XMLHttpRequest object
			xmlHttp = new ActiveXObject(XmlHttpVersions[i]);
			}
			catch (e) {} // ignore potential error
		}
	}
	
	var cache = new Array();
	for (i = 0; i < form.length; i++)
  	{
    	var elem = form[i];
		if(elem.type=="radio"){
			if(elem.checked){
                        	cache.push(elem.name +"="+elem.value);
			}
		}
		else if(elem.type=="checkbox"){
			if(elem.checked){
					cache.push(elem.name +"="+elem.value);
			}
        }
		else if(elem.value!=""){
			cache.push(elem.name +"="+elem.value);
		}

    }
	if (xmlHttp)
	{
		// try to connect to the server
		try
		{
			 if (xmlHttp.readyState == 0 || xmlHttp.readyState == 1 || xmlHttp.readyState == 2 || xmlHttp.readyState == 3) {
				 
				}
			// continue only if the XMLHttpRequest object isn't busy
			// and the cache is not empty
			if ((xmlHttp.readyState == 4 || xmlHttp.readyState == 0) && cache.length > 0){
				// get a new set of parameters from the cache
				var cacheEntry = cache.join("&");
				
				globalDivId = divId;
				// make a server request to validate the extracted data
				xmlHttp.open("POST", "index.php", true);
				xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
				xmlHttp.onreadystatechange = handleRequestStateChange;
				xmlHttp.send(cacheEntry);
			}
		}
		catch (e)
		{
		// display an error when failing to connect to the server
		alert(e.toString());
		}
	}
}
// function that handles the HTTP response
function handleRequestStateChange(){
	// when readyState is 4, we read the server response
	if (xmlHttp.readyState == 4){
	// continue only if HTTP status is "OK"
		if (xmlHttp.status == 200){
			try{
				// read the response from the server
				myDiv = document.getElementById(globalDivId);
				response = xmlHttp.responseText;
				myDiv.innerHTML = '';
				myDiv.innerHTML = response;
			}
			catch(e){
					alert(e.toString());
			}
		}
		else
		{
				alert(xmlHttp.statusText);
		}
	}
}

