function preparaPagina()
{
	envioCurr_Change()
	envioExp_Change()
	universidad_onchange()
	pais_onchange()
	document.formua1.carta_adjunta.value = 0
}

function btnEnviar_click()
{
	if (document.formua1.nombre.value == "")
	{
		alert("Es necesario que rellene el campo NOMBRE")
		document.formua1.nombre.focus()
		return;
	}
	if (document.formua1.apellidos.value == "")
	{
		alert("Es necesario que rellene el campo APELLIDOS")
		document.formua1.apellidos.focus()
		return;
	}
	if (document.formua1.nacionalidad.value == "")
	{
		alert("Es necesario que rellene el campo NACIONALIDAD")
		document.formua1.nacionalidad.focus()
		return;
	}
	if (document.formua1.sexo.value == "")
	{
		alert("Es necesario que rellene el campo SEXO")
		document.formua1.sexo.focus()
		return;
	}
	
	if (document.formua1.fecha_nacimiento.value == "")
	{
		alert("Es necesario que rellene el campo FECHA DE NACIMIENTO")
		document.formua1.fecha_nacimiento.focus()
		return;
	}
	else
	{
		if (!isDate(document.formua1.fecha_nacimiento.value))
		{
			alert("El valor introducido en la FECHA DE NACIMIENTO no es una fecha correcta \nEj: 31/12/2005")
			document.formua1.fecha_nacimiento.focus()
			return;
		}
	}
	
	if (document.formua1.calle.value == "")
	{
		alert("Es necesario que rellene el campo CALLE")
		document.formua1.calle.focus()
		return;
	}
	if (document.formua1.numero.value == "")
	{
		alert("Es necesario que rellene el campo NÚMERO DE LA CALLE")
		document.formua1.numero.focus()
		return;
	}
	if (document.formua1.piso.value == "")
	{
		alert("Es necesario que rellene el campo PISO")
		document.formua1.piso.focus()
		return;
	}
	if (document.formua1.pais.value == "")
	{
		alert("Es necesario que rellene el campo PAIS")
		document.formua1.pais.focus()
		return;
	}	
	
	// Dependiendo del país. se requiere una campo u otro.
	if (document.formua1.pais.value == "España")
	{
    	if (document.formua1.provincia.value == "")
    	{
		    alert("Es necesario que rellene el campo PROVINCIA")
		    document.formua1.provincia.focus()
		    return;
	    }
	}
	else
	{
	    if (document.formua1.state.value == "")
	    {
		    alert("Es necesario que rellene el campo PROVINCIA")
		    document.formua1.state.focus()
		    return;
	    }
	}
	
	if (document.formua1.localidad.value == "")
	{
		alert("Es necesario que rellene el campo LOCALIDAD")
		document.formua1.localidad.focus()
		return;
	}
	if (document.formua1.Codigo_Postal.value == "")
	{
		alert("Es necesario que rellene el campo CODIGO POSTAL")
		document.formua1.Codigo_Postal.focus()
		return;
	}

	if (document.formua1.telefono1.value == "")
	{
		alert("Es necesario que rellene el campo TELÉFONO")
		document.formua1.telefono1.focus()
		return;
	}

	if (document.formua1.universidad.value == "")
	{
		alert("Es necesario que rellene la Universidad en la que curso Licenciatura en Derecho")
		document.formua1.universidad.focus()
		return;
	}
    
    // Si se introduce otra universidad se comprueba que el campo este relleno.
	if (document.formua1.universidad.value == "*Otra*")
	{
	    if (document.formua1.otra_universidad.value == "")
	    {
		    alert("Es necesario que rellene la Universidad en la que curso Licenciatura en Derecho")
		    document.formua1.otra_universidad.focus()
		    return;
	    }
	}

	if (document.formua1.anyo_fin.value == "")
	{
		alert("Es necesario que rellene el año de finalización de su Licenciatura en Derecho")
		document.formua1.anyo_fin.focus()
		return;
	}
	
	// Se comprueban las filas de otros estudios
	var iFila, strMensaje
	for (iFila = 2;iFila <= 3; iFila++)
	{
	    strMensaje = compruebaFilas(new Array("titulo" + iFila, "universidad" + iFila, "anyo_fin" + iFila))
	    if (strMensaje != "")
	    {
		    alert(strMensaje)
		    return;
	    }
	}
    	
    // Se completan los datos de los idiomas
    // Se comprueba que haya introducido los datos del inglés
	if (document.formua1.nivel1.value == "")
	{
		alert("Es necesario que rellene el nivel de Inglés.")
		document.formua1.nivel1.focus()
		return;
	}

	if (document.formua1.Titulacion_idioma1.value == "")
	{
		alert("Es necesario que rellene la titulación de Inglés.")
		document.formua1.Titulacion_idioma1.focus()
		return;
	}
	
	// Se comprueban las demás filas de idiomas
	for(iFila = 2;iFila <= 6; iFila++)
	{
	    strMensaje = compruebaFilas(new Array("idioma" + iFila, "nivel" + iFila))
	    if (strMensaje != "")
	    {
		    alert(strMensaje)
		    return;
	    }
    }
	
    
/*    
    strMensaje = compruebaIdiomas()
    if  (strMensaje != "")
    {
    	alert(strMensaje)
    	return;
    }
*/		
	// Se comprueban las filas de postgrado
	for(iFila = 1;iFila <= 3; iFila++)
	{
	    strMensaje = compruebaFilas(new Array("estudios" + iFila, "centro" + iFila, "fin" + iFila, "categoria" + iFila))
	    if (strMensaje != "")
	    {
		    alert(strMensaje)
		    return;
	    }
    }

	// Se comprueban las filas de oposiciones
	for (iFila = 1;iFila <= 3; iFila++)
	{
	    strMensaje = compruebaFilas(new Array("oposicion" + iFila, "opCentro" + iFila, "opInicio" + iFila, "opFin" + iFila))
	    if (strMensaje != "")
	    {
		    alert(strMensaje)
		    return;
	    }
    }	

	// Se comprueban las filas de la experiencia
	for (iFila = 1;iFila <= 5; iFila++)
	{
	    strMensaje = compruebaFilas(new Array("empresa" + iFila, "sector" + iFila, "anyo_inicio" + iFila + "_exp", "anyo_fin" + iFila + "_exp"))
	    if (strMensaje != "")
	    {
		    alert(strMensaje)
		    return;
	    }
    }	
    
	if (document.formua1.especialidad1.value == "")
	{
		alert("Es necesario que rellene la Primera especialidad que prefiere.")
		document.formua1.especialidad1.focus()
		return;
	}
    
    // Se comprueba si se adjuntan ficheros que todo sea correcto
	strMensaje = compruebaAdjuntos()
	if (strMensaje != "")
	{
		alert(strMensaje)
		return;
	}
    
	// Se concatenan las áres para que se manden en un campo oculto.
	//concatenaAreas()

	document.formua1.submit()
}

