/*
* 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 (jsp){
	if ( form1.codigoPostal.value != ''){
		if(!esNumeroValido(form1.codigoPostal.value)){
			return;
		}else{
			if (form1.codigoPostal.value.length!=5){
				alert("Debe introducir un código postal válido");
				return;
			}else{
				form1.action = jsp;
				form1.submit();
			}
		}
	}else{
		form1.action = jsp;
		form1.submit();
	}
}

/*
* Función que busca la página que se le pasa como parámetro
*/
function damePagina(pagina,jsp){
	formDirectorio.action=jsp;
	formDirectorio.pagina.value=pagina;
	formDirectorio.submit();
}

/*
* Función para ver el detalle de un instalador o almacenista
*/
function verDetalle(tipo, id){
	var ancho = 550;
	var alto = 550;
	if (document.all) var xMax = screen.width, yMax = screen.height;
	else
		if (document.layers) var xMax = window.outerWidth, yMax = window.outerHeight;
		else var xMax = 640, yMax=480;
	var xOffset = (xMax - ancho)/2, yOffset = (yMax - alto)/2 - 30;
	if ( tipo == 'almacenista'){
		var jsp="almac_detalleFlotante.jsp?ID="+id+"&TIPO="+tipo;
		window.open(jsp,'Flotante_DetalleAlmacenista','scrollbars=YES,width='+ancho+',height='+alto+',top='+yOffset+',left='+xOffset);
	}else{
		var jsp="instalad_detalleFlotante.jsp?ID="+id+"&TIPO="+tipo;
		window.open(jsp,'Flotante_DetalleAlmacenista','scrollbars=YES,width='+ancho+',height='+alto+',top='+yOffset+',left='+xOffset);
	}
}

/*
*  Función que valida que los datos introducidos son correctos para dar de alta
*/
function darAlta(tipo, jsp, funcion){
	//Comprobar campos comunes
	if ( !comprobarCamposComunes()){
		return;
	}else{
		if ( tipo =='instalador'){
			//Comprobar
			//nif, movil
			if ( !comprobarDatosInstalador()){
				return;
			}else if ( form1.aire.checked == false && form1.calefaccion.checked == false){
					alert("Debe elegir al menos una actividad");
					return;
				}else{
					form1.action=jsp;
					if (funcion == 'modificacion'){
						form1.FUNCION.value="MODIFICACION";
					}else{
						form1.FUNCION.value="ALTA";
					}
					form1.nombre_provincia.value = form1.idProvincia.options[form1.idProvincia.selectedIndex].text;
					form1.submit();
				}
		}else{
		  //tipo almacenista
		  //comprobar productos, actividad
			if (!comprobarDatosAlmacenista()){
				return;
			}else if ( form1.aire.checked == false && form1.calefaccion.checked == false){
                                  alert("Debe elegir al menos un sector");
                                  return;
			}else{
                                  form1.action=jsp;
                                  if (funcion == 'modificacion'){
                                          form1.FUNCION.value="MODIFICACION";
                                  }else{
                                          form1.FUNCION.value="ALTA";
                                  }
                                  form1.nombre_provincia.value = form1.idProvincia.options[form1.idProvincia.selectedIndex].text;
                                  form1.submit();
			}
		}
	}
}

/*
* Función que comprueba que se ha introducido un fax y que es válido
*/
function faxValido(campo){
	if (campo.value==''){
		return true;
	}else{
		//si es numerico
		if(!esNumeroValido(campo.value)){
			return false;
		}else{
			if (campo.value.length!=9){
				alert("Debe introducir un número de fax válido");
				return false;
			}else{
				return true;
			}
		}
	}
}

