﻿window.onload = function() {
   init();
}
//global vars
var img1, img2, img3, img4, sep1, sep2, sep3, calendar1, calendar2, calendarCounter, absCalCounter, moveCounter;
function init() {
   // mainnav mouseovers
   if(document.getElementById('img-1')) img1 = document.getElementById('img-1').src;
   if(document.getElementById('img-2')) img2 = document.getElementById('img-2').src;
   if(document.getElementById('img-3')) img3 = document.getElementById('img-3').src;
   if(document.getElementById('img-4')) img4 = document.getElementById('img-4').src;
   if(document.getElementById('img-1')) sep1 = document.getElementById('sep-1').src;
   if(document.getElementById('img-2')) sep2 = document.getElementById('sep-2').src;
   if(document.getElementById('img-3')) sep3 = document.getElementById('sep-3').src;
  
   //attach event handlers
   if(document.getElementById("nav")) {
       var nav = document.getElementById("nav").getElementsByTagName("img");
       for (var n=0;n<nav.length;n++) {
          if (nav[n].id && nav[n].id.match("img")) {
             nav[n].onmouseover = hoverNav;
          }
       }
   }
   if(document.getElementById("subnav")) {
       var subnav = document.getElementById("subnav").getElementsByTagName("a");
       for (var n=0;n<subnav.length;n++) {
          if (subnav[n].className && subnav[n].className.match("subnav-e")) {
             subnav[n].onmouseover = showNav;
          }
       }   document.getElementById("subnav-inv").onmouseover = resetNav;
   }
   if(document.getElementById("subnav-inv-top")) document.getElementById("subnav-inv-top").onmouseover = resetNav;
try {

   if(document.getElementById("calendar-von")){
       calendar1 = new Epoch('cal-von','popup',document.getElementById('calendar-von'),false);
       calendar2 = new Epoch('cal-bis','popup',document.getElementById('calendar-bis'),false);
   }

   if(document.getElementById("month-back")){
    document.getElementById("month-back").style.display = "none";
   }
   if(document.getElementById("month-back")){
    document.getElementById("month-forward").style.display = "none";
   }
    if(calendarCounter > 0){ //if the first calendar isn't the current month -> move calendars right
        //alert("calendarCounter > 0; calendar Counter ist:" + calendarCounter);
        moveRight('ccc',parseInt(document.getElementById("ccc").style.left) - (174*calendarCounter),25);
    }
    if(calendarCounter == 0){ //the calendars need not to be moved -> don't show move-button
        document.getElementById("month-back").style.display = "none";
    } else {
        document.getElementById("month-back").style.display = "block";
    }
    if((absCalCounter -3) > calendarCounter){
        document.getElementById("month-forward").style.display = "block";    
    } else {
        document.getElementById("month-forward").style.display = "none";    
    }
    moveCounter = calendarCounter;
} catch (myError) {}
}
function zoom(obj, preview, img) {
   if (!obj || !preview) return;
   
   if (document.getElementById(obj) && document.getElementById(preview)) {
      var topHeight= parseFloat(document.getElementById(preview).offsetTop);
      if(topHeight=="NaN") {
         topHeight= document.getElementById(preview).offsetTop;
      } else {
         if(topHeight<500) {
            topHeight= 100;
         } else {
            topHeight= topHeight-400;
         }
      }
      document.getElementById(obj).style.top = topHeight + "px";
      if(document.getElementById("fog")) {
         document.getElementById("fog").style.height= (document.getElementById("footer").offsetTop + 33) + "px";
         document.getElementById("fog").style.display= "block";
      }     
      //calculate center position
      var leftPos= 0;
      if(window.innerWidth) leftPos= window.innerWidth;
      if(document.body.clientWidth) leftPos= document.body.clientWidth;
      leftPos= Math.round((document.body.clientWidth/2)-375);
      document.getElementById(obj).style.left= leftPos + "px";
      
      //show
      if(document.getElementById(obj + "-img" + img)) {
         //center image
         var imgObj= new Image();
         imgObj.src= document.getElementById(obj + "-img" + img).src;
         if(imgObj.width < 750) {
            var marginleft= Math.round((750-imgObj.width)/2);
            if(marginleft<50) document.getElementById(obj + "-img" + img).style.margin= "0 0 0 " + marginleft + "px";
         }
         //count images and set all invisible
         var maxImage= msGetMaxImages(obj);
         msHideAll(obj);
         //show image
         if(document.getElementById(obj + "-img" + img)) document.getElementById(obj + "-img" + img).style.display= "inline";
         //set text
         if(document.getElementById(obj + "-text")) document.getElementById(obj + "-text").innerHTML= document.getElementById(obj + "-img" + img).name;
         //set counter and buttons
         if(img==1) document.getElementById(obj + "-back").style.display= "none";
         else document.getElementById(obj + "-back").style.display= "block";
         if(img==(maxImage-1)) document.getElementById(obj + "-next").style.display= "none";
         else document.getElementById(obj + "-next").style.display= "block";
         document.getElementById(obj + "-status").innerHTML= img + "/" + (maxImage-1);
      }
      //show element
      document.getElementById(obj).style.display= 'block';
   } else {
      alert("Error while trying to load mediascope.");  
   }
}
function msGetMaxImages(obj) {
   var count= 0;
   if(document.getElementById(obj + "-image-container").childNodes) {
      for (var i=0;i<document.getElementById(obj + "-image-container").childNodes.length;i++) {
         if(document.getElementById(obj + "-image-container").childNodes[i].id) count++;
      }
   }
   
   return count+1;
}
function msGetCurrentImage(obj) {
   var maxImage= msGetMaxImages(obj);
   var img= -1;
   for (var i=1;i<maxImage;i++) {
      if(document.getElementById(obj + "-img" + i)) {
         if(document.getElementById(obj + "-img" + i).style.display=="inline") img= i;
      }
   }
   return img;
}
function msHideAll(obj) {
   var maxImage= msGetMaxImages(obj);
   for (var i=1;i<maxImage;i++) {
      if (document.getElementById(obj + "-img" + i))
         document.getElementById(obj + "-img" + i).style.display= "none";
   }
}
function msBack(obj) {
   var maxImage= msGetMaxImages(obj);
   var img= msGetCurrentImage(obj);
   if(img>1) {
      msHideAll(obj);
      img--;
      //show image
      document.getElementById(obj + "-img" + img).style.display= "inline";
      //set text
      document.getElementById(obj + "-text").innerHTML= document.getElementById(obj + "-img" + img).name;
      //set counter and buttons
      if(img==1) document.getElementById(obj + "-back").style.display= "none";
      else document.getElementById(obj + "-back").style.display= "inline";
      if(img==(maxImage-1)) document.getElementById(obj + "-next").style.display= "none";
      else document.getElementById(obj + "-next").style.display= "inline";
      document.getElementById(obj + "-status").innerHTML= img + "/" + (maxImage-1);
      
       //center image
      var imgObj= new Image();
      imgObj.src= document.getElementById(obj + "-img" + img).src;
      if(imgObj.width < 750) {
         var marginleft= Math.round((750-imgObj.width)/2);
         if(marginleft<50) document.getElementById(obj + "-img" + img).style.margin= "0 0 0 " + marginleft + "px";
      }
   }
}
function msNext(obj) {
   var maxImage= msGetMaxImages(obj);
   var img= msGetCurrentImage(obj);
   
   if(img<(maxImage-1)) {
      msHideAll(obj);
      img++;
      //show image
      document.getElementById(obj + "-img" + img).style.display= "inline";
      //set text
      document.getElementById(obj + "-text").innerHTML= document.getElementById(obj + "-img" + img).name;
      //set counter and buttons
      if(img==1) document.getElementById(obj + "-back").style.display= "none";
      else document.getElementById(obj + "-back").style.display= "inline";
      if(img==(maxImage-1)) document.getElementById(obj + "-next").style.display= "none";
      else document.getElementById(obj + "-next").style.display= "inline";
      document.getElementById(obj + "-status").innerHTML= img + "/" + (maxImage-1);
      
      //center image
      var imgObj= new Image();
      imgObj.src= document.getElementById(obj + "-img" + img).src;
      if(imgObj.width < 750) {
         var marginleft= Math.round((750-imgObj.width)/2);
         if(marginleft<50) document.getElementById(obj + "-img" + img).style.margin= "0 0 0 " + marginleft + "px";
      }
   }
}
function zoomOff(obj) {
   if (document.getElementById(obj)) document.getElementById(obj).style.display = 'none';
   if (document.getElementById("fog")) document.getElementById("fog").style.display = 'none';
}
function zoomAllOff() {
   var tag= "div";
   var targetclass= "mediascope";
   //search for mediascopes an close them
   for (var i=0;i<document.getElementsByTagName(tag).length;i++) {
       if (document.getElementsByTagName(tag)[i].className && document.getElementsByTagName(tag)[i].className==targetclass) {
          if(document.getElementsByTagName(tag)[i]) document.getElementsByTagName(tag)[i].style.display= "none";
       }
   }
   //unfog! :)
   if (document.getElementById("fog")) document.getElementById("fog").style.display = 'none';
}
//end of mediascope functions
function goTo(country) {
   if (!country || country == 'nil') return;
   document.location = country;
}
function langSwitcher(lang) {
   if (!lang) return;
   alert(lang);
}
function showSwitcher() {
   document.getElementById("chooser-container").style.display = (document.getElementById("chooser-container").style.display == "block") ? "none" : "block";
}
// not needed anymore; HR 16.05.2006
function hideSwitcher() {
   return;
}
var mode = 0;
function showDownloads(that) {
   (mode == 0) ? mode = 1 : mode = 0;
   if (mode == 0) {
      switchClasses('img','none','resultheader-img');
      switchClasses('div','none','resultheader-text');
      switchClasses('div','none','related-categories-link');
      that.innerHTML = "Erweiterte Ansicht";
   } else {
      switchClasses('img','block','resultheader-img');
      switchClasses('div','block','resultheader-text');
      switchClasses('div','block','related-categories-link');
      that.innerHTML = "Einfache Ansicht";
   }
}
function switchClasses(tag,display,className) {
   for (var i=0;i<document.getElementsByTagName(tag).length;i++) {
      if ((document.getElementsByTagName(tag)[i].className) && (document.getElementsByTagName(tag)[i].className.match(className))) {
         document.getElementsByTagName(tag)[i].style.display = display;
      }
   }
}
function preselectLang() {
   if (!document.getElementById("chooser-container"))
      return;
   var lang;
   var offset = 0;
   for (var i=0;i<document.getElementsByTagName("a").length;i++) {
      if ((document.getElementsByTagName("a")[i].className) && (document.getElementsByTagName("a")[i].className.match("lang-on"))) {
         lang = document.getElementsByTagName("a")[i].className.split(' ');
         switch(lang[1]) {
            case "g-en":
               offset = -15;
               break;
            case "at":
               offset = -30;
               break;
            case "ch":
               offset = -45;
               break;
            default :
               break;
         }
         (offset < 0) ? document.getElementById("chooser-container").style.top = offset+"px" : null;
      }
   }   
}
function showNav() {
   resetMainNav();
   resetNav();
   document.getElementById('subnav-inv').style.display = "block";
   document.getElementById('subnav-inv-top').style.display = "block";
   var menu = this.nextSibling.nextSibling;
   this.style.color = "#fff";
   menu.style.top = document.all ? findPosY(this)+2+"px" : findPosY(this)+"px";
   menu.style.left = findPosX(this)+"px";
   menu.style.display = "block";
}
function resetNav() {
   resetMainNav();
   document.getElementById('subnav-inv').style.display = "none";
   document.getElementById('subnav-inv-top').style.display = "none";
   for (var i=0;i<document.getElementsByTagName("div").length;i++) {
      if ((document.getElementsByTagName("div")[i].className) && (document.getElementsByTagName("div")[i].className.match("subnav-drop"))) {
         document.getElementsByTagName("div")[i].style.display = "none";
      }
   }   
   for (var i=0;i<document.getElementsByTagName("a").length;i++) {
      if ((document.getElementsByTagName("a")[i].className) && (document.getElementsByTagName("a")[i].className.match("subnav-e"))) {
         document.getElementsByTagName("a")[i].style.color = "#4a5662";
      }
   }   
}
function findPosX(obj) {
   var curleft = 0;
   if (obj.offsetParent) {
      while (obj.offsetParent) {
         curleft += obj.offsetLeft
         obj = obj.offsetParent;
      }
   } else if (obj.x)
      curleft += obj.x;
   return curleft;
}
function findPosY(obj) {
   var curtop = 0;
   if (obj.offsetParent) {
      while (obj.offsetParent) {
         curtop += obj.offsetTop
         obj = obj.offsetParent;
      }
   } else if (obj.y)
      curtop += obj.y;
   return curtop;
}
function previousSmall(that,size) {
   if (document.all) {
      var obj = that.parentNode.firstChild;
   } else {
      var obj = that.parentNode.firstChild.nextSibling;
   }
   if (!obj || loading)
      return;
   var leftPos = parseInt(obj.style.left ? obj.style.left : 0);
   obj.id = "tmp"+new Date();
   if (leftPos == -238) {
      that.style.display = "none";
   }
   if ((leftPos - 476) <= parseInt("-"+(getItems(obj.childNodes,'iss-item') * 238))) {
      that.nextSibling.style.display = "block";
   }
   if (leftPos == 0)
      moveRight(obj.id,parseInt("-"+((getItems(obj.childNodes,'iss-item') * 238) - 238)),30);
   else
      moveLeft(obj.id,(leftPos + 238),10);
}
function previousBig(that,size) {
   if (document.all) {
      var obj = that.parentNode.parentNode.firstChild;
   } else {
      var obj = that.parentNode.parentNode.firstChild.nextSibling;
   }
   if (!obj || loading)
      return;
   var leftPos = parseInt(obj.style.left ? obj.style.left : 0);
   obj.id = "tmp"+new Date();
   if (leftPos == -722) {
      that.style.display = "none";
   }
   if ((leftPos - 1444) <= parseInt("-"+(getItems(obj.childNodes,'isb-item') * 722))) {
      that.nextSibling.style.display = "block";
   }
   if (leftPos == 0)
      moveRight(obj.id,parseInt("-"+((getItems(obj.childNodes,'isb-item') * 722) - 722)),50);
   else
      moveLeft(obj.id,(leftPos + 722),20);
}
function nextSmall(that,size) {
   if (document.all) {
      var obj = that.parentNode.firstChild;
   } else {
      var obj = that.parentNode.firstChild.nextSibling;
   }
   if (!obj || loading)
      return;
   var leftPos = parseInt(obj.style.left ? obj.style.left : 0);
   obj.id = "tmp"+new Date();
   if (leftPos == 0) {
      that.previousSibling.style.display = "block";
   }
   if ((leftPos - 476) <= parseInt("-"+(getItems(obj.childNodes,'iss-item') * 238))) {
      that.style.display = "none";
   }
   if ((leftPos - 238) <= parseInt("-"+(getItems(obj.childNodes,'iss-item') * 238))) {
      //moveLeft(obj.id,0,30);
   } else {
      moveRight(obj.id,parseInt(leftPos - 238),10);
   }
}
function nextBig(that,size) {
   if (document.all) {
      var obj = that.parentNode.parentNode.firstChild;
   } else {
      var obj = that.parentNode.parentNode.firstChild.nextSibling;
   }
   if (!obj || loading)
      return;
   var leftPos = parseInt(obj.style.left ? obj.style.left : 0);
   obj.id = "tmp"+new Date();
   if (leftPos == 0) {
      that.previousSibling.style.display = "block";
   }
   if ((leftPos - 1444) <= parseInt("-"+(getItems(obj.childNodes,'isb-item') * 722))) {
      that.style.display = "none";
   }
   if ((leftPos - 722) <= parseInt("-"+(getItems(obj.childNodes,'isb-item') * 722))) {
      moveLeft(obj.id,0,150);
   } else {
      moveRight(obj.id,parseInt(leftPos - 722),20);
   }
}
function getItems(coll,name) {
   var j = 0;
   for (var i=0;i<coll.length;i++) {
      if (coll[i].className == name)
         j++;
   }
   return(j);
}
var movLeft, movRight;
var loading = false;
function moveLeft(obj,pos,speed) {
    if (!obj)
        return;
    speed = speed ? speed : 10;
    obj = document.getElementById(obj);
   clearTimeout(movLeft);
    var elpos = obj.style.left ? parseInt(obj.style.left) : 0;
   if (elpos < pos) {
       loading = true;
        elpos += speed;
      obj.style.left = elpos+"px";
        movLeft = setTimeout("moveLeft('"+obj.id+"',"+pos+","+speed+")",1);
    } else {
      obj.style.left = pos+"px";
      clearTimeout(movLeft);
        loading = false;
   }
}
function moveRight(obj,pos,speed) {
   if (!obj)
      return;
    speed = speed ? speed : 10;
    obj = document.getElementById(obj);
   clearTimeout(movRight);
   var elpos = obj.style.left ? parseInt(obj.style.left) : 0;
   if (elpos > pos) {
        loading = true;
       elpos -= speed;
      obj.style.left = elpos+"px";
      movRight = setTimeout("moveRight('"+obj.id+"',"+pos+","+speed+")",1);
   } else {
      obj.style.display = "block";
      obj.style.left = pos+"px";
      clearTimeout(movRight);
        loading = false;
   }
}

