﻿// DHTML-Bibliothek Version 1.0  last-update: 15.03.2006
// letzte Änderung: Funktion showHideNav hinzugefügt

  var browserName = navigator.appName,
      browserVersion = parseInt(navigator.appVersion),
      isIE = browserName.indexOf("Microsoft Internet Explorer") ==-1 ? false : true,
      isNN = browserName.indexOf("Netscape")==-1 ? false : true,
      isOp = browserName.indexOf("Opera")==-1 ? false : true,
      isMacIE = /msie .* mac/i.test(navigator.userAgent),
      isDOM = document.getElementById,
      isDomNN = document.layers,
      isDomIE = document.all,
      docStr,
      styleStr= isDomNN ? '' : 'style.';
  if (isDOM)
     docStr="document.getElementById(elem).";
  else if (isDomIE)
     docStr="document.all[elem].";
  else
//     docStr="document[elem].";
     docStr="document.layers[elem].";
  function setAttr(elem, attr, val)
  {
    if ( typeof elem == 'object' )
       eval("elem." + styleStr + attr + "= val");
    else
       eval(docStr + styleStr + attr + "= val");
  }
  function getAttr(elem, attr)
  {
    if ( typeof elem == 'object' )
       eval("var ret= elem." + styleStr + attr + ";");
    else
       eval("var ret= " + docStr + styleStr + attr + ";");
    return (ret ? ret: '');
  }
  function getObject(elem)
  {
    eval("var ret= " + docStr.substr(0, docStr.length-1)+ ";");
    return (ret ? ret: void(0));
  }
  function getContent(elem)
  {
    var content= false;
    if ( typeof elem != 'object' )
       eval("elem= " + docStr.substr(0, docStr.length-1) + ";");
    if ( !elem )
       return false;
    if (isDOM)
    {
       if ( elem.firstChild )
          content= elem.firstChild.nodeValue;
    }
    else
       if (isDomIE )
          content= elem.innerText;
       else
          if ( isDomNN )
          {
             elem.document.open();
             content= elem.document.read();
             elem.document.close();
          }
          else
             return false;
    return content;
  }
  function setContent(elem, content)
  {
    if ( typeof elem != 'object' )
       eval("elem= " + docStr.substr(0, docStr.length-1) + ";");
    if ( !elem )
       return false;
    if (isDOM)
    {
       if ( elem.firstChild )
          elem.firstChild.nodeValue= content;
    }
    else
       if (isDomIE )
          elem.innerText= content;
       else
          if ( isDomNN )
          {
             elem.document.open();
             elem.document.write(content);
             elem.document.close();
          }
          else
             return false;
    return true;
  }
  function moveObject( elem, x, y, step )
  {
     step= step || 1;
     if ( step > 1 )
     {
     }
     else
     {
        setAttr(elem, 'left', x);
        setAttr(elem, 'top', y);
     }
  }
  function setPos(elem, x,y)
  {
    setAttr(elem, 'left', x);
    setAttr(elem, 'top', y);
  }
  function setEventAction(elem, whichAction, ActionFunc)
  {
    if (isDomNN)
       eval("document.layers[elem].captureEvents(Event." + whichAction + ");");
    eval(docStr + "on" + whichAction.toLowerCase() + "= ActionFunc");
  }
  var   cur_drag= false,
        dragXoffs,
        dragYoffs,
        oldMouseMove= null,
        oldMouseUp= null;
  function drag(ev)
  {
    if (isDomIE)
    {
       cur_drag= event.srcElement;
       while ( cur_drag.tagName != 'DIV' && cur_drag.offsetParent )
          cur_drag= cur_drag.offsetParent;
       if ( cur_drag.offsetParent )
       {
          dragXoffs= event.clientX - (cur_drag.style.left ? parseInt(cur_drag.style.left):0);
          dragYoffs= event.clientY - (cur_drag.style.top ? parseInt(cur_drag.style.top):0);
       }
       else
          cur_drag= false;
    }
    else if (isDOM)
    {
       cur_drag= ev.target;
       while ( cur_drag.tagName != 'DIV' && cur_drag.parentNode )
           cur_drag= cur_drag.parentNode;
       if ( cur_drag.parentNode )
       {
          dragXoffs= event.clientX - (cur_drag.style.left ? parseInt(cur_drag.style.left):0);
          dragYoffs= event.clientY - (cur_drag.style.top ? parseInt(cur_drag.style.top):0);
       }
       else
          cur_drag= false;
    }
    else if (isDomNN)
    {
      var   i,
            posX= ev.pageX - ev.x,
            posY= ev.pageY - ev.y;
      for (i= 0; i < document.layers.length; i++)
      {
         if ( parseInt(document.layers[i].left) == posX &&
              parseInt(document.layers[i].top) == posY )
         {
            cur_drag= document.layers[i];
            break;
         }
      }
      if ( cur_drag )
      {
         document.captureEvents(Event.MOUSEMOVE | Event.MOUSEUP);
         dragXoffs= ev.x;
         dragYoffs= ev.y;
      }
    }
    if ( cur_drag )
    {
       oldMouseMove= document.onmousemove;
       document.onmousemove= m_move;
       oldMouseUP= document.onmouseup;
       document.onmouseup= drop;
    }
  }
  function m_move(ev)
  {
     if (cur_drag)
     {
        if (isDomIE)
           ev= event;
//        else if (isDOM)
//           ;
        else if (isDomNN)
        {
           cur_drag.left= ev.pageX - dragXoffs;
           cur_drag.top= ev.pageY - dragYoffs;
           return;
        }
        cur_drag.style.left= ev.clientX - dragXoffs;
        cur_drag.style.top= ev.clientY - dragYoffs;
     }
  }
  function drop(ev)
  {
     if (cur_drag)
     {
        cur_drag= false;
        document.onmousemove= oldMouseMove;
        document.onmouseup= oldMouseUp;
     }
  }
  
  function popup(url, target, param)
  {
     var win;
     param= param || "width=500, height=500, dependent=yes, location=no,menubar=no,resizable=yes,scrollbars=yes,status=no,toolbar=no";
     if ( target )
        target= target.replace(/\W/g, '');
     else
        target= 'info';    
     win= window.open(url, target, param);
     win.focus();
  }
  
  
  // Für den Mozilla, Firefox und Opera die Höhe anpassen
  function setContentHeight(conDivIds, bodytableId, deltaHeight)
  {
    if(isDOM )
    {
       var conDiv,
           ids= conDivIds.split(','),
           bodytable=document.getElementById(bodytableId);
       if ( isMacIE || window.innerHeight || (isIE && screen.height < 768) )
       {
          var h= window.innerHeight || document.body.offsetHeight;
            // für den IE die Scrollbar wieder anzeigen, wenn Auflösung unter 1024x768
          if ( isIE && screen.height < 768 )
          {
             document.body.scroll= 'yes';
             h-= 20;
          }
          for ( var i= 0; i < ids.length; i++)
          {
              conDiv=document.getElementById(ids[i]);
              if ( conDiv )
                 conDiv.style.height=(h - deltaHeight) + 'px';
          }
          if ( bodytable )
             bodytable.style.height=h+ 'px';
          document.body.style.height=h+ 'px';
       }
       document.body.onunload= new Function("if ( detailWin && !detailWin.closed) detailWin.close();");
    }
  }
  
   var menuImages= new Array();
   function initMenuImages(menuIndex, img_activeSrc, img_passiveSrc)
   {
      menuImages[menuIndex]= new Array();
      menuImages[menuIndex][0]= new Image();
      menuImages[menuIndex][0].src= img_activeSrc;
      menuImages[menuIndex][1]= new Image();
      menuImages[menuIndex][1].src= img_passiveSrc;
   }
  
   function showHideMenu(menuIndex, targetID, hide)
   {
      if (!isDOM)
         return;
      var div= document.getElementById('s' + targetID),
          img= document.getElementById('i' + targetID);
      if ( div && img )
      {
         if ( hide !== true && hide !== false )
            hide= div.style.display != 'none';
         if ( hide )
         {
            div.style.display= 'none';
            img.src= menuImages[menuIndex][1].src;
         }
         else
         {
            div.style.display= 'block';
            img.src= menuImages[menuIndex][0].src;
         }
      }
   }
   
   function closeMenus(menuIndex, allMainMenu, allSubMenu)
   {
     if ( isDOM )
     {
        var closeMenu;
        closeMenu= String(allMainMenu + allSubMenu).split(',');
        for ( var i= 1; i < closeMenu.length; i++ )
            showHideMenu(menuIndex, closeMenu[i], true);
     }
   }

   function topnav(elem, over)
   {
     if(over)
        setAttr(elem, 'backgroundColor', '#C8C8C8');
     else
        setAttr(elem, 'backgroundColor', '#9B9B9B');
   }

   function showVG() {
     setAttr('VG', 'display', 'block');
     document.vg_onclick= document.onclick; 
     document.onclick= hideVG;
   }
 
   function hideVG() {
     setAttr('VG', 'display', 'none');
     document.onclick= document.vg_onclick;
   }

   function showCon(conID, left, top, height)
   {
      setAttr(conID, 'display', 'block');
      if ( isDomNN  )
         setPos(conID, left, top);
      else
         if ( height )
            setAttr(conID, 'height', height);
      document.conID= conID;
      document.conID_onclick= document.onclick;
      document.onclick= hideCon;
   }
   function hideCon(conID)
   {
      setAttr(document.conID, 'display', 'none');
      document.onclick= document.conID_onclick;
   }

   var detailWin;
