///////////////////////////////////////////////////////////////////////////
//   Fichero innet.js
///////////////////////////////////////////////////////////////////////////
//   Fichero JavaScript de Control de Campos y Rangos en la Paginas HTML
///////////////////////////////////////////////////////////////////////////
//   Define una serie de funciones para cada Pagina de la Aplicacion
//   Ademas define unas funciones comunes utiles en cualquier ambito
///////////////////////////////////////////////////////////////////////////


///////////////////////////////////////////////////////////////////////////
//   Variables Comunes
///////////////////////////////////////////////////////////////////////////
var TIMEOUT			= 10;								// Numero de segundos de retardo
var	NS4 			= (document.layers)? true:false;	// Booleano indicando Netscape
var	IE4				= (document.all)? true:false;		// Booleano indicando Explorer

var RAIZ_REPORTE	= "reporte_";						// Raiz del fichero de Reportes

var DIAS_SEMANA  	= new Item('Domingo', 'Lunes', 'Martes', 'Mi&eacute;rcoles', 'Jueves', 'Viernes', 'S&aacute;bado');
var MESES_ANYO  	= new Item('Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio', 'Julio', 'Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre');

///////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////



///////////////////////////////////////////////////////////////////////////
//   Funciones Comunes
///////////////////////////////////////////////////////////////////////////
//   Item                           Crea un Objeto tipo Array
//   setFocus(elemento)             Envia el focus y selecciona el elemento
//   getFecha(formato)		        Devuelve una cadena con la fecha
//   esBisiesto(ano)		        Devuelve true si año es bisiesto
//   compruebaFecha(dia, mes, ano)  Comprueba si la fecha es valida
//   inicializa(action)				Inicializa un temporizador para una accion
//   setTime(action)                Fija la accion del temporizador
//   setLocation(LOCATION)  	    Carga la URL pasada
///////////////////////////////////////////////////////////////////////////
function Item()
{

	this.length = Item.arguments.length;

	for (var i = 0; i < this.length; i++)
	{
		this[i] = Item.arguments[i]
	}
}


function setFocus(elemento)
{
	elemento.focus();
	elemento.select();
}


function formateaCampoEntero(longitud, valor)
{

	var ceros = "";
	var campo = valor;
		
	if (campo == null) { campo = ""; }	

	if (campo.length == longitud) { return campo; }
	else if (campo.length > longitud) { 
		// Si sobrepasa la longitud recortamos por la izquierda
		return campo.substring(campo.length-longitud); 
	}
	else {
		// Si es menor añadimos ceros
		for (var i=0; i<(longitud-campo.length); i++) { ceros = ceros + "0"; }
		
		// Relleno por le izquierda
		campo = ceros + campo;
		return campo;
	}

}


function getFecha(formato) 
{
	var ahora;
	var fecha = new Date();

	var ano   = fecha.getFullYear();
	var mes   = fecha.getMonth();
	var dia   = fecha.getDay();
	var diaM  = fecha.getDate();
	
	var hora  = fecha.getHours();
	var min   = fecha.getMinutes();
	var seg   = fecha.getSeconds();
	
	var DIAS_SEMANA  	= new Item('Domingo', 'Lunes', 'Martes', 'Mi&eacute;rcoles', 'Jueves', 'Viernes', 'S&aacute;bado');
	var MESES_ANYO  	= new Item('Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio', 'Julio', 'Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre');

	if (hora < 9) { hora = "0" + hora; }
	if (min < 9)  { min  = "0" + min; }
	if (seg < 9)  { seg  = "0" + seg; }

	//var aux   = "" + fecha;
	//alert("Fecha: " + fecha);

	// Generacion de la cadena de fecha segun el formato
	if (formato == 1)
	{
		// Fecha en formato: Dia, DD de Mes de AAAA
		ahora = DIAS_SEMANA[dia] + ", " + diaM + " de " + MESES_ANYO[mes] + " de " + ano;
		//ahora = dia + ", " + diaM + " de " + mes + " de " + ano;
	}
	if (formato == 2)
	{
		// Fecha en formato: DD/MM/AAAA
		ahora = diaM + "/" + mes + "/" + ano;
	}
	if (formato == 3)
	{
		// Fecha en formato: DD de Mes de AAAA
		ahora = diaM + " de " + MESES_ANYO[mes] + " de " + ano;
	}
	if (formato == 4)
	{
		// Fecha en formato: DD de Mes de AAAA
		ahora = diaM + " " + MESES_ANYO[mes] + " " + ano;
	}
	if (formato == 5)
	{
		// Fecha en formato: HH:MM:SS del Dia DD de Mes de AAAA
		ahora = hora + ":" + min + ":" + seg + " del " + DIAS_SEMANA[dia] + " " + diaM + " de " + MESES_ANYO[mes] + " de " + ano;

	}
	if (formato == 6)
	{
		// Fecha en formato: HH:MM:SS DD/MM/AAAA
		ahora = hora + ":" + min + ":" + seg + " " + diaM + "/" + mes + "/" + ano;

	}

	return ahora;
}


