var satIntroducirCPValido = "Debe introducir un código postal válido";
var satRellenarCampo = "Debe rellenar algún campo";
var satIntroducirCorreo = "Debe introducir una dirección de correo";
var satIntroducirTelef = "Debe introducir un número de teléfono";
var satIntroducirTelefValido = "Debe introducir un número de teléfono válido";
var satIntroducirCP = "Debe introducir un código postal";
var satIntroducirEmpre = "Debe introducir una empresa";
var satIntroducirDirec = "Debe introducir una dirección";
var satIntroducirPobl = "Debe introducir una población";
var satIntroducirProv = "Debe introducir una provincia";
var satIntroducirMailOMarcarNoMail = "Debe introducir una dirección de correo o marcar el campo no tiene email";
var satElegirEspe = "Debe elegir una especialidad";
var satIntroducirMot = "Debe introducir los motivos";
var satRellenarNom = "Debe rellenar el campo nombre";
var satRellenarApel = "Debe rellenar el campo apellidos";
var satRellenarDir = "Debe rellenar el campo dirección";
var satRellenarProv = "Debe rellenar el campo provincia";
var satRellenarPobl = "Debe rellenar el campo población";
var satElegirTipoAp = "Debe elegir algún tipo de aparato";
var satElegirMot = "Debe elegir algún motivo";
var satGestionaContratos = "Debe indicar la gestión de contratos.";
var satConceptoSat = "Debe indicar el código gsat de la reposición.";
var satGSat = "Debe indicar un valor para esGsat.";
var satIdSatAmis = "Debe indicar el Id Sat Amis.";
var mensaje = "El horario debe tener el formato hh:mm - hh:mm";
var mensaje2 = "Debe ser una hora correcta (00:00 - 23:59)";
var mensaje3 = "La 2º hora debe ser mayor que la anterior";

/*
* Función que valida que el código postal sea correcto
* y envía el formulario con los datos de la búsqueda
*/
function buscar (path){   
	var jsp = path + "sat_busqueda.jsp";		
	if ( document.form_sat.codigoPostal.value != ''){
		if(!esNumeroValido(document.form_sat.codigoPostal.value)){
			return;
		}else{
			if (document.form_sat.codigoPostal.value.length!=5){
				alert(satIntroducirCPValido);
				return;
			}else{
				document.form_sat.action = jsp;
				document.form_sat.submit();
			}
		}
	}else{
		if (document.form_sat.idProvincia.value == '' && document.form_sat.poblacion.value == ''){
			alert(satRellenarCampo);
			return;
		}else{
			document.form_sat.action = jsp;
			document.form_sat.submit();
		}
	}
}

function buscarCaldera (){
	var jsp = "sat_busqueda.jsp?revisionCaldera=true";
	if ( document.form_sat.codigoPostal.value != ''){
		if(!esNumeroValido(document.form_sat.codigoPostal.value)){
			return;
		}else{
			if (document.form_sat.codigoPostal.value.length!=5){
				alert("Debe introducir un código postal válido");
				return;
			}else{
				document.form_sat.action = jsp;
				document.form_sat.method="post";
				document.form_sat.submit();
			}
		}
	}else{
		if (document.form_sat.idProvincia.value == ''){
			alert("Debe rellenar algún campo");
			return;
		}else{
			document.form_sat.action = jsp;
			document.form_sat.method="post";
			document.form_sat.submit();
		}
	}
}

/*
* Función que busca el detalle de un sat
*/
function verDetalle(valor){
	document.form_sat.ID.value=valor;
	document.form_sat.action="sat_detalle.jsp";
	document.form_sat.submit();
}
/*
* Función que va a la pagina de alta de un sat
*/
function altaSAT(valor){
	document.form_sat.action="sat_alta.jsp";
	document.form_sat.submit();
}

/*
* Función que busca la página que se le pasa como parámetro
*/
function damePagina(pagina,jsp){
	document.formSAT.action=jsp;
	document.formSAT.pagina.value=pagina;
	document.formSAT.submit();
}

/*
* Función que comprueba que se ha introducido una dirección de correo y que es válido
*/
function direccionCorreoValida( campo ){
	if (campo.value==''){
		alert(satIntroducirCorreo);
		return false;
	}else{
		//si es numerico
		if(!checkMail(campo)){
			return false;
		}else{
			return true;
		}
	}
}

/*
* Función que comprueba que se ha introducido un número de teléfono y que es válido
*/
function telefonoValido(campo){
	if (campo.value==''){
		alert(satIntroducirTelef);
		return false;
	}else{
		//si es numerico
		if(!esNumeroValido(campo.value)){
			return false;
		}else{
			if (campo.value.length!=9){
				alert(satIntroducirTelefValido);
				return false;
			}else{
				return true;
			}
		}
	}
}

