/*************************************************/
/*  Funcions JavaScript de NAVEGACIO a ABABOLS   */
/*************************************************/

/****************************************/
/* Tractament dels parametres de pagina */
/****************************************/

/* Auxiliars */

// Auxiliar - Obte el SEARCH
function ObtenirSearch(locat)
{
   var cerca = locat.search;
   
   if (cerca.length == 0)
   {
     // No hi ha cerca, no fer res
   }
   else if (cerca.length == 1)
   {
     // Nomes hi ha el ?, el trec
     cerca = '';
   }
   else
   {
     // Hi ha coses darrera del ?, el trec
     cerca = cerca.substring(1, cerca.length);
   }
   
   return(cerca);
}

/* Obtenir els SEARCH */

// Obte CERCA - El SEARCH de la MDI
function ObtenirCerca()
{
   gvNavCerca = ObtenirSearch(window.parent.location);
}

// Obte PARAMS - El SEARCH de cada pagina
function ObtenirParams()
{
   var params;
   
   params = ObtenirSearch(window.location);

   return (params);
}

/* Tractar els SEARCH */

// Tracta CERCA - El SEARCH de la MDI
function TractarCerca()
{
  TractarCercaInterna(0);
}

function TractarCercaPerSortir()
{
  TractarCercaInterna(1);
}

function TractarCercaInterna(buscarOnSoc)
{
   var cerca = '';
   var aux2 = '', lloc1 = -1, lloc2 = -1;
   var nom = '', barra;
   var trobat, candidat;
   
   // Inicialitzar
   cerca = gvNavCerca;

   // Valors per defecte
   gvNavIdioma = '';
   gvNavSeccio = '';
   gvNavApartat = '';
   gvNavRef = '';
   gvNavAnch = '';

   if (cerca.length == 0)
   {
     if (buscarOnSoc == 0)
	 {
       // Valors per defecte
       gvNavIdioma = '';
       gvNavSeccio = '';
       gvNavApartat = '';
       gvNavRef = '';
       gvNavAnch = '';
	 }
	 else
     {
	   // Busco el nom del document...
	   nom = window.parent.location.pathname;
	   barra = nom.lastIndexOf('\\');
	   if (barra == -1) barra = nom.lastIndexOf("/");
//	   alert ('Amb nom [' + nom + '], barra es ' + barra);
	   nom = nom.substring(barra+1, nom.length);
//	   alert ('No hi ha cerca, del marc [' + window.name + '] de la MDI [' + nom);

       // Busco els params del document
       i = 0;
       trobat = -1; candidat = -1;
       while ( (trobat==-1) && (i < gvNavTaula.length) )
       {
         var ids = new Array();
         var marc = new Array();
         var nom_marc = '', nom_cmp = '';
	   
         ids = gvNavTaula[i][gcIDs];
         marc = gvNavTaula[i][gcMarc];
         nom_marc = marc[gcMarcPag];
	     nom_cmp = nom;
	     if (nom_marc.length < nom_cmp.length) nom_cmp = nom_cmp.substring(0, nom_marc.length);
	   
	     if ( (marc[gcMarcParams] == 0) || (marc[gcMarcParams] == 2) )
	     { // El primer que es troba
	       if (nom_marc == nom_cmp)
		   {
		     trobat = i;
		   }
	     }
	     else if (marc[gcMarcParams] == 1)
	     { // El darrer
	       if (nom_marc == nom_cmp)
		   {
		     candidat = i;
		   }	   
	     }

//       alert ('Comparant entrada ' + i + ', de marc de nom ' + nom_marc + ', amb [' + nom_cmp +']');

         i = i + 1;
       }
  	   // Valors trobats
	   if (trobat == -1)
	   {
	     trobat = candidat;
	   }
	   if (trobat > -1)
	   {
	     ids = gvNavTaula[trobat][gcIDs];
	     if (ids.length > gcIDIdioma) gvNavIdioma = ids[gcIDIdioma];
	     if (ids.length > gcIDSeccio) gvNavSeccio = ids[gcIDSeccio];
	     if (ids.length > gcIDApartat) gvNavApartat = ids[gcIDApartat];
	     if (ids.length > gcIDRef) gvNavRef = ids[gcIDRef];
	   }
	   else
	   {
	     alert ('ATENCIO :: No trobo on soc');
	   }
     }
   }
   else
   {
      aux2 = cerca;
      lloc1 = aux2.indexOf('idioma=',0);
	  if (lloc1 >= 0)
	  {
        lloc2 = aux2.indexOf('&',lloc1);
        if (lloc2 < 0) lloc2 = aux2.length;
        gvNavIdioma = aux2.substring(lloc1+7, lloc2);
	  }

      aux2 = cerca;
      lloc1 = aux2.indexOf('seccio=',0);
	  if (lloc1 >= 0)
	  {
        lloc2 = aux2.indexOf('&',lloc1);
        if (lloc2 < 0) lloc2 = aux2.length;
        gvNavSeccio = aux2.substring(lloc1+7, lloc2);
	  }

      aux2 = cerca;
      lloc1 = aux2.indexOf('apartat=',0);
	  if (lloc1 >= 0)
	  {
        lloc2 = aux2.indexOf('&',lloc1);
        if (lloc2 < 0) lloc2 = aux2.length;
        gvNavApartat = aux2.substring(lloc1+8, lloc2);
	  }

      aux2 = cerca;
      lloc1 = aux2.indexOf('ref=',0);
	  if (lloc1 >= 0)
	  {
        lloc2 = aux2.indexOf('&',lloc1);
        if (lloc2 < 0) lloc2 = aux2.length;
        gvNavRef = aux2.substring(lloc1+4, lloc2);
	  }

      aux2 = cerca;
      lloc1 = aux2.indexOf('anch=',0);
	  if (lloc1 >= 0)
	  {
        lloc2 = aux2.indexOf('&',lloc1);
        if (lloc2 < 0) lloc2 = aux2.length;
        gvNavAnch = aux2.substring(lloc1+5, lloc2);
	  }

//  alert ('Cerca = [' + cerca + ']\n---\nIDIOMA = [' + gvNavIdioma + '], SECCIO = [' + gvNavSeccio + '], APARTAT = [' + gvNavApartat + '], REF = [' + gvNavRef + '], ANCH = [' + gvNavAnch + ']');

   }

}

