/*
  Dipl.-Ing. Remo Hartwig
  hartwig@medien.jungbruder.de
  http://medien.jungbruder.de

  Copyright (c) 2005 Dipl.-Ing. Remo Hartwig
*/
function checkInput(str, mitPunkt)
{
  var l = str.length;
  var textGeaendert = false;
  if(isNaN(parseInt(str.charAt(l-1), 10))) { // keine Ziffer
    if(mitPunkt) { // soll mit Punkt sein?
      if(str.charAt(l-1) == '.') { //ist das Zeichen ein Punkt?
        /*var sel = '';
        if(eingabeFeld.getSelection) { // ist was selectiert Netscape 4.0?
          sel = eingabeFeld.getSelection();
        } else if(eingabeFeld.selection) { // IE 4.0
          var abschnitt = eingabeFeld.selection.createRange();
          sel = abschnitt.text;
        }
        if(sel != '') { // ist was selektiert?
          var laenge = sel.length;
          var i;
          var isPunktInSelection = false;
          for(i = 0; i < laenge; i++) {
            if(sel.charAt[i] == '.') {
              isPunktInSelection = true;
              break;
            }
          }
          if(isPunktInSelection) {
            replace(sel, ".");
            str = engabeFeld.value;
            textGeaendert = true;
          }
        } else { // nichts Selektiert (ist Punkt im gesamten String?
        */
        {
          var i;
          var isPunktInText = false;
          for(i = 0; i < (l - 1); i++) {
            if(str.charAt(i) == '.') {
              str = str.substring(0, l - 1);
              break;
            }
          }
          if(isPunktInText) {
            str = str.substring(0, l - 1);
          }
        }
      } else { // Ende Punkt gedrueckt?
        str = str.substring(0, l - 1);
      }
    } else { // Ende Eingabefeld ohne Punkt
      str = str.substring(0, l - 1);
    }
  }
  return str;
}

function checkNurZahlen(input_form_inhalt)
{
  alert(falsch);
  if(input_form_inhalt != '') {
    if(input_form_inhalt == (input_form_inhalt * 1.0)) {
      return true;
    }
  }
  alert(falsch);
  return false;
}

//------------------------------------------------------------------------------
// Aendert die Inhalte der Formelemente
// formname = Name der Form
// elemente = Array der Elemente der Form
// werte = Array der Werte der Elemente
//------------------------------------------------------------------------------
function setFormValues(formname, wertearr)
{
        var index = document.forms[0].sl.selectedIndex;
  var l = wertearr[index].length;
  var i = 0;
  document.forms[0].ta.options.length = 0;
  for(i = 0; i < l; i++) {
           document.forms[0].ta.options[i] = new Option(wertearr[index][i], i);
  }
}

//------------------------------------------------------------------------------
// Aendert die Farbe von HFarbEingabe, wenn der Wert in einem Feld geaendert
// wird.
// fcontrol == Element des Farbcontrols (falls mehere auf einer Seite, muss
// es eindeutig identifizierbar sein.
// Name der einzelnen Controls:
// fcontrolname+"1"... zB. hintergrund1
// Moeglichkeiten:
// fcontrolanzeige+"0" == farbenanzeige
// fcontrolanzeige+"1" == rot
// fcontrolanzeige+"2" == gruen
// fcontrolanzeige+"3" == blau
// fcontrolanzeige+"4" == hex
//------------------------------------------------------------------------------
function changeColor(fcontrol)
{
  var farbe = checkInput(fcontrol.value, false);
  if(farbe > 255) {
          farbe = 255;
  }
  fcontrol.value = farbe;
  var name = fcontrol.name;
        name = name.substring(0, name.length - 1);
  var hexchars = "0123456789ABCDEF";
  var hexf = "";
  hexf = hexchars.charAt((getID(name+"1").value>>4)&0xF)+
          hexchars.charAt(getID(name+"1").value&0xF);
  hexf += hexchars.charAt((getID(name+"2").value>>4)&0xF)+
          hexchars.charAt(getID(name+"2").value&0xF);
  hexf += hexchars.charAt((getID(name+"3").value>>4)&0xF)+
          hexchars.charAt(getID(name+"3").value&0xF);
  getID(name+"4").value = hexf;
  getID(name+"0").style.backgroundColor = hexf;
  return ""+fcontrol.value;
}