function esBisesto (anyo) {
    if (((anyo % 4)==0) && ((anyo % 100)!=0) || ((anyo % 400)==0)) {
        return (true);
    }
    else {
        return (false);
    }
}


function compruebaFecha(dia, mes, ano)
{
	var error  = 0;
	var indice = 0;

	// Año valido
	if (isNaN(ano)) { return -1; }
	if (ano.length != 4) { return -2; }
	
    // Dias de Febrero validos
    if (mes==2) {
       if (dia>29) { error = -3; }
       else if (dia==29) {
           if (!esBisesto(ano)) { error = -4; }
       }
    }
    
    // Dias de resto de meses validos
    if (mes<8) {
       if (mes%2==0) {
          if (dia>30) { error = -5; }
       }
    }
    else {
       if (mes%2!=0) {
          if (dia>30) { error = -5; }
       }
    }   

	//alert("Fecha: dia/mes/ano: " + dia + "/" + mes + "/" + ano + "  Error: " + error);
    return error;
}


function inicializa(action) {

	// Reloj
	setTime();
	
	// Ubicacion
	setLocation(action);
}


function setTime()
{
 	TIMEOUT = TIMEOUT - 1;

	if (TIMEOUT > 0) { id = setTimeout("setTime()",1000); }
	if (TIMEOUT != -1) { return; }
}


function setLocation(location)
{
    // URL
    var url_inicio = location;
    var caracteristicas = "menubar=si,toolbar=si,location=si,directories=si,resizable=si";

	// Abrimos Nueva Ventana
	if ((NEWWINDOW == "si") || (NEWWINDOW == "Si") || (NEWWINDOW == "sI") || (NEWWINDOW == "SI"))
	{
	    // Abrimos Nueva Ventana cada vez
	    if ((MULTIPLEWINDOW == "si") || (MULTIPLEWINDOW == "Si") || (MULTIPLEWINDOW == "sI") || (MULTIPLEWINDOW == "SI"))
	    {
	    	window.open(new String(url_inicio));
	    }
	    // Abrimos Nueva Ventana una unica vez
	    else 
	    {
	    	nueva = window.open(new String(url_inicio),"nueva");
	    }
	}
	// No Abrimos Nueva Ventana
	else
	{
		parent.document.location.href = url_inicio;
	}
}


function goLocation(location)
{
	document.location.href = location;
}


function goRedBook(book)
{
	document.location.href = FILE_PROTOCOL + DIRECTORIO_REDBOOKS + book + REDBOOK_EXTENSION;
}