/* Calcul dels relatius */
function CalcularRelatiu(cadena)
{
  var i, barres, relatiu = '';
  
  if (cadena == '')
  {
    relatiu = '';
  }
  else if (cadena == './')
  {
    relatiu = '';
  }
  else
  {
    // Compta
    barres = 0;
    for (i=0;i<cadena.length;i++)
    {
      if (cadena.charAt(i) == '/') barres++;
    }
    // Construeix
    relatiu = '';
    for (i=0;i<barres;i++)
    {
      relatiu = relatiu + '../';
    }
  }

// alert('El relatiu de [' + cadena + '] es [' + relatiu + ']');

  // Torna
  return (relatiu);  
}


/* Parametres dels MARCS */

// Tracta Params de MENU
function TractarParamsMenu()
{
  var llista;
  var aux2;
  var params = new Array();
  
  llista = ObtenirParams();
 
  if (llista.length == 0)
  {
    params[0] = '';
  }
  else
  {
    aux2 = llista;
    lloc1 = aux2.indexOf('boto=',0);
    lloc2 = aux2.indexOf('&',lloc1);
    if (lloc2 <= 0) lloc2 = aux2.length;
    boto = aux2.substring(lloc1+5, lloc2);
	
	params[0] = boto;
  }

  return (params);
}

// Tracta Params de TITOL
function TractarParamsTitol()
{
  var llista;
  var aux2;
  var params = new Array();
  
  llista = ObtenirParams();
 
  if (llista.length == 0)
  {
    params[0] = '';
  }
  else
  {
    aux2 = llista;
    lloc1 = aux2.indexOf('text=',0);
    lloc2 = aux2.indexOf('&',lloc1);
    if (lloc2 <= 0) lloc2 = aux2.length;
    text = aux2.substring(lloc1+5, lloc2);
	
	params[0] = text;
  }

  return (params);
}

/*************************************************/
/* Cerca de les entrades a la taula de navegacio */
/*************************************************/

