   var fnull = new String('00000000000000000000')
   var fkomma = new String(',')
   var fpunkt = new String('.')
   var inHeight = 764
   var inWidth= 1024
   var nullen = new String('000')
   var telnrchars = new String("01234567890-/()+")
   var deczahlchars = new String("01234567890.,")
   var intzahlchars = new String("01234567890")
   var decpt = new String(".,")
function getKey(e)
{
   if (window.event) return window.event.keyCode;
   else if (e) return e.which;
   else return null;
}

 function restrictChars(e, validList)
 {
    var key, keyChar;
    key = getKey(e);
    if (key == null) return true;
    if ((parseInt(key)>=96) && (parseInt(key)<= 105)){inp -=48 }
    keyChar = String.fromCharCode(key).toLowerCase();
    if (validList.toLowerCase().indexOf(keyChar) != -1) return true;
    if ( key==0 || key==8 || key==9 || key==13 || key==27 ) return true;
    return false;
 }

function numericOnly( e)
{
   return restrictChars( e, "0123456789");
}
function telnumericOnly( e)
{
   return restrictChars( e, "0123456789-/");
}


function alphanumericOnly( e)
{
   return restrictChars( e, "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ");
}


function whideme()
{
   document.getElementById('div000').style.visibility='hidden'
}
function showEvent()
{
   var picwd = document.getElementById('img01').width
   if (browserid==0)
   {
      var scrwd = document.body.clientWidth
   }
   else
   {
      var scrwd = window.innerWidth
   }
   var xpos = parseInt(scrwd/2)-parseInt(picwd/2)
   document.getElementById('p01').style.left=xpos
   document.getElementById('p01').style.visibility='visible'
}
function hideEvent()
{
   document.getElementById('p01').style.visibility='hidden'
}

function show_wpictures(f)
{
   var fStr = new String(f)
   fStr=nullen+fStr
   var l = fStr.length
   fStr = fStr.substr(l-3,3)
   var picpath='../bilder/wein/'+fStr+'.jpg'
   document.form1.pic000.src=picpath
   var pichg = document.getElementById('pic000').height
   var picwd = document.getElementById('pic000').width
   if (browserid==0)
   {
      var scrtop = document.body.scrollTop
      var scrhg = document.body.clientHeight
      var scrwd = document.body.clientWidth
      var ypos = scrtop+30
   }
   else
   {
      var scrtop = window.pageYOffset
      var scrhg = window.innerHeight
      var scrwd = window.innerWidth
      var ypos = scrtop+100
   }
   var xpos = parseInt(scrwd/2)-parseInt(picwd/2)
   document.getElementById('div000').style.top=ypos+'px'
   document.getElementById('div000').style.left=xpos+'px'
   document.getElementById('div000').style.visibility='visible'
}

function chgptr(f,m)
{
   var fStr = new String(f)
   fStr=nullen+fStr
   var l = fStr.length
   fStr = fStr.substr(l-3,3)
   if (m==0)
   {document.getElementById(fStr).style.cursor='default'}
   else
   {document.getElementById(fStr).style.cursor='pointer'}
}

var picpath =""


var browser = new String(navigator.userAgent)
var a = browser.indexOf('MSIE',0)
if (a !=-1){ var browserid=0 } else
{
   if ((a==-1)  && (browser.indexOf("Firefox/3",0))) { var browserid=2 } else browserid=1
}

