/* <![CDATA[ */

var req; //xml http request variable

function urlEncode(url)
{
	var str = new String(url);

	var change_chars = new Array();
		change_chars[ "+" ] = "%2B";
		change_chars[ "/" ] = "%2F";

	for( var i in change_chars )
	{
		str = str.replace( i, change_chars[i] );
	}

	return str;
}


function loadXMLDoc(url, method, form_elements, callback_function ) 
{
	var post_data = "";
	method = method.toLowerCase();

	if( callback_function == "" )
	{
		callback_function = processReqChange;
	}
	
	//arrange post data
	if( method == "post" && form_elements.length > 0 )
	{
		count=0
		for( var key in form_elements )
		{
			if( count > 0 )
			{
				post_data += "&";
			}

			post_data += key + '=' + escape(urlEncode(form_elements[key]));

			count++;
		}
	}
	
	//alert(post_data);

	// branch for native XMLHttpRequest object
    if (window.XMLHttpRequest)
	{
        req = new XMLHttpRequest();
        req.onreadystatechange = callback_function;
        req.open(method, url, true);
        
		if( method == "post" )
		{
			req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');			
			req.send(post_data);
		}
		else
		{
			req.send(null);
		}

    // branch for IE/Windows ActiveX version
    }
	else if (window.ActiveXObject)
	{
        req = new ActiveXObject("Microsoft.XMLHTTP");
        if (req)
		{
            req.onreadystatechange = callback_function;
            req.open(method, url, true);

			if( method == "post" )
			{
				req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');				
				req.send(post_data);
			}
			else
			{
				req.send();
			}
        }
    }
}



/*
readyState Status Codes:
	0 = uninitialized
	1 = loading
	2 = loaded
	3 = interactive
	4 = complet
*/

function processReqChange() 
{
    // only if req shows "complete"
    if (req.readyState == 4) {
        // only if "OK"
        if (req.status == 200) {
			var response  = req.responseXML.documentElement;
			/* Start User Code*/
			//view the response in a textarea log
			//document.getElementById("log").value = req.responseText;


			//alert('Process Request change' + response );

			//document.getElementById(save_module).innerHTML = "Saved.";
			//setTimeout("clear_save('"+save_module+"')", 3000); //run in 3 seconds
			/* End User's Code */
        }
		else
		{
            alert("There was a problem retrieving the XML data:\n" + req.statusText);
        }
    }
}


/* ]]> */