function showBox(box,that) {
   if (!box || !document.getElementById(box))
      return;
   resetLnnks();
   that.className = "lnnk pnt on";
   box = document.getElementById(box);
   hideBoxes();
   box.style.display = "block";
}
function hideBoxes() {
   for (var i=0;i<document.getElementsByTagName("div").length;i++) {
      if (document.getElementsByTagName("div")[i].className && document.getElementsByTagName("div")[i].className.match("boxx")) {
         document.getElementsByTagName("div")[i].style.display = "none";
      }
   }
}
function resetLnnks() {
   for (var i=0;i<document.getElementsByTagName("a").length;i++) {
      if (document.getElementsByTagName("a")[i].className && document.getElementsByTagName("a")[i].className.match("lnnk")) {
         document.getElementsByTagName("a")[i].className = "lnnk pnt";
      }
   }
}
function prefillCalendarDate() {
   if (document.getElementById('calendar-von')) {
      var d = new Date();
      var day = d.getDate();
      day = (day < 0 || day >9 ? '' : '0') + day;
      var month = d.getMonth()+1;
      month = (month < 0 || month > 9 ? '' : '0') + month;
      document.getElementById('calendar-von').value = day+"."+month+"."+d.getFullYear().toString();
      var d2 = new Date();
      d2.setDate(d.getDate() +90);
      var day2 = d2.getDate();
      day2 = (day2 < 0 || day2 >9 ? '' : '0') + day2;
      month = d2.getMonth()+1;
      month = (month < 0 || month > 9 ? '' : '0') + month;
      document.getElementById('calendar-bis').value = day2+"."+month+"."+d2.getFullYear().toString();
   }      
}
function changeSelection(selectIndex) {
 
    var elem;
    var dropdownIds = Array("","eventttypeFro","eventttypeBls","eventttypeSt","eventttypeSe");
    var selectedIdx = document.getElementById('sector').selectedIndex;
    
    for(i in dropdownIds) {
        if (dropdownIds[i]) {
            elem = document.getElementById(dropdownIds[i]);
            if (elem && selectedIdx != i) {
                elem.style.display = "none";
                elem.name = dropdownIds[i];
            } else if (elem && selectedIdx > 0 && selectedIdx == i) {
                elem.style.display = "block";
                elem.name = "eventtype";                
                for(f in elem.options) {
                    if (elem.options[f] && elem.options[f].value == selectIndex) {
                        elem.selectedIndex = f;
                    }
                }
            }
        }
    }
}
      
