/******* LIBRERIA DE FUNCIONES JAVASCRIPT *******/


/**

funciones de navegacion javascript

*/

function volver() {

	window.location="<? echo consultarURL(); ?>";
}

function ir(URL) {

	window.location=URL;

}



/*** COMPROBACION DE LAS ENTRADAS DE FORMULARIOS ***/

/*

Cometido: comprueba si los campos de formulario del tipo text, hidden, file estan rellenados con caracteres excepto separadores. En caso negativo muestra un mensaje de error y pone el foco en ese elemento.
Entrada: vector con los elementos de formulario a comprobar.
Salida: true o false, dependiendo del éxito de la comprobación.

*/
function comprobarObligatorios(vector) {
	
	bandera=true;
	for (i=0;i<vector.length && bandera;i++)		{
		if (vector[i].value=="" || /^\s+$/.test(vector[i].value)) {
			alert("Hay que rellenar campo obligatorio: "+vector[i].name);		
			vector[i].focus();
			bandera=false;
		}
	}
	return bandera;
}


/*** 

Cometido: Esta funcion comprueba si hay n checkboxes seleccionados en un formulario 
Entrada: mensaje: a mostrar en caso de NO error, n: numero de checkbox que deberian estar activados, id: nombre del formulario (si no esta definido, se selecciona el primer formulario).
Salida: Si el numero de checkboxes no es el que debería, mostrar mensaje informativo. En otro caso, mostrar una ventana de dialogo para proceder a hacer SUBMIT o cancelarlo.

***/

function comprobarCheckbox(mensaje, n, id) {

	bandera=(n==0);

	if (id)
		formulario=document.getElementById(id);
	else
		formulario=document.forms[0];		

	for (i=0;i<formulario.length && !bandera;i++) {
		
		if (formulario.elements[i].checked)
		
		n--;
	
		bandera=(n==0);
	}
	
	if (!bandera) {
		
		if (n==1)
		
			alert('Debe elegir al menos un elemento')
			
		else
		
			alert('Debe elegir al menos ' + n + ' elementos')		
	}
	
	else {

		f=window.confirm(mensaje);
		
		if (f)
		
			formulario.submit()
		
		else
		
			alert('Operación cancelada')
	}
}


/* 

Cometido: esta funcion comprueba el numero de checkboxes seleccionados segun la opcion a realizar:
	- Insertar: no es necesario ningún checkbox.
	- Cambiar: solo se necesita 1 elemento seleccionado (si hay mas se ignoran, solo se realiza el cambio con la primera).
	- Borrar: solo se necesita 1 elemento seleccionado (como mínimo).
	- Intercambiar: solo se necesitan 2 elementos seleccionados (si hay mas se ignoran, solo se realiza el intercambio con las dos primeras).
*/

function comprobarFormularioGaleria(opcion,id) {

	if (id)
		formulario=document.getElementById(id);
	else
		formulario=document.forms[0];		

formulario.opcion.value=opcion;

switch (opcion) {
	case 'insertar':
		if (formulario.archivo.value=="")
			alert('Pulse EXAMINAR para elegir una imagen a insertar')
		else 
			comprobarCheckbox('¿Desea realmente insertar la imagen?',0);
	break;
	case 'cambiar':
		comprobarCheckbox('¿Desea realmente modificar la imagen?',1)
	break;
	case 'borrar':
		comprobarCheckbox('¿Desea realmente borrar las imágenes?',1)
	break;
	case 'intercambiar':
		comprobarCheckbox('¿Desea realmente intercambiar las imágenes?',2)
	break;
}

}


/* 

Cometido: comprobar alguna de las opciones:  no es un numero, no es positivo, no es entero (no coincide el truncado con el valor en decimal:  parseInt devuelve la parte entera y parseFloat transforma en decimal)  
Entrada: elemento de formulario.
Salida: true o false, dependiendo del éxito de la comprobación.

*/

function comprobarEntero(elemento) {
  bandera=true;
  if (isNaN(elemento.value) || parseInt(elemento.value)<=0 || parseInt(elemento.value)!=parseFloat(elemento.value)) {
  	alert("Hay que rellenar el campo "+elemento.name+" con un valor entero positivo");  	
	bandera=false;
	elemento.select();
	elemento.focus();
  }
  return bandera;
}

/* 

Cometido: comprobar alguna de las opciones:  no es un numero, no es positivo  
Entrada: elemento de formulario.
Salida: true o false, dependiendo del éxito de la comprobación.

*/

function comprobarNumero(elemento) {
  bandera=true;
  if (isNaN(elemento.value) || parseFloat(elemento.value)<=0) {
  	alert("Hay que rellenar el campo "+elemento.name+" con un valor numérico positivo");  	
	bandera=false;
	elemento.select();
	elemento.focus();
  }
  return bandera;
}


/* 

Cometido: comparar dos fechas.
Entrada: fecha_1 (inicio), fecha_2 (fin) en formato d/m/a
Salida:
>0 si fecha_inicio < fecha_fin
=0 si fecha_inicio = fecha_fin
<0 si fecha_inicio > fecha_fin
*/


function compararFechas(fecha_1, fecha_2) {

fecha_inicio=fecha_1.split("/");
fecha_fin=fecha_2.split("/");

dia1=fecha_inicio[0];
mes1=fecha_inicio[1];
ano1=fecha_inicio[2];


dia2=fecha_fin[0];
mes2=fecha_fin[1];
ano2=fecha_fin[2];

cantidad=0;

if (ano2!=ano1) 
	cantidad=ano2-ano1;
	
else if (mes1!=mes2)
	cantidad=mes2-mes1;
	
else if (dia1!=dia2)
	cantidad=dia2-dia1;
	
return cantidad;

}



function mostrarFecha() {
var d=new Date();
var monthname=new Array("Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre");
//Ensure correct for language. English is "January 1, 2004"
var TODAY = d.getDate() + " "+ monthname[d.getMonth()] + " "+ d.getFullYear();

document.write(TODAY);
}

