function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}
function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
/////////////////////////
// Variables para setear
onload=function() 
{
	cAyuda=document.getElementById("mensajesAyuda");
	cNombre=document.getElementById("ayudaTitulo");
	cTex=document.getElementById("ayudaTexto");
	divTransparente=document.getElementById("transparencia");
	divMensaje=document.getElementById("transparenciaMensaje");
	form=document.getElementById("formulario");
	urlDestino="mail_reco_prev.php";
	urlvalcode="validar_turing.php";
	
	claseNormal="input";
	claseError="inputError";
	
	ayuda=new Array();
	ayuda["Your name"]="Complete your name. From 4 to 50 characters. OBLIGATORY";
	ayuda["Your e-mail address"]="Complete your e-mail address. OBLIGATORY";
	ayuda["Your friend name"]="Complete your friend's name. From 4 to 50 characters. OBLIGATORY";
	ayuda["Your friend e-mail address"]=" Complete your friend's e-mail address. OBLIGATORY";
	ayuda["Add a personal message"]="Add a personal message. From 5 to 200 characters. OBLIGATORY";
	ayuda["Type the code shown"]="Type the code shown. OBLIGATORY";
	ayuda["Change the code"]="Press button if you want to change the code.";
	
	preCarga("ok.gif", "loading.gif", "error.gif");
}

function preCarga()
{
	imagenes=new Array();
	for(i=0; i<arguments.length; i++)
	{
		imagenes[i]=document.createElement("img");
		imagenes[i].src=arguments[i];
	}
}

function nuevoAjax()
{ 
	var xmlhttp=false; 
	try 
	{ 
		// No IE
		xmlhttp=new ActiveXObject("Msxml2.XMLHTTP"); 
	}
	catch(e)
	{ 
		try
		{ 
			// IE 
			xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
		} 
		catch(E) { xmlhttp=false; }
	}
	if (!xmlhttp && typeof XMLHttpRequest!="undefined") { xmlhttp=new XMLHttpRequest(); } 
	return xmlhttp; 
}

function limpiaForm()
{
	for(i=0; i<=4; i++)
	{
		form.elements[i].className=claseNormal;
	}
	document.getElementById("inputMessage").className=claseNormal;
	document.getElementById("inputCode").className=claseNormal;
}


function limpiartextbox()
{
	for(i=0; i<=4; i++)
	{
		form.elements[i].className=claseNormal;
		form.elements[i].value="";
	}
	document.getElementById("inputMessage").className=claseNormal;
	document.getElementById("inputMessage").value="";
	document.getElementById("inputCode").className=claseNormal;
	document.getElementById("inputCode").value="";
}

function campoError(campo)
{
	campo.className=claseError;
	error=1;
}

function ocultaMensaje()
{
	divTransparente.style.display="none";
}

function muestraMensaje(mensaje)
{
	divMensaje.innerHTML=mensaje;
	divTransparente.style.display="block";
}

function eliminaEspacios(cadena)
{
	// Funcion para eliminar espacios delante y detras de cada cadena
	while(cadena.charAt(cadena.length-1)==" ") cadena=cadena.substr(0, cadena.length-1);
	while(cadena.charAt(0)==" ") cadena=cadena.substr(1, cadena.length-1);
	return cadena;
}

function validaLongitud(valor, permiteVacio, minimo, maximo)
{
	var cantCar=valor.length;
	if(valor=="")
	{
		if(permiteVacio) return true;
		else return false;
	}
	else
	{
		if(cantCar>=minimo && cantCar<=maximo) return true;
		else return false;
	}
}

function validaCorreo(valor)
{
	var reg=/(^[a-zA-Z0-9._-]{1,30})@([a-zA-Z0-9.-]{1,30}$)/;
	if(reg.test(valor)) return true;
	else return false;
}