function showSelectedCategorie(box, box2, that){
    if(!box || !document.getElementById(box)){
        return;
    }
    if(!box2 || !document.getElementById(box2)){
        return;
    }
    resetCategories();
    box = document.getElementById(box);
    box.className = "criteria-select on";
    resetCriteriaCategories();
   box2 = document.getElementById(box2);
   box2.className = "criteria-categories on";
    
    resetCriteria();
    setCriteriaDiv();
}
function showCriteriaCategories(box, that){
    if(!box || !document.getElementById(box)){
        return;
    }
   resetCriteriaCategories();
   box = document.getElementById(box);
   box.className = "criteria-categories on";
   resetCriteria();
    resetCriteriaDiv();
    if(that.className == "criteria-off"){
        resetCriteria();
        that.className = "criteria-on";
    }    
}
function resetCategories(){
    for(var i = 0; i< document.getElementsByTagName("div").length; i++){
        if(document.getElementsByTagName("div")[i].className && document.getElementsByTagName("div")[i].className.match("criteria-select on")){
            document.getElementsByTagName("div")[i].className = "criteria-select";
        }
    }
}
function resetCriteriaCategories(){
    for(var i = 0; i< document.getElementsByTagName("div").length; i++){
        if(document.getElementsByTagName("div")[i].className && document.getElementsByTagName("div")[i].className.match("criteria-categories on")){
            document.getElementsByTagName("div")[i].className = "criteria-categories";
        }
    }
}
function resetCriteria(){
    for(var i = 0; i< document.getElementsByTagName("a").length; i++){
        if(document.getElementsByTagName("a")[i].className && document.getElementsByTagName("a")[i].className.match("criteria-on")){
            document.getElementsByTagName("a")[i].className = "criteria-off";
        }
    }
}
function resetCriteriaDiv(){
    for(var i = 0; i< document.getElementsByTagName("div").length; i++){
        if(document.getElementsByTagName("div")[i].className && document.getElementsByTagName("div")[i].className.match("criteria-on")){
            document.getElementsByTagName("div")[i].className = "criteria-off";
        }
    }
}
function setCriteriaDiv(){
    for(var i = 0; i< document.getElementsByTagName("div").length; i++){
        if(document.getElementsByTagName("div")[i].className && document.getElementsByTagName("div")[i].className.match("criteria-off")){
            document.getElementsByTagName("div")[i].className = "criteria-on";
        }
    }
}
function resetMainNav() {
   document.getElementById('subnav-inv').style.display = "block";
   document.getElementById('subnav-inv-top').style.display = "block";
   if (img1) {
      document.getElementById('img-1').src = img1;
      document.getElementById('img-2').src = img2;
      document.getElementById('img-3').src = img3;
      document.getElementById('img-4').src = img4;
      document.getElementById('sep-1').src = sep1;
      document.getElementById('sep-2').src = sep2;
      document.getElementById('sep-3').src = sep3;
   }
}
function hoverNav() {
   resetNav();
   var prevSep, nextSep, prevObj, nextObj;
   switch(this.id) {
      case "img-1" :
         nextSep = document.getElementById("sep-1");
         nextObj = document.getElementById("img-2");
         break;
      case "img-2" :
         prevSep = document.getElementById("sep-1");
         prevObj = document.getElementById("img-1");
         nextSep = document.getElementById("sep-2");
         nextObj = document.getElementById("img-3");
         break;
      case "img-3" :
         prevSep = document.getElementById("sep-2");
         prevObj = document.getElementById("img-2");
         nextSep = document.getElementById("sep-3");
         nextObj = document.getElementById("img-4");
         break;
      case "img-4" :
         prevSep = document.getElementById("sep-3");
         prevObj = document.getElementById("img-3");
         break;
      default :
         break;
   }
   if (prevSep && (prevSep.src.split('__')[1] == "off.gif")) {
      prevSep.src = "/internet/img/sep__off_before_hover.gif";
   } else if (prevSep && (prevSep.src.split('__')[1] == "on_after.gif")) {
      prevSep.src = "/internet/img/sep__on_before_hover.gif";
   }
   if (nextSep && (nextSep.src.split('__')[1] == "off.gif")) {
      nextSep.src = "/internet/img/sep__off_after_hover.gif";
   } else if (nextSep && (nextSep.src.split('__')[1] == "on_before.gif")) {
      nextSep.src = "/internet/img/sep__on_after_hover.gif";
   }
   document.getElementById('subnav-inv').style.display = "block";
   document.getElementById('subnav-inv-top').style.display = "block";
   if (this.src.indexOf("_on") <= 0) {
      this.src = this.src.split("_off")[0]+"_off-hover.gif";
   }
}
 
