<!-- SEND INVITES -->
function pi_sendInvites() {
	ajaxObj=pi_createXMLHttp()
	var url=document.getElementById('mosConfig_live_site').value;
	url=url+"/components/com_comprofiler/plugin/user/plug_plaxoinvite/process_invites.php"
	url=url+"?sid="+ new Date().getTime()
	ajaxObj.open("POST",url,true)
	ajaxObj.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	ajaxObj.onreadystatechange=pi_processSend
	var inviteForm = document.forms['formPlaxoinvite'];
	var inviteFormBody = pi_getRequestBody(inviteForm);
	ajaxObj.send(inviteFormBody);
}
function pi_processSend() {
	if (ajaxObj.readyState==4 || ajaxObj.readyState=="complete") {
		var command1 = "document.getElementById('status').innerHTML=ajaxObj.responseText;";
		var command2 = "document.getElementById('send_invites').disabled = false;";
		setTimeout(command1+command2 , 500)
	}
	else {
		document.getElementById('status').innerHTML="<img src='components/com_comprofiler/plugin/user/plug_plaxoinvite/images/ajax_loading.gif' border='0' />"
	}
}
<!-- SEND INVITES -->
<!-- CHANGE DETAILS -->
function pi_changeDetails() {
	ajaxObj=pi_createXMLHttp()
	var url=document.getElementById('mosConfig_live_site').value;
	url=url+"/components/com_comprofiler/plugin/user/plug_plaxoinvite/process_details.php"
	url=url+"?sid="+ new Date().getTime()
	ajaxObj.open("POST",url,true)
	ajaxObj.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	ajaxObj.onreadystatechange=pi_processDetails
	var detailsForm = document.forms['formInviteDetails'];
	var detailsFormBody = pi_getRequestBody(detailsForm);
	ajaxObj.send(detailsFormBody);
}
function pi_processDetails() {
	if (ajaxObj.readyState==4 || ajaxObj.readyState=="complete") {
		var piTask = document.getElementById('piTask').value;
		if (piTask == "changePage") {
			var command1 = "nav_load();";
			var command2 ="document.getElementById('invite_details_output').innerHTML=ajaxObj.responseText;";
			setTimeout(command1+command2, 500)
		}
		else if (piTask == "changeList") {
			document.getElementById("invite_details_output").innerHTML=ajaxObj.responseText;
			command1="document.getElementById('invitesLoading').innerHTML='&nbsp;';";
			command2="invite_details_effect2_1.toggle();";
			setTimeout(command1+command2,100);
		}
	}
	else {
		var piTask = document.getElementById('piTask').value;
		if (piTask == "changeList") {
			document.getElementById('invitesLoading').innerHTML="<img border='0' src='components/com_comprofiler/plugin/user/plug_plaxoinvite/images/ajax_loading.gif' border='0' />";
		}
	}
}
<!-- CHANGE DETAILS -->
<!-- ACTIONS -->
function pi_sendAction() {
	ajaxObj=pi_createXMLHttp()
	var url=document.getElementById('mosConfig_live_site').value;
	url=url+"/components/com_comprofiler/plugin/user/plug_plaxoinvite/process_details.php"
	url=url+"?sid="+ new Date().getTime()
	ajaxObj.open("POST",url,true)
	ajaxObj.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	ajaxObj.onreadystatechange=pi_processAction
	var detailsForm = document.forms['formInviteDetails'];
	var detailsFormBody = pi_getRequestBody(detailsForm);
	ajaxObj.send(detailsFormBody);
}
function pi_processAction() {
	if (ajaxObj.readyState==4 || ajaxObj.readyState=="complete") {
		var action_div = 'pi_action_' + document.getElementById('iid').value;
		var command1 = "var action_div = 'pi_action_' + document.getElementById('iid').value;";
		var command2 = "document.getElementById(action_div).innerHTML=ajaxObj.responseText;";
		setTimeout(command1+command2,10);
	}
	else {
		var piTask = document.getElementById('piTask').value;
		var action_div = 'pi_action_' + document.getElementById('iid').value;
		document.getElementById(action_div).innerHTML="<img src='components/com_comprofiler/plugin/user/plug_plaxoinvite/images/ajax_loading.gif' border='0' />";
	}
}
<!-- ACTIONS -->
function pi_createXMLHttp() {
	if (typeof XMLHttpRequest != 'undefined')
		return new XMLHttpRequest();
	else if (window.ActiveXObject) {
		var avers = ["Microsoft.XmlHttp", "MSXML2.XmlHttp",
		"MSXML2.XmlHttp.3.0", "MSXML2.XmlHttp.4.0",
		"MSXML2.XmlHttp.5.0"];
		for (var i = avers.length -1; i >= 0; i--) {
			try {
				httpObj = new ActiveXObject(avers[i]);
				return httpObj;
			} catch(e) {}
		}
	}
	throw new Error('XMLHttp (AJAX) not supported by your browser.');
}

function pi_getRequestBody(form_name) {
	var content_to_submit = '';
	var form_element;
	var last_element_name = '';

	for (i = 0; i < form_name.elements.length; i++) {
		form_element = form_name.elements[i];
		switch (form_element.type) {
			// Text fields, hidden form elements
			case 'text':
			case 'hidden':
			case 'password':
			case 'textarea':
			case 'select-one':
				content_to_submit += form_element.name + '=' + escape(form_element.value) + '&'
			break;
			// Radio buttons
			case 'radio':
				if (form_element.checked) {
					content_to_submit += form_element.name + '=' + escape(form_element.value) + '&'
				}
			break;
			// Checkboxes
			case 'checkbox':
			if (form_element.checked) {
				// Continuing multiple, same-name checkboxes
				if (form_element.name == last_element_name) {
					// Strip of end ampersand if there is one
					if (content_to_submit.lastIndexOf('&') == content_to_submit.length - 1) {
						content_to_submit = content_to_submit.substr(0, content_to_submit.length - 1);
					}
					// Append value as pipe-delimited string
					content_to_submit += '|' + escape(form_element.value);
				}
				else {
					content_to_submit += form_element.name + '=' + escape(form_element.value);
				}
				content_to_submit += '&';
				last_element_name = form_element.name;
			}
			break;
		}
	}
	// Remove trailing separator
	content_to_submit = content_to_submit.substr(0, content_to_submit.length - 1);
	return content_to_submit;
}