function ScreenSet()
{
   if (browserid==0)
   {
      var screenStartTop = window.screenTop
      window.resizeTo(inWidth+66,inHeight)
   }
   else
   {
      var screenStartTop = window.pageYOffset
      window.innerHeight=inHeight
      window.innerWidth=inWidth+30
   }

}
   var smenusel = 0;
   var submenu = new Array()
   submenu[1]=0
   submenu[2]=1
   submenu[3]=1
   submenu[4]=1
   submenu[5]=1
   submenu[6]=0
   submenu[7]=1
   submenu[8]=0


   var ysave = 0
   var zsave = 0
   var y = 0
   var z = 0
   var sub = 0
   var Menu = 0
   var MenuSave = 0
   var lastMenu = 0
   var submenuPresent = false
   var onItem = false
   var totalMenuPos = 9
   var TotalMenuPos = 8
   var t =0
   function getPos(n)
   {
      var tmp = document.getElementById(n).offsetParent
      return tmp
   }


   function relMenu(m)
   {
      var tmp = new String("sMenu"+m)
      document.getElementById(tmp).style.visibility = "hidden"
      submenuPresent = false
      lastMenu=0
   }


   function setMenu(m)
   {
      var tmp = new String("sMenu"+m)
      lastMenu = m
      document.getElementById(tmp).style.top=y+5+22
      document.getElementById(tmp).style.left=z+10
      document.getElementById(tmp).style.visibility= "visible"
      submenuPresent = true
      MenuSave = m

   }

   function mouse_int(name,ev)
   {
      zsave=z
      ysave=y
      var id = "a"+name
      var pt = getPos(id)
      if (browserid==0)
      {
         var mmleft = document.getElementById("navtabMain").offsetLeft
         z = pt.offsetLeft+mmleft
         y = pt.offsetTop+2
      }
      else if (browserid==1)
      {
         var mmleft = document.getElementById("mMenu").offsetLeft
         z = pt.offsetLeft+mmleft-8
         y = pt.offsetTop
      }
      else
      {
         var mmleft = document.getElementById("mMenu").offsetLeft
         var osleft = document.getElementById("navtabMain").offsetLeft
         z = pt.offsetLeft+mmleft+osleft-8
         y = pt.offsetTop
      }
//      alert(browserid+'*'+mmleft+'*'+pt.offsetLeft+'*'+osleft+'*')
      if (name<=totalMenuPos)
      {
         sub = submenu[name]
      }
      else
      {
         sub=0
      }
      if (ev==1)
      {
         mover_color(id)
         clearTimeout(t)
         if (submenuPresent)
         {
            if (name>totalMenuPos)
            {
               var a = parseInt(name/10)
            }
            else
            {
               var a = name
            }
            if (a!=MenuSave)
            {
               relMenu(MenuSave)
            }
         }
         if (sub>0)
         {
            setMenu(name)
            Menu=name
         }
      }
      else
      {
//         alert('id '+id+'  Menu '+Menu)
         mout_color(id)
         t = setTimeout("relMenu(Menu)",500)
      }
      lastMenu=name
   }


   function mover_color(nme)
   {
      document.getElementById(nme).style.Color= "#BF0000"
      document.getElementById(nme).style.borderStyle= "inset"
      document.getElementById(nme).style.borderWidth= "1px"
      document.getElementById(nme).style.borderColor= "#DFE296"
   }
   function mout_color(nme)
   {
      document.getElementById(nme).style.Color= "#005F00"
      document.getElementById(nme).style.borderStyle= "solid"
      document.getElementById(nme).style.borderWidth= "1px"
      document.getElementById(nme).style.borderColor= "#DFE296"
   }
   function mover_c(n)
   {
      var nme = new String("a"+n)
      document.getElementById(nme).style.Color= "#BF0000"
      document.getElementById(nme).style.borderStyle= "inset"
      document.getElementById(nme).style.borderWidth= "1px"
      document.getElementById(nme).style.borderColor= "#DFE296"
   }
   function mout_c(n)
   {
      var nme = new String("a"+n)
      document.getElementById(nme).style.Color= "#005F00"
      document.getElementById(nme).style.borderStyle= "solid"
      document.getElementById(nme).style.borderWidth= "1px"
      document.getElementById(nme).style.borderColor= "#DFE296"
   }

   function newWd(adrstr,wd,hg)
   {
    var param = "status=1,resizable=1,"+
                "toolbar=0,location=0,"+
                "scrollbars=1,"+
                "width="+parseInt(wd)+","+
                "height="+parseInt(hg)
         var fenster = window.open(adrstr,"",param)
   }
   function ZugnameTest(form)
   {
      if (check_lng(form,6,20))
      {
         var schar = new String('.,;:-#+*\~!\"%&/()=?\|\\<>\@\^\°')
         var inp = new String(form.value)
         var l = inp.length
         for (var a=0;a<l;a++)
         {
            if (schar.indexOf(inp.charAt(a),0)>=0)
            {
               alert('Es sind keine Satz- und Sonderzeichen erlaubt')
               form.value=''
               form.select()
               return false
            }
         }
         return true
      }
      else
      {
        alert('Die Länge des Zugangsnamens soll mindestens 6 Zeichen betragen!')
        form.select()
        return false
      }
   }

   function logout()
   {
      if (confirm('Sie wollen sich abmelden?'))
      {
         document.cookie="benutzer=;path=;expires=Thu, 01-Jan-70 00:00:01 GMT;"
      }
   }

   function isteMail(eingabe)
   {
      var tmp = new String(eingabe.value)
      var pcnt =0
      var ecnt =0
      var ok =0
      for ( var i=0; i<tmp.length; i++ )
      {
         var aktZeichen = tmp.charAt(i)
         if (aktZeichen <'0')
         {
            if ((aktZeichen == '.') && (ecnt>0))
            {
              pcnt++;
              ok++;
            }
            if (aktZeichen == '-')
            {
               ok++;
            }
         }
         if (aktZeichen == '\@')
         {
            ecnt++;
            ok++;
         }
         if ( ((aktZeichen > '9') && (aktZeichen < '\@')) ||
              ((aktZeichen > 'Z') && (aktZeichen < '_')) ||
              ((aktZeichen > '_') && (aktZeichen < 'a')) ||
              (aktZeichen < '-')  ||
              (aktZeichen > 'z') )
         {
            return false;
         }
      }
      if ((pcnt>0) && (ecnt==1) && (ok>=2)) { return true } else { return false}
   }

   function istTelnr(eingabe)
   {
      var tmp = new String(eingabe.value)
   alert('2. tmp '+eingabe.value)
      var aktZeichen
      for ( i=0; i<tmp.length; i++ )
      {
         aktZeichen = tmp.charAt(i)
         alert(tmp.charAt(i))
         if (telnrchars.indexOf(aktZeichen)== -1) { return false }
      }
      return true
   }

   function istDecZahl(eingabe)
   {
      var tmp = new String(eingabe.value)
      var aktZeichen
      var decpktcnt=0
      for ( i=0; i<tmp.length; i++ )
      {
         aktZeichen = tmp.charAt(i)
         if (deczahlchars.indexOf(aktZeichen)== -1)
         {
            return false
         }
      }
      return true
   }

   function zaehleZeichen(eingabe,anz)
   {
      var tmp = new String(eingabe.value)
      if ( tmp.length  == anz)
      {
        return true
      }
      else
      {
         return false
      }
   }

   function istLeer(eingabe)
   {
      var tmp = new String(eingabe.value)
      if (tmp.length==0) { return true } else { return false }
   }
   function NurSpace(eingabe)
   {
         var tmp = new String(eingabe.value)
         for (var i=0; i<tmp.length; i++ )
         {
            if ( tmp.charAt(i) != ' ' )
            {
               return false
            }
         }
         return true
   }

   function istIntZahl(eingabe)
   {
      var tmp = new String(eingabe.value)
      var aktZeichen
      for ( var i=0; i<tmp.length; i++ )
      {
         aktZeichen = tmp.charAt(i)
         if ( aktZeichen < '0' || aktZeichen > '9' )
         {
            return false
         }
      }
      return true
   }