FormCheck = [];
/*
 * Initialize form check: add event handler
 * form = id of the form (<form id="")
 * error = id of the global error message (<div id="")
 */
initFormCheck = function(form,error) {
   FormCheck.form = document.getElementById(form) ? document.getElementById(form) : form;
   FormCheck.error = document.getElementById(error) ? document.getElementById(error) : error;
   var el = FormCheck.form.getElementsByTagName("*");
   for (var i=0;i<el.length;i++) {
      if (el[i].className && el[i].className.match("checkform")) {
         el[i].onsubmit = validateAll;
      }
      if (el[i].className && el[i].className.match("require") && !el[i].className.match("nocheck")) {
         el[i].onblur = validate;
         //el[i].onchange = validate;
      }
      if (el[i].type == "radio" || "checkbox") {
         if(!el[i].className.match("nocheck")) {
            el[i].onblur = function() {
               validate.call(this);
               return true; 
            };
         }
      }
   }
}
/*
 * Initializes form check for additional form part (activated by checkbox)
 * switcher = id of the switching checkbox (needs the state)
 * optionalpart = additional part to be or not to be displayed
 * form = id of the form (<form id="")
 * error = id of the global error message (<div id="")
 */
initOptionalCheck = function(switcher, optionalpart, form, error) {
   if(document.getElementById(form) && document.getElementById(optionalpart) && document.getElementById(error)) {
      if(switcher.checked) {
         document.getElementById(optionalpart).style.display= "block";
      } else {
         document.getElementById(optionalpart).style.display= "none";
      }
      var el = FormCheck.form.getElementsByTagName("*");
      for (var i=0;i<el.length;i++) {
         if (el[i].className && el[i].className.match("optional")) {
            if(switcher.checked) {
               el[i].onblur = validate;
            } else {
               el[i].onblur = dummy;
            }
         }
      }
   }
}
/*
 * no validation; must overwrite eventhandler
 */