function universidad_onchange()
{
    if (document.formua1.universidad.value == "*Otra*")
    {
        document.getElementById("otra_uni").style.display = ""
        document.formua1.otra_universidad.focus()
    }
    else
    {
        document.getElementById("otra_uni").style.display = "none"
    }
}

function pais_onchange()
{
    if (document.formua1.pais.options[document.formua1.pais.selectedIndex].text == "España")
    {
        document.getElementById("provincias").style.display = ""
        document.getElementById("states").style.display = "none"
    }
    else
    {
        document.getElementById("provincias").style.display = "none"
        document.getElementById("states").style.display = ""
    }
}

function compruebaAdjuntos()
{
	// Solo se comprueba que si elegió adjuntar haya seleccionado algún fichero.
	
	// Si se ha elegido adjuntar el curriculum debe introducir un archivo y que este sea correcto.
	if (document.formua1.envio_curriculum.selectedIndex == 0)
	{
		if (document.formua1.curriculum.value == "")
		{
			document.formua1.curriculum.focus()
			return "Ha decidio adjuntar el curriculum pero no ha seleccionado ningún fichero"
		}
	}

	// Se comprueba el expediente.
	if (document.formua1.envio_expediente.selectedIndex == 0)
	{
		if (document.formua1.expediente.value == "")
		{
			document.formua1.expediente.focus()
			return "Ha decidio adjuntar el expediente pero no ha seleccionado ningún fichero"
		}
	}
	
	// Si se ha introducido un archivo para la carta se marca que se ha adjuntado.
	if (document.formua1.carta.value != "")
	{
		document.formua1.carta_adjunta.value = 1
	}
	
	return "";
}