/*
* Función que comprueba que se ha introducido un código postal y que es válido
*/
function codigoPostalValido(campo){
	if (campo.value==''){
		alert(satIntroducirCP);
		return false;
	}else{
		//si es numerico
		if(!esNumeroValido(campo.value)){
			return false;
		}else{
			if (campo.value.length!=5){
				alert(satIntroducirCPValido);
				return false;
			}else{
				return true;
			}
		}
	}
}

function validarCamposEmpresa(){

	if (document.form_altaSat.empresa.value == ''){
		alert(satIntroducirEmpre);
		document.form_altaSat.empresa.focus();
		return false;
	}else if (document.form_altaSat.direccion.value==''){
                alert(satIntroducirDirec);
                document.form_altaSat.direccion.focus();
                return false;
        }else if ( document.form_altaSat.poblacionAlta.value==''){
                alert(satIntroducirPobl);
                document.form_altaSat.poblacionAlta.focus();
                return false;
        }else if ( !codigoPostalValido(document.form_altaSat.codigoPostalAlta)){
                document.form_altaSat.codigoPostalAlta.focus();
                return false;
        }else if ( document.form_altaSat.idProvinciaAlta.value == ''){
                alert(satIntroducirProv);
                document.form_altaSat.idProvinciaAlta.focus();
                return false;
        }else if ( document.form_altaSat.email.value== '' && document.form_altaSat.noEmail.checked == false){
                alert(satIntroducirMailOMarcarNoMail);
		document.form_altaSat.email.focus();
                return false;
        }else if ( document.form_altaSat.email.value!= '' && !direccionCorreoValida(document.form_altaSat.email)){
                document.form_altaSat.email.focus();
                return false;
        }else if ( document.form_altaSat.gestiona.value== ''){
        		alert(satGestionaContratos);
                document.form_altaSat.gestiona.focus();
                return false;
        }else if ( document.form_altaSat.idSatAmis.value== ''){
    		alert(satIdSatAmis);
            document.form_altaSat.idSatAmis.focus();
            return false;
        }else if (document.form_altaSat.calefaccionAlta.checked == false && document.form_altaSat.aireAlta.checked == false && document.form_altaSat.ACSAlta.checked == false
        		  && document.form_altaSat.ESolarAlta.checked == false && document.form_altaSat.GeotermiaAlta.checked == false ){
                alert(satElegirEspe);
                return false;
        }else if ( document.form_altaSat.codGsatRepos.value== ''){
    		alert(satConceptoSat);
            document.form_altaSat.codGsatRepos.focus();
            return false;
        }else if ( !document.form_altaSat.esGsat[0].checked && !document.form_altaSat.esGsat[1].checked){
    		alert(satGSat);
            document.form_altaSat.esGsat[0].focus();
            return false;
        }else{
                return true;
        }
}

/*
* Función que valida los campos de los datos laborales
*/
function comprobarCamposLaboral(){
	if ( document.form_altaSat.horLabMan.value != ''){
		if ( !validarHorario(document.form_altaSat.horLabMan)){
			document.form_altaSat.horLabMan.focus();
			return false;
		}
	}
	if ( document.form_altaSat.horLabTar.value != ''){
		if ( !validarHorario(document.form_altaSat.horLabTar)){
			document.form_altaSat.horLabTar.focus();
			return false;
		}
	}
	if ( document.form_altaSat.tfnoLab1.value !=''){
		if ( !telefonoValido(document.form_altaSat.tfnoLab1)){
			document.form_altaSat.tfnoLab1.focus();
			return false;
		}
	}
	if ( document.form_altaSat.tfnoLab2.value !=''){
		if ( !telefonoValido(document.form_altaSat.tfnoLab2)){
			document.form_altaSat.tfnoLab2.focus();
			return false;
		}
	}
	if ( document.form_altaSat.horVerMan.value != ''){
		if ( !validarHorario(document.form_altaSat.horVerMan)){
			document.form_altaSat.horVerMan.focus();
			return false;
		}
	}
	if ( document.form_altaSat.horVerTar.value != ''){
		if ( !validarHorario(document.form_altaSat.horVerTar)){
			document.form_altaSat.horVerTar.focus();
			return false;
		}
	}
	return true;
}

