//////////////////////////////////////////////////////////
//VARIABLES: /////////////////////////////////////////////
var whitespace = " \t\n\r";
//////////////////////////////////////////////////////////
//FUNCIONES: /////////////////////////////////////////////
function isEmpty(s)
{   return ((s == null) || (s.length == 0))
}
//////////////////////////////////////////////////////////
function isWhitespace (s)
{
 var i;
    if (isEmpty(s)) return true;
    for (i = 0; i < s.length; i++)
    {
        var c = s.charAt(i);
        if (whitespace.indexOf(c) == -1) return false;
    }
    return true;
}
//////////////////////////////////////////////////////////
function isLetter (c)
{
   return ( ((c >= "a") && (c <= "z")) || ((c >= "A") && (c <= "Z")))
}
//////////////////////////////////////////////////////////
function isDigit (c)
{
   return ((c >= "0") && (c <= "9"))
}
//////////////////////////////////////////////////////////
function isvalidEmailChar (s)
{
   var i;
    for (i = 0; i < s.length; i++)
    {
        var c = s.charAt(i);
        if (! (isLetter(c) || isDigit(c) || (c=='@') || (c=='.') || (c=='_') || (c=='-') || (c=='+')) ) {
               return false;
        }
    }
    return true;
}
//////////////////////////////////////////////////////////
function isInteger (s)
{
    var i;
    if (isEmpty(s))
       if (isInteger.arguments.length == 1) return false;
       else return (isInteger.arguments[1] == true);
    for (i = 0; i < s.length; i++)
    {
        var c = s.charAt(i);
        if (!isDigit(c)) return false;
    }
    return true;
}
//////////////////////////////////////////////////////////
function isEmail (s)
{
   if (isEmpty(s))
       if (isEmail.arguments.length == 1) return false;
       else return (isEmail.arguments[1] == true);
    if (isWhitespace(s)) return false;
        if (!isvalidEmailChar(s)) return false;
    atOffset = s.lastIndexOf('@');
    if ( atOffset < 1 )
        return false;
    else {
         dotOffset = s.indexOf('.', atOffset);
      if ( dotOffset < atOffset + 2 ||
         dotOffset > s.length - 2 ) {
         return false;
      }
   }
   return true;
}
//////////////////////////////////////////////////////////
/*
Las stes funciones sirven para prohibir al usuario sobrepasar el límite de 
caracteres q se pueden escribir en un campo. La función contador además escribe
el número de caracteres disponibles en otro campo (a modo de etiqueta).
Han de ser llamadas a través de los eventos: onKeyDown, onKeyUp y onChange.
*/
function contador(campo, cuentacampo, limite)
{
	if (campo.value.length > limite) campo.value = campo.value.substring(0, limite);
	else cuentacampo.value = limite - campo.value.length;
}
//////////////////////////////////////////////////////////
function limitar_num_caracteres(campo, limite)
{
	if (campo.value.length > limite) campo.value = campo.value.substring(0, limite);
}

////////////////////////////////////////////////////////////
function isValido()
{
	
	////////////////////
	//nombre
	if(isEmpty(document.form_registro.nombre.value))
	{
		alert("Por favor, escriba su nombre.");
		document.form_registro.nombre.focus();
		document.form_registro.nombre.select();
		return false;
	}
	////////////////////

	////////////////////
	//apellidos
	if(isEmpty(document.form_registro.apellidos.value))
	{
		alert("Por favor, escriba sus apellidos.");
		document.form_registro.apellidos.focus();
		document.form_registro.apellidos.select();
		return false;
	}
	////////////////////

	////////////////////
	//telefono
	if(isEmpty(document.form_registro.telefono.value))
	{
		alert("Por favor, escriba su número de teléfono.");
		document.form_registro.telefono.focus();
		document.form_registro.telefono.select();
		return false;
	}
	
	if(!isInteger(document.form_registro.telefono.value))
	{
		alert("Por favor, escriba un número válido de teléfono. Sólo se permite escribir números y sin espacios.");
		document.form_registro.telefono.focus();
		document.form_registro.telefono.select();
		return false;
	}
	////////////////////

	////////////////////
	//email
	if(isEmpty(document.form_registro.email.value))
	{
		alert("Por favor, escriba su dirección de correo electrónico.");
		document.form_registro.email.focus();
		document.form_registro.email.select();
		return false;
	}
	
	if(!isEmail(document.form_registro.email.value))
	{
		alert("Por favor, escriba una dirección de correo electrónico válida.");
		document.form_registro.email.focus();
		document.form_registro.email.select();
		return false;
	}
	////////////////////
	
	////////////////////
	//profesion
	if(isEmpty(document.form_registro.profesion.value))
	{
		alert("Por favor, escriba su profesión.");
		document.form_registro.profesion.focus();
		document.form_registro.profesion.select();
		return false;
	}
	////////////////////

	////////////////////
	//motivo
	if(isEmpty(document.form_registro.motivo.value))
	{
		alert("Por favor, escriba el motivo de querer registrarse con nosotros.");
		document.form_registro.motivo.focus();
		document.form_registro.motivo.select();
		return false;
	}
	////////////////////

	////////////////////
	//si todo es correcto devolvemos true y cambiamos el valor del action del form:
	document.form_registro.action="/registro_send_mail.asp";
	document.form_registro.submit();
	return true;
}