function URLDecode(str)
{
   // Replace + with ' '
   // Replace %xx with equivalent character
   // Put [ERROR] in output if %xx is invalid.
   var HEXCHARS = "0123456789ABCDEFabcdef"; 
   var encoded = str;
   var plaintext = "";
   var i = 0;
   while (i < encoded.length) {
       var ch = encoded.charAt(i);
	   if (ch == "+") {
	       plaintext += " ";
		   i++;
	   } else if (ch == "%") {
			if (i < (encoded.length-2) 
					&& HEXCHARS.indexOf(encoded.charAt(i+1)) != -1 
					&& HEXCHARS.indexOf(encoded.charAt(i+2)) != -1 ) {
				plaintext += unescape( encoded.substr(i,3) );
				i += 3;
			} else {
				alert( 'Bad escape combination near ...' + encoded.substr(i) );
				plaintext += "%[ERROR]";
				i++;
			}
		} else {
		   plaintext += ch;
		   i++;
		}
	}
	return plaintext;
}


function makePOSTRequest(url, parameters, idmessage)
{
	http_request = false;
    if (window.XMLHttpRequest) {
		http_request = new XMLHttpRequest();
			if (http_request.overrideMimeType) {
	            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 = function(){
		if (http_request.readyState == 4) {
			if (http_request.status == 200) {
	            result = URLDecode(http_request.responseText);
	            document.getElementById(idmessage).innerHTML = result;      
			} else {
				alert('Lamentamos, mas existe um problema com o seu pedido!');
			}
		}
	};
    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);
}
