/* BORRAR */

borrar_usuario 		= function(a,b,c,d,e){  

	/*	
	cuando se elimina un usuario desde el listado de usuarios
	a = Nombre del usuario a borrar
	b = Apellido del usuario a borrar
	c = id del usuario a borrar
	d = id del usuario actual (el que borra)
	e = $usuario_con_noticias_publicadas en el php (0 o mas)
	*/
  
	// que el usuario activo se estŽ borrando a si mismo
	if(c==d){
		alert("No es posible que un Usuario se borre a si mismo.");
		return false;
	}
  
	// que el usuario a borra sea autor de noticias publicadas  
	if(e>0){  
  
		var  si = confirm(a+" "+b+" es el autor de Noticias publicadas\nSeguro que deseas borrarlo de la Lista de Usuarios?");
		if(si){return true;}else{return false;}
  
		// version antigua cuando no se permitia borrar a un autor
		// alert("Este usuario no se puede borrar por que es autor de Noticias publicadas.");
		// return false;
	}  
	var  si = confirm("Borrar de la Lista de Usuarios a "+a+" "+b+"?");
	if(si){return true;}else{return false;}  
}

borrar_noticia 		= function(a){

	// FUNCION PARA ELIMINAR UNA NOTICIA
	// cuando se elimina una noticia desde el listado de noticias
	
	var  si = confirm("Borrar de la Base de Datos la Noticia publicada el "+a+"?");
	if(si){return true;}else{return false;}
}

borrar_articulo 	= function(a){

	// FUNCION PARA ELIMINAR UN ARTICULO
	// cuando se elimina una noticia desde el listado de noticias
	var  si = confirm("Borrar de la Base de Datos el Articulo publicado el "+a+"?");
	if(si){return true;}else{return false;}
}

borrar_categoria 	= function(a){

	// FUNCION PARA ELIMINAR UNA CATEGORIA
	// cuando se elimina una categoria desde el administrador de categorias

	var  si = confirm("\xBFEst\xE1s seguro que quieres borrar la Categoria "+a+"?");
	if(si){return true;}else{return false;}
}

/* VALIDAR */

