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;
		} 
	}

/*
Codes implemented below this lines are for paging.
//*/
var xmlHttp = createXmlHttpRequestObject();
/*try{var prefs = Components.classes["@mozilla.org/preferences-service;1"].
                    getService(Components.interfaces.nsIPrefService);
prefs = prefs.getBranch(null);
prefs.setBoolPref("signed.applets.codebase_principal_support", true);}
catch(e){
	alert(e.toString());
}*/
function createXmlHttpRequestObject()
{
	// will store the reference to the XMLHttpRequest object
	// this should work for all browsers except IE6 and older
	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
		}
	}
	// return the created object or display an error message
	if (!xmlHttp)
	alert("Error creating the XMLHttpRequest object.");
	else
	return xmlHttp;
}

// called to read a file from the server by asynchronous
function asynchronousProcessByGet()
{

	var args = asynchronousProcessByGet.arguments;
	// only continue if xmlHttp isn't void
	if (xmlHttp)
	{
		// try to connect to the server
		try
		{
			// initiate reading the async.txt file from the server
			xmlHttp.open("GET", args[0], true);
			xmlHttp.onreadystatechange = function()
			{
				if (xmlHttp.readyState == 4 && xmlHttp.status == 200)
				{
					try
					{
							 myDiv = document.getElementById(args[1]);
							// read the message from the server
							response = xmlHttp.responseText;
							// display the message
//                                		alert(response);
							myDiv.innerHTML = response;
					}
					catch(e)
					{
							// display error message
							alert("Error reading the response: " + e.toString());
					}
                }
			} 
			xmlHttp.send(null);
		}
		// display the error in case of failure
		catch (e)
		{
			alert("Can't connect to server:\n" + e.toString());
		}
	}
}

var globalId = "";

function asynchronousProcessByPost(form,divIdForGlobal)
{	
	var cache = new Array();

	for (i = 0; i < form.length; i++)
  	{
    	var elem = form[i];
		//elem.name = encodeURIComponent(elem.name);
		//elem.value = encodeURIComponent(elem.value);
		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
		{
			// 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){*/
			if ( (xmlHttp.readyState == 4 || xmlHttp.readyState == 0)){			
				// get a new set of parameters from the cache
				var cacheEntry = cache.join("&");
				//var test = cache.join("\n");
			
				//set the global div

                                if(divIdForGlobal!=""){
                                        globalId = divIdForGlobal;
                                }

				// 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(globalId);
				if(xmlHttp.responseText.indexOf('#####javascriptStartHere#####') > 0){
					start = xmlHttp.responseText.indexOf('#####javascriptStartHere#####');
					end =   xmlHttp.responseText.indexOf('#####javascriptEndHere#####');
					javaText = xmlHttp.responseText.substr((start+29), (end-start-29));
					divText = xmlHttp.responseText.substr(0, start);
					myDiv.innerHTML = divText;
					var getheadTag = document.getElementsByTagName('head')[0];
                                        setjs = document.createElement('script');
                                        setjs.setAttribute('type', 'text/javascript');
                                        getheadTag.appendChild(setjs);
                                        setjs.text = javaText;
                } else {
					response = xmlHttp.responseText;
					myDiv.innerHTML = "";
					myDiv.innerHTML = response;
				}
			}
			catch(e){
				// display error message
				displayError(e.toString());
			}
		}
		else
		{
			// display error message
			displayError(xmlHttp.statusText);
		}
	}
}