// Auxiliar - Trobar index entrada
function IndexEntrada(idioma, seccio, apartat, ref)
{
  var i, trobat;
  var a, b, c, d;
  
  i = 0;
  trobat = -1;

  while ( (trobat==-1) && (i < gvNavTaula.length) )
  {
    var ids = new Array();
    ids = gvNavTaula[i][gcIDs];

	a = '*'; b = '*'; c ='*'; d = '*';	
	if (ids.length > gcIDIdioma) a = ids[gcIDIdioma];
	if (ids.length > gcIDSeccio) b = ids[gcIDSeccio];
	if (ids.length > gcIDApartat) c = ids[gcIDApartat];
	if (ids.length > gcIDRef) d = ids[gcIDRef];

//  alert ('i = ' + i + '\nParams: IDIOMA = [' + idioma + '], SECCIO = [' + seccio + '], APARTAT = [' + apartat + '], REF = [' + ref + ']\nCercant: IDIOMA = [' + a + '], SECCIO = [' + b + '], APARTAT = [' + c + '], REF = [' + d + ']');

    if ( (a == idioma) || (a == '*') )
	{
      if ( (b == seccio) || (b == '*') )
	  {
        if ( (c == apartat) || (c == '*') )
	    {
          if ( (d == ref) || (d == '*') )
	      {
		    trobat = i;
		  }
	    }
	  }
	}
	
	i = i + 1;
  }

//  if (trobat == -1) alert('Trobar entrada: no trobada!!!!!!');

  return(trobat);
}

// Auxiliar - Trobar i posar entrada
function TrobarEntrada()
{
  gvNavEntrada = IndexEntrada(gvNavIdioma, gvNavSeccio, gvNavApartat, gvNavRef);
}


/**************************/
/* Carrega una pagina MDI */
/**************************/

function CarregarPaginaLocal(idioma, seccio, apartat, ref, ancora, finestra)
{
// SECCIO, APARTAT, REF - Identificadors
// FINESTRA - On

   var pagina = '';
   var origen, desti;
   var marc = new Array();
   var relatiu = '', cami1 = '', cami2 = '', params = 0, pag = '';
   var r0 = '';

   // Entrades: origen, desti
   if (gvNavEntrada == -1)
   {
     ObtenirCerca();
	 TractarCercaPerSortir();
	 TrobarEntrada();
   }
   origen = gvNavEntrada;
   desti = IndexEntrada(idioma, seccio, apartat, ref);
   
   // MDI-Pare de base desti
   marc = gvNavTaula[desti][gcMarc];
   // Relatiu

//alert('Surto de ' + window.name);

   if (window.name == 'logo')
   {
     cami1 = 'logo/';
     cami2 = gvNavTaula[origen][gcMarc][gcMarcCami];
   }
   else if (window.name == 'titol')
   {
     cami1 = gvNavTaula[origen][gcTitol][gcTitolCami];
     cami2 = gvNavTaula[origen][gcMarc][gcMarcCami];
   }
   else if (window.name == 'menu')
   {
     cami1 = gvNavTaula[origen][gcMenu][gcMenuCami];
     cami2 = gvNavTaula[origen][gcMarc][gcMarcCami];
   }
   else if (window.name == 'cos')
   {
     cami1 = gvNavTaula[origen][gcCos][gcCosCami];
     cami2 = gvNavTaula[origen][gcMarc][gcMarcCami];
   }
   else
   {
	 cami1 = './';
     cami2 = gvNavTaula[origen][gcMarc][gcMarcCami];
   }
//     pag = gvNavTaula[origen][gcMarc][gcMarcPag];
   relatiu = CalcularRelatiu(cami1) + CalcularRelatiu(cami2);

//alert ('De MARC a PAG: ' + cami1 + '(' + window.name + ')\nDe REL a MARC: ' + cami2 + '(' + pag + ')\nRelatiu pujant: ' + relatiu )

   // Pagina
   pagina = relatiu + marc[gcMarcCami] + marc[gcMarcPag];
   // Parametres
   if (marc.length > gcMarcParams) params = marc[gcMarcParams];
//   alert ('Params val ' + params + ' anant a ' + pagina + '(' + gvNavTaula[desti][gcCos][gcCosPag] + ')');
   if (params > 0)
   {
     pagina = pagina + '?';
     if (idioma != '')
     {
        pagina = pagina + 'idioma=' + idioma;
     }
     if (seccio != '')
     {
        pagina = pagina + '&';
        pagina = pagina + 'seccio=' + seccio;
     }
     if (apartat != '')
     {
        pagina = pagina + '&';
      pagina = pagina + 'apartat=' + apartat;
     }
     if (ref != '')
     {
        pagina = pagina + '&';
        pagina = pagina + 'ref=' + ref;
     }
     if (ancora != '')
     {
        pagina = pagina + '&';
        pagina = pagina + 'anch=' + ancora;
     }
   }

   // Carregar
   if (finestra == '_top')
   {
     window.top.location.href = pagina;
   }
   else if (finestra == '_parent')
   {
     window.parent.location.href = pagina;
   }
   else if (finestra == '_self')
   {
     window.location.href = pagina;
   }
   else if (finestra == '_blank')
   {
//     alert ('ATENCIO - Es vol carregar [' + pagina + '] en una finestra nova.');
	 w = w=window.open(pagina, 'new_window', '');
		// 'width=640,height=480,left=20,top=20,scrollbars=1,resizable=1');w.focus();void(0);"
	 w.focus();
	 void(0);
   }
   else
   {
     window.frames[finestra].location.href = pagina;
   }   
}

