/* -------------------------------------------------------
   kreas enhavtabelon
   - 2009-01-05 adaptetoj kaj simpligoj por kukolo
   - 2005-02-23, jxeromo vasxe
   ------------------------------------------------------- */

/*
  mi provis konformigi la programon al la objekta modelo de
  dokumentoj (dom), sed mi devis escepti pro internet-explorer-5.
  ekzemple mi uzas en diversaj lokoj "innerHTML", cxar "nodeValue"
  aux "data" ne funkcias en tiu krozilo.
*/

/* ---------- modifeblaj eroj */

var cxeftitolo =     'h1';             /* recenzotas en la enhavtabelo */
var intertitoloj =   'h6';

var largxo =         140;              /* aspekto de la enhavtabelo */
var dekstre =         20;
var maldekstre =  10;    
var supre =          140;
var hejmo =          'kukolo';
var supren =         '&nbsp;&nbsp;&nbsp;&nbsp;&#9650;&nbsp;&nbsp;&nbsp;&nbsp;';
var malsupren =      '&nbsp;&nbsp;&nbsp;&nbsp;&#9660;&nbsp;&nbsp;&nbsp;&nbsp;';

/* ---------- ne tusxu */

var alhejmo =        '../index.htm';   /* la cxefpagxo */
var e;                                 /* la kreota enhavtabelo */
var id =             'enhavtabelo';    /* gxia identigilo */
var idcxapitroj =    'enhavtabelo_cx'; /* klaso de gxiaj subpartoj */

/* ---------- je malfermo de fenestro */

window.onload = function () {          /* onLoad fiaksigas interalie firefox-0.9.3 */
  pagxo = self;
  enhavtabelizu();
  self.document.getElementsByTagName('body')[0].appendChild(e);
  enhavtabelloku();
}

/* ---------- kreas la enhavtabelon */

function enhavtabelizu() {
  e                  = self.document.createElement('div');
  e.id               = id;

  var h4             = self.document.createElement('h4');
  var a              = self.document.createElement('a');
  a.href             = alhejmo;
  a.innerHTML        = hejmo;
  h4.appendChild(a);
  e.appendChild(h4);
  
  var h6             = self.document.createElement('h6');
  var a              = self.document.createElement('a');
  a.href             = 'javascript:pagxo.scrollTo(0, 0);';
  a.innerHTML        = supren;
  h6.appendChild(a);
  e.appendChild(h6);

  var h5             = self.document.createElement('h5');
  h5.innerHTML       = senmarkigu(pagxo.document.getElementsByTagName(cxeftitolo)[0].innerHTML);
  e.appendChild(h5);

  var div            = self.document.createElement('div');
  div.id             = idcxapitroj;
  var t              = pagxo.document.getElementsByTagName(intertitoloj);
  for (var i = 0; i < t.length; i++) {
    var a = '<a id="000' + i + '"></a>';
    t[i].innerHTML += a;

    var a = self.document.createElement('a');
    a.href = '#000' + i;
    a.innerHTML = senmarkigu(t[i].innerHTML);
    div.appendChild(a);
  }
  e.appendChild(div);

  var h6             = self.document.createElement('h6');
  var a              = self.document.createElement('a');
  a.href             = 'javascript:pagxo.scrollTo(0, 100000);';
  a.innerHTML        = malsupren;
  h6.appendChild(a);
  e.appendChild(h6);

  // alert(e.innerHTML);
  // alert(pagxo.document.getElementsByTagName('body')[0].innerHTML);
}

/* ---------- lokas la enhavtabelon en la pagxo */

function enhavtabelloku() {
  pagxo.document.body.style.marginLeft = (largxo + dekstre) + 'px';

  /*
     se mi metas la largxon rekte sur la div-on de la enhavtabelo,
     internet-explorer-5.0 misafisxas -- ekzemple kasxas iujn bildojn.
     mi do metas gxin per klaso "marxgena" (vidu la stilfolion) sur la idajn
     elementojn.
  */
  var tIdoj = pagxo.document.getElementById(id).childNodes;
  for (ido in tIdoj) {
    tIdoj[ido].className = 'margxena';
  }

  pagxo.document.getElementById(id).style.position = 'fixed';
  pagxo.document.getElementById(id).style.left = maldekstre + 'px';
  pagxo.document.getElementById(id).style.top  = supre + 'px';
}

/* ---------- forigas enajn html-markojn */

function senmarkigu(t) {
  while ((t.indexOf('<') > -1) && (t.indexOf('>') > -1)) {
    var kome = t.indexOf('<');
    var fino = t.indexOf('>') + 1;
    t = t.substr(0, kome) + ' ' + t.substr(fino);
  }
  return t;
}

/* ---------- */