function retrocedeDias(ndias)
{
	var directorio = "";

	var fecha = new String(FECHA);
	
	// Formato de la Fecha: DD/MM/AAAA
	var dia1 	= parseInt(fecha.substring(0,2),10);
	var mes1 	= parseInt(fecha.substring(3,5),10);
	var anyo1 	= parseInt(fecha.substring(6,10),10);
	var anyo2	= anyo1;
	
    // Dias de resto de meses validos
	var mesAnt	= mes1 - 1;
    var numDias = 0;
	if (dia1 <= ndias)
	{
	    if (mesAnt==2)
	    {
           if (esBisesto(anyo1)) { numDias = 29; }
           else  { numDias = 28; }
	    }
	    else
	    {
		    if (mesAnt<8) {
		       if (mesAnt%2==0) { numDias = 30; }
		       else { numDias = 31; }
		    }
		    else {
		       if (mesAnt%2!=0) { numDias = 30; }
		       else { numDias = 31; }
		    }   
		}
		
		mes1 = mes1 - 1;
		if (mes1 == 0) { mes1 = 12; numDias = 31; anyo2 = anyo1 - 1; }

		dia1 = numDias - (ndias - dia1);
	}
	else
	{
		dia1 = dia1 - ndias;
	}

	if (anyo2 != anyo1) { directorio = "../" + anyo2 + "/"; }

	var fecha1	= new Date(anyo2, mes1-1, dia1);
	var ndia	= fecha1.getDay();
	//alert("Fecha: " + fecha1);

	var dia1str		= "" + dia1;
	var mes1str		= "" + mes1;
	var anyo1str	= "" + anyo2;
	if (dia1 < 10) { dia1str = "0" + dia1; }
	if (mes1 < 10) { mes1str = "0" + mes1; }
	var anterior = anyo1str + "-" + mes1str + "-" + dia1str;
	//alert("Indice: " + ndia + " Valor: " + DIAS_SEMANA[ndia]);
	//alert("Fecha calculada: " + anterior);

	var texto = "&nbsp;&nbsp;" + DIAS_SEMANA[ndia] + " " + dia1 + "&nbsp;&nbsp;";
	return (texto);
}


function goAnterior()
{
	var directorio = "";

	var fecha = new String(FECHA);
	
	// Formato de la Fecha: DD/MM/AAAA
	var dia1 	= parseInt(fecha.substring(0,2),10);
	var mes1 	= parseInt(fecha.substring(3,5),10);
	var anyo1 	= parseInt(fecha.substring(6,10),10);
	var anyo2	= anyo1;
	
	var fecha1 = new Date(anyo1, mes1-1, dia1 - 7);
    
    // Dias de resto de meses validos
	var mesAnt	= mes1 - 1;
    var numDias = 0;
	if (dia1 <= 7)
	{
	    if (mesAnt==2)
	    {
           if (esBisesto(anyo1)) { numDias = 29; }
           else  { numDias = 28; }
	    }
	    else
	    {
		    if (mesAnt<8) {
		       if (mesAnt%2==0) { numDias = 30; }
		       else { numDias = 31; }
		    }
		    else {
		       if (mesAnt%2!=0) { numDias = 30; }
		       else { numDias = 31; }
		    }   
		}
		
		mes1 = mes1 - 1;
		if (mes1 == 0) { mes1 = 12; numDias = 31; anyo2 = anyo1 - 1; }

		dia1 = numDias - (7 - dia1);
	}
	else
	{
		dia1 = dia1 - 7;
	}

	if (anyo2 != anyo1) { directorio = "../" + anyo2 + "/"; }

	var dia1str		= "" + dia1;
	var mes1str		= "" + mes1;
	var anyo1str	= "" + anyo2;
	if (dia1 < 10) { dia1str = "0" + dia1; }
	if (mes1 < 10) { mes1str = "0" + mes1; }
	var anterior = directorio  + RAIZ_REPORTE + anyo1str + "-" + mes1str + "-" + dia1str + ".html";
	//alert("Anterior: " + anterior);

	document.location.href = anterior;
}

