function simpleConvert(){

	var HH = encodeURIComponent(document.getElementById('HH').value);

	var req = newXMLHttpRequest();

	req.open("POST", "/cgi-bin/postproxy.pl", true);
	var handlerFunction = getReadyStateHandler(req, convertCatch);
	req.onreadystatechange = handlerFunction;

	req.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
	req.send('HH=' + HH );

}


function convert(){

	var HH = encodeURIComponent(document.getElementById('HH').value);

	var hh_format = document.getElementById('hh_format').value;

	var hh_displayresults = "hide";
	
	if ( document.getElementById('hh_displayresults_spoiler').checked ){
		hh_displayresults = document.getElementById('hh_displayresults_spoiler').value
	} else if ( document.getElementById('hh_displayresults_plaintext').checked ){
		hh_displayresults = document.getElementById('hh_displayresults_plaintext').value
	} else {
		hh_displayresults = document.getElementById('hh_displayresults_hide').value
	}
	
	var hh_chat_display = 0;
	if ( document.getElementById('hh_chat_display').checked ){
		hh_chat_display = 1;
	}

	var hh_aliases_option;

	if ( document.getElementById('hh_aliases_option_2').checked ){
		hh_aliases_option = document.getElementById('hh_aliases_option_2').value
	} else if ( document.getElementById('hh_aliases_option_1').checked ){
		hh_aliases_option = document.getElementById('hh_aliases_option_1').value
	} else {
		hh_aliases_option = document.getElementById('hh_aliases_option_0').value
	}

	var hh_player1 = document.getElementById('hh_player1').value;
	var hh_alias1 = document.getElementById('hh_alias1').value;

	var hh_player2 = document.getElementById('hh_player2').value;
	var hh_alias2 = document.getElementById('hh_alias2').value;

	var hh_player3 = document.getElementById('hh_player3').value;
	var hh_alias3 = document.getElementById('hh_alias3').value;

	var req = newXMLHttpRequest();

	req.open("POST", "/cgi-bin/postproxy.pl", true);
	var handlerFunction = getReadyStateHandler(req, convertCatch);
	req.onreadystatechange = handlerFunction;

	req.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
	req.send(	'HH=' + HH +
				'&hh_format=' + hh_format +
				'&hh_displayresults=' + hh_displayresults +
				'&hh_chat_display=' + hh_chat_display +
				'&hh_aliases_option=' + hh_aliases_option +
				'&hh_player1=' + hh_player1 +
				'&hh_alias1=' + hh_alias1 +
				'&hh_player2=' + hh_player2 +
				'&hh_alias2=' + hh_alias2 +
				'&hh_player3=' + hh_player3 +
				'&hh_alias3=' + hh_alias3
			);

}


function convertCatch( response ){

// 	if ( displayErrors( responseXML ) ) return;

// 	var body = responseXML.getElementsByTagName('body')[0];

	var previewWindow = document.getElementById( 'vB_Editor_001_textarea' );
	previewWindow.value = previewWindow.value + "\n" + response;
        
}

function clearInputs(){

	document.getElementById('results').value = '';
	document.getElementById('HH').value = '';

}

function displayErrors( responseXML ){

	var header = responseXML.getElementsByTagName('header')[0];

	if (header.getAttribute('status') == 'error'){
		var errors = header.getElementsByTagName('error');
		var message = 'Error(s) Reported: ' + "\n";

		for (var i=0;i < errors.length; i++){
			message += errors[i].firstChild.nodeValue + "\n\n";
		}

		alert( message );

		return true;
	} else {
		return false;
	}

}

/*
 * Returns a new XMLHttpRequest object, or false if this browser
 * doesn't support it
 */
function newXMLHttpRequest() {

  var xmlreq = false;

  if (window.XMLHttpRequest) {

    // Create XMLHttpRequest object in non-Microsoft browsers
    xmlreq = new XMLHttpRequest();

  } else if (window.ActiveXObject) {

    // Create XMLHttpRequest via MS ActiveX
    try {
      // Try to create XMLHttpRequest in later versions
      // of Internet Explorer

      xmlreq = new ActiveXObject("Msxml2.XMLHTTP");

    } catch (e1) {

      // Failed to create required ActiveXObject

      try {
        // Try version supported by older versions
        // of Internet Explorer

        xmlreq = new ActiveXObject("Microsoft.XMLHTTP");

      } catch (e2) {

        // Unable to create an XMLHttpRequest with ActiveX
      }
    }
  }

  return xmlreq;
}

/*
 * Returns a function that waits for the specified XMLHttpRequest
 * to complete, then passes its XML response
 * to the given handler function.
 * req - The XMLHttpRequest whose state is changing
 * responseXmlHandler - Function to pass the XML response to
 */
function getReadyStateHandler(req, responseXmlHandler) {

  // Return an anonymous function that listens to the
  // XMLHttpRequest instance
  return function () {

// 	alert(req.readyState + ' ' + req.status);
    // If the request's status is "complete"
    if (req.readyState == 4) {

      // Check that a successful server response was received
      if (req.status == 200) {

        // Pass the XML payload of the response to the
        // handler function
        if (req.responseXML && req.responseXML.firstChild
){
	        responseXmlHandler(req.responseXML);
	    } else {
	        responseXmlHandler(req.responseText);
	    }

      } else {

        // An HTTP problem has occurred
        alert("HTTP error: "+req.status);
      }
    }
  }
}