function add_days(form,anzdays)
{
   var dateTmp = new String(form.value)
   var datum_arr = new Array()
   datum_arr = dateTmp.split(fpunkt)
   if (datum_arr.length != 3)
   {
      alert('Falsches Datum - Format')
      form.focus()
      return false
   }
   else
   {
      var tag = new String(datum_arr[0])
      var mon = new String(datum_arr[1])
      var jah = new String(datum_arr[2])
      var newDate = new Date(jah,mon,tag)
      newDate.setDate(tag)
      newDate.setMonth(mon-1)
      newDate.setYear(jah)
      var mtmp = newDate.toLocaleString()
      newDate.setTime(newDate.getTime()+ (60 * 60 * 24000 * parseInt(anzdays.value)))
      var mtmp = newDate.toGMTString()
      var t = new String(newDate.getDate())
      var m = newDate.getMonth()
      var mstr = new String((parseInt(m)+1))
      var y = new String(newDate.getYear())
      if (t.length == 1) {t='0'+t}
      if (mstr.length == 1) {mstr='0'+mstr}
      var newDateStr=t+fpunkt+mstr+fpunkt+y
      return newDateStr
   }

}

   function check_date(form)
   {
      var  sysdate = new Date()
      var stag = new String(sysdate.getDate())
      var datum_arr = new Array()
      if (stag.length == 1) {stag='0'+stag}
      var smt = sysdate.getMonth()
      smt++
      var smon = new String(smt)
      if (smon.length == 1) { smon='0'+smon }
      var sjah = sysdate.getYear()
      var sdatum = stag+'.'+smon+'.'+sjah
      var  tage_array = new Array()
      var datum = new String(form.value)
      while (datum.indexOf(fkomma,0)>0)
      {
         var p = datum.indexOf(fkomma,0)
         datum = replaceChar(datum,fkomma,fpunkt)
      }
      var datum_arr = new Array()

      datum_arr = datum.split(fpunkt)

      if (datum_arr.length != 3)
      {
         alert('001 Falsches Datum - Format')
         form.value=''
         form.focus()
         return false
      }
      else
      {
         var tag = new String(datum_arr[0])
         var mon = new String(datum_arr[1])
         var jah = new String(datum_arr[2])
         if (istStrZahl(jah))
         {
            if (jah.length==1) { jah='200'+jah }
            else if (jah.length==2) { jah='20'+jah }
            else if (jah.length==3) { jah='2'+jah }
         }
         else
         {
            alert('002 Falsches Datum - Format')
            form.value=''
            form.focus()
            return false
         }
         if (istStrZahl(mon))
         {
            if ((mon>=1) && (mon<=12))
            {
            }
            else
            {
               alert('Monat - Nicht im Bereich 1 - 12')
               form.value=''
               form.focus()
               return false
            }
         }
         else
         {
            alert('Falsches Datum - Format Nur Zahlen sind zugelassen')
            form.value=''
            form.focus()
            return false
         }
         var j1 = parseFloat(jah)/4
         var j2 = parseInt(jah/4)
         var sa = j1-j2
         if (mon.substring(0,1)=='0') {mon = mon.substring(1,2)}
         tage_array[1]=31
         if (sa == 0) {tage_array[2]=29} else  {tage_array[2]=28}
         tage_array[3]=31
         tage_array[4]=30
         tage_array[5]=31
         tage_array[6]=30
         tage_array[7]=31
         tage_array[8]=31
         tage_array[9]=30
         tage_array[10]=31
         tage_array[11]=30
         tage_array[12]=31
         if (istStrZahl(tag))
         {
            if ((tag>=1) && (tag<=tage_array[mon]))
            {
               if (tag.length==1) { tag='0'+tag }
            }
            else
            {
               alert('Tag - Nicht im Bereich 1 - '+tage_array[mon])
               form.value='00.'+mon+'.'+jah
               form.focus()
               return false
            }
         }
         else
         {
            alert('Falsches Datumsformat - Nur ganze Zahlen sind zugelassen')
            form.value=''
            form.focus()
            return false
         }
         if (mon.length==1) { mon='0'+mon }
         datum = tag+'.'+mon+'.'+jah
         form.value=datum
         form.select()
      }
   }
   function KontrolleNull(eingabe)
   {
      var tmp = new String(eingabe.value)
      if ( tmp.length == 0 )
      {
         return false
      }
      else
      {
         return NurSpace(eingabe)
      }
   }


   function replaceChar(inp,toReplace,thisReplace)
   {
      var a = new String(inp)
      var p
      while (a.indexOf(toReplace)!=-1)
      {
         p = a.indexOf(toReplace)
         a = a.substring(0,p)+thisReplace+a.substring(p+1,a.length)
      }
      return a
   }

   function ZahlinBereich(eingabe, unten, oben)
   {
        var zahl = parseInt(eingabe.value);
        return ((zahl >= unten) && (zahl <= oben))
   }

   function istZahl(eingabe)
   {
      var tmp = new String(eingabe.value)
      var aktZeichen
      for ( var i=0; i<tmp.length; i++ )
      {
         aktZeichen = tmp.charAt(i)
         if ( aktZeichen < '0' || aktZeichen > '9' )
         {
            return false
         }
      }
      return true
   }
   function istStrZahl(eingabe)
   {
      var tmp = new String(eingabe)
         var aktZeichen
      for ( var i=0; i<tmp.length; i++ )
      {
         aktZeichen = tmp.charAt(i)
         if ( aktZeichen < '0' || aktZeichen > '9' )
         {
            return false
         }
      }
      return true
   }
   function DateComp(d1,d2)
   {
   /*
   *   result = 0      Fehler
   *          = 1      d1 = d2
   *          = 2      d1 < d2
   *          = 3      d1 > d2
   */
      var result = 0
      if ((d1!='') && (d2!=''))
      {
         var d1tmp = new String(d1)
         var d2tmp = new String(d2)

         var d1_arr = d1tmp.split('.')
         var tagd1 = d1_arr[0]
         var mond1 = d1_arr[1]
         var jahd1 = d1_arr[2]

         var d2_arr = d2tmp.split('.')
         var tagd2 = d2_arr[0]
         var mond2 = d2_arr[1]
         var jahd2 = d2_arr[2]
         var tmp1 = jahd1+mond1+tagd1
         var tmp2 = jahd2+mond2+tagd2
         var d1Int = tmp1
         var d2Int = tmp2

         if (d1Int==d2Int) { result=1}
         else if (d1Int<d2Int) { result=2}
         else  { result=3}
         return result
      }
      else
      {
         alert('Eingabeparameter fehlt')
      }
      return result
   }
   function dec_format(eingabe)
   {
      if (DecNumTest(eingabe))
      {
         var tmp = new String(eingabe.value)
         tmp = replaceChar(tmp,fkomma,fpunkt)
         var kpos = tmp.indexOf(fpunkt,0)
         if (kpos==-1)
         {
            if (tmp.length==0) {tmp='0'}
            var outp = tmp+fpunkt+fnull.substring(0,2)
         }
         else if (kpos==0)
         {
            if (tmp.length==1) {tmp=tmp+'00'}
            var tmp1 = new String(tmp.substring(1,3))
            var outp = '0'+fpunkt+tmp1
            if (tmp1.length<2) {outp = outp+'0'}
         }
         else
         {
            var len = tmp.length
            var intc = new String(tmp.substring(0,kpos))
            if (intc.length ==0) {intc = '0'}
            var decc = new String(tmp.substring((kpos+1),len))
            if (decc.length==1) {decc = decc+'0'}
            else if (decc.length>2) {decc = decc.substring(0,2)}
            else  {decc = '00'}
            var outp = intc+fpunkt+decc
         }
         eingabe.value = outp
         eingabe.select()
      }
      else
      {
        alert('Dies ist ein Dezimal-nummerisches Feld - Bitte nur zahlen')
        eingabe.value='0.00'
        eingabe.focus()
      }
   }
  function DecNumTest(form)
  {
     if (istDecZahl(form))
     {
        return true
     }
     else
     {
        return false
     }
   }
   function istDecZahl(eingabe)
   {
      var tmp = new String(eingabe.value)
      var aktZeichen
      for ( var i=0; i<tmp.length; i++ )
      {
         aktZeichen = tmp.charAt(i)
         if ( ((aktZeichen < '0' || aktZeichen > '9' ) &&
               (aktZeichen != fkomma )&&
               (aktZeichen != fpunkt )) || aktZeichen > '9')
         {
            return false
         }
      }
      return true
   }
   function tan_test(form)
   {
      var tmp = new String(form.value)
      if (tmp.length==6)
      {
         if (ftan.match(tmp))
         {
            if (tancnt==6)
            {
               alert('Nach dem Verbrauch der eingegebenen TAN verbleiben Ihnen noch 5 Nummern. Per eMail geht Ihnen eine neue Liste von TAN´s zu.')
            }
            return true
         }
         else
         {
            alert('TAN-Nummer nicht gefunden oder nicht mehr gültig!')
            form.value=''
            form.focus()
            return false
         }
      }
      else
      {
         alert('TAN zu kurz - auch führende Nullen bitte mit eingeben!')
         form.focus()
         return false
      }
   }