/**********************/
/* Carregar els marcs */
/**********************/

function CarregarMarcTitol()
{
  var titol = new Array();
  var pagina, text = '';
  
  // Valor per defecte
  
  // Valor
  if (gvNavEntrada != -1)
  {
    // Dades del titol
    titol = gvNavTaula[gvNavEntrada][gcTitol];
	// Pagina
	pagina = titol[gcTitolCami] + titol[gcTitolPag];
	// Boto
	if (titol.length > gcTitolText) text = titol[gcTitolText];
    if (text != '')
    {
      pagina = pagina + '?';
      pagina = pagina + 'text=' + gvNavEntrada;
    }
	// Relatiu
//	gvRelTitol = CalcularRelatiu(titol[gcTitolCami]);
  }
  // Posar
  document.location = pagina;
}

function CarregarMarcMenu()
{
  var menu = new Array();
  var pagina, boto = '', ancora = '';
  
  // Valor per defecte
  
  // Valor
  if (gvNavEntrada != -1)
  {
    // Dades del menu
    menu = gvNavTaula[gvNavEntrada][gcMenu];
	// Pagina
	pagina = menu[gcMenuCami] + menu[gcMenuPag];
	// Boto
	if (menu.length > gcMenuBot) boto = menu[gcMenuBot];
    if (boto != '')
    {
      pagina = pagina + '?';
      pagina = pagina + 'boto=' + boto;
    }
	// Ancora
	if (menu.length > gcMenuAnc) ancora = menu[gcMenuAnc];
    if (ancora != '')
    {
      pagina = pagina + '#' + ancora;
    }
	// Relatiu
//	gvRelMenu = CalcularRelatiu(menu[gcMenuCami]);
	
  }
  // Posar
  document.location = pagina;
}

function CarregarMarcCos()
{
  var contingut = new Array();
  var pagina;
  
  // Valor per defecte
  
  // Valor
  if (gvNavEntrada != -1)
  {
    // Dades del cos
    contingut = gvNavTaula[gvNavEntrada][gcCos];
	// Pagina
	pagina = contingut[gcCosCami] + contingut[gcCosPag];
	// Relatiu
//	gvRelCos = CalcularRelatiu(contingut[gcCosCami]);
	if (gvNavAnch != '')
	{
//	  alert ('Estic a COS i gvNavAnch val ' + gvNavAnch);
	  pagina = pagina + '#' + gvNavAnch;
	}
  }
  // Posar
  document.location = pagina;
}

function AncoraData()
{
	var oneDate = new Date()
	var ancora = '';

    var theDate = oneDate.getDate();
    var theMonth = oneDate.getMonth() + 1;
    var theYear = oneDate.getFullYear();

    ancora = '' + theYear;
    if (theMonth < 10)
	{
	  ancora = ancora + '0';
	}
	ancora = ancora + theMonth;
    if (theDate < 10)
	{
	  ancora = ancora + '0';
	}
	ancora = ancora + theDate;
	  
    return ancora
}

function TractaVinc (vinc)
{
	var lloc = -1;
	var aux = new Array('','');
	
	lloc = vinc.indexOf(',');
	if (lloc == -1)
	{
	  aux[0] = vinc.substring(0,6);
	  aux[1] = vinc;
	}
	else
	{
	  aux[0] = vinc.substring(0,lloc);
	  aux[1] = vinc.substring(lloc+1);
	};
	
	return (aux);
	alert('Vinc: ' + vinc + ' --> ref: ' + ref + ', anch: ' + anch);
}