function compruebaIdioma(aNiveles, strIdioma, strNombreIdioma)
{
    var iNivel, iNumNiveles, rtnValue

    rtnValue = ""
    
    // Solo se comprueba en caso de que no se haya introducido un idioma.
    if (strIdioma == "")
    {
        // Se mira si se ha rellenado al menos parte de la fila
        iNumNiveles = aNiveles.length
        for(iNivel = 0;iNivel < iNumNiveles; iNivel++)
        {
            if (document.formua1.elements[aNiveles[iNivel]].value != "")
            {
                document.formua1.elements[strNombreIdioma].focus()
                rtnValue = "Ha introducido un nivel y no ha introducido el idioma correspondiente."
                break;
            }
        }
    }
    
    return rtnValue;
}

function compruebaIdiomas()
{
    var rtnValue = ""

    // Idioma1
    rtnValue = compruebaIdioma(new Array("ne_idioma1", "nh_idioma1", "nj_idioma1", "titulacion_idioma1"), document.formua1.idioma1.value, "idioma1")
    if (rtnValue != "")
    { 
        return rtnValue;
    }
    
    // Idioma2
    rtnValue = compruebaIdioma(new Array("ne_idioma2", "nh_idioma2", "nj_idioma2", "titulacion_idioma2"), document.formua1.idioma2.value, "idioma2")
    if (rtnValue != "")
    { 
        return rtnValue;
    }

    // Idioma3
    rtnValue = compruebaIdioma(new Array("ne_idioma3", "nh_idioma3", "nj_idioma3", "titulacion_idioma3"), document.formua1.idioma3.value, "idioma3")
    if (rtnValue != "")
    { 
        return rtnValue;
    }
    
    return rtnValue;
}


function concatenaAreas()
{
	var iElement, strAreasConcatenadas, oElement
    var sArea = "area" // Para controlar el texto que se busca
	
	strAreasConcatenadas = ""
	for (iElement = 0;iElement < document.formua1.elements.length; iElement++)
	{
		oElement = document.formua1.elements[iElement]
		if ((oElement.tagName.toUpperCase() == "INPUT") && (oElement.type.toUpperCase() == "CHECKBOX"))
		{
			if ((oElement.id.substring(0,(sArea.length)).toLowerCase() == "area") && (oElement.checked))
			{
				strAreasConcatenadas += oElement.name + " / "
			}
		}
	}
	
	//Quitamos la última ' / '
	document.formua1.areas.value = strAreasConcatenadas.substring(0,(strAreasConcatenadas.length - 3))
}

function compruebaAnyo(anyo)
{
    var rtnValue = true

	if (anyo == "")
	{ 
	    return rtnValue
	}
	
	var myDate = new Date()
	if ((anyo.length != 4) || (isNaN(anyo)) ||  (parseInt(anyo) > (myDate.getFullYear() + 2)) || (parseInt(anyo) < 1900))
	{ 
		alert("El año introducido no es válido.")
		rtnValue = false
	}
	return rtnValue;
}
/*
function compruebaIniOp(anyo, iFila)
{
    var ret
    var rtnValue = ""
    
    ret = compruebaAnyo(anyo)
  	if ((document.formua1.elements["opFin" + iFila].value == "") || (anyo == ""))
  	{ 
  	    return rtnValue
  	}
  	
    if (ret)
    {
        if ((anyo) > (document.formua1.elements["opFin" + iFila].value))
        {
            rtnValue = "El año de inicio no puede ser mayor que el de finalización."
            alert(rtnValue)
            window.event.returnValue = false
        }
    }
    return rtnValue;
}


function compruebaFinOp(anyo, iFila)
{
    var ret
    var rtnValue = ""
    
    ret = compruebaAnyo(anyo)
    if ((document.formua1.elements["opInicio" + iFila].value == "") || (anyo == ""))
    { 
        return rtnValue
    }

    if (ret)
    {
        if ((anyo) < (document.formua1.elements["opInicio" + iFila].value))
        {
            rtnValue = "El año de finalización no puede ser menor que el de inicio."
            alert(rtnValue)
            window.event.returnValue = false
        }
    }
    return rtnValue;
}
*/

