var DEBUG_CODE = false;

function DoGet(url,fcn)
{
	DisplayProcessMessage ();

	var url = url+"&nocache="+(new Date()-0);
	
	if (DEBUG_CODE)
		alert (url)	
		
	// branch for native XMLHttpRequest object
	if (window.XMLHttpRequest)
	{
		http_request = new XMLHttpRequest();
		http_request.onreadystatechange = new Function(fcn);
		http_request.open("GET", url, true);
		http_request.send(null);
	// branch for IE/Windows ActiveX version
	}
	else if (window.ActiveXObject) 
	{
		http_request = new ActiveXObject("Microsoft.XMLHTTP");
		if (http_request) 
		{
		
			http_request.onreadystatechange = new Function(fcn);
			http_request.open("GET", url, true);
			http_request.send();
		}
	}	
}


function DoPost(form_name,url,fcn)
{
	DisplayProcessMessage ();
	
	var my_form = eval ("document."+form_name);
	var poststr = ""
	for(i=0; i < my_form.elements.length; i++) 
	{
		if ((my_form.elements[i].name).indexOf ("dummy") == -1)
		{
			switch (my_form.elements[i].tagName) 
			{ 
				case "INPUT": 
					if (my_form.elements[i].type == "text" || 
						my_form.elements[i].type == "hidden" || 
						my_form.elements[i].type == "password")
					{
						if (poststr)
							poststr	+= "&";
						poststr	+= my_form.elements[i].name + "=" + escape(my_form.elements[i].value)
					}
					else if (my_form.elements[i].type == "radio")
					{
						if (my_form.elements[i].checked) 
						{
							if (poststr)
								poststr	+= "&";
							poststr	+= my_form.elements[i].name + "=" + my_form.elements[i].value; 
						}
					}
					else if (my_form.elements[i].type == "checkbox" && my_form.elements[i].checked)
					{
						if (poststr)
							poststr	+= "&";					
						poststr += my_form.elements[i].name + "=" + my_form.elements[i].value; 
					}
					break; 
				case "TEXTAREA": 
					if (poststr)
						poststr	+= "&";
					poststr	+=  my_form.elements[i].name + "=" + escape(my_form.elements[i].value); 
					break; 
				case "SELECT": 
					if (poststr)
						poststr	+= "&";
					var sel = my_form.elements[i]; 
					poststr	+=  sel.name + "=" + sel.options[sel.selectedIndex].value; 
					break;
			} 		
		}
	}	
	
	if (DEBUG_CODE)
		alert (url+"?"+poststr)
	makePOSTRequest(url, poststr,fcn);
}

var http_request = false;
function makePOSTRequest(url, parameters,fcn) 
{
	parameters += "&nocache="+(new Date()-0);
	http_request = false;
	if (window.XMLHttpRequest) // Mozilla, Safari,...
	{ 
		http_request = new XMLHttpRequest();
		if (http_request.overrideMimeType) 
		{
			// set type accordingly to anticipated content type
			//http_request.overrideMimeType('text/xml');
			http_request.overrideMimeType('text/html');
		}
	} 
	else if (window.ActiveXObject) // IE
	{ 
		try 
		{
			http_request = new ActiveXObject("Msxml2.XMLHTTP");
		} 
		catch (e) 
		{
			try {http_request = new ActiveXObject("Microsoft.XMLHTTP");} 
			catch (e)  { }
		}
	}
	if (!http_request) 
	{
		alert('Cannot create XMLHTTP instance');
		return false;
	}

	http_request.onreadystatechange =  new Function(fcn);
	http_request.open('POST', url, true);
	http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");

	http_request.setRequestHeader("Content-length", parameters.length);
	http_request.setRequestHeader("Connection", "close");
	http_request.send(parameters);
}

function DoAjaxPage (div_name,url)
{
	//DisplayProcessMessage ();
	var url = url+"&nocache="+(new Date()-0);
	
	if (DEBUG_CODE)
		alert (url)	
			
	// branch for native XMLHttpRequest object
	if (window.XMLHttpRequest)
	{
		http_request = new XMLHttpRequest();
		http_request.onreadystatechange = new Function("processAJAX('"+div_name+"')");;
		http_request.open("GET", url, true);
		http_request.send(null);
	// branch for IE/Windows ActiveX version
	}
	else if (window.ActiveXObject) 
	{
		http_request = new ActiveXObject("Microsoft.XMLHTTP");
		if (http_request) 
		{
		
			http_request.onreadystatechange = new Function("processAJAX('"+div_name+"')");;
			http_request.open("GET", url, true);
			http_request.send();
		}
	}
}

function processPopup (div_name)
{
	// only if req shows "complete"
	if (http_request.readyState == 4)
	{
		// only if "OK"
		if (http_request.status == 200) 
		{
			CenterPopup (div_name,http_request.responseText);
			hideDiv('process_holder');			
		}
		else 
			alert("There was a problem retrieving the XML data:\n" + http_request.statusText);
	}
}