/* 
  imgUrl= die Url des Bildes
  [prevWidth]= Die Breite des Vorschaubildes oder false, wenn das Bild als Vollbild angezeigt werden soll
               default= 200
  [prevHeight]= Die Höhe des Vorschaubildes
                default= proportional zu prevWidth  
  [withDownload]= bei true wird ein DownloadButton angezeigt
*/
   function openDetail(imgUrl, prevWidth, prevHeight, withDownload)
   {
      if ( detailWin )
         detailWin.close();
      if ( !imgUrl )
         return;
      var imgUrlType = imgUrl.substr(imgUrl.lastIndexOf(".")+1).toUpperCase();
      if (imgUrlType != "JPG" && imgUrlType != "JPEG" && imgUrlType != "GIF" && imgUrlType != "PNG")
      {
        popup(imgUrl,detailWin,"");
        return;
      }

      var start= imgUrl.indexOf("://" + location.hostname);
      if ( start > 0 )
         imgUrl= imgUrl.slice(start + 3 + location.hostname.length)
      if ( prevWidth === false )
      {
         prevWidth= "&fullImage=1"; 
      }
      else
      {
        if ( !prevWidth && !prevHeight )
            prevHeight= 200;
        prevWidth= prevWidth ? "&prevWidth=" + prevWidth : "";
        prevHeight= prevHeight ? "&prevHeight=" + prevHeight : "";
        withDownload= withDownload ? "&download=yes" : "";
      }
      detailWin= window.open('/media/haushalt/common/imagedetail.aspx?img=' + imgUrl
        + prevWidth + prevHeight + withDownload
        , "detail", "width=300, height=300, dependent=yes, location=no,menubar=no,resizable=yes,scrollbars=no,status=no,toolbar=no");
      if ( detailWin )
      {
         detailWin.focus();
      }
   }

   function openAsDownload(filename)
   {
      if ( detailWin )
         detailWin.close();
      if ( !filename )
         return;
      var start= filename.indexOf("://" + location.hostname);
      if ( start > 0 )
         filename= filename.slice(start + 3 + location.hostname.length)
      detailWin= window.open('?src=' + filename
        , "download", "width=300, height=300, dependent=yes, location=no,menubar=no,resizable=yes,scrollbars=no,status=no,toolbar=no");
      if ( detailWin )
         detailWin.focus();
   }