function compruebaAnyoIni(anyo, sCampoFin)
{
    var ret
    var rtnValue = ""
    
    ret = compruebaAnyo(anyo)
  	if ((document.formua1.elements[sCampoFin].value == "") || (anyo == ""))
  	{ 
  	    return rtnValue
  	}
  	
    if (ret)
    {
        if ((anyo) > (document.formua1.elements[sCampoFin].value))
        {
            rtnValue = "El año de inicio no puede ser mayor que el de finalización."
            alert(rtnValue)
            window.event.returnValue = false
        }
    }
    return rtnValue;
}

function compruebaAnyoFin(anyo, sCampoInicio)
{
    var ret
    var rtnValue = ""
    
    ret = compruebaAnyo(anyo)
    if ((document.formua1.elements[sCampoInicio].value == "") || (anyo == ""))
    { 
        return rtnValue
    }

    if (ret)
    {
        if ((anyo) < (document.formua1.elements[sCampoInicio].value))
        {
            rtnValue = "El año de finalización no puede ser menor que el de inicio."
            alert(rtnValue)
            window.event.returnValue = false
        }
    }
    return rtnValue;
}
function isDate(sDate)
{
    if (sDate == "") {return false;}
    
    // is format OK?
    var datePat = /^(\d{1,2})(\/|-)(\d{1,2})(\/|-)(\d{4})$/;
    var matchArray = sDate.match(datePat); 

    if (matchArray == null) {return false;}
    
    // parse date into variables
    var day = matchArray[1];
    var month = matchArray[3];
    var year = matchArray[5];

    // Format for Date object
    var sTmpDate = month + "/" + day + "/" + year
    var testDate=new Date(sTmpDate);
    if(testDate.getMonth()+1 == month)
    {
        return true;
    } 
    else
    {
        return false;
    }
}

function compruebaFilas(aFilas)
{
    var iCampo, iNumCampos, bCompleto
    
    bCompleto = false
    
    // Se mira si se ha rellenado al menos parte de la fila
    iNumCampos = aFilas.length
    for (iCampo = 0;iCampo < iNumCampos; iCampo++)
    {
        if (document.formua1.elements[aFilas[iCampo]].value != "")
        {
            bCompleto = true
        }
    }

    // Si hay alguno rellenado se comprueba si lo están todos.
    // Al primero que no lo esté se sale y se da un mensaje.
    if (bCompleto)
    {
        for (iCampo = 0;iCampo < iNumCampos; iCampo++)
        {
            if (document.formua1.elements[aFilas[iCampo]].value == "")
            {
                document.formua1.elements[aFilas[iCampo]].focus()
                return "Debe rellenar todos los campos de la fila"
            }
        }
    }
    return "";
}

function compruebaTextAreas(sValue, sEvent)
{
    var MAX_LEN = 900 // No 8000 porque si hay muchos caracteres raros, en respuesta.asp son más de 8000.
    switch (sEvent)
    {
        case "onkeypress":
            if (sValue.length > MAX_LEN) 
            {
                alert("El texto introducido es demasiado largo.")
                window.event.returnValue = false
            }
            break;
        case "onpaste":
            // Hay que sumar la longitud del texto a pegar.
            if ((sValue.length + window.clipboardData.getData("Text").length) > MAX_LEN)
            {
                alert("El texto introducido es demasiado largo.")
                window.event.returnValue = false
            }
    }
}

function envioCurr_Change()
{
	document.formua1.curriculum.disabled = (document.formua1.envio_curriculum.selectedIndex != 0)
}


function envioExp_Change()
{
	document.formua1.expediente.disabled = (document.formua1.envio_expediente.selectedIndex != 0)
}