function Get_Days(jahr)
{
   var n =0
   var tdays = 0
   var diff = parseFloat(jahr/4)-parseInt(jahr/4)
   if (diff > 0)
   {
      n=parseInt(28)
      tdays=parseInt(365)
   }
   else
   {
      n=parseInt(29)
      tdays=parseInt(366)
   }
   var tage_array = new Array()
   tage_array[0] = 31
   tage_array[1] = n
   tage_array[2] = 31
   tage_array[3] = 30
   tage_array[4] = 31
   tage_array[5] = 30
   tage_array[6] = 31
   tage_array[7] = 31
   tage_array[8] = 30
   tage_array[9] = 31
   tage_array[10] = 30
   tage_array[11] = 31
   return tage_array
}

function sub_days(d1,d2)
{
   var datum1 = new String(d1)
   var datum2 = new String(d2)
   var datArr1 = datum1.split(fpunkt)
   var datArr2 = datum2.split(fpunkt)
   var t1 = datArr1[0]
   var m1 = datArr1[1]
   var j1 = datArr1[2]
   var t2 = datArr2[0]
   var m2 = datArr2[1]
   var j2 = datArr2[2]

   var tg=0;
   var jtmp = j1;
   var jdiff = j2-j1;
   if (jdiff == 0)
   {
      if (m1==m2)
      {
         tg=t2-t1
      }
      else
      {
         var tdays = Get_Days(j1)
         tg = tdays[m1-1]-t1
         for (var a=m1;a<(m2-1);a++) {tg += tdays[parseInt(a)]}
         tg+=parseInt(t2)
      }
   }
   else
   {
      var tdays = Get_Days(jtmp)
      var tg = tdays[m1-1]-t1
      for (var a=m1;a<12;a++) {tg += tdays[parseInt(a)]}
      jdiff--;
      jtmp++;
      while (jdiff>0)
      {
         tdays = Get_Days(jtmp);
         for (var a=0;a<12;a++) {tg += tdays[parseInt(a)]}
         jdiff--;
         jtmp++;
      }
      tdays = Get_Days(jtmp);
      for (var a=0;a<(m2-1);a++) {tg += tdays[parseInt(a)]}
      tg += parseInt(t2)
   }
   return tg
}
function UmlCheck(form)
{
   var uml = new String('äÄöÖüÜß_.,;:-#+*\~!\"%&/()=?\|\\<>\@\^\°')
   var inp = new String(form.value)
   var l = inp.length
   for (var a=0;a<l;a++)
   {
      if (uml.indexOf(inp.charAt(a),0)>=0)
      {
         alert('Es sind keine Umlaute oder Sonderzeichen erlaubt')
         return false
      }
   }
   return true
}

   function TelefonTest(form)
   {
      if ((istTelnr(form.f_telefon))  || (form.f_telefon.value == ''))
      {
         return true
      }
      else
      {
        alert('Ungültige Telefonnummer - bitte überprüfen Sie Ihre Eingabe')
        form.f_telefon.select()
      }
   }

   function FaxTest(form)
   {
      if ((istTelnr(form.f_fax)) || (form.f_fax.value == ''))
      {
         return true
      }
      else
      {
        alert('Ungültige Faxnummer - bitte überprüfen Sie Ihre Eingabe')
        form.f_fax.select()
      }
   }
   function eMailTest(form)
   {
      if ((isteMail(form.f_email)) || (form.f_email.value == ''))
      {
         return true
      }
      else
      {
         alert('Ungültige eMail-Adresse - bitte überprüfen Sie Ihre Eingabe')
         form.f_email.select()
         return false
      }
   }
   function check_lng(inp,lng1,lng2)
   {
      var tmp = new String(inp.value)
      var l = tmp.length
      if ((l>=parseInt(lng1)) && (l<=parseInt(lng2)))
      {
         return true
      }
      else
      {
         return false
      }
   }