function AmuntAvall (vincant, vincseg, unitat, rel)
{
	var amunt = '', avall = '', estil = '';
	var mesant = '' , anchant = '', messeg = '', anchseg = '';
	var aux = new Array('','');

	// Tractar
	aux = TractaVinc(vincant);
	mesant = aux[0];
	anchant = aux[1];
	aux = TractaVinc(vincseg);
	messeg = aux[0];
	anchseg = aux[1];
	
	// Anterior
	if (anchant != '')
	{
	  amunt = amunt + '<a href=javascript:' + 'CarregarPaginaLocal("CAT","ALB","EMB06","' + mesant + '","' + anchant + '","_parent")' + '>';
	}
	amunt = amunt + '<img src=' + '"' + rel;
	if (anchant != '')
	{
	  amunt = amunt + 'amunt_si.gif' + '"';
	  amunt = amunt + ' alt="Anar a [';
	}
	else
	{
	  amunt = amunt + 'amunt_no.gif' + '"';
	  amunt = amunt + ' alt="No hi ha [';
	}
	amunt = amunt + unitat + '] anterior"';
	amunt = amunt + ' border="0">';
	if (anchant != '')
	{
	  amunt = amunt + '</a>';
	}
	
	// Seguent
	if (anchseg != '')
	{
	  avall = avall + '<a href=javascript:' + 'CarregarPaginaLocal("CAT","ALB","EMB06","' + messeg + '","' + anchseg + '","_parent")' + '>';
	}
	avall = avall + '<img src=' + '"' + rel;
	if (anchseg != '')
	{
	  avall = avall + 'avall_si.gif' + '"';
	  avall = avall + ' alt="Anar a [';
	}
	else
	{
	  avall = avall + 'avall_no.gif' + '"';
	  avall = avall + ' alt="No hi ha [';
	}
	avall = avall + unitat + '] seg&uuml;ent"';
	avall = avall + ' border="0">';
	if (anchseg != '')
	{
	  avall = avall + '</a>';
	}

	// Estil
	// estil = 'background-color:#ce8b43;vertical-align: middle';
	// estil = 'style=' + estil + '">';
	
	// Escriure
	document.write('<span ' + estil + '>' + '&nbsp;' + amunt + '&nbsp;' + avall + '&nbsp;' + '</span>');
}

function AmuntAvallAmbAnchor (vincant, vincseg, unitat, rel)
{
	var amunt = '', avall = '', estil = '';
	var mesant = '' , anchant = '', messeg = '', anchseg = '';
	var aux = new Array('','');

	// Tractar
	aux = TractaVinc(vincant);
	mesant = aux[0];
	anchant = aux[1];
	aux = TractaVinc(vincseg);
	messeg = aux[0];
	anchseg = aux[1];

	// Anterior
	if (anchant != '')
	{
	  amunt = amunt + '<a href="#' + anchant + '">';
	}
	amunt = amunt + '<img src=' + '"' + rel;
	if (anchant != '')
	{
	  amunt = amunt + 'amunt_si.gif' + '"';
	  amunt = amunt + ' alt="Anar a [';
	}
	else
	{
	  amunt = amunt + 'amunt_no.gif' + '"';
	  amunt = amunt + ' alt="No hi ha [';
	}
	amunt = amunt + unitat + '] anterior"';
	amunt = amunt + ' border="0">';
	if (anchant != '')
	{
	  amunt = amunt + '</a>';
	}
	
	// Seguent
	if (anchseg != '')
	{
	  avall = avall + '<a href="#' + anchseg + '">';
	}
	avall = avall + '<img src=' + '"' + rel;
	if (anchseg != '')
	{
	  avall = avall + 'avall_si.gif' + '"';
	  avall = avall + ' alt="Anar a [';
	}
	else
	{
	  avall = avall + 'avall_no.gif' + '"';
	  avall = avall + ' alt="No hi ha [';
	}
	avall = avall + unitat + '] seg&uuml;ent"';
	avall = avall + ' border="0">';
	if (anchseg != '')
	{
	  avall = avall + '</a>';
	}

	// Estil
	//estil = 'background-color:#ce8b43;vertical-align: middle';
	// estil = 'style=' + estil + '">';
	
	// Escriure
	document.write('<span ' + estil + '>' + '&nbsp;' + amunt + '&nbsp;' + avall + '&nbsp;' + '</span>');
}