dummy = function() {
   //no validation; must overwrite eventhandler
   return true;
}
/*
 * validates all input fields of the form
 */
validateAll =  function() {
   var result = "";
   var el = FormCheck.form.getElementsByTagName("*");
   for (var i=0;i<el.length;i++) {
      if (el[i].className && el[i].className.match("require")) {
         result += this.validate(el[i]);
      }
      if(document.getElementById("optionalswitch") && document.getElementById("optionalswitch").checked) {
         if (el[i].className && el[i].className.match("optional")) {
            result += this.validate(el[i]);
         }
      }
   }
    if (result.indexOf('false') > -1) {
        return false;
    }
    return true;
}
/*
 * validates one input field and returns true|false
 * obj = input object
 */
validate = function(obj) {
   var errorBackground = "#ecf0f5";
   var defaultBackground = "#fff";
   var loader = (typeof(this.nodeName)=='undefined') ? obj : this;
   var passok = true;
   var isOptional = false;
   var classItem = loader.className.split(' ');
   
   //optional: reset default background
   if (loader.parentNode!=null && loader.parentNode.className!="form-submit" && loader.parentNode.className!="calc-form-submit") {
          loader.style.background = defaultBackground;
   }
   for (var i=0; i<classItem.length; i++) {
      if(classItem[i]=="empty") isOptional= true;
   }
   if(isOptional && loader.value=="") return true;
   
   for (var i=0; i<classItem.length; i++) {
      switch (classItem[i]) {
         case "notempty" :
            passok = (loader.value!="");
            break;
         case "email" :
            passok = (loader.value.match(/^[\w\.\-\,\+]+@[a-zA-Z0-9][\w\.-]*[a-zA-Z0-9]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]$/)!=null);
            break;
         case "num" :
            passok = (loader.value.match(/^\d+$/)!=null);
            break;
         case "dec" :
            passok = (loader.value.match(/^\d+\,?\d*$/)!=null);
            break;
         //obsolete but in the list due to upgrade reasons
         case "numorempty" :
            if(obj.value != ""){
               passok = (obj.value.match(/^\d+$/)!=null);
            }
            break;
         case "agree" :
            passok = loader.checked;
            break;
         case "radio" :
         case "checkbox" :
            passok = checkRadio.call(loader);
            break;
         case "password" :
            passok = checkPassword.call(loader);
            break;
         case "textarea1000" :
            passok = (loader.value.length<=1000);
            break;
        case "textarea2000" :
            passok = (loader.value.length<=2000);
            break;
         case "textarea5000" :
            passok = (loader.value.length<=5000);
            break;
         default :
            //no validation
            break;
      }
   }
   if (passok != true) {
      displayWarning.call(loader,"block");
      //optional: set error background
      loader.style.background = errorBackground;
   } else {
      displayWarning.call(loader,"none");
   }
   return passok;
}
/*
 * function to submit the form
 */