function Browser() {

  var ua, s, i;

  this.isIE    = false;  // Internet Explorer
  this.isNS    = false;  // Netscape
  this.version = null;

  ua = navigator.userAgent;

  s = "MSIE";
  if ((i = ua.indexOf(s)) >= 0) {
    this.isIE = true;
    this.version = parseFloat(ua.substr(i + s.length));
    return;
  }

  s = "Netscape6/";
  if ((i = ua.indexOf(s)) >= 0) {
    this.isNS = true;
    this.version = parseFloat(ua.substr(i + s.length));
    return;
  }

  // Treat any other "Gecko" browser as NS 6.1.

  s = "Gecko";
  if ((i = ua.indexOf(s)) >= 0) {
    this.isNS = true;
    this.version = 6.1;
    return;
  }
}

var browser = new Browser();

// Global variable for tracking the currently active button.

var activeButton = null;

// Capture mouse clicks on the page so any active button can be
// deactivated.

if (browser.isIE)
  document.onmousedown = pageMousedown;
if (browser.isNS)
  document.addEventListener("mousedown", pageMousedown, true);

function pageMousedown(event) {

  var el;

  // If there is no active menu, exit.

  if (!activeButton)
    return;

  // Find the element that was clicked on.

  if (browser.isIE)
    el = window.event.srcElement;
  if (browser.isNS)
    el = (event.target.className ? event.target : event.target.parentNode);

  // If the active button was clicked on, exit.

  if (el == activeButton)
    return;

  // If the element clicked on was not a menu button or item, close the
  // active menu.

  if (el.className != "menuButton"  && el.className != "menuItem" &&
      el.className != "menuItemSep" && el.className != "menu")
    resetButton(activeButton);
}

