	var http_request	= false;
	var requesting		= false;
	var post_url		= "recommend.php";
	
	function recom_makePOSTRequest(url, parameters)
	{
		http_request = false;
		
		if (window.XMLHttpRequest)
		{ // Mozilla, Safari,...
		 http_request = new XMLHttpRequest();
		 if (http_request.overrideMimeType) {
			//http_request.overrideMimeType('text/xml');
			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 = recom_alertContents;
		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);
	}

   function recom_alertContents()
   {
	   	requesting	= false;
		if (http_request.readyState == 4)
		{
			if (http_request.status == 200)
			{
				result	= http_request.responseText;
				result	= recom_parseParams(result);
				
				if(result["err"]==0) {
					// Resetea el formulario
					document.getElementById("user_name").value = "";
					document.getElementById("user_email").value = "";
					document.getElementById("friend_name").value = "";
					document.getElementById("friend_email").value = "";
					popUp8(); backgroundFilter();
					alert(result["errmsg"]);
					recom_showMessage("");
				} else {
					alert(result["errmsg"]);
					recom_showMessage(result["errmsg"]);
				}
			} else {
				alert('Redireccionando...');
			}
		}
   }
   
	function recom_get(obj)
	{
		if(!requesting)
		{
			recom_showMessage("");
			
			form_ok	= true;
			
			form_ok	= validateTextField("user_name",		"El NOMBRE Y APELLIDO es requerido", "form_result", form_ok);
			form_ok	= validateTextField("user_email",		"El EMAIL es requerido", "form_result", form_ok);
			form_ok	= validateEmailField("user_email",		"El EMAIL no es válido", "form_result", form_ok);
			form_ok	= validateTextField("friend_name",		"El NOMBRE Y APELLIDO del AMIGO es requerido", "form_result", form_ok);
			form_ok	= validateTextField("friend_email",		"El EMAIL del AMIGO es requerido", "form_result", form_ok);
			form_ok	= validateEmailField("friend_email",	"El EMAIL del AMIGO no es válido", "form_result", form_ok);

			var post_url		= "recommend.php";
			
			if(form_ok)
			{
				requesting	= true;
				recom_showMessage("Esperando respuesta");
				var poststr	=	"sent=1" +
								"&user_name=" + recom_URLEncode(document.getElementById("user_name").value) + 
								"&user_email=" + recom_URLEncode(document.getElementById("user_email").value) + 
								"&friend_name=" + recom_URLEncode(document.getElementById("friend_name").value) + 
								"&friend_email=" + recom_URLEncode(document.getElementById("friend_email").value)
				recom_makePOSTRequest(post_url, poststr);
			}
		}else
		{
			// Paciencia
		}
   }

	function recom_showMessage(m)
	{
		document.getElementById('form_result').innerHTML = m;
	}
	
	function recom_parseParams(es)
	{
		var keyvalue	= es.split("&");
		var i;
		var stipped;
		var key;
		var value;
		var params	= new Array();
		for(i=0;i<keyvalue.length;i++)
		{
			stipped		= keyvalue[i].split("=");
			key			= stipped[0];
			value		= recom_URLDecode(stipped[1]);
			params[key]	= value;
		}
		return(params);
	}
	
	function recom_URLEncode(ds)
	{
		// The Javascript escape and unescape functions do not correspond
		// with what browsers actually do...
		var SAFECHARS = "0123456789" +					// Numeric
						"ABCDEFGHIJKLMNOPQRSTUVWXYZ" +	// Alphabetic
						"abcdefghijklmnopqrstuvwxyz" +
						"-_.!~*'()";					// RFC2396 Mark characters
		var HEX = "0123456789ABCDEF";
	
		var plaintext = ds;
		var encoded = "";
		for (var i = 0; i < plaintext.length; i++ ) {
			var ch = plaintext.charAt(i);
			if (ch == " ") {
				encoded += "+";				// x-www-urlencoded, rather than %20
			} else if (SAFECHARS.indexOf(ch) != -1) {
				encoded += ch;
			} else {
				var charCode = ch.charCodeAt(0);
				if (charCode > 255) {
					alert( "Unicode Character '" 
							+ ch 
							+ "' cannot be encoded using standard URL encoding.\n" +
							  "(URL encoding only supports 8-bit characters.)\n" +
							  "A space (+) will be substituted." );
					encoded += "+";
				} else {
					encoded += "%";
					encoded += HEX.charAt((charCode >> 4) & 0xF);
					encoded += HEX.charAt(charCode & 0xF);
				}
			}
		} // for
	
		/*document.URLForm.F2.value = encoded;
		document.URLForm.F2.select();*/
		return(encoded);
	};
	
	function recom_URLDecode(es)
	{
	   if(es!=null && es!="undefined")
	   {
		   var HEXCHARS = "0123456789ABCDEFabcdef"; 
		   var encoded = es;
		   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);
		}else
		{
			return("");
		}
	};
