function convertForm(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 comma-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; 
}


function initRequest() {
	var request = false;

	if (window.ActiveXObject) { 
		// IE
		request = new ActiveXObject("Microsoft.XMLHTTP");
	} else if (window.XMLHttpRequest) {
		// Mozilla/Safari
		request = new XMLHttpRequest();
		request.overrideMimeType('text/xml');
	}
	return request;
}

function sendRequest(requestMethod, url, formContent, callbackMethod) {
	var async_request = false;
	
	async_request = initRequest();
	if (!async_request) return;

	async_request.open(requestMethod, url, true);
	async_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');

	async_request.onreadystatechange = function() {
		if (async_request.readyState == 4) {
			response_content = async_request.responseText;
			eval(callbackMethod + '(response_content);');
		}
	}

	async_request.send(formContent);
}

function launchJavascript(responseText) {
  // RegExp from prototype.sonio.net
  var ScriptFragment = '(?:<script.*?>)((\n|.)*?)(?:</script>)';
           
  var match    = new RegExp(ScriptFragment, 'img');
  var scripts  = responseText.match(match);

    if(scripts) {
        var js = '';
        for(var s = 0; s < scripts.length; s++) {
            var match = new RegExp(ScriptFragment, 'im');
            js += scripts[s].match(match)[1];
        }
        eval(js);
    }
}