function buttonClick(button, menuName) {

  // Blur focus from the link to remove that annoying outline.

  button.blur();

  // Associate the named menu to this button if not already done.

  if (!button.menu)
    button.menu = document.getElementById(menuName);

  // Reset the currently active button, if any.

  if (activeButton && activeButton != button)
    resetButton(activeButton);

  // Toggle the button's state.

  if (button.isDepressed)
    resetButton(button);
  else
    depressButton(button);

  return false;
}

function buttonMouseover(button, menuName) {

  // If any other button menu is active, deactivate it and activate this one.
  // Note: if this button has no menu, leave the active menu alone.

  if (activeButton && activeButton != button) {
    resetButton(activeButton);
    if (menuName)
      buttonClick(button, menuName);
  }
}

function depressButton(button)
{

  var w, dw, x, y;

  // Change the button's style class to make it look like it's depressed.

  button.className = "menuButtonActive";

  // For IE, set an explicit width on the first menu item. This will
  // cause link hovers to work on all the menu's items even when the
  // cursor is not over the link's text.

  if (browser.isIE && !button.menu.firstChild.style.width)
  {
    w = button.menu.firstChild.offsetWidth;
    button.menu.firstChild.style.width = w + "px";
    dw = button.menu.firstChild.offsetWidth - w;
    w -= dw;
    button.menu.firstChild.style.width = w + "px";
  }

  // Position the associated drop down menu under the button and
  // show it. Note that the position must be adjusted according to
  // browser, styling and positioning.

  x = getPageOffsetLeft(button);
  y = getPageOffsetTop(button) + button.offsetHeight;
  if (browser.isIE)
  {
    x += 2;
    y += 2;
  }
  if (browser.isNS && browser.version < 6.1) { y--; }

  // Position and show the menu.

  button.menu.style.left = x + "px";
  button.menu.style.top  = y + "px";
  button.menu.style.visibility = "visible";

  // Set button state and let the world know which button is
  // active.

  button.isDepressed = true;
  activeButton = button;
}