/*
* Función que valida los campos de los datos del fin de semana
*/
function comprobarCamposFinSemana(){
	if ( document.form_altaSat.horFinMan.value != ''){
		if ( !validarHorario(document.form_altaSat.horFinMan)){
			document.form_altaSat.horFinMan.focus();
			return false;
		}
	}
	if ( document.form_altaSat.horFinTar.value != ''){
		if ( !validarHorario(document.form_altaSat.horFinTar)){
			document.form_altaSat.horFinTar.focus();
			return false;
		}
	}
	if ( document.form_altaSat.tfnoFinSemana1.value !=''){
		if ( !telefonoValido(document.form_altaSat.tfnoFinSemana1)){
			document.form_altaSat.tfnoFinSemana1.focus();
			return false;
		}
	}
	if ( document.form_altaSat.tfnoFinSemana2.value !=''){
		if ( !telefonoValido(document.form_altaSat.tfnoFinSemana2)){
			document.form_altaSat.tfnoFinSemana2.focus();
			return false;
		}
	}
	if ( document.form_altaSat.horFinManVer.value != ''){
		if ( !validarHorario(document.form_altaSat.horFinManVer)){
			document.form_altaSat.horFinManVer.focus();
			return false;
		}
	}
	return true;
	if ( document.form_altaSat.horFinTarVer.value != ''){
		if ( !validarHorario(document.form_altaSat.horFinTarVer)){
			document.form_altaSat.horFinTarVer.focus();
			return false;
		}
	}
	return true;
}

/*
* Función que valida los campos de los datos de urgencia
*/
function comprobarCamposUrgencia(){
	if ( document.form_altaSat.tfnoUrgencias1.value !=''){
		if ( !telefonoValido(document.form_altaSat.tfnoUrgencias1)){
			document.form_altaSat.tfnoUrgencias1.focus();
			return false;
		}
	}
	if ( document.form_altaSat.tfnoUrgencias2.value !=''){
		if ( !telefonoValido(document.form_altaSat.tfnoUrgencias2)){
			document.form_altaSat.tfnoUrgencias2.focus();
			return false;
		}
	}
	return true;
}

/*
* Función que valida los campos de los horarios
*/
function camposHorariosValidos(){
	if ( !comprobarCamposLaboral()){
		return false;
	}else{
		if ( !comprobarCamposFinSemana()){
			return false;
		}else{
			if ( !comprobarCamposUrgencia()){
				return false;
			}else{
				return true;
			}
		}
	}
}

/*
* Función que valida los datos del formulario antes de enviarlos
*/
function validarAltaModificacion(){
	if ( !validarCamposEmpresa()){
		return;
	}else{
		//validar campos de los horarios
		if ( !camposHorariosValidos()){
			return;
		}else{
                  //Si quiere desactivar un SAT
           /*       if ( document.form_altaSat.activo.value=='0'){
                        if ( document.form_altaSat.motivosDesactivar.value==''){
				alert(satIntroducirMot);
                                document.form_altaSat.motivosDesactivar.focus();
				return;
                        }else{
				document.form_altaSat.FUNCION.value="desactivar";
				if ( document.form_altaSat.idProvinciaAlta.value != ''){
                                	document.form_altaSat.nombreProvinciaAlta.value = document.form_altaSat.idProvinciaAlta[document.form_altaSat.idProvinciaAlta.selectedIndex].text;
				}
				document.form_altaSat.action = "sat_alta.jsp";
				document.form_altaSat.textoHorarioUrgencia.value = document.form_altaSat.horUrg[document.form_altaSat.horUrg.selectedIndex].text;
                  		document.form_altaSat.submit();
                        }
                  }else{*/
                    if ( document.form_altaSat.idProvinciaAlta.value != ''){
                         document.form_altaSat.nombreProvinciaAlta.value = document.form_altaSat.idProvinciaAlta[document.form_altaSat.idProvinciaAlta.selectedIndex].text;
                    }
                    document.form_altaSat.action = "sat_alta.jsp";
                    document.form_altaSat.textoHorarioUrgencia.value = document.form_altaSat.horUrg[document.form_altaSat.horUrg.selectedIndex].text;
                    document.form_altaSat.submit();
                 // }
		}
	}
}