//------------------------------------------------------------------------------
// Liefert die Farbe von HFarbEingabe[4] (hexwertcontrol) als Hex (#ffffff)
//------------------------------------------------------------------------------
function setElementBGColor(elementid, farbhexwertcontrol)
{
        getID(elementid).style.backgroundColor=farbhexwertcontrol.value;
}

//------------------------------------------------------------------------------
// Aendert den Pfad eines Bildes, um es anzuzeigen
// Wenn breite > -1 wird das bild in die breite gezwungen (hoehe laeuft
// proportional mit)-->bei hoehe das gleiche fuer die breite.
// wenn beide > -1 -->neu erzwungene Proportion und Bildgroesse
//------------------------------------------------------------------------------
function showImage(srcname, breite, hoehe)
{
  var str = getID(srcname).value;
  var endung = str.substring(str.length - 4, str.length).toLowerCase();
  if(endung.indexOf("gif") == -1 && endung.indexOf("jpg") == -1 &&
          endung.indexOf("png") == -1 && endung.indexOf("jpeg") == -1) {
    getID(srcname).value = "";
    return "";
  }
  var bild = "bild"+srcname;
  var hidden = "hidden"+srcname;
  var str_orig = str;
  while(str.indexOf("\\") > -1)
          str = str.replace("\\", "/");
  str = "file://"+str;
  getID(bild).src = str;
  getID(hidden).value = str_orig;
  //alert(str + " " + str_orig);
  if(breite > -1) {
    getID(bild).width = breite;
  }
  if(hoehe > -1)
    getID(bild).height = hoehe;
  getID("horizontal").focus();
  return str;
}

//------------------------------------------------------------------------------
// Aendert das Aussehen des Textes von elementname
// Parameter: elementid == Textelement
//                                                zeichensatzid == Element des Zeichensatzes (Select)
//            groesseid == Element der Textgroesse (Eingabe)
//                                                fettid == Element des Fettfeldes (Check)
//                                                kursivid
//                                                extrafettid
//                                                unterstrichenid
//                                                ueberstrichenid
//                                                durchgestrichen
//                                                colorid == Element des Color-Hex-Elementes (Eingabe)
//
//------------------------------------------------------------------------------
function changeText(elementid, zeichensatzid, groesseid, fettid, kursivid,
                                                                                extrafettid, unterstrichenid, ueberstrichenid,
                    durchgestrichenid, colorid)
{
        var element = getID(elementid);
  var textzs = getID(zeichensatzid);
  var textgr = getID(groesseid);
  var textfett = getID(fettid);
  var textkursiv = getID(kursivid);
  var textextrafett = getID(extrafettid);
  var textunterstrichen = getID(unterstrichenid);
  var textueberstrichen = getID(ueberstrichenid);
  var textdurchgestrichen = getID(durchgestrichenid);
  var textcolor = getID(colorid);
  element.style.fontFamily = textzs.options[textzs.selectedIndex].value;
  if(textgr.value < 1) textgr.value = 10;
  element.style.fontSize = textgr.value;

  if(textkursiv.checked) textkursiv.value = "italic";
  else textkursiv.value = "normal";
  element.style.fontStyle = textkursiv.value;

  if(textfett.checked) textfett.value = "bold";
  else textfett.value = "normal";
  element.style.fontWeight = textfett.value;

  if(textunterstrichen.checked) textunterstrichen.value = "underline ";
  else textunterstrichen.value = "";
  if(textueberstrichen.checked) textueberstrichen.value = "overline ";
  else textueberstrichen.value = "";
  if(textdurchgestrichen.checked) textdurchgestrichen.value = "line-through";
  else textdurchgestrichen.value = "";
  var deco = "" + textunterstrichen.value + textueberstrichen.value +
          textdurchgestrichen.value;
  if(deco == "")
    deco = "none";
  element.style.textDecoration = deco;

  element.style.color = ""+textcolor.value;
}