function resetButton(button) {

  // Restore the button's style class.

  button.className = "menuButton";

  // Hide the button's menu.

  if (button.menu)
    button.menu.style.visibility = "hidden";

  // Set button state and clear active menu global.

  button.isDepressed = false;
  activeButton = null;
}

function getPageOffsetLeft(el)
{

  // Return the true x coordinate of an element relative to the page.

  return el.offsetLeft + (el.offsetParent ? getPageOffsetLeft(el.offsetParent) : 0);
}

function getPageOffsetTop(el) {

  // Return the true y coordinate of an element relative to the page.

  return el.offsetTop + (el.offsetParent ? getPageOffsetTop(el.offsetParent) : 0);
}


//Das Objekt, das gerade bewegt wird.  DRAG AND DROP
var dragobjekt = null;

// Position, an der das Objekt angeklickt wurde.
var dragx = 0;
var dragy = 0;

// Mausposition
var posx = 0;
var posy = 0;


function draginit() {
 // Initialisierung der Überwachung der Events

  document.onmousemove = drag;
  document.onmouseup = dragstop;
}


function dragstart(element) {
   //Wird aufgerufen, wenn ein Objekt bewegt werden soll.

  dragobjekt = element;
  dragx = posx - dragobjekt.offsetLeft;
  dragy = posy - dragobjekt.offsetTop;
}


function dragstop() {
  //Wird aufgerufen, wenn ein Objekt nicht mehr bewegt werden soll.

  dragobjekt=null;
}


function drag(ereignis) {
  //Wird aufgerufen, wenn die Maus bewegt wird und bewegt bei Bedarf das Objekt.

  posx = document.all ? window.event.clientX : ereignis.pageX;
  posy = document.all ? window.event.clientY : ereignis.pageY;
  if(dragobjekt != null) {
    dragobjekt.style.left = (posx - dragx) + "px";
    dragobjekt.style.top = (posy - dragy) + "px";
  }
}