function goSiguiente()
{
	var directorio = "";
	
	var fecha = new String(FECHA);
	
	// Formato de la Fecha: DD/MM/AAAA
	var dia1 	= parseInt(fecha.substring(0,2),10);
	var mes1 	= parseInt(fecha.substring(3,5),10);
	var anyo1 	= parseInt(fecha.substring(6,10),10);
	var anyo2	= anyo1;
	
	var fecha1 = new Date(anyo1, mes1-1, dia1 - 7);
	
    // Dias de resto de meses validos
	var mesSig	= mes1 + 1;
    var numDias = 0;

    // Calculo de numero de dias de mes actual
    if (mes1==2)
    {
       if (esBisesto(anyo1)) { numDias = 29; }
       else  { numDias = 28; }
    }
    else
    {
	    if (mes1<8) {
	       if (mes1%2==0) { numDias = 30; }
	       else { numDias = 31; }
	    }
	    else {
	       if (mes1%2!=0) { numDias = 30; }
	       else { numDias = 31; }
	    }   
	}

	if ((dia1 + 7) > numDias)
	{
		mes1 = mes1 + 1;
		if (mes1 == 13) { mes1 = 1; anyo2 = anyo1 + 1; }

		dia1 = 7 - (numDias - dia1);
	}
	else
	{
		dia1 = dia1 + 7;
	}

	var dia1str		= "" + dia1;
	var mes1str		= "" + mes1;

	if (anyo2 != anyo1) { directorio = "../" + anyo2 + "/"; }

	var anyo1str	= "" + anyo2;
	if (dia1 < 10) { dia1str = "0" + dia1; }
	if (mes1 < 10) { mes1str = "0" + mes1; }
	var siguiente = directorio  + RAIZ_REPORTE + anyo1str + "-" + mes1str + "-" + dia1str + ".html";
	//alert("Siguiente: " + siguiente);

	document.location.href = siguiente;
}
	
function setParentLocation(location)
{
	parent.location.href = location;
}


function seleccion(cat)
{
	if (NS4) { document.layers[cat].visibility = "show"; }
	if (IE4) { document.all[cat].style.display = "block"; }
}


function deseleccion(cat)
{
	if (NS4) { document.layers[cat].visibility = "hide"; }
	if (IE4) { document.all[cat].style.display = "none"; }
}
///////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////




///////////////////////////////////////////////////////////////////////////
//   LOG  Plantilla de Login
///////////////////////////////////////////////////////////////////////////
function LOGinicializa()
{
	document.login.USERNAME.value = USERNAME;
	document.login.USERPASSWORD.focus();
	
	if ((ANONIMO == "si") || (ANONIMO == "Si") || (ANONIMO == "sI") || (ANONIMO == "SI"))
	{
		document.location.href = INITPAGE;
	}
}

function LOGpulsacion(keypressed)
{

	var key;

	if (document.all) {
		key = window.event.keyCode;
	}
	else {
		key = keypressed.which;
	}

	if (key == 13) {
		LOGloginAplicacion();
	}
}


function LOGloginAplicacion()
{
	if ((document.login.USERNAME.value == USERNAME) && (document.login.USERPASSWORD.value == USERPASSWORD))
	{
		document.location.href = INITPAGE;
	}
	else
	{
		alert("Los valores de usuario y password no son validos");
	}	
}
///////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////



///////////////////////////////////////////////////////////////////////////
//   CAB  Plantilla de Cabecera
///////////////////////////////////////////////////////////////////////////
// Variable auxiliar para periodo de refresco de la pagina
// Variable a 0 indica que no hay refresco de la pagina
var CABperiodoAux = 0;

function seleccionPagina(inicio) {

	// Inicio de Aplicacion
	parent.document.location.href = inicio;
}


function seleccionCabecera(home) {

	// Inicio de Usuario
	parent.aplicacion.document.location.href = home;
}


function CABinicializa() {

	// Fijamos el periodo de refresco del frame
	var per = parseInt(CABperiodo, 10);
	if (isNaN(per)) { TIMEOUT = CABperiodoAux; }
	else { TIMEOUT = per; }
		
    CABsetTime();
}


function CABgeneracionCabecera() {

	// Generamos el frame de cabecera
	document.location.href = ACTION;
	
}


function CABsetTime()
{
 	TIMEOUT = TIMEOUT - 1;

	if (TIMEOUT > 0) { id = setTimeout("CABsetTime()",1000); }
	if (TIMEOUT == 0) { document.location.href = ACTION; }
	if (TIMEOUT == -1) { return; }
	
}
///////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////




///////////////////////////////////////////////////////////////////////////
//   DIR  Plantilla de Directorio
///////////////////////////////////////////////////////////////////////////
var DIRlayer_actual = "CARGA";

function DIRinicializa()
{
    // Incializamos: Ninguna Categoria INICIO_INTRANET
    //alert("Inicializando");
    //seleccionCategoria("INICIO_INTRANET");

}