function getBrowserName()
{
  var bn = navigator.appName; // Browsername
  var bv = parseInt(navigator.appVersion); // Browserversion
  var bav = navigator.appVersion; // Genauere Bezeichnung
  var tnn = "Netscape"; // Testname
  var tnie = "Microsoft Internet Explorer"; // Testname
  if(window.opera)
    return "Opera";
  //alert(bn + "\n" + bv + "\n" + bav);
  if(bn == tnie && bv == 4 && bav.indexOf("MSIE 6.0") != -1)
    return "IE6";
  else if(bn == tnie && bv == 4 && bav.indexOf("MSIE 5.5") != -1)
    return "IE5.5";
  else if(bn == tnie && bv == 4 && bav.indexOf("MSIE 5.0") != -1)
    return "IE5.0";
  else if(bn == tnie && bv == 4 && bav.indexOf("MSIE 4.0") != -1)
    return "IE4.0";
  else if(bn == tnn && bv >= 5)
    return "MOZ5";
  else if(bn == tnn && bv == 4)
    return "MOZ4";
  return "MOZ5"; // Ansonsten der neueste Netscape ;-)
}

//------------------------------------------------------------------------------
// Liefert Browserabhaengig das Element der id
//------------------------------------------------------------------------------
function getID(id, doc)
{
  var pos = 0;
  if(!doc)
    doc = document;
  if((pos = id.indexOf("?")) > 0 && parent.frames.length) {
    doc = parent.frames[id.substring(pos + 1)].document;
    id = id.substring(0, pos);
  }
  var element = null, i;
  if(doc.getElementById) return doc.getElementById(id); // Neue Browser
  else if(doc.all) return doc.all[id]; // Alte IE
  for (i = 0; !element && i < doc.forms.length; i++)
    element = doc.forms[i][id];
  for(i = 0; !element && doc.layers && i < doc.layers.length; i++)
    element = getID(id, doc.layers[i].document);
  return element;
}

function setTextColor(elementid, col)
{
  ele = getID(elementid);
  ele.style.color = ""+col;
}

function swapBGImage(elementid, path)
{
  ele = getID(elementid);
  ele.style.backgroundImage='url('+path+')';
}

//------------------------------------------------------------------------------
// Macht einen Form-Submit und oeffnet dabei ein neues Browserfenster oder
// nicht.
// formname == Formularname
// url == Link
// neues_fenster == (ja, nein)
//------------------------------------------------------------------------------
function changeURL(formname, url, neues_fenster)
{
  var f = document.forms[formname];
  if(neues_fenster)
          f.target = '_blank';
  else
          f.target = '_self';
  var old_action = f.action;
  f.action = url;
  f.submit();
  f.target = '_self';
  f.action = old_action;
}

//------------------------------------------------------------------------------
// Loest einen Submit einer Form bei Druck auf Enter aus.
// Bei Netscape ist dies nicht voreingestellt)
//------------------------------------------------------------------------------
function submitByYes(buttonname, str)
{
        var yes = confirm(str);
  return yes;
}

function focus(elementid)
{
        getID(elementid).focus();
}

function fadeUp(elementid, opaque)
{
  element = getID(elementid);
  if(getBrowserName() < 10.0) {
    if(element.style.filter == "alpha(opacity=100)")
      return;
    opaque = eval(opaque) + eval(4);
    element.style.filter = "alpha(opacity=" + opaque + ")";
  } else {
    if(element.style.MozOpacity == 1.0)
      return;
    opaque = eval(opaque) + eval(2);
    element.style.MozOpacity = opaque / 100;
  }
  if(opaque < 100) {
    setTimeout("fadeUp('" + elementid + "','" + opaque + "');",5);
  }
}

function fadeDown(elementid, opaque)
{
  element = getID(elementid);
  if(getBrowserName() < 10.0) {
    if(element.style.filter == "alpha(opacity=0)")
      return;
    opaque -= 3;
    element.style.filter = "alpha(opacity=" + opaque + ")";
  } else {
    if(element.style.MozOpacity == 0.0)
      return;
    opaque -= 2;
    element.style.MozOpacity = opaque / 100;
  }
  if(opaque > 0) {
    setTimeout("fadeDown('" + elementid + "','" + opaque + "');",10);
  } else {
    hideObject(elementid);
  }
}

var updown = new Array();
var timer = new Array();