validar_login 		= function(a){	
  
	// expresiones regulares
	var er_invalid =/[!#$&*+=|\\/]/;  
 
	if(er_invalid.test(a.login.value)){   
		a.login.value="";
		a.login.focus();
		return false;
	}  
  
	if(er_invalid.test(a.password.value)){   
		a.password.value="";
		a.password.focus();
		return false;
	}  
}

validar_usuario 	= function(a){

	// FUNCION PARA VALIDAR EL INGRESO DE UN NUEVO USUARIO
	// validacion de formulario de usuario
  
	// expresiones regulares
	var er_nombre=/([0-9]|[!@#$&*+=|_\.\\/])/;
	var er_email=/[!#$&*+=|\\/]/;
	var er_telefono = /^([0-9\s\+\-])+$/;
  
	// variables para la validaci—n del email
	var str=a.email.value;
	var ar="@";
	var pto=".";
	var lar=str.indexOf(ar);
	var lpto=str.indexOf(pto);
	var largo=str.length;
  
	var alerta_email_1 = "Debes indicar una direccion de email.";
	var alerta_email_2 = "Direccion de email incorrecta.";
	var alerta_email_3 = "extencion de email incorrecta";
  
	if(a.nombre.value==""){
		alert("Por favor, debes indicar el nombre del nuevo usuario.");
		a.nombre.focus();
		return false;
	}

	if(a.apellido.value==""){
		alert("Por favor, debes indicar el apellido del nuevo usuario.");
		a.apellido.focus();
		return false;
	}

	// validacion del nombre y apellido para caracteres extra–os via expresiones regulares (er)
	// ojo que la misma validaci—n se hace luego en php (ver si es necesario)  
	if(er_nombre.test(a.nombre.value)){
		alert("El Nombre que has indicado no es correcto.");
		a.nombre.focus();
		return false;
	}

	if(er_nombre.test(a.apellido.value)){
		alert("El Apellido que has indicado no es correcto.");
		a.apellido.focus();
		return false;
	}  
  
	// validacion del mail *******************
	if(a.email.value == ""){
		alert(alerta_email_1);
		a.email.focus();
		return false;
	} 
	if(lar==-1 || lar==0 || lar==(largo-1)){
		alert(alerta_email_2);   
		a.email.focus();
		return false;
	}	
	if(lpto==-1 || lpto==0 || lpto==(largo-1)){
		alert(alerta_email_2);
		a.email.focus();
		return false;
	}
	if(str.indexOf(ar,(lar+1))!=-1){
		alert(alerta_email_2);
		a.email.focus();
		return false;
	}
	if(str.substring(lar-1,lar)==pto || str.substring(lar+1,lar+2)==pto){
		alert(alerta_email_2);
		a.email.focus();
		return false;
	}
	if(str.indexOf(pto,(lar+2))==-1){
		alert(alerta_email_2);
		a.email.focus();
		return false;
	}
	if(str.indexOf(" ")!=-1){
		alert(alerta_email_2);
		a.email.focus();
		return false;
	}
  
	// validacion para que la direccion email tenga mas de 1 caracter luego del punto
	var email_array=str.split(".");
	var email_array_largo=email_array.length;
	var email_extension=email_array[(email_array_largo)-1];
	var email_extension_largo=email_extension.length;

	//
	if(email_extension_largo<2){
		alert(alerta_email_3);
		a.email.focus();
		return false;
	}

	// validacion del mail para que no se metan caracteres extra–os
	if(er_email.test(a.email.value)){
		alert(alerta_email_1);
		a.email.focus();
		return false;
	} 
	
	// si se ha incluido una ciudad, se exije poner el pais
	if(a.ciudad.value!="" && a.pais.value==""){
		alert("Por favor, indica el pais.");
		return false;
	}
	
	// si se ha seleccionado un dia, un mes o un a–o, se exige la fecha completa
	if(a.dia.value!="ninguno" || a.mes.value!="ninguno" || a.ano.value!="ninguno"){
		
		if(a.dia.value=="ninguno" || a.mes.value=="ninguno" || a.ano.value=="ninguno"){
			alert("La fecha de nacimiento que has indicado nos es correcta.");
			a.dia.focus();
			return false;
		}		
	}
}

validar_noticia 	= function(accion){ 

	// FUNCION PARA VALIDAR LA PUBLICACION DE UNA NOTICIA
	// validar publicacion de noticia
	// accion (para definir si se esta publicando o editando una noticia y exijir foto o no)

	// se toma el formulario
	var a = document.formulario;
  
  	// categoria
	if(a.categoria.value==""){
		alert("Debes indicar la Categor\xEDa a la que pertenece la Noticia.");
		a.categoria.focus();
		return false;
	}
  
	// titulo
	if(a.titulo.value==""){
		alert("Debes indicar el T\xEDtulo de la Noticia.");
		a.titulo.focus();
		return false;
	}
	
	// cliente
	if(a.cliente.value==""){
		alert("Debes indicar el Cliente con el cual se encuentra relacionada la Noticia.");
		a.cliente.focus();
		return false;		
	}
	
	// fecha
	if(a.dia.value=="ninguno"){
		alert("La fecha que has indicado no es v\xE1lida.");
		a.dia.focus();
		return false;
	}
	if(a.mes.value=="ninguno"){
		alert("La fecha que has indicado no es v\xE1lida.");
		a.mes.focus();
		return false;
	}
	if(a.ano.value=="ninguno"){
		alert("La fecha que has indicado no es v\xE1lida.");
		a.ano.focus();
		return false;
	}
	
	// resumen
	if(a.resumen.value==""){
		alert("Debes indicar un Resumen de la noticia para el apartado Noticias de la home en la web de EFFIO.");
		a.resumen.focus();
		return false;	
	}
  
	// texto
	if(a.texto.value==""){
		alert("Debes escribir el texto del cuerpo de la Noticia.");
		a.texto.focus();
		return false;
	}  
	
	// si se esta indicando un link se comprueba que el url tenga contenido
	if(a.link.value!=""){		
		
		// se toma el valor del campo url
		var url = a.url.value;
		url = url.substring(0,7);		
		
		// si el url esta vacio
		if(url==""){
			alert("Debes indicar el URL para el enlace.");
			a.url.focus();
			return false;
		}		
		
		// se valida que el url contenga al menos http://		
		if(url!="http://"){
			alert("El URL que has indicado para el enlace no es correcto, debe tener formato http://www.enlace.com");
			a.url.focus();
			return false;			
		}
	}
	
	// si se esta indicando un url se comprueba que el link no este vacio
	if(a.url.value!=""){		
		
		// se comprueba que no este vacio
		if(a.link.value==""){				
			alert("Debes indicar alg\xFAn Link para el enlace que estas indicando.");
			a.link.focus();
			return false;			
		}		
	}	
  
	// imagen en el caso de publicar una noticia nueva
	if(accion=="publicar"){    
    
		if(a.imagen.value==""){
			alert("Para publicar una noticia es necesario seleccionar al menos una Im\xE1gen.");
			a.imagen.focus();
			return false;      
		}
    
		// formato
		var cadena = a.imagen.value;
		var ext = cadena.substring(cadena.length-3,cadena.length);
		ext = ext.toLowerCase();
    
		if(ext != "jpg"){
			alert("El archivo que has seleccionado para la im\xE1gen no es v\xE1lido. Debes elegir una im\xE1gen con formato JPG.");
			a.imagen.focus();
			return false;
		}
	}
  
	// imagen en el caso de editar
	if(accion=="editar"){
	
		if(a.imagen.value!=""){
 
			var cadena = a.imagen.value;
			var ext = cadena.substring(cadena.length-3,cadena.length);
			ext = ext.toLowerCase();
      
			if(ext != "jpg"){
				alert("El archivo que has seleccionado para la im\xE1gen no es v\xE1lido. Debes elegir una im\xE1gen con formato JPG.");
				a.imagen.focus();
				return false;
			}
		}
	}
  
	// video (no es obligatorio)
	if(a.video.value!=""){  
 
		var cadena = a.video.value; 
  
		// evitar que se ponga solo .flv
		if(cadena.length<5){
			alert("El nombre del archivo de video que has seleccionado es no es correcto");
			a.video.focus();
			return false;
		}   
    
    	// extension
		var ext = cadena.substring(cadena.length-3,cadena.length);
		ext = ext.toLowerCase();
    
		if(ext != "flv"){      
			alert("El formato del archivo que has seleccionado para el video es incorrecto. Por favor elige uno en formato flv.");
			a.video.focus();
			return false;
		}    
	}
	
	// se submit el form	
	a.submit();
}

validar_articulo 	= function(accion){

	// se toma el formulario
	var a = document.formulario;
	
	// categoria
	if(a.categoria.value==""){
		alert("Debes indicar la Categor\xEDa a la que pertenece el Articulo.");
		a.categoria.focus();
		return false;
	}
	
	// titulo
	if(a.titulo.value==""){
		alert("Debes indicar el T\xEDtulo del Articulo.");
		a.titulo.focus();
		return false;
	}
	
	// fecha
	if(a.dia.value=="ninguno"){alert("La fecha que has indicado no es v\xE1lida.");a.dia.focus();return false;}
	if(a.mes.value=="ninguno"){alert("La fecha que has indicado no es v\xE1lida.");a.mes.focus();return false;}
	if(a.ano.value=="ninguno"){alert("La fecha que has indicado no es v\xE1lida.");a.ano.focus();return false;}
	
	// texto
	if(a.texto.value==""){
		alert("Debes indicar el Texto del cuerpo del Articulo.");
		a.texto.focus();
		return false;
	}
	
	// publicar
	if(accion=="publicar"){
	
		// se comprueba primero si se ha seleccionado una imagen para subir o no
		if(a.imagen.value==""){
		
			// si no se ha puesto nada en el embed se sale
			if(a.embed.value==""){
				alert("Para publicar un Articulo debes al menos:\r\r - Adjuntar una imagen\r - Subir un v\xEDdeo (incluyendo imagen)\r - Incluir el c\xF3digo embed de alg\xFAn video externo\r\r Si tienes dudas, por favor revisa las instrucciones.");
				a.imagen.focus();
				return false;      
			}			
		}
		
		// si se ha seleccionado una imagen
		if(a.imagen.value!=""){
		
			// 1. se comprueba el formato del archivo			
			var cadena = a.imagen.value;
			var ext = cadena.substring(cadena.length-3,cadena.length);
			ext = ext.toLowerCase();
    
			if(ext != "jpg"){
				alert("El archivo que has seleccionado para la imagen no es v\xE1lido. Debes elegir una im\xE1gen con formato JPG.");
				a.imagen.focus();
				return false;
			}
		
			// 2. se comprueba el formato del video (si se esta subiendo)
			if(a.video.value!=""){
			
				// se comprueba el formato del archivo			
				var cadena = a.video.value;
				var ext = cadena.substring(cadena.length-3,cadena.length);
				ext = ext.toLowerCase();
    
				if(ext != "flv"){
					alert("El archivo que has seleccionado para el video no es v\xE1lido. Debes elegir un archivo con formato FLV.");
					a.imagen.focus();
					return false;
				}			
			}
		
			// 3. se comprueba que no se este agregando un embed
			if(a.embed.value!=""){
				alert("Si estas eligiendo una imagen o un video flv para subir no es posible agregar un embed.");
				a.embed.focus();
				return false;
			}			
		}		
	
	}
	
	// editar
	if(accion=="editar"){
	
		// al editar es necesario comprobar si el articulo que se esta editando tiene embed o archivos (imagen y video)		
		if(a.embed){
			
			// cuando es un embed
			if(a.embed.value==""){
				alert("Debes indicar un codigo embed para el articulo.");
				a.embed.focus();
				return false;
			}
			
		}else{
		
			// se comprueba si se esta cambiando la imagen
			if(a.imagen.value!=""){
		
				// 1. se comprueba el formato del archivo			
				var cadena = a.imagen.value;
				var ext = cadena.substring(cadena.length-3,cadena.length);
				ext = ext.toLowerCase();
    
				if(ext != "jpg"){
					alert("El archivo que has seleccionado para la imagen no es v\xE1lido. Debes elegir una im\xE1gen con formato JPG.");
					a.imagen.focus();
					return false;
				}
		
				// 2. se comprueba el formato del video (si se esta subiendo)
				if(a.video.value!=""){
			
					// se comprueba el formato del archivo			
					var cadena = a.video.value;
					var ext = cadena.substring(cadena.length-3,cadena.length);
					ext = ext.toLowerCase();
    
					if(ext != "flv"){
						alert("El archivo que has seleccionado para el video no es v\xE1lido. Debes elegir un archivo con formato FLV.");
						a.imagen.focus();
						return false;
					}			
				}				
			}		
		}		
	
	}
		
	// se submit el form	
	a.submit();	
}

validar_proyecto 	= function(a,b){ 

	// FUNCION PARA VALIDAR LA PUBLICACION DE UN PROYECTO
	// validar alta/edicion/publicacion de proyectos
	// a = el formulario
	// b = define que tipo de formulario (con que campos) se va a validar en relacion al valor de $_GET['action'] 

	// b = 0 => alta proyecto
	// b = 1 => editar proyecto no publicado
	// b = 2 => editar proyecto publicado
	// b = 3 => publicar proyecto
  
  
	// caracteres no validos para cualquiera de los campos
	// var er_invalid =/[!#$*+=|\\/]/;  

	var er_invalid =/[!#$*+=|]/;
  

	// REFERENCIA
	// (para todos los casos de formularios) 
	// * se hizo por separado la validacion de cada campo (ver mas adelante) para todos los casos 
	// por si en algun momento se cambia de idea
	// para alta y edicion de proyecto no publicado se valida la referencia
	if(b==0 || b==1 || b==2){  
    
		var ref_cadena = a.referencia.value;
		var ref_alert = "El n\xFAmero de referencia del Proyecto debe tener formato FF-0000 \xF3 TV-0000 (dos primeras letras en may\xFAsculas).";    
    
		// vacio o 0000
		if(ref_cadena=="FF-0000" || ref_cadena==""){
			alert("Debes indicar el n\xFAmero de referencia del Proyecto.");
			a.referencia.value="";
			a.referencia.focus();
			return false;	
		} 
    
		// referencia con menos carcateres
		var ref_large = a.referencia.value;
		var ref_large = ref_large.length;

		if(ref_large!=7){
			alert(ref_alert);
			a.referencia.focus();
			return false;
		}
    
		// debe tener separador FF-0000
		var ref_sep = ref_cadena.indexOf("-");
		
		if(ref_sep!=2){
			alert(ref_alert);
			a.referencia.focus();
			return false;
		}     
    
		// se conprueba que las dos primeras letras sean FF o TV
		var ref_letras = ref_cadena.substring(0,2);
		if(ref_letras !="FF" && ref_letras != "TV"){
			alert(ref_alert);
			a.referencia.focus();
			return false;
		}    
    
		// se comprueba que los numeros sea 4 y solo numeros
		var ref_numeros = ref_cadena.substring(3,7);
		var er_referencia = /\D/; 
  
		if(er_referencia.test(ref_numeros)){
			alert(ref_alert);
			a.referencia.focus();
			return false;
		}     
	}
  
	// CATEGORIA (cuando no se ha seleccionado ninguna)
	if(b==0 || b==1 || b==2 || b==3){
    
		if(a.categoria.value==""){
			alert("Debes indicar la Categor\xEDa a la que pertenece el Proyecto.");
			a.categoria.focus();
			return false;
		}
	}
  
	// NOMBRE 
	// (para todos los casos)
	if(b==0 || b==1 || b==2 || b==3){  
  
		if(a.nombre.value==""){
			alert("Debes indicar el Nombre del Proyecto.");
			a.nombre.focus();
			return false;
		}
    
		if(er_invalid.test(a.nombre.value)){ 
			alert("El Nombre del Proyecto tiene caract\xE9res no v\xE1lidos.");    
			a.nombre.focus();
			return false;
		}  
	} 
  
	// TITULO
	// edicion proyecto publicado y publicacion
	if(b==2 || b==3){
   
		if(a.titulo.value==""){
			alert("Debes indicar el T\xEDtulo del Proyecto.");
			a.titulo.focus();
			return false;
		} 
    
		if(er_invalid.test(a.titulo.value)){ 
			alert("El T\xEDtulo del Proyecto tiene caract\xE9res no v\xE1lidos.");    
			a.titulo.focus();
			return false;
		}  
	} 
  
	// CLIENTE
	// para todos los casos
	if(b==0 || b==1 || b==2 || b==3){
  	
		if(a.cliente.value==""){
			alert("Debes indicar el Cliente del Proyecto.");
			a.cliente.focus();
			return false;    
		}  
    
		if(er_invalid.test(a.cliente.value)){ 
			alert("El nombre del Cliente del Proyecto tiene caract\xE9res no v\xE1lidos.");    
			a.cliente.focus();
			return false;
		}  
	} 
  
	// FECHAS 
	// se pasaron los valores de los campos a numero multiplicandolos * 1 para evitar errores del js al tomarlos como cadenas
	// para todos los casos alta, editar (no/si publicado) y publicar existen al menos dos fechas : fecha entrada y salida
	if(b==0 || b==1 || b==2 || b==3){    
   
		var dia_entrada = (a.dia_entrada.value) *1;
		var mes_entrada = (a.mes_entrada.value) *1;
		var ano_entrada = (a.ano_entrada.value) *1;
 
		var dia_salida  = (a.dia_salida.value)  *1;
		var mes_salida  = (a.mes_salida.value)  *1;
		var ano_salida  = (a.ano_salida.value)  *1;
	}
  
	// ya para los casos de editar (si/no publicado) y publicar existe ademas la fecha entrega
	if(b==1 || b==2 || b==3){  
    
		var dia_entrega = (a.dia_entrega.value) *1;
		var mes_entrega = (a.mes_entrega.value) *1;
		var ano_entrega = (a.ano_entrega.value) *1;
	}
  
	// en rigor, las posibilidades de combinacion entre fechas es:
	//
	// fecha entrada = fecha salida						(si)
	// fecha entrada = fecha salida = fecha entrega		(si)
	// fecha salida  = fecha entrega					(si)
	// fecha entrega < fecha salida						(si)
	// 
	// fecha salida  < fecha entrada					(no)	(caso A)
	// fecha entrega < fecha entrada					(no)	(caso B)
	// 
  
	//////////////////////////////////////////////////////////////////////////////
  
	// a = input
	// b = entrada/salida/entrega
	function fecha_nula(tipo_fecha){ 
    
		var vd = a['dia_' + tipo_fecha].value;
		var vm = a['mes_' + tipo_fecha].value;
		var va = a['ano_' + tipo_fecha].value;
    
		if(vd =="ninguno" || vm =="ninguno" || va =="ninguno"){
 
			// si es que todos son nulos
			if(vd =="ninguno" && vm =="ninguno" && va =="ninguno"){      
				alert("Debes indicar una fecha de " + tipo_fecha + " del Proyecto");        
			}else{
				alert("La fecha de " + tipo_fecha + " que has ingresado para el Proyecto es incorrecta");        
			}
      
			// se le da el valor false
			v = false;      
		}else{
			v = true;
		}
		return v;
	} 
  
	// ALTA (entrada/salida)
	if(b==0){    
  
		// se llama la funcion y se evalua
		fecha_nula("entrada");
		if(v==false) return v;
  	
		fecha_nula("salida");
		if(v==false) return v; 	
    
		////////////////////////////////////////////////////////////////////////////
   
		// entrada = salida (confirmacion)
		if((dia_entrada == dia_salida) && (mes_entrada == mes_salida) && (ano_entrada == ano_salida)){
			var c = confirm("La fecha de entrada y la fecha de salida del Proyecto son iguales, \xBFSeguro que quieres dar de alta el Proyecto?");
			if(!c){return false;}
		}    
    
		// salida < entrada (caso A)
		if(ano_entrada>ano_salida){
			alert("La fecha de salida del Proyecto es inferior a la fecha de entrada.");
			return false;
		}  
   
		// cuando los a–os son iguales
		if(ano_entrada == ano_salida){    
			// mes
			if(mes_salida < mes_entrada){
				alert("La fecha de salida del Proyecto es inferior a la fecha de entrada.");
				return false;
			}    
			
			// dia
			if(mes_entrada == mes_salida){
				if(dia_salida < dia_entrada){
					alert("La fecha de salida del Proyecto es inferior a la fecha de entrada.");
					return false;
				}
			}
		}  
	}
  
	// EDICION Y PUBLICACION (entrada/salida/entrega) 
	if(b==1 || b==2 || b==3){   
    
		// para los dor tipos de edicion, proyecto publicado y no, y para la publicacion se exigen las fechas de entrada y de salida    
		fecha_nula("entrada");
		if(v==false) return v; 	
    
		fecha_nula("salida");
		if(v==false) return v;
  	
		// si se esta editando un proyecto no publicado se debe evitar solo que la fecha de entrega sea erronea
		if(b==1){  		
  		
			// pero si puede ser nula, 
			if(a.dia_entrega.value=="ninguno" || a.mes_entrega.value=="ninguno" || a.ano_entrega.value=="ninguno"){
				if(a.dia_entrega.value != "ninguno" || a.mes_entrega.value != "ninguno" || a.ano_entrega.value != "ninguno"){
					alert("La fecha de entrega que has ingresado para el Proyecto es incorrecta"); 
					return false;
				}
			}  	
		}
    
		// solo para publicar y editar un proyecto publicado se exige la fecha de entrega
		// y se deberia validar el url*****
		if(b==2 || b==3){    	
  
			fecha_nula("entrega");
			if(v==false) return v; 
		}
    
		////////////////////////////////////////////////////////////////////////////
  
		// entrada = salida (confirmacion)
		if((dia_entrada == dia_salida) && (mes_entrada == mes_salida) && (ano_entrada == ano_salida)){
			var c = confirm("La fecha de entrada y la fecha de salida del Proyecto son iguales, \xBFSeguro que quieres dar de alta el Proyecto?");
			if(!c){
				return false;
			}
		}   

		// salida < entrada (caso A)
		if(ano_salida<ano_entrada){
			alert("La fecha de salida del Proyecto es anterior a la fecha de entrada.");
			return false;
		}    

		// cuando los a–os son iguales
		if(ano_entrada == ano_salida){    
			
			// mes
			if(mes_salida<mes_entrada){
				alert("La fecha de salida del Proyecto es inferior a la fecha de entrada.");
				return false; 
			}        
			
			// dia
			if(mes_entrada == mes_salida){
				if(dia_salida<dia_entrada){
					alert("La fecha de salida del Proyecto es inferior a la fecha de entrada.");
					return false;
				}
			}      
		}    

		// entrega < entrada (caso B)
		if(ano_entrega<ano_entrada){
			alert("La fecha de entrega del Proyecto es anterior a la fecha de entrada.");
			return false;
		}    

		// entrega < entrada (caso B)
		if(ano_entrada == ano_entrega){    
			
			// mes
			if(mes_entrega<mes_entrada){
				alert("La fecha de entrega del Proyecto es inferior a la fecha de entrada.");
				return false; 
			}       
			
			// dia
			if(mes_entrada == mes_entrega){
				if(dia_entrega<dia_entrada){
					alert("La fecha de entrega del Proyecto es inferior a la de entrada.");
					return false;
				}
			}      
		}    
	}   
  
	// DESCRIPCION  
	
	// para los casos de editar proyecto publicado y publicar se valida la descripcion
	if(b==2 || b==3){
		
		// descripcion
		if(a.descripcion.value==""){
			alert("Debes escribir un texto de descripci\xF3n del Proyecto.");
			a.descripcion.focus();
			return false;
		}
	}  
  
	// ARCHIVOS PUBLICACION DE PROYECTO
	// se detecta si se esta publicando un video + una imagen o si se esta subiendo un numero de imagenes
	var archivo_flv = document.getElementById("radio1");
	var archivo_img = document.getElementById("radio2");   
  
	// si se ha seleccionado un proyecto interno para publicar 
	// hay que validar el radio swf 
	if(a.tipo.value=="Interno"){
  
		var archivo_swf = document.getElementById("radio3");     
		
		if(archivo_swf.checked){    
 
			// 1. se comprueba que el input del swf no este vacio
			if(a.swf.value==""){
				alert("Debes Adjuntar un archivo Swf.");
				a.swf.focus();
				return false;
			} 
      
			// 2. que el formato del archivo del swf sea swf
			var ext = a.swf.value;
			var ext = ext.substring(ext.length-4,ext.length);
			var ext = ext.toLowerCase();    
   
			if(ext!=".swf"){
				alert("El formato del archivo debe ser .swf"); 
				a.swf.focus();
				return false;
			}
		}    
	}  
  
	//////////////////////// cuando se esta subiendo un video + una foto  
	if(archivo_flv.checked){   
   
		// 1. se comprueba que el input de la imagen no este vacio 
		if(a.imagen.value==""){
			alert("Para publicar el Proyecto\nes necesario adjuntar alguna im\xE1gen.");
			a.imagen.focus();
			return false;
		}    
    
		// 2. que el formato del archivo de la imagen sea jpg
		var ext = a.imagen.value;
		var ext = ext.substring(ext.length-4,ext.length);
		var ext = ext.toLowerCase();    
    
		if(ext!=".jpg"){
			alert("El formato de la im\xE1gen debe ser .jpg"); 
			a.imagen.focus();	
			return false;
		}
    
		// 3. se comprueba que el input del video no este vacio 
		if(a.video.value==""){
			alert("Debes adjuntar alg\xFAn v\xEDdeo para publicar el Proyecto.");
			a.video.focus();
			return false;
		} 
    
		// 4. que el formato del archivo del video sea flv
		var ext = a.video.value;
		var ext = ext.substring(ext.length-4,ext.length);
		var ext = ext.toLowerCase();    
   
		if(ext!=".flv"){
			alert("El formato del v\xEDdeo debe ser .flv"); 
			a.video.focus();
			return false;
		}    
	}
  
	///////////////////////// cuando se esta subiendo un conjunto de imagenes
	if(archivo_img.checked){
		
		// 1. se debe recibir la acntidad de imagenes que se van a subir
		var numero_de_imagenes = a.numero_de_imagenes.value;
  
		// cunado no se ha seleccionado ningun numero de imagenes
		if(numero_de_imagenes==""){
			alert("Por favor, selecciona la cantidad de im\xE1genes que quieres publicar.");
			a.numero_de_imagenes.focus();
			return false;
		}   
    
		// 2. se comprueba que el input de cada imagen no este vacio    
		for(i=1;i<=numero_de_imagenes;i++){
			if(a["imagen"+i].value==""){
				alert("Falta incluir el archivo en la im\xE1gen "+i);
				a["imagen"+i].focus();
				return false;
			} 
    
			// se comprueba que e l archivo se jpg
			var ext = a["imagen"+i].value;
			var ext = ext.substring(ext.length-4,ext.length);
			var ext = ext.toLowerCase();
    
			if(ext!=".jpg"){
				alert("El archivo incluido para la im\xE1gen "+i+" no tiene extenci\xF3n .jpg");
				a["imagen"+i].focus();
				return false;
			}
		}    
	}  
}

validar_categoria 	= function(a,b){ 

	// FUNCION PARA VALIDAR ALTA DE CATEGORIA
	// a = el formulario
	// b = alta = 0/editar = 1
  
	// nombre
	if(a.nombre.value==""){
		alert("Debes indicar el Nombre de la Categoria.");
		a.nombre.focus();
		return false;
	} 
}

validar_publicacion	= function(a,b){	

	// FUNCION PARA VALIDAR LA PUBLICACION Y VISTA PREVIA DEL BOLETIN DE NOTICIAS
	// a = el objeto formulario
	// b = si es publicacion o vista previa
  
	// numero de elementos relacionados sin boton previsualizar
	num_elementos = a.elements.length -1;
  
	// numero de noticias
	num_noticias = num_elementos/2;
  
	// se calcula la cantidad de noticias seleccionadas
	noticias_seleccionadas = 0;
  
	// se hace un objeto noticias
	noticia = new Object();  
	c=0;   
	for(i=0;i< num_elementos;i++){   
    
		// se van recorriendo todos los checkbox para saber si estan seleccionados
		if(a.elements[i].checked){       

			noticia[c] = new Object();      
			noticia[c].id  = a.elements[i].name;
			noticia[c].pos = a.elements[i-1].value;
    
			// se aumenta el numero de noticias seleccionadas
			noticias_seleccionadas++;     
			c++;
		}
	} 
  
	// si no se ha seleccionado ninguna noticia se alerta 
	if(noticias_seleccionadas == 0){alert("Debes seleccionar al menos una noticia\npara publicar un Boletin.");return false;} 
  
	// pagina de destino de la vista previa
	my_page  = "visor_boletin.php?num="+noticias_seleccionadas;	
  
	for(i=0;i< noticias_seleccionadas;i++){
    
		// se comprueba que ninguna de las posiciones de las noticias seleccionadas esten sin numero (--)
		if(noticia[i].pos == ''){alert("Una de las posiciones no es correcta.");return false;}
  
		//se comprueba que no haya posiciones iguales
		for(e=0;e< noticias_seleccionadas;e++){
			if(i!=e && (noticia[i].pos == noticia[e].pos)){
				alert("Hay dos posiciones que son iguales.");
				return false;
			}      
		}    
   
		// se comprueba que el orden sea correlativo
		// total_1 es el total correcto que deber’a resultar de sumar las posiciones
		// total_2 es el total de sumar las posiciones
		// si son diferentes, quiere decir que los ordenes indicados no es correlativos    
  
		total_1 = 0;
		total_2 = 0;
    
		for(e=0;e< noticias_seleccionadas;e++){
			total_1 += e;
			total_2 += parseInt(noticia[e].pos);      
		}
   
		if(total_1!=total_2){
			alert("El orden de noticias indicado no es correcto.");
			return false;
		}    
    
		// se le suman los valores get al url
		my_page += "&id"+i+"="+noticia[i].id+"&pos"+i+"="+noticia[i].pos;    
	}
  
	// valor del input file del logo
	var my_banner = a.archivo.value;
 
	// si se esta subiendo un logo
	if(my_banner!=""){
    
		var ext = my_banner.substring(my_banner.length-3,my_banner.length);
		ext = ext.toLowerCase(); 
    
		if(ext != "jpg" && ext != "gif"){
			alert("El formato del archivo que has seleccionado es "+ext+".\nPor favor elige uno JPG o GIF.");     
			a.archivo.focus();
			return false;
		}
      
		// se le pasa la variable al visor de boletines
		my_page += "&banner="+a.archivo.value;
	}
  
	// se define si es vista previa o publicacion y dependiendo de eso se hace lo que corresponda
	if(b == "vista previa"){   
    
		// se abre la pagina con el previo del bolet’n  
		window.open(my_page,"visor","status=no,scrollbars=yes,width=686,height="+screen.height+",top=0,left=0");
		return false;
  
	}else if(b == "publicar"){   
  
		alerta_publicar  = "Estas seguro que las noticias que has seleccionado, y el orden en el que las has organizado es el correcto para publicar el Boletin?\n\n"; 
    
		//alerta_publicar += "- Guardar en la BD un nuevo Boletin\n";
		//alerta_publicar += "- Enviarlo por email a todos los usuarios de FF/TVW"
		var c = confirm(alerta_publicar);
		if(!c){return false;}
	}
}

validar_banner 		= function(a){

	// FUNCION PARA VALIDAR AL SUBIR UN BANNER
	//funcion para validar el logo en subir_banner.php
  
	// si no se ha seleccionado nada
	if(a.archivo.value==""){
		alert("Debes elegir algun archivo jpg o gif para subir.");
		return false;
	}
  
	// valor del input file del logo
	var my_banner = a.archivo.value;

	// si se esta subiendo un logo

	var ext = my_banner.substring(my_banner.length-3,my_banner.length);
	ext = ext.toLowerCase(); 
    
	if(ext != "jpg" && ext != "gif"){
		alert("El formato del archivo que has seleccionado es "+ext+".\nPor favor elige uno JPG o GIF.");     
		a.archivo.focus();
		return false;
	}
}

validar_comentario 	= function(a){

	// FUNCION PARA VALIDAR EL FORMULARIO DE COMENTARIOS
	// validar formulario de comentarios
  
	// expresiones regulares
	var er_nombre=/([0-9]|[!@#$&*+=|_\.\\/])/;
	var er_email=/[!#$&*+=|\\/]/;  
  
	// variables para la validaci—n del email
	var str=a.email.value;
	var ar="@";
	var pto=".";
	var lar=str.indexOf(ar);
	var lpto=str.indexOf(pto);
	var largo=str.length;
  
	var alerta_email_1 = "Debes indicar una direccion de email.";
	var alerta_email_2 = "Direccion de email incorrecta.";
	var alerta_email_3 = "extencion de email incorrecta";
  
	if(a.nombre.value==""){
		alert("Debes indicar un nombre.");
		a.nombre.focus();
		return false;
	}
  
	// validacion del nombre y apellido para caracteres extra–os via expresiones regulares (er)
	// ojo que la misma validaci—n se hace luego en php (ver si es necesario)  
	if(er_nombre.test(a.nombre.value)){
		alert("El Nombre indicado no es correcto.");
		a.nombre.focus();
		return false;
	}  
  
	// validacion del mail *******************
	if(a.email.value == ""){
		alert(alerta_email_1);
		a.email.focus();
		return false;
	}
	if(lar==-1 || lar==0 || lar==(largo-1)){
		alert(alerta_email_2);   
		a.email.focus();
		return false;
	}
	if(lpto==-1 || lpto==0 || lpto==(largo-1)){
		alert(alerta_email_2);
		a.email.focus();
		return false;
	}
	if(str.indexOf(ar,(lar+1))!=-1){
		alert(alerta_email_2);
		a.email.focus();
		return false;
	}
	if(str.substring(lar-1,lar)==pto || str.substring(lar+1,lar+2)==pto){
		alert(alerta_email_2);
		a.email.focus();
		return false;
	}
	if(str.indexOf(pto,(lar+2))==-1){
		alert(alerta_email_2);
		a.email.focus();
		return false;
	}
	if(str.indexOf(" ")!=-1){
		alert(alerta_email_2);
		a.email.focus();
		return false;
	}
	
	// validacion para que la direccion email tenga mas de 1 caracter luego del punto
	var email_array=str.split(".");
	var email_array_largo=email_array.length;
	var email_extension=email_array[(email_array_largo)-1];
	var email_extension_largo=email_extension.length;

	//
	if(email_extension_largo<2){
		alert(alerta_email_3);
		a.email.focus();
		return false;
	}

	// validacion del mail para que no se metan caracteres extra–os
	if(er_email.test(a.email.value)){
		alert(alerta_email_1);
		a.email.focus();
		return false;
	}
  
	// comentario
	if(a.texto.value == ""){
		alert("Debes escribir algo de comentario");
		a.texto.focus();
		return false;
	}
}

/* POPUP */

pop_up 				= function(archivo,w,h){

	// FUNCION PARA ABRIR POPUPS
	// funcion para abrir el popup para ver las noticias y otras cosas

	// ancho y alto por defecto
	if(w == undefined) w = 670;
	if(h == undefined) h = screen.height;
	
	// se toma el nombre sin extension de la pagina
	var punto = archivo.indexOf(".");
	var nombre = archivo.substring(0,punto);
	
	// si son las instrucciones se centran, el resto va en el 0,0
	if(nombre=="instrucciones"){
		var top	 = (screen.height/2) - (h/2);
		var left = (screen.width/2) - (w/2); 		
	}else{
		var top	 = 0;
		var left = 0; 			  
	}
	
	// se abre la pagina
	window.open(archivo,"popup","status=no,scrollbars=yes,width="+w+",height="+h+",top="+top+",left="+left);
}

pop_up_proyectos 	= function(myPage,w,h,scroll){

	// se hizo diferente por el tema del scroll y la posicion en la derecha 

	if(w == undefined) w = 670;
	if(h == undefined) h = screen.height;

	var x_pos = screen.width-w;

	// screen.height
  	window.open(myPage,"popup","scrollbars="+scroll+",status=no,width="+w+",height="+h+",top=0,left="+x_pos);  
}

/* OVER */

over_button = function(a){
	a.style.color="#F7D417"; 
	a.style.backgroundColor="#544D3C";
}

out_button = function(a){
	a.style.color="#413927"; 
	a.style.backgroundColor="#F7D417";
}

/* OTROS */

function eliminar_banner_previa(a){

	// FUNCION PARA ELIMINAR BANNER PREVIA

	var  si = confirm("\xBFSeguro que quieres eliminar la \xFAltima versi\xF3n previa del banner que existe actualmente en el servidor y utilizar la versi\xF3n por defecto?.");
   	if(si){ 
   		var ajax = crear_ajax();
		ajax.open('POST',"publicar_boletin.php",true);
		ajax.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
		ajax.send("action=eliminar_banner_previa");
		
		var capa_contenedor = document.getElementById("boton_banner_default");
   		capa_contenedor.innerHTML = "";
		
		return; 
   	}else{    
   		
   		return false; 
   	}	
}

/* AJAX */

function radio_publicacion(a){ 

	// TEMA INPUTS ARCHIVOS PUBLICACION DE PROYECTOS
	// funcion para la seleccion de conbinacion de archivos en publicar proyecto
  	
	// div donde va el radio del swf
	var radio_swf 	= document.getElementById("radio_swf");   	
  	var desplegable = document.getElementById("desplegable");
  	var inputs 		= document.getElementById("inputs");  	
  	var r1 			= document.getElementById('radio1');
    var r2 			= document.getElementById('radio2');
    
    // maximo de imagenes
  	var max=10;
    
    // html inputs video + imagen
 	var html_inputs_mix = "<br><input type='file' name='imagen'><br><input type='file' name='video'>";  
  	var html_inputs_swf = "<br><input type='file' name='swf'>";
    
    // cadena para armar el desplegable con el numero de imagenes
 	var html_desplegable = "<select name='numero_de_imagenes' style='width:60px;' onchange='desplegar_inputs_file(this.value);'>";  
  	html_desplegable += "<option value=''>---</option>";  
  	for(i=1;i<=max;i++){ html_desplegable += "<option value='"+i+"'>"+i+"</option>"; }
  	html_desplegable += "</select> N&uacute;mero de im&aacute;genes";  	
  	
  	/////////////////////
  	if(a == "Interno"){
    	radio_swf.innerHTML="<input type='radio' id='radio3' name='tipo_de_archivos' value='swf' onclick='radio_publicacion(this);'> Archivo Swf";
    	return;
  	} 	
  	 
  	// si en el desplegable se cambia a proyecto externo
  	// hay que controlar que pasa con los radios y con el input
  	if(a == "Externo"){   	
    	
    	// se apaga el radio del swf
    	radio_swf.innerHTML=""; 
    	
    	// si no hay alguno de los otros dos radios seleccionados,
    	// se selecciona el primer radio (como cuando se entra) y
    	// se cambia el input file del swf (que queda por no haber seleccionado otra opcion cuando se cambio a externo en el desplegable)
    	// por los dos input file de la imagen y el video
    	if(!r1.checked && !r2.checked){
    		
    		r1.checked=true;
    		inputs.innerHTML = html_inputs_mix;
    		
    	}    	
    	
  	}  
  	if(a.value == "imagen_y_video"){
    	desplegable.innerHTML="";
    	inputs.innerHTML = html_inputs_mix;
  	}
  
  	if(a.value == "imagenes"){    
    	desplegable.innerHTML = html_desplegable;
    	inputs.innerHTML ="";
  	}
  
  	// cunado se selecciona radio swf  
  	if(a.value == "swf"){
    	desplegable.innerHTML = "";
   		inputs.innerHTML = html_inputs_swf;
  	}   	
}

function desplegar_inputs_file(a){

	// desplegar_inputs_file
	// a = el numero seleccionado
  
	var inputs = document.getElementById("inputs");  
	if(a==""){inputs.innerHTML = "";return;}   
	var html="<br>";
	for(i=1;i<=a;i++){html+= "<input type='file' name='imagen"+i+"'><br>";} 
	inputs.innerHTML = html;
}

function crear_ajax(){
	
	var objeto_ajax=false;
	try{
		// para navegadores distintos de IE
		objeto_ajax = new ActiveXObject("Msxml2.XMLHTTP");		
	} catch(e){
		try{
		// para explorer
		objeto_ajax = new ActiveXObject("Microsoft.XMLHTTP");
		} catch(E){
			objeto_ajax = false;
		}
	}
	
	if(!objeto_ajax && typeof XMLHttpRequest!='undefined'){
		objeto_ajax = new XMLHttpRequest();
	}
	return objeto_ajax;
}

/* VISOR */

function visor_proyecto(url,capa,variables){

	// funcion para procesar los datos
	
	var ajax = crear_ajax();
	var capa_contenedor = document.getElementById(capa);
	
	// se crea y ejecuta la instancia si el metodo es POST
	
		
	ajax.open('POST',url,true);
		
	ajax.onreadystatechange = function(){
			
			if(ajax.readyState==1){
				capa_contenedor.innerHTML="Cargando...";
			}else if(ajax.readyState==4){
				if(ajax.status==200){
					capa_contenedor.innerHTML = ajax.responseText;
				}else if(ajax.status==404){
					capa_contenedor.innerHTML = "El URL relacionado no existe.";					
				}else{
					capa_contenedor.innerHTML = "Error: ".ajax.status;
				}
			}
		}
		
		ajax.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
		ajax.send(variables);
		return;
		
}

function visor_noticia(url,capa,variables){

	// funcion para noticias

	var ajax = crear_ajax();
	var capa_contenedor = document.getElementById(capa);
	
	ajax.open('POST',url,true);
	
	ajax.onreadystatechange = function(){
		if(ajax.readyState==1){
			capa_contenedor.innerHTML= "Cargando...";
		}else if(ajax.readyState==4){
			if(ajax.status==200){
				capa_contenedor.innerHTML = ajax.responseText;
			}else if(ajax.status==404){
				capa_contenedor.innerHTML = "El URL relacionado no existe.";
			}else{
				capa_contenedor.innerHTML = "Error: ".ajax.status;
			}			
		}
	}
	
	// ajax.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	ajax.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	//  header("Content-Type: text/html; charset=iso-8859-1");
	ajax.send(variables);
	return;
}

function visor_articulo(url,capa,variables){

	// funcion para articulos

	var ajax = crear_ajax();
	var capa_contenedor = document.getElementById(capa);
	
	ajax.open('POST',url,true);
	
	ajax.onreadystatechange = function(){
		if(ajax.readyState==1){
			capa_contenedor.innerHTML= "Cargando...";
		}else if(ajax.readyState==4){
			if(ajax.status==200){
				capa_contenedor.innerHTML = ajax.responseText;
			}else if(ajax.status==404){
				capa_contenedor.innerHTML = "El URL relacionado no existe.";
			}else{
				capa_contenedor.innerHTML = "Error: ".ajax.status;
			}			
		}
	}
	
	// ajax.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	ajax.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	//  header("Content-Type: text/html; charset=iso-8859-1");
	ajax.send(variables);
	return;
}

/* CERRAR */ 

function cerrar_visor(a){

	// funcion para cerrar el visor
  
	// se cierra el visor
	var id_cerrar = "contenedor_"+a;
	document.getElementById(id_cerrar).innerHTML="";  
  
}

function cerrar_visor_blog(a,b,c){

	// funcion para cerrar el visor del video en el blog
	// a = id de la noticia
	// b = nombre de la imagen de la noticia (para pasarsela al div)
	// c = si la imagen es link (home) o no (comentarios)
  
	// se cierra el visor
	var id_cerrar = "contenedor_"+a;
  	
	if(c=="si") {document.getElementById(id_cerrar).innerHTML="<a href='home.php?id="+a+"'><img class='blog' src='images/noticias/"+b+".jpg'></a>";} 
	if(c=="no") {document.getElementById(id_cerrar).innerHTML="<img class='blog' src='images/noticias/"+b+".jpg'>";}  
}

/* funcion evitar el submit de los formularios al hacer enter */

function stopRKey(evt) {

	var evt = (evt) ? evt : ((event) ? event : null);
	var node = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null);
	
	// se anula el return para inputs text y selects de los formularios
	if ((evt.keyCode == 13) && (node.type=="text" || node.type=="select-one")) {return false;}
	
	// para obtener el node.type
	// if (evt.keyCode == 13){alert(node.type);return false;}
	
	
	// para anular el enter entero
	// if(evt.keyCode == 13){return false;}
}
document.onkeypress = stopRKey;