/*
* Función que valida un campo que contenga un horario
* El formato que debe seguir es hh:mm - hh:mm
* y las horas van desde 00:00 hasta las 23:59
* La segunda hora tiene que ser igual o mayor que la primera
*/
function validarHorario(campo){
	var valor = campo.value;

	if ( valor.indexOf("-") != -1){
		var arrHoras = valor.split("-");
		if ( arrHoras.length==2){
			for ( i=0; i<arrHoras.length;i++){
				//1º hora
				var hora1 = trim(arrHoras[i]);
				if ( hora1.indexOf(":") != -1){
					var arrHora1 = hora1.split(":");
					if ( arrHora1.length == 2){
						//las horas
						var num1 = trim(arrHora1[0]);
						if ( num1.length!= 2 ){
							alert(mensaje);
							return false;
						}else{
							if (!esNumeroValido(num1)){
								return false;
							}else{
								if ( num1 >23){
									alert(mensaje2);
									return false;
								}
							}
						}
						//los minutos
						var num2 = trim(arrHora1[1]);
						if ( num2.length!= 2 ){
							alert(mensaje);
							return false;
						}else{
							if (!esNumeroValido(num2)){
								return false;
							}else{
								if ( num2 >59){
									alert(mensaje2);
									return false;
								}else{
									//la hora y min introducidos son validos
									//Miramos si la primera hora es anterior a la segunda
									//num1 tiene hora --> 2º hora
									//num2 tiene min  --> 2º hora
									if ( i == 1){
									   	var horaAnterior = arrHoras[0];
									   	var arrHoAnterior = horaAnterior.split(":");
									   	var horAnt = trim(arrHoAnterior[0]);
									   	var minAnt = trim(arrHoAnterior[1]);
									   	if ( num1 < horAnt || (num1 ==horAnt && num2< minAnt)){
										   	alert(mensaje3);
										   	return false;
										}
									}
								}
							}
						}
					}else{
						alert(mensaje);
						return false;
					}
				}else{
					alert(mensaje);
					return false;
				}
			//2º hora
		        }//for
		        //Si todo ha ido bien
		        return true;
		}else{
			alert(mensaje);
			return false;
		}
	}else{
		alert(mensaje);
		return false;
	}
}

/*
*   Función que valida los datos de contacto de un formulario de solicitud de asistencia
*/
function validarCamposContacto(){
	
	if ( document.form1.nombre.value == ''){
		alert(satRellenarNom);
		document.form1.nombre.focus();
		return false;
	}else if ( document.form1.apellido.value==''){
                alert(satRellenarApel);
                document.form1.apellido.focus();
                return false;
        }else if ( !dniValido(document.form1.dni.value)){
                document.form1.dni.focus();
                return false;
        }else if ( document.form1.direccion.value==''){
                alert(satRellenarDir);
                document.form1.direccion.focus();
                return false;
        }else if ( document.form1.idProv.value==''){
                alert(satRellenarProv);
                document.form1.idProv.focus();
                return false;
        }else if ( document.form1.poblacionAver.value==''){
                alert(satRellenarPobl);
                document.form1.poblacionAver.focus();
                return false;
        }else if ( !codigoPostalValido(document.form1.codPostal)){
                document.form1.codPostal.focus();
                return false;
        }else if ( !telefonoValido(document.form1.tfnoVivienda)){
                document.form1.tfnoVivienda.focus();
                return false;
        }else if (!direccionCorreoValida(document.form1.email)){
                document.form1.email.focus();
                return false;
        }else if ( document.form1.tfnoContacto.value!= ''){
                if ( !telefonoValido(document.form1.tfnoContacto)){
                        document.form1.tfnoContacto.focus();
                        return false;
                }else{
                        return true;
                }
        }else{
        	return true;
        }
}

/*
*  Función que valida los campos del motivo de la solicitud de la asistencia
*/
function validarMotivoAsistencia(){
	if ( document.form1.TipoAparato.value==''){
		alert(satElegirTipoAp);
		document.form1.TipoAparato.focus();
		return false;
	}else{
		if ( document.form1.idMotivo.value == ''){
			alert(satElegirMot);
			document.form1.idMotivo.focus();
			return false;
		}else{
			return true;
		}
	}
}

function validarCodigoPostalObligatorio(){
        if ( document.form1.codPostal.value==''){
                alert("Debe rellenar el campo código postal");
                document.form1.codPostal.focus();
                return false;
        }else if ( !codigoPostalValido(document.form1.codPostal)){
                alert("El código postal no es válido");
                document.form1.codPostal.focus();
                return false;
        }else{
		return true;
        }
}