function fade(elementid, opaque, betrag, updownindex)
{
  element = getID(elementid);
  name = getBrowserName();
  if(name == "IE6" || name == "IE5.5" || name == "IE5") {
    if(updown[updownindex] == "up") {
      opaque = eval(opaque) + eval(betrag);
    } else if(updown[updownindex] == "down") {
      opaque -= betrag;
    }
    element.style.filter = "alpha(opacity=" + opaque + ")";
  } else {
    if(updown[updownindex] == "up") {
      opaque = eval(opaque) + eval(betrag);
    } else if(updown[updownindex] == "down") {
      opaque -= betrag;
    }
    element.style.MozOpacity = opaque / 100;
  }
  if(updown[updownindex] == "down") {
    if(opaque >= 0) {
      timer[updownindex] = setTimeout("fade('" + elementid + "','" + opaque + "','" + betrag + "','" + updownindex + "');",10);
          } else {
      setOpaque(element, 0);
            hideObject(element);
          }
  } else if(updown[updownindex] == "up") {
          if(opaque < 100) {
            timer[updownindex] = setTimeout("fade('" + elementid + "','" + opaque + "','" + betrag + "','" + updownindex + "');",5);
          } else {
      setOpaque(element, 100);
    }
  }
}

function getOpaque(element)
{
  opaque = 0;
  if(getBrowserName() < 10.0) {
    opaque = element.style.filter;//"alpha(opacity=0)")
                str = opaque.substring(14, opaque.length - 1);
    opaque = str;
  } else {
    opaque = element.style.MozOpacity * 100;
  }
  return opaque;
}

function setOpaque(element, opaque)
{
  if(getBrowserName() < 10.0) {
    element.style.filter = "alpha(opacity=" + opaque + ")";//"alpha(opacity=0)")
  } else {
    element.style.MozOpacity = opaque / 100;
  }
}

function graphicsUp(elementid, betrag, updownindex)
{
  updown[updownindex] = "up";
  clearTimeout(timer[updownindex]);
  opaque = 0;
  element = getID(elementid);
  if(element == null)
    return;
  if(isHidden(element)) {
    //alert("graphicsUp isHidden "+element.id);
    setOpaque(element, 0);
    showObject(element);
    //alert("hidden: "+opaque);
  } else {
    opaque = getOpaque(element);
    if(opaque > 99)
      return;
    //alert("show: "+opaque);
          if(opaque == "" || opaque == "NaN") {
            opaque = 0;
    }
  }
  timer[updownindex] = setTimeout("fade('" + elementid + "','" + opaque + "','" + betrag + "','" + updownindex + "');",5);
}

function graphicsDown(elementid, betrag, updownindex)
{
  updown[updownindex] = "down";
  clearTimeout(timer[updownindex]);
  opaque = 100;
  element = getID(elementid);
  if(element == null)
    return;
  if(isHidden(element)) {
    setOpaque(element, 0);
    //alert("graphicsDown isHidden "+element.id);
    return;
  }
  opaque = getOpaque(element);
  if(opaque == "" || opaque == "NaN")
    opaque = 0;
  timer[updownindex] = setTimeout("fade('" + elementid + "','" + opaque + "','" + betrag + "','" + updownindex + "');",10);
}

function isHidden(element)
{
  if(element != null) {
    if(element.style) {
            if(element.style.visibility == "visible") {
        //alert("isHidden FALSE "+element.id);
              return false;
      }
    }
  }
  //alert("isHidden TRUE "+element.id);
  return true;
}

function hideObject(element)
{
  //alert("hide "+element.id);
  if(element != null) {
    if(element.style) {
      element.style.visibility = "hidden";
    }
  }
}

function showObject(element)
{
  //alert("show "+element.id);
  if(element != null) {
    if(element.style) {
      element.style.visibility = "visible";
    }
  }
}

function showHideObject(elementid0, whattodo0, elementid1, whattodo1)
{
  if(whattodo0 == 1) {
    showObject(getID(elementid0));
  } else if(whattodo0 == 0)
    hideObject(getID(elementid0))
  if(whattodo1 == 1)
    showObject(getID(elementid1));
  else if(whattodo1 == 0)
    hideObject(getID(elementid1))
}

serverdate = null;
userdate = null;
function showDate(elementid, time)
{
  if(serverdate == null) {
    serverdate = new Date(time * 1000);
    userdate = new Date();
  }
  element = getID(elementid);
  if(element != null) {
    aktuserdate = new Date();
    diff = parseInt(serverdate.getTime() - userdate.getTime());
    servertime = eval(aktuserdate.getTime()) + eval(diff);
    aktserverdate = new Date(servertime);
    date = eval(aktserverdate.getDate());
    if(date < 10)
      date = "0" + date;
    month = eval(aktserverdate.getMonth()) + eval(1);
    if(month < 10)
      month = "0" + month;
    year = eval(aktserverdate.getYear());
    if(year < 1900)
      year = year + eval(2000); // 2004 ist zB 104
    hour = eval(aktserverdate.getHours());
    zeit = date + "." + month + "." + year;
    element.value = zeit;
    setTimeout("showDate('" + elementid + "','" + time + "');",1000);
  }
}

