var corrX=0;
var corrY=0;
var exclude=true;
var agt = navigator.userAgent.toLowerCase();
var ie=false;
var ie4=false;
var ie5=false;
var op5=false;

if (document.all&&(agt.indexOf('msie')!=-1)) {
ie=true;
ie4=true;
exclude=false;
//IE5
if (agt.indexOf('msie 4')==-1) { ie5=true; ie4=false; }
//Opera mima IE5
if (agt.indexOf('opera')!=-1) { ie=false; ie4=false; ie5=false; op5=true; }
}

//NS4
var ns4=false;
if (document.layers) {
ns4=true;
exclude=false;
}

var ns6=false;
var mz7=false;

//NS6
if (document.getElementById&&!ie) {
ns6=true;
exclude=false;

//MOZILLA7
if (agt.indexOf('netscape6')==-1) {
ns6=false;
mz7=true;
}

//Opera mima Mozilla
if (window.opera) { mz7=false; op5=true;}
else if (agt.indexOf('gecko')==-1) { mz7=false; exclude=true; }
}

//Altri
if (agt.indexOf('opera 4')!=-1) { op5=false; mz7=false; exclude=true; }
if (agt.indexOf('webtv')!=-1) { ie=false; ie4=false; exclude=true; }
var win=true; var mac=false;
if (agt.indexOf('mac')!=-1) { win=false; mac=true; }

DOM = (document.getElementById) ? true : false;

function getXpos(cell)
  {
// var cellaDiRiferimento = eval("document.all." + cell); //Questo funziona su IE 4
// var cellaDiRiferimento = eval("document.getElementById('" + cell + "')")
//Questa riga funziona solo nei browser che supportano il DOM

 var cellaDiRiferimento;
 eval('cellaDiRiferimento = (DOM) ? document.getElementById("' + cell +'") : document.all("' + cell + '");');
 var parentela = "";
 var coordinataX = 0;

 if (ns6)
 { coordinataX = cellaDiRiferimento.offsetLeft; }
 else
 { while(eval("cellaDiRiferimento." + parentela + "tagName") != "BODY")
  { coordinataX = coordinataX + eval("cellaDiRiferimento." + parentela +"offsetLeft");
   parentela = parentela + "offsetParent." ;
  }
 }
if(ie5)
  corrX=0;
//Aggiungere qui condizioni per scostamento dalla coordinate tracciate
 return coordinataX+corrX;
  }

function getYpos(cell)
  {
 var cellaDiRiferimento;
 eval('cellaDiRiferimento = (DOM) ? document.getElementById("' + cell +'") : document.all("' + cell + '");');
 var parentela = "";
 var coordinataY = 0;
 if (ns6)
 { coordinataY = cellaDiRiferimento.offsetTop; }
 else
 {  while(eval("cellaDiRiferimento." + parentela + "tagName") != "BODY")
  {  coordinataY = coordinataY + eval("cellaDiRiferimento." + parentela +"offsetTop");
   parentela = parentela + "offsetParent." ;
  }
 }
if(ie5)
  corrY=0;
//Aggiungere qui condizioni per scostamento dalla coordinate tracciate
 return coordinataY+corrY /* + cellaDiRiferimento.offsetHeight */ ;

// NB la riga dopo il pił serve a far apparire il menu dalla base della cella return coordinataY;

  }

// --------------- Fine tracciamento ----------------


//----------------- Inizio Funzioni Apri e Chiudi menu ----------

var remember = new Array();
var remember2 = new Array();
var checkIt;

var DHTML = (document.getElementById || document.all || document.layers);

function showMenu(name,lvl,obj)
{
  if (!DHTML) return;
  checkUserInput();
  if (remember[lvl] && remember[lvl] == name) return;
  if (remember[lvl])
  {
    closeAll(lvl);
  }
  if (name)
  {
    var x = getObjbyName(name);
    x.visibility = 'visible';
  }
  remember[lvl] = name;
  if (obj.parentNode) y = obj.parentNode;
  else if (obj.parentElement) y = obj.parentElement;
  else return;
  if (y.className) return;
  y.className = 'over';
  if (remember2[lvl]) remember2[lvl].className = '';
  remember2[lvl] = y;
}

function closeAll(lvl)
{
  for (i=remember.length - 1;i>=lvl;i--)
  {
    if (remember[i]) //IE4 Mac
    {
      var x = getObjbyName(remember[i]);
      x.visibility = 'hidden';
    }
    remember[i] = null;
    if (remember2[i])
    {
      remember2[i].className = '';
      remember2[i] = null;
    }
  }

}

function checkUserInput()
{
  if (checkIt) clearTimeout(checkIt);
  checkIt = setTimeout('closeAll(1)',2000);
}

function getObjbyName(name)
{

  if (document.getElementById)
  {
    return document.getElementById(name).style;
  }
  else if (document.all)
  {
    return document.all[name].style;
  }
  else if (document.layers)
  {
    return document.layers[name];
  }
  else return false;
}