formCheckSubmit = function(TEHForm) {
   displayWarning("none",FormCheck.error);
   if (validateAll()) {
       var el = document.forms[TEHForm].getElementsByTagName("*");
       for (var i=0;i<el.length;i++) {
          if (el[i].value!=null && el[i].type!="file") {
              el[i].value = el[i].value.replace(/"/g, "``");
          }
       }
      document.forms[TEHForm].submit();
   } else {
      displayWarning("block",FormCheck.error);
   }
}
/*
 * check a radio button
 */
checkRadio = function() {
   var el = FormCheck.form.getElementsByTagName("input");
   for (var i=0;i<el.length;i++) {
      if (el[i].name == this.name && el[i].checked) {
         return true;
      }
   }
   return false;
}
/*
 * check all password fields to be equal (className password and classNames must be equal)
 */
checkPassword = function() {
   var el = FormCheck.form.getElementsByTagName("input");
   for (var i=0;i<el.length;i++) {
      if (el[i].type==this.type && el[i].className==this.className) {
         if (el[i].value=="" || this.value=="" || el[i].value!=this.value) {
            el[i].style.background = "#ecf0f5";
            return false;
         } else {
            el[i].style.background = "#fff";
         }
      }
   }
   return true;
}
/*
 * displays a warning for each field (must have the same parent as the object)
 */
displayWarning = function(state, obj) {
   if (obj) {
      obj.style.display = state;
   } else {
      if (this.parentNode.childNodes.length != 0) {
         for (var i=0;i<this.parentNode.childNodes.length;i++) {
            if (this.parentNode.childNodes[i].className && this.parentNode.childNodes[i].className.match("warning")) {
               this.parentNode.childNodes[i].style.display = state;
            }
         }   
      }
   }
}
function popup(url, options) {
 fenster=window.open(url, "Popupfenster", options);
 fenster.focus();
 return false;
}
/**
 * FLASH OBJECT hr@netural 16-06-2006
 * changes:
 * 07-11-2006: added showDownloadLink, updated codebase & pluginspace
 **/
function flashObj(src,id,width,height,reqVersion,urlparameter,dontShowDLink,altImage,altLink) {
   this.str = "";
   this.src = src;
   this.id = id;
   this.width = width;
   this.height = height;
   this.reqVersion = reqVersion;
   this.urlparameter = urlparameter;
   this.dontShowDLink = dontShowDLink ? true : false;
   this.altImage = altImage;
   this.altLink = altLink;
}
flashObj.prototype = {
   write: function(bgcolor,wmode) {
      flashVersion = this.getFlashVersion();
      if (flashVersion >= this.reqVersion) {
         bgcolor = bgcolor ? bgcolor : "#fff";
         wmode = wmode ? wmode : "transparent";
         this.str += "<object";
         this.writeParameter("classid","clsid:d27cdb6e-ae6d-11cf-96b8-444553540000");
         this.writeParameter("codebase","http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab");
         this.writeParameter("width",this.width);
         this.writeParameter("height",this.height);
         this.writeParameter("id",this.id);
         this.str += ">";
         this.writeObjectParameter("allowScriptAccess","sameDomain");
         this.writeObjectParameter("movie",this.src);
         this.writeObjectParameter("quality","high");
         this.writeObjectParameter("wmode",wmode);
         if (this.urlparameter)
            this.writeObjectParameter("FlashVars","&"+this.urlparameter);
         this.writeObjectParameter("bgcolor",bgcolor);
         this.writeObjectParameter("allowScriptAccess","sameDomain");
         this.str += "<embed"
         this.writeParameter("src",this.src+((this.urlparameter) ? "?"+this.urlparameter : ""));
         this.writeParameter("quality","high");
         this.writeParameter("wmode",wmode);
         this.writeParameter("bgcolor",bgcolor);
         this.writeParameter("width",this.width);
         this.writeParameter("height",this.height);
         this.writeParameter("name",this.id);
         this.writeParameter("allowScriptAccess","sameDomain");
         this.writeParameter("type","application/x-shockwave-flash");
         this.writeParameter("pluginspage","http://www.adobe.com/go/getflashplayer");
         this.str += " /></object>";
         document.write(this.str);
      } else if (this.altImage) {
         if (this.altLink) {
            document.write("<a href=\""+this.altLink+"\">");
         }
         document.write("<img src=\""+this.altImage+"\" id=\""+this.id+"\" width=\""+this.width+"\" height=\""+this.height+"\" border=\"0\" />");
         if (this.altLink) {
            document.write("</a>");
         }
      } else if (!this.dontShowDLink) {
         document.write("<a href=\"http://www.adobe.com/go/getflashplayer\" id=\""+this.id+"\" target=\"blank\"><table style=\"margin: 0; padding: 0; width: "+this.width+"px; height: "+this.height+"px;\"><tr><td valign=\"center\" align=\"center\"><img src=\"http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif\" style=\"border: 0;\"/></td></tr></table></a>");
      }
   },
   
   writeObjectParameter: function(param, value) {
      this.str += "<param name=\""+param+"\" value=\""+value+"\"/>";
   },
   
   writeParameter: function(param, value) {
      this.str += " "+param+"=\""+value+"\"";
   },
   getFlashVersion: function() {
      var flashVersion = 0;
      var agent = navigator.userAgent.toLowerCase();
      if (agent.indexOf("mozilla/3") != -1 && agent.indexOf("msie") == -1) {
         return flashVersion;
      }
      if (navigator.plugins != null && navigator.plugins.length > 0) {
         var flashPlugin = navigator.plugins['Shockwave Flash']; 
         if (typeof flashPlugin == 'object') {
            for (i=25;i>0;i--) {
               if (flashPlugin.description.indexOf(i+'.') != -1) {
                  flashVersion = i;
               }
            }
         }
      } else if ((agent.indexOf("msie") != -1) && (parseInt(navigator.appVersion) >= 4) && (agent.indexOf("win") != -1) && (agent.indexOf("16bit") == -1)) {
         flashVersion = this.getIEFlashVersion();
      }
      return flashVersion;
   },
   
   getIEFlashVersion: function() {
      var swfObj, flashVersion;
      for (i=0;i<25;i++) {
         try {
            swfObj = new ActiveXObject("ShockwaveFlash.ShockwaveFlash."+i);
         } catch(e) {}
         if (swfObj) {
            flashVersion = swfObj.GetVariable("$version").split(" ")[1].split(",")[0];
         }
      }
      return (flashVersion);
   }
}
/* Glossary */
function setCurrentUrlGlossary() {
    document.glossary.currenturl.value = document.location;
}
function submitGlossary() {
    setCurrentUrlGlossary();
    window.open('', 'Begriffserklärung', 'width=306,height=770,left=0,top=110,scrollbars=yes');
    document.glossary.submit();
    return false;
}
function setMonth(pre) {
   //TODO max. aussenbereich
    //calendarCounter: which calendar is the first displayed calendar? (if it is june an the event dates start in april, it would be 3
    //absCalCounter: how many calendars are there in total? (includig empty months) -->
       if (pre) {
          //bewegung nach links - weiter zurückliegende daten
          if(moveCounter > 0){
              moveCounter = moveCounter - 1;
              moveLeft('ccc',parseInt(document.getElementById("ccc").style.left) + 174,25);
              document.getElementById("month-forward").style.display = "block"; //if it is moved right, you can always move it right again
              if(moveCounter == 0){
                document.getElementById("month-back").style.display = "none";
              } else {
                document.getElementById("month-back").style.display = "block";
              }
          } else {
              alert("moving impossible");
          }
       } else {
          if(moveCounter < absCalCounter - 3){
              moveCounter = moveCounter + 1;
              moveRight('ccc',parseInt(document.getElementById("ccc").style.left) - 174,25);
              document.getElementById("month-back").style.display = "block"; //if it is moved right, you can always move it left again
              if(moveCounter == absCalCounter - 3){
                document.getElementById("month-forward").style.display = "none";
              } else {
                document.getElementById("month-forward").style.display = "block";
              }
          } else {
              alert("moving impossible right");
          }
       }
}
function redirectCms(url) {
    window.location.replace(url);
}
function redirectLiveserver(url, siteId) {
    // /internet/deu/79_9861_DEU_HTML.htm
    //id = siteId.split("/")[3];
    //window.location.replace(url+id);
    window.location.replace(siteId);
}

/*
/internet/img/01_de_off-hover.gif 
/internet/img/01_eng_off-hover.gif
/internet/img/02_de_off-hover.gif
/internet/img/02_eng_off-hover.gif
/internet/img/03_de_off-hover.gif
/internet/img/03_eng_off-hover.gif
/internet/img/04_de_off-hover.gif
/internet/img/04_eng_off-hover.gif
19.03.2010 00:01
*/