function showTime(elementid, time)
{
  if(serverdate == null) {
    serverdate = new Date(time * 1000);
    userdate = new Date();
  }
  element = getID(elementid);
  if(element != null) {
    aktuserdate = new Date();
    diff = parseInt(serverdate.getTime() - userdate.getTime());
    servertime = eval(aktuserdate.getTime()) + eval(diff);
    aktserverdate = new Date(servertime);
    hour = eval(aktserverdate.getHours());
    if(hour < 10)
      hour = "0" + hour;
    min = eval(aktserverdate.getMinutes());
    if(min < 10)
      min = "0" + min;
    sek = eval(aktserverdate.getSeconds());
    if(sek < 10)
      sek = "0" + sek;
    zeit = hour + ":" + min + ":" + sek;
    element.value = zeit;
    setTimeout("showTime('" + elementid + "','" + time + "');",1000);
  }
}

function setBGColor(elementid, hexcolor)
{
  element = getID(elementid);
  if(element == null)
    return;
  element.style.backgroundColor = hexcolor;
}

function startTicker(start1, start2, start3)
{
  // tickerheight = 150
  element1 = getID("ticker1");
  element2 = getID("ticker2");
  element3 = getID("ticker3");
  if(start1 < 0)
    start1 = 105;
  if(start2 < 0)
    start2 = 105;
  if(start3 < 0)
    start3 = 105;
  start1 -= 1;
  start2 -= 1;
  start3 -= 1;
  if(document.all || document.getElementById) {
    if(start1 > 60) {
            opaque = (100 - start1) * 3;
            opaque = opaque > 100 ? 100 : opaque;
            setOpaque(element1, opaque);
    } else if(start1 < 35) {
            opaque = start1 * 3;
            opaque = opaque < 0 ? 0 : opaque;
            setOpaque(element1, opaque);
    }
                element1.style.top = start1;
    if(start2 > 60) {
            opaque = (100 - start2) * 3;
            opaque = opaque > 100 ? 100 : opaque;
            setOpaque(element2, opaque);
    } else if(start2 < 35) {
            opaque = start2 * 3;
            opaque = opaque < 0 ? 0 : opaque;
            setOpaque(element2, opaque);
    }
                element2.style.top = start2;
    if(start3 > 60) {
            opaque = (100 - start3) * 3;
            opaque = opaque > 100 ? 100 : opaque;
            setOpaque(element3, opaque);
    } else if(start3 < 35) {
            opaque = start3 * 3;
            opaque = opaque < 0 ? 0 : opaque;
            setOpaque(element3, opaque);
    }
                element3.style.top = start3;
  } else if(document.layers) {
                element1.top = start1;
                element2.top = start2;
                element3.top = start3;
  }
        setTimeout("startTicker('" + start1 + "','" + start2 + "','" + start3 + "')", 50);
}

//------------------------------------------------------------------------------
// Setzt Text in einem element (zb div span)
//------------------------------------------------------------------------------
function setContent(elementid, content)
{
  element = getID(elementid);
  if(getBrowserName() == 14) {
    element.document.open();
    element.document.write(content);
    element.document.close();
  } else {
    element.innerHTML = content;
  }
}

function swapImage()
{
  var j = 0;
  var img;
  var args = swapImage.arguments;
  document.restorearr = new Array;
  var len = args.length - 2;
  for(var i = 0; i < len; i += 3) {
          if ((img = getID(args[i])) != null) {
            document.restorearr[j++] = img;
            if(!img.oldSrc)
              img.oldSrc = img.src;
            img.src = args[i+2];
    }
  }
}

function swapImgRestore()
{
  var img;
  for(var i = 0; document.restorearr && i < document.restorearr.length &&
      (img = document.restorearr[i]) && img.oldSrc; i++)
    img.src = img.oldSrc;
}


function preloadImages()
{
  if(document.images) {
    if(!document.imgarr)
      document.imgarr = new Array();
    var j = document.imgarr.length;
    var urls = preloadImages.arguments;
    for(var i = 0; i < urls.length; i++) {
      if(urls[i].indexOf("#") != 0) {
        document.imgarr[j] = new Image;
        document.imgarr[j++].src = urls[i];
      }
    }
  }
}
