// javascript by Marco Balestra <balestra@cesmail.net>
var tree_img_base = params.currentHome + '../common/1/img/';
var tree_imgblank = new Image(); tree_imgblank.src = tree_img_base + 'arrow_blank.gif';
var tree_imglink  = new Image(); tree_imglink.src  = tree_img_base + 'arrow_link.gif';
var tree_imgclose = new Image(); tree_imgclose.src = tree_img_base + 'arrow_close.gif';
var tree_imgopen  = new Image(); tree_imgopen.src  = tree_img_base + 'arrow_open.gif';
var tree_imgconn  = new Image(); tree_imgconn.src  = tree_img_base + (params.lang == 'ar' ? 'ar_' : '') + 'arrow_connect.gif';
var tree_imgconne = new Image(); tree_imgconne.src = tree_img_base + (params.lang == 'ar' ? 'ar_' : '') + 'arrow_connectend.gif';
var tree_imgpass  = new Image(); tree_imgpass.src  = tree_img_base + 'arrow_passthru.gif';

var tree_currentItems = tree_initCurrentItems();
var tree_browserlevel = tree_getBrowserlevel();

// tree_draw();

function tree_initCurrentItems() {
 var i,risp = new Array();
 for (;!(tree_level1[tree_level1.length -1]);)tree_level1.length = tree_level1.length -1;
 for(i=0; i<tree_level1.length; i++) {
  if (tree_level1[i].active || tree_level1[i].expand) risp[risp.length] = i;
 }
 return risp;
}

function tree_content() {
 var risp, thisImg, thisCurr, i, j, thisConn;
 risp = '<table cellpadding="2" cellspacing="0" border="0" width="100%">';
 risp += '<tr height="1"><td width="14"></td><td width="5"></td><td width="100%"></td></tr>';
 for (i=0; i<tree_level1.length; i++) {
  thisCurr = tree_isCurrent(i) || bd.is_nav4;
  thisImg  = tree_level1[i].islink ? tree_imglink.src : ( thisCurr ? tree_imgopen.src : tree_imgclose.src) ;
  risp += '<tr valign="top"><td><p>';
  if (! (bd.is_nav4 || tree_level1[i].islink)) {
   // e' un  nodo, non un semplice link, e non e' NS4
   risp += '<a href="javascript:tree_'+( thisCurr ? 'close' : 'open' )+'('+i+');">';
  }
  risp += '<img alt="" width="14" border="0" src="'+thisImg+'">';
  if (! (bd.is_nav4 || tree_level1[i].islink)) risp += '</a>';
  risp += '</p></td><td colspan="2"><p>';
  if (tree_level1[i].link) {
   // c'e' un link sul testo
   risp += '<a href="'+tree_level1[i].link+'">';
  }
  risp += '<b>'+ (tree_level1[i].active ? '<span class="treeStepActive">':'') + tree_level1[i].text +(tree_level1[i].active ? '</span>':'') +'</b>';
  if (tree_level1[i].link) risp += '</a>';
  risp += '</p></td></tr>';
  if (thisCurr && tree_level1[i].comment && tree_level2[i]) risp += '<tr><td><img src="'+tree_imgpass.src+'" alt=""></td><td colspan="2"><p class="comment">'+tree_level1[i].comment+'</p></td></tr>';
  for (j=0; thisCurr && tree_level2[i] && (j<tree_level2[i].length); j++) {
   thisConn = tree_level2[i][j+1] ? tree_imgconn.src : tree_imgconne.src ;
   risp += '<tr><td><img width="14" src="'+thisConn+'" alt=""></td><td><img alt="" width="5" src="'+tree_imgblank.src+'"></td>';
   risp += '<td><p>';
   if (tree_level2[i][j].link !== '' ) risp += '<a href="'+ tree_level2[i][j].link +'">';
   if (tree_level2[i][j].active) risp += '<span class="treeStepActive">';
   risp += tree_level2[i][j].text
   if (tree_level2[i][j].active) risp += '</span>';
   if (tree_level2[i][j].link !== '' ) risp += '</a>';

   risp += '</p></td></tr>';
  }
 }
 return risp + '</table>';
}

function tree_getBrowserlevel() {
 var isie5 = bd.is_ie5up;
 var isie4 = bd.is_ie4;
 var isNS4 = bd.is_nav4;
 var isNS6 = bd.is_nav && document.getElementById ? true : false;
 var isNS7 = bd.is_nav && (parseInt(navigator.appVersion) >= 5);
 return isie4 || isNS7 ? 1 : ( isie5 || isNS6 ? 2 : 0 );
}

function tree_draw() {
 var theHTML = tree_content();
 switch (tree_browserlevel) {
  case 1 : document.getElementById("theTree").innerHTML=theHTML; break;
  case 2 : document.all.theTree.innerHTML=theHTML; break;
  default: // there is a Netscape 4.x browser, probably
   with (document.layers['theTree'].document) {
    open();
    write('<html><body>'+theHTML+'</body></html>');
    close();
   }
   window.innerWidth = window.innerWidth;
 }
}

function tree_NS4getLayer(layerName, obj) {
 // recursive to find layer reference
 var i=0;
 var perObj = null;
 var tmpObj = (obj) ? obj.document.layers : document.layers;
 alert(tmpObj.length);
 for (i=0; i<tmpObj.length; i++) {
  if (tmpObj[i].id == layerName) return tmpObj[i];
  perObj = tree_NS4getLayer(layerName,tmpObj[i]);
  if(perObj) return perObj;
 }
}

function tree_isCurrent(node) {
 var i;
 node = Number(node);
 for (i=0; i<tree_currentItems.length; i++) {
  if (node == tree_currentItems[i]) return true;
 }
 return false;
}

function tree_open(node) {
 tree_currentItems[ tree_currentItems.length ] = Number(node);
 tree_draw();
}

function tree_close(node) {
 var i,tmp=new Array();
 node = Number(node);
 for (i=0; i<tree_currentItems.length; i++) if (node != tree_currentItems[i]) tmp[tmp.length]=tree_currentItems[i];
 tree_currentItems.length=0;
 for (i=0; i<tmp.length; i++) tree_currentItems[i]=tmp[i];
 tree_draw();
}