/*
* 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("Debe introducir una dirección de correo");
		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("Debe introducir un número de teléfono");
		return false;
	}else{
		//si es numerico
		if(!esNumeroValido(campo.value)){
			return false;
		}else{
			if (campo.value.length!=9){
				alert("Debe introducir un número de teléfono válido");
				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("Debe introducir un código postal");
		return false;
	}else{
		//si es numerico
		if(!esNumeroValido(campo.value)){
			return false;
		}else{
			if (campo.value.length!=5){
				alert("Debe introducir un código postal válido");
				return false;
			}else{
				return true;
			}
		}
	}
}

/*
* Función que comprueba que el CIF introducido es válido
*/
function checkCIF(campo){
   var valor = campo.value.toUpperCase();
   if (valor.length != 9 && valor.length != 0){
   	alert("Introduzca 9 caracteres para el campo CIF.")
   	campo.focus();
   }else if(valor.length == 9){
	var toWork = new String(valor.substring(0,9));
	var first = toWork.substring(0,1);
	//var letraCIF = new String ('ABCDEFGHPQS');
	var letraOrg = new String('PQS');
	var isOrg = (letraOrg.indexOf (first) >=0);
	return verificaCIF(toWork, isOrg,campo);
   }
}

/*
* Función que comprueba que el NIF introducido es válido
*/
function checkNIF(campo){
   var valor = campo.value.toUpperCase();
   if (valor.length != 9 && valor.length != 0){
   	alert("Introduzca 9 caracteres para el campo NIF.")
   	campo.focus();
   }else if(valor.length == 9){
	var toWork = new String(valor.substring(0,9));
	return verificaNIF(toWork,campo);
   }
}

/*
* Función que comprueba que no se ha excedido el número de caracteres en el textarea
*/
function comprobarTextArea(campo, numero){
	if ( campo.value==''){
		return true;
	}else{
		if ( campo.value.length>numero){
			alert("La longitud del campo es de " + numero + " caracteres");
			return false;
		}else{
			return true;
		}
	}
}

/*
* Función que comprueba los datos comunes de los formularios de instaladores y almacenistas
*/
function comprobarCamposComunes(){
	//cif, codPostal, telefono, fax,email,web, marcas
	if ( form1.empresa.value == ''){
		alert("Debe introducir una empresa");
		form1.empresa.focus();
		return false;

	}else{
		if ( form1.cif.value!= ''){
			if (!checkCIF(form1.cif)){
				form1.cif.focus();
				return false;
			}
		}
		if ( form1.direccion.value == ''){
			alert("Debe introducir una direccion");
			form1.direccion.focus();
			return false;
		}else if ( form1.poblacion.value == ''){
                        alert("Debe introducir una poblacion");
                        form1.poblacion.focus();
                        return false;
		}else if ( form1.idProvincia.value==''){
                        alert("Debe introducir una provincia");
                        form1.idProvincia.focus();
                        return false;
                }else if (!codigoPostalValido(form1.codigoPostal)){
                        form1.codigoPostal.focus();
                        return false;
                }else if ( !telefonoValido(form1.telefono)){
                        form1.telefono.focus();
                        return false;
                }else if ( !faxValido ( form1.fax)){
                        form1.fax.focus();
                        return false;
                }else if ( !direccionCorreoValida(form1.email)){
                        form1.email.focus();
                        return false;
                }else if ( !comprobarTextArea(form1.marcas, 500)){
                        form1.marcas.focus();
                        return false;
                }else{
                        return true;
                }
	}
}

/*
* Función que comprueba los datos propios del instalador
*/
function comprobarDatosInstalador(){
	//nif, movil
	if ( form1.nif.value!= ''){
		if (!checkNIF(form1.nif)){
			form1.nif.focus();
			return false;
		}
	}
	if (form1.movil.value!= ''){
		if ( !telefonoValido(form1.movil)){
			form1.movil.focus();
			return false;
		}
	}
	return true;
}

/*
* Función que comprueba los datos propios del almacenista
*/
function comprobarDatosAlmacenista(){
	//comprobar productos, actividad
	if ( !comprobarTextArea(form1.productos, 500)){
		form1.productos.focus();
		return false;
	}else{
		if ( !comprobarTextArea(form1.actividad, 500)){
			form1.actividad.focus();
			return false;
		}else{
			return true;
		}
	}
}

/*
* Función para ver la pagina web del instalador o el almacenista
*/
function abrirVentanaURL(paginaURL){
	window.open(paginaURL);
}