function validaForm()
{
	limpiaForm();
	error=0;
	var link_preview=eliminaEspacios(form.inputLink.value);
	var yourname=eliminaEspacios(form.inputYourname.value);
	var youremail=eliminaEspacios(form.inputYouremail.value);
	var yourfriend=eliminaEspacios(form.inputYourfriend.value);
	var yourfriendemail=eliminaEspacios(form.inputYourfriendemail.value);
	var message=eliminaEspacios(form.inputMessage.value);
	var code_form=eliminaEspacios(form.inputCode.value);
	
	if(!validaLongitud(yourname, 0, 4, 20)) campoError(form.inputYourname);
	if(!validaCorreo(youremail)) campoError(form.inputYouremail);
	if(!validaLongitud(yourfriend, 0, 4, 20)) campoError(form.inputYourfriend);
	if(!validaCorreo(yourfriendemail)) campoError(form.inputYourfriendemail);
	if(!validaLongitud(message, 0, 5, 200)) campoError(form.inputMessage);
	if(!validaLongitud(code_form, 0, 6, 6)) campoError(form.inputCode);

	if(error==1)
		{
			var texto="<img src='error.jpg' alt='Error'><br><br>Error: check the fields in blue.<br><br><button style='width:45px; height:18px; font-size:10px;' onClick='ocultaMensaje()' type='button'>Ok</button>";
			muestraMensaje(texto);
		}
	else
		{
		var texto="Please wait.";
		muestraMensaje(texto);
		var ajax_code=nuevoAjax();
		ajax_code.open("POST", urlvalcode, true);
		ajax_code.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		ajax_code.send("code_form="+code_form);
		ajax_code.onreadystatechange=function()
			{
				if (ajax_code.readyState==4)
					{
						var respuesta_code=ajax_code.responseText;
						if (respuesta_code=="TODOBIEN")
							{
								var texto="<img src='loading.gif' alt='Enviando'><br>Sending. Please wait.";
								muestraMensaje(texto);
								
								var ajax=nuevoAjax();
								ajax.open("POST", urlDestino, true);
								ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
								ajax.send("link_preview="+link_preview+"&yourname="+yourname+"&youremail="+youremail+"&yourfriend="+yourfriend+"&yourfriendemail="+yourfriendemail+"&message="+message);
								
								ajax.onreadystatechange=function()
								{
									if (ajax.readyState==4)
									{
										var respuesta=ajax.responseText;
										if(respuesta=="OK")
										{
											var texto="<img src='ok.jpg' alt='Ok'><br>Your message was successully sent.";
										}
										else var texto="<img src='error.jpg'><br><br>Error: try later.<br><br><button style='width:45px; height:18px; font-size:10px;' onClick='ocultaMensaje()' type='button'>Ok</button>";
										
										muestraMensaje(texto);
									}
								}
							}
						else
							{
								campoError(form.inputCode);
								var texto="<img src='error.jpg' alt='Error'><br><br>Error: check the fields in blue.<br><br><button style='width:45px; height:18px; font-size:10px;' onClick='ocultaMensaje()' type='button'>Ok</button>";
								muestraMensaje(texto);
							}
					}
			}
	}
}

// Mensajes de ayuda

if(navigator.userAgent.indexOf("MSIE")>=0) navegador=0;
else navegador=1;

function colocaAyuda(event)
{
	if(navegador==0)
	{
		var corX=window.event.clientX+document.documentElement.scrollLeft;
		var corY=window.event.clientY+document.documentElement.scrollTop;
	}
	else
	{
		var corX=event.clientX+window.scrollX;
		var corY=event.clientY+window.scrollY;
	}
	cAyuda.style.top=corY-20+"px";
	//cAyuda.style.left=corX+15+"px";
	cAyuda.style.left=corX-180+"px";
}

function ocultaAyuda()
{
	cAyuda.style.display="none";
	if(navegador==0) 
	{
		document.detachEvent("onmousemove", colocaAyuda);
		document.detachEvent("onmouseout", ocultaAyuda);
	}
	else 
	{
		document.removeEventListener("mousemove", colocaAyuda, true);
		document.removeEventListener("mouseout", ocultaAyuda, true);
	}
}

function muestraAyuda(event, campo)
{
	colocaAyuda(event);
	
	if(navegador==0) 
	{ 
		document.attachEvent("onmousemove", colocaAyuda); 
		document.attachEvent("onmouseout", ocultaAyuda); 
	}
	else 
	{
		document.addEventListener("mousemove", colocaAyuda, true);
		document.addEventListener("mouseout", ocultaAyuda, true);
	}
	
	cNombre.innerHTML=campo;
	cTex.innerHTML=ayuda[campo];
	cAyuda.style.display="block";
}