/*
*  Función que valida el formulario de de solicitud de asistencia
*/
function validarFormularioAveria(dci,part_id,codSat,motivoSat,part_trade,modificado){
	if ( !validarCamposContacto()){
		return;
	}else{
		if ( !validarMotivoAsistencia()){
			return;
		}else{
			if (!validarCodigoPostalObligatorio()){
				return;
			}else{
                          if (dci!=null && dci!="") document.form1.action = "sat_form_averias.jsp?dci=1&part_id=" + part_id + "&codSat=" + codSat + "&motivoSat=" + motivoSat + "&part_trade=" + part_trade + "&modificado=" + modificado;
                          else document.form1.action = "sat_form_averias.jsp";
                          document.form1.FUNCION.value="enviar";
                          document.form1.nombreProvincia.value = document.form1.idProv.options[document.form1.idProv.selectedIndex].text;
                          document.form1.nombreAparato.value = document.form1.TipoAparato.options[document.form1.TipoAparato.selectedIndex].text;
                          document.form1.motivo.value = document.form1.idMotivo.options[document.form1.idMotivo.selectedIndex].text;
                          document.form1.submit();
			}
		}
	}
}

/*
*  Función para ver el formulario de Asistencia Técnica(formulario de averías)
*/
function verFormAverias(email,nombre,telefono,idSat,dci,part_id,part_trade){
	if ( email != ''){
		document.form_sat.direccionCorreo.value=email;
	}
	if(nombre != ''){
		document.form_sat.nombreSAT.value=nombre;
	}
	if(telefono != ''){
		document.form_sat.telefonoSAT.value=telefono;
	}
	document.form_sat.ID.value=idSat;
	document.form_sat.action="sat_form_averias.jsp";
	document.form_sat.submit();
}

function verFormAveriasCalderas(email,nombre,telefono,idSat,dci,part_id,part_trade){
	if ( email != ''){
		document.form_sat.direccionCorreo.value=email;
	}
	if(nombre != ''){
		document.form_sat.nombreSAT.value=nombre;
	}
	if(telefono != ''){
		document.form_sat.telefonoSAT.value=telefono;
	}
	document.form_sat.ID.value=idSat;
	document.form_sat.action="sat_form_averias.jsp?RevisionDirecta=1&TipoAparato=caldera&RevisionCaldera=1";
	document.form_sat.method="post";
	document.form_sat.submit();
}

function RetornarRevision(){
	document.form_sat.action="sat_Revision_Calderas.jsp?completarBusqueda=1";
	document.form_sat.method="post";
	document.form_sat.submit();
}

/*
*  Función para ver la pantalla de alta de un SAT
*/
function altaSat(){
	document.form_sat.ID.value="";
	document.form_sat.action = "sat_alta.jsp";
	document.form_sat.submit();
}

/*
*  Función para ver la pantalla de modificacion de un SAT
*/
function modificarSat(){
	document.form_sat.ID.value=idSat;
	document.form_sat.action = "sat_alta.jsp";
	document.form_sat.submit();
}

function volverABusqueda(){
	document.form1.action="sat_busqueda.jsp";
	document.form1.submit();
}

function volverABusquedaRevision(){
	document.form1.action="sat_busqueda.jsp?revisionCaldera=true";
	document.form1.method="post";
	document.form1.submit();
}

function volverADetalle(){
	document.form_altaSat.ID.value = document.form_altaSat.ID_VOLVER.value;
	document.form_altaSat.action = "sat_detalle.jsp";
	document.form_altaSat.submit();
}

function volerAccesOK(){
	document.form_altaSat.action = "accessOk.jsp";
	document.form_altaSat.submit();
}

function buscarSAT (path){	
	var jsp = path + "sat_busqueda.jsp";	
	if ( document.form_sat.codigoPostal.value != ''){
		if(!esNumeroValido(document.form_sat.codigoPostal.value)){
			return;
		}else{
			if (document.form_sat.codigoPostal.value.length!=5){
				alert(satIntroducirCPValido);
				return;
			}else{
				document.form_sat.action = jsp;
				document.form_sat.submit();
			}
		}
	}else{
	        document.form_sat.action = jsp;
	       	document.form_sat.submit();
	}
}

function activarMotivos(){
	if( document.form_altaSat.activo.value=='-1'){
		//hay que desactivar el textarea de motivos
		document.form_altaSat.motivosDesactivar.value='';
		document.form_altaSat.motivosDesactivar.disabled=true;
	}else{
		document.form_altaSat.motivosDesactivar.disabled=false;
	}
}

function cambiarCorreo(){
	if( document.form_altaSat.noEmail.checked== true){
        	document.form_altaSat.email.value='';
	}
	
	/*
* Función que comprueba que se ha introducido dni de 9 digitos
*/

}

function dniValido(valor){
	var valorS = new String(valor);
	
	if (valor == null || valor == '') {
		alert("Debe introducir un DNI válido");
		return false;
	} else if (valorS.length != '9') {
		alert("Debe introducir un DNI de 9 dígitos");
		return false;
	} else {
		return true;
	}
}
