/*******************
 dynamic navigation
 *******************/

var to;

function Nshow ( id )
{
        if (document.getElementById(id).style.visibility != 'visible')
          to = setTimeout("showhide('"+id+"', 'visible')", 50);
        else
          clearTimeout(to);
}

function Nhide ( id )
{
        clearTimeout(to);
        to = setTimeout("showhide('"+id+"', 'hidden')", 50);
}

function showhide ( id , status )
{
    document.getElementById( id ).style.visibility = status;
}

function setBackground ( id , color )
{
    document.getElementById( id ).style.background = color;
}


function changeClass ( id, val )
{
    document.getElementById( id ).className = val;
}

function addClass ( id, val )
{
    document.getElementById( id ).className += ' '+val;
}




/* fgs11 */

/* old shit
function setOthersInactive ( el )
{
    var lis    = new Array();
    var childs = new Array();
    
    childs = el.parentNode.childNodes;
    
    for( i = 0; i < childs.length; i++ )
    {
    
      if (childs[i].nodeName == "LI")
        lis.push(childs[i]);
    }
    
    for ( i = 0; i < lis.length; i++ )
    {
      var res = lis[ i ].getElementsByTagName("a")[0].className.search(/path_active/);
      if( res != -1 )
      {
        lis[ i ].getElementsByTagName("a")[0].className = lis[ i ].getElementsByTagName("a")[0].className.replace(/path_active/g, '');
        lis[ i ].getElementsByTagName("a")[0].className += ' was_active';
      }
    }
}
*/

function setOthersInactive ( el )
{
    var lis    = new Array();
    var childs = new Array();
    
    childs = el.parentNode.childNodes;
    
    for( i = 0; i < childs.length; i++ )
    {
    
      if (childs[i].nodeName == "LI")
        lis.push(childs[i]);
    }
    
    for ( i = 0; i < lis.length; i++ )
    {
      var res = lis[ i ].getElementsByTagName("a")[0].className.search(/path_active/);
      if( res != -1 )
      {
        lis[ i ].getElementsByTagName("img")[0].src = lis[ i ].getElementsByTagName("img")[0].src.replace(/_h.gif/g, '.gif');
        lis[ i ].getElementsByTagName("a")[0].className += ' was_active';
      }
    }
}

/* old shit
function reactivate( el )
{
  var childs = new Array();
  
  childs = el.childNodes;
  
  for( i = 0; i < childs.length; i++ )
    {
    
      if (childs[i].nodeName == "LI")
      {
        var res = childs[i].getElementsByTagName("a")[0].className.search(/was_active/);
        if ( res != -1 )
        {
          childs[i].getElementsByTagName("a")[0].className = childs[i].getElementsByTagName("a")[0].className.replace(/was_active/, 'path_active');
        }
      }
    }
}
*/

function reactivate( el )
{
  var childs = new Array();
  
  childs = el.childNodes;
  
  for( i = 0; i < childs.length; i++ )
    {
    
      if (childs[i].nodeName == "LI")
      {
        var res = childs[i].getElementsByTagName("a")[0].className.search(/was_active/);
        if ( res != -1 )
        {
          var res2 = childs[i].getElementsByTagName("img")[0].src.search(/_h.gif/);
          if ( res2 == -1 )
            childs[i].getElementsByTagName("img")[0].src = childs[i].getElementsByTagName("img")[0].src.replace(/.gif/, '_h.gif');
            //alert(childs[i].getElementsByTagName("img")[0].src);
        }
      }
    }
}

/* ciwo */

function debug (text )
{
    document.getElementById('debug').firstChild.nodeValue += text + " | ";
}

function destroyLines( id )
{
    level  = id.substr( 0, id.length - 1 );

    for ( i = 1; i < 6; i++ )
    {
        if ( document.getElementById(level+i) != null )
            document.getElementById(level+i).className = document.getElementById(level+i).className.replace(/navline/, '');
    }
}