function showHide(id, show)
{
    var elem= getObject(id);
    if ( !elem )
       return;
    if ( show !== true && show !== false )
       show= (elem.style.display != 'block');
    elem.style.display= show ? 'block' : 'none'; 
} 

var curInfoArea= new Array();
function showInfoArea(id, pageID)
{
  if ( isDOM )
  {
     var info= document.getElementById(id);
     if ( !info || info == curInfoArea[pageID] )
        return;
     info.className= info.className.replace(/([ ]?jsClosed)/, '');
     if ( curInfoArea[pageID] )
        curInfoArea[pageID].className= String(curInfoArea[pageID].className.replace(/([ ]?jsClosed)/, '') + ' jsClosed').replace(/^[ ]*/, '');
     curInfoArea[pageID]= info;
  }
}
function initInfoArea(parentID, showFirst, pageID)
{
  if ( isDOM )
  {
     var area= document.getElementById(parentID);
     if ( !area )
        return false;
     area= area.firstChild;
     while ( area && area.nodeType != 1 )
        area= area.nextSibling;
     if ( !area )
        return false;
     //var cnt= curInfoArea.length;
     if ( showFirst )
     {
        curInfoArea[pageID]= area;
        //area.curIndex= cnt;
        area.className= area.className.replace(/([ ]?jsClosed)/, '');
        //area= area.nextSibling;
     }
     /*
     while ( area )
     {
        if ( area.nodeType == 1 )
        {
           area.className= area.className.replace(/([ ]?jsClosed)/, '') + ' jsClosed';
           area.curIndex= cnt;
        }
        area= area.nextSibling;
     }
     */
  }
}

function checkTargetLink(link)
{
  try
  {
    if (!link || !link.target || link.target == '_self')
       return;
    if ( opener.name == link.target )
       opener.focus()
    else
       self.blur();
  }
  catch (e) {}
}

function changeImage(name, url)
{
    if (document.getElementsByName(name)[0])
       document.getElementsByName(name)[0].src= url;
}

if ( document.getElementById )
{
   document.write("<style>span.jsClosed { background-image:url() }\n"
     + "table.jsClosed { display:block }\n"
     + "div.jsClosed { display:none }\n"
     + "</style>")
}


function showHideNav(menu, id)
{
   if ( document.getElementById )
   {
      var span= document.getElementById('e' + id),
          div= document.getElementById('s' + id);
      if ( span && div )
      {
         if ( span.className.indexOf(' jsClosed') > 0 )
         {
            span.className= span.className.replace(" jsClosed", "");
            div.className= div.className.replace(" jsClosed", "");
         }
         else
         {
            span.className= span.className + " jsClosed";
            div.className= div.className + " jsClosed";
         }
      }
   }
}