function seleccionDirectorio(location)
{
	parent.aplicacion.document.location.href = location;
}
///////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////



///////////////////////////////////////////////////////////////////////////
//   PRE  Plantilla de Preferencias
///////////////////////////////////////////////////////////////////////////
function PREinicializa()
{
	// Datos Personales del Usuario
	document.prefs.USERNAME.value		= USERNAME;
	document.prefs.WORKNUMBER.value		= WORKNUMBER;
	document.prefs.NAME.value			= NAME;
	document.prefs.EMAIL.value			= EMAIL;

	// Preferencias Navegacion Usuario
	document.prefs.HOMEPAGE.value		= HOMEPAGE;
	document.prefs.LOCALPAGE.value		= LOCALPAGE;
	document.prefs.SEARCHPAGE.value		= SEARCHPAGE;
	document.prefs.PERSONALPAGE.value	= PERSONALPAGE;
	
	for (var i=0; i<document.prefs.ANONIMO.length; i++)
	{
		if (document.prefs.ANONIMO.options[i].value == ANONIMO)
		{
			document.prefs.ANONIMO.options[i].selected = true;
		}
	}

	for (var i=0; i<document.prefs.NEWWINDOW.length; i++)
	{
		if (document.prefs.NEWWINDOW.options[i].value == NEWWINDOW)
		{
			document.prefs.NEWWINDOW.options[i].selected = true;
		}
	}

	for (var i=0; i<document.prefs.MULTIPLEWINDOW.length; i++)
	{
		if (document.prefs.MULTIPLEWINDOW.options[i].value == MULTIPLEWINDOW)
		{
			document.prefs.MULTIPLEWINDOW.options[i].selected = true;
		}
	}
}

function PREcheckPreferencias()
{
	alert("Usuario: " + USERNAME + " - " + WORKNUMBER + " - " + NAME + " - " + EMAIL);
	alert("Preferencias: " + HOMEPAGE + " - " + LOCALPAGE + " - " + SEARCHPAGE + " - " + PERSONALPAGE + " - " + ANONIMO + " - " + NEWWINDOW + " - " + MULTIPLEWINDOW);
}


function PREsetPreferencias()
{
	var indice = 0;
	
	// Datos Personales del Usuario
	USERNAME		= document.prefs.USERNAME.value;
	WORKNUMBER		= document.prefs.WORKNUMBER.value;
	NAME			= document.prefs.NAME.value;
	EMAIL			= document.prefs.EMAIL.value;

	// Preferencias Navegacion Usuario
	HOMEPAGE		= document.prefs.HOMEPAGE.value;
	LOCALPAGE		= document.prefs.LOCALPAGE.value;
	SEARCHPAGE		= document.prefs.SEARCHPAGE.value;
	PERSONALPAGE	= document.prefs.PERSONALPAGE.value;
	
	indice = document.prefs.ANONIMO.selectedIndex;
	ANONIMO			= document.prefs.ANONIMO.options[indice].value;

	indice = document.prefs.NEWWINDOW.selectedIndex;
	NEWWINDOW		= document.prefs.NEWWINDOW.options[indice].value;
	
	indice = document.prefs.NEWWINDOW.selectedIndex;
	MULTIPLEWINDOW	= document.prefs.MULTIPLEWINDOW.options[indice].value;
	
	//parent.document.location.href = INITPAGE;
	//document.location.href = HOMEPAGE;
	
	alert("La Opción de Actualización de Preferencias de Usuario no está disponible");
	
}

function verActividad(dia, hora)
{
	var actividad = "";
	
	switch (dia)
	{
		case 1: actividad = sabado[hora];		break;
		case 2: actividad = domingo[hora];		break;
		case 3: actividad = lunes[hora];		break;
		case 4: actividad = martes[hora];		break;
		case 5: actividad = miercoles[hora];	break;
		case 6: actividad = jueves[hora];		break;
		case 7: actividad = viernes[hora];		break;
	}

	enlace = "../actividades/" + actividad + ".html";
	
	//alert("Enlace: " + enlace);
	goLocation(enlace);
}
///////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////