function checkLines( id, children )
{
    active = id.charAt( id.length - 1 );
    level  = id.substr( 0, id.length - 1 );

    for ( i = 1; i < 6; i++ )
    {
        if ( document.getElementById(level+i) != null && document.getElementById(level+i).origClass == null )
            document.getElementById(level+i).origClass = document.getElementById(level+i).className;
    }

    /*for ( i = 1; i < 6; i++ )
    {
        if ( document.getElementById(level+i) != null && document.getElementById(level+i).origClass != null )
            document.getElementById(level+i).className = document.getElementById(level+i).origClass;
    }*/

    if ( !children )  // alle Linien weg
    {
        for ( i = 2; i <= active; i++ )
        {
            document.getElementById(level+i).className = document.getElementById(level+i).className.replace(/navline/, '');
        }
    }
    else // Linien malen
    {
        for ( i = 2; i < active; i++ )
        {
            if ( document.getElementById(level+i).className.search(/navline/) == -1 )
                document.getElementById(level+i).className += ' navline';
        }

        // Linien weiter unten weg
        for ( i = active; i < 6; i++ )
        {
            if ( document.getElementById(level+i) != null )
            {
                if ( document.getElementById(level+i).className.search(/navline/) != -1 )
                    document.getElementById(level+i).className = document.getElementById(level+i).className.replace(/navline/, '');
            }

        }
    }

    //if (document.getElementById(level) != null )
    //    checkLines ( level );
}


function hideActiveLayer( id )
{
    if( id && document.getElementById(id) != null )
    {
        if( document.getElementById(id).parentNode.getElementsByTagName("ul")[0] != null )
        {
            document.getElementById(id).parentNode.getElementsByTagName("ul")[0].className =
                document.getElementById(id).parentNode.getElementsByTagName("ul")[0].className.replace(/ hoveractive/, "");
                
            document.getElementById(id).className = document.getElementById(id).className.replace(/ active/, "");

            document.getElementById(id).parentNode.getElementsByTagName("ul")[0].className+=" navhidden";
        }
    }
}


function showActiveLayer( id, dynPos, dynWidth )
{
    if( id && document.getElementById(id) != null )
    {
        if( document.getElementById(id).parentNode.getElementsByTagName("ul")[0] != null )
        {
            // betroffenes ul ermitteln und einblenden
            document.getElementById(id).parentNode.getElementsByTagName("ul")[0].className =
                document.getElementById(id).parentNode.getElementsByTagName("ul")[0].className.replace(/ navhidden/, "");

            document.getElementById(id).parentNode.getElementsByTagName("ul")[0].className += " hoveractive";
            document.getElementById(id).className += " active";
            
            // wenn gewuenscht, element anhand des elternelements positionieren
            if ( dynPos )
            {
              document.getElementById(id).parentNode.getElementsByTagName("ul")[0].style.left = 
                  document.getElementById(id).offsetLeft + "px";
            }
            
            // Breite der Liste noch an die Breite des Parents angleichen
            if( dynWidth )
            {
              document.getElementById(id).parentNode.getElementsByTagName("ul")[0].style.minWidth = 
                  document.getElementById(id).offsetWidth + "px";
            }
        }
    }
}

function deleteActiveLine( id )
{
    if( document.getElementById( id ) )
    {
        var el = document.getElementById( id );

        if(      el.className.search( /first/ ) != -1 )
            el.className = el.className.replace(/active_first/, "");
        else if( el.className.search( /inner/ ) != -1 )
            el.className = el.className.replace(/active_inner/, "");
        else if( el.className.search( /last/  ) != -1 )
            el.className = el.className.replace(/active_last/,  "");
    }
}


function addActiveLine( id )
{
    if( document.getElementById( id ) )
    {
        var el = document.getElementById( id );

        if(      el.className.search( /active_first/ ) == -1 && el.className.search( /first/ ) != -1 )
            el.className += " active_first";
        else if( el.className.search( /active_inner/ ) == -1 && el.className.search( /inner/ ) != -1 )
            el.className += " active_inner";
        else if( el.className.search( /active_last/  ) == -1 && el.className.search( /last/  ) != -1 )
            el.className += " active_last";
    }
}