function processAJAX(div_name) 
{
	// only if req shows "complete"
	if (http_request.readyState == 4)
	{
		// only if "OK"
		if (http_request.status == 200) 
		{
			document.getElementById(div_name).innerHTML = http_request.responseText;
		}
		else 
			alert("There was a problem retrieving the XML data:\n" + http_request.statusText);
	}
}

function ProcessUserRegistration (which_task)
{
	// only if req shows "complete"
	if (http_request.readyState == 4)
	{
		// only if "OK"
		if (http_request.status == 200) 
		{
			DisplayUserRegistration (which_task,http_request.responseText)	
		}
		else 
			alert("There was a problem retrieving the XML data:\n" + http_request.statusText);
	}

}

function ProcessComplete (div_name)
{
	// only if req shows "complete"
	if (http_request.readyState == 4)
	{
		// only if "OK"
		if (http_request.status == 200) 
		{
			if (http_request.responseText == "SESSION EXPIRED")
			{
				DisplaySessionExpiredMessage (1);
				hideDiv('process_holder');
			}
			else
			{
				setTimeout("hideDiv('process_holder');", 1000);
				if (isNaN (div_name))
				{
					if (div_name.indexOf("|") == -1)
						hideDiv(div_name);				
					else
					{
						var tmp_name = div_name.split("|");
						for (var i=0; i < tmp_name.length; i++)
						{
							hideDiv(tmp_name[i]);		
						}
					}	
				}
			}
		}
		else 
			alert("There was a problem retrieving the XML data:\n" + http_request.statusText);
	}

}


function DoAjaxJS (url,fcn_name)
{
	DisplayProcessMessage ();
	var url = url+"&nocache="+(new Date()-0);
	// branch for native XMLHttpRequest object
	if (window.XMLHttpRequest)
	{
		http_request = new XMLHttpRequest();
		http_request.onreadystatechange = new Function("processJS('"+fcn_name+"')");;
		http_request.open("GET", url, true);
		http_request.send(null);
	// branch for IE/Windows ActiveX version
	}
	else if (window.ActiveXObject) 
	{
		http_request = new ActiveXObject("Microsoft.XMLHTTP");
		if (http_request) 
		{
		
			http_request.onreadystatechange = new Function("processJS('"+fcn_name+"')");;
			http_request.open("GET", url, true);
			http_request.send();
		}
	}
}

function processJS(fcn_name) 
{
	// only if req shows "complete"
	if (http_request.readyState == 4)
	{
		// only if "OK"
		if (http_request.status == 200) 
		{
			if (http_request.responseText == "SESSION EXPIRED")

			{
				DisplaySessionExpiredMessage (1);
				hideDiv('process_holder');
			}
			else
			{		
				eval(http_request.responseText);
				eval(fcn_name);
			}
		}
		else 
			alert("There was a problem retrieving the XML data:\n" + http_request.statusText);
	}
}

function fileUpload(form, action_url, div_id)   
{   
	// Create the iframe...   
	var iframe = document.createElement("iframe");   
	iframe.setAttribute("id","upload_iframe");   
	iframe.setAttribute("name","upload_iframe");   
	iframe.setAttribute("width","0");   
	iframe.setAttribute("height","0");   
	iframe.setAttribute("border","0");   
	iframe.setAttribute("style","width: 0; height: 0; border: none;");   
	  
	// Add to document...   
	form.parentNode.appendChild(iframe);   
	window.frames['upload_iframe'].name="upload_iframe";   
	  
	iframeId = document.getElementById("upload_iframe");   
	  
	// Add event...   
	var eventHandler = function()  
	{   
		if (iframeId.detachEvent)   
			iframeId.detachEvent("onload", eventHandler);   
		else   
			iframeId.removeEventListener("load", eventHandler, false);   
		  
		// Message from server...   
		if (iframeId.contentDocument) 
		{  
			content = iframeId.contentDocument.body.innerHTML;   
		} 
		else if (iframeId.contentWindow) 
		{   
			content = iframeId.contentWindow.document.body.innerHTML;   
		} 
		else if (iframeId.document) 
		{   
			content = iframeId.document.body.innerHTML;   
		}   
		  
		var content = trim(content);
		if (content.indexOf('DONE') != -1)
		{
			var tmp = content.split(";");
			if (tmp[1])
				location.href=tmp[1];			
			else
				location.reload (true);
		}
		else
		{
			hideDiv ('process_holder');
			centerPopup (div_id,content);	 
			
		}

		
		// Del the iframe...   
		setTimeout('iframeId.parentNode.removeChild(iframeId)', 250);   
		

	}   
	  
	if (iframeId.addEventListener)   
	iframeId.addEventListener("load", eventHandler, true);   
	if (iframeId.attachEvent)   
	iframeId.attachEvent("onload", eventHandler);   
	  
	// Set properties of form...   
	form.setAttribute("target","upload_iframe");   
	form.setAttribute("action", action_url);   
	form.setAttribute("method","post");   
	form.setAttribute("enctype","multipart/form-data");   
	form.setAttribute("encoding","multipart/form-data");   
	  
	// Submit the form...   
	form.submit();   
	  
	DisplayProcessMessage ();
}   
