function cookie_getValue(pos) {
   var end = document.cookie.indexOf(";", pos);
   if (end == -1) {
      end = document.cookie.length;
   }
   return unescape(document.cookie.substring(pos, end));
}

function cookie_get(name) {
   name += "=";
   var length = name.length;
   var cookieLength = document.cookie.length;
   var i = 0;
   while (i < cookieLength) {
      var j = i + length;
      if (document.cookie.substring(i, j) == name) {
         return cookie_getValue(j);
      }
      i = document.cookie.indexOf(" ", i) + 1;
      if (i == 0) {
         break;
      }
   }
   return null;
}

function cookie_set(name, value) {
   var exp = new Date();
   exp.setTime(exp.getTime() + (300 * 24 * 60 * 60 * 1000));
   document.cookie = name + "=" + escape (value) + "; expires=" + exp.toGMTString();
}

function cookie_delete(name) {
   var exp = new Date();
   exp.setTime (exp.getTime() - 1);
   var value = cookie_get(name);
   if (value != null) {
      document.cookie = name + "=" + value + "; expires=" + exp.toGMTString();
   }
}



function trim (str) {
   // Erst f�hrende, dann Abschlie�ende Whitespaces entfernen
   // und das Ergebnis dieser Operationen zur�ckliefern
   return str.replace (/^\s+/, '').replace (/\s+$/, '');
}

function format_currency(num) {
   return num.toFixed(2).replace(".", ",");
}

function changeContent(id, content) {
   document.getElementById(id).firstChild.nodeValue = content;
}

function changeValue(id, value) {
   document.getElementById(id).value = value;
}

function getValue(id) {
   return document.getElementById(id).value;
}

function getContent(id) {
   return document.getElementById(id).firstChild.nodeValue;
}

function changeColor(id, newColor) {
   document.getElementById(id).style.color = newColor;
}

function changeBgColor(id, newColor) {
   document.getElementById(id).style.backgroundColor = newColor;
}

function changeColor(id, newColor) {
   document.getElementById(id).style.color = newColor;
}

function changeBgImage(id,image) {
   if(document.getElementById(id)) {
      document.getElementById(id).style.backgroundImage = "url('"+image+"')";
   }
}

function changeBorderColor(id, newColor) {
   document.getElementById(id).style.borderColor = newColor;
}

function changeUri(uri) {
   window.location.href = uri;
}

function changeDisplay(id,display) {
   if(display == true) {
      document.getElementById(id).style.display = 'block';
   }
   if(display == false) {
      document.getElementById(id).style.display = 'none';
   }
}
function changeVisibility(id,visibility) {
   if(visibility == true) {
      document.getElementById(id).style.visibility = 'visible';
   }
   if(visibility == false) {
      document.getElementById(id).style.visibility = 'hidden';
   }
}

function toggleDisplay(id) {
   var flag = 0;
   var display = document.getElementById(id).style.display;
   if(display == 'none' || display == '') {
      flag = 1;
      document.getElementById(id).style.display = 'block';
   }
   if(display == 'block') {
      flag = 2;
      document.getElementById(id).style.display = 'none';
   }
   return flag;
}

function toggleButton(id) {
   var src = document.getElementById(id).src;
   var basename = src.substring(0,src.lastIndexOf('_'));
   var appendix = src.substring(src.lastIndexOf('_'), src.lastIndexOf('.'));
   var extension = src.substring(src.lastIndexOf('.'));

   if(appendix == '_closed') {
      document.getElementById(id).src = basename + '_open' + extension;
   }

   if(appendix == '_open') {
      document.getElementById(id).src = basename + '_closed' + extension;
   }
}

function toggleBgButton(id) {
   var elem = $(id);
   if(elem) {
      if(elem.hasClassName('closed')) {
         elem.removeClassName('closed');
         elem.addClassName('open');
      } else {
         elem.removeClassName('open');
         elem.addClassName('closed');
      }
   }
}

function highlightButton(id, event) {
   var src = document.getElementById(id).src;
   var basename = src.substring(0,src.lastIndexOf('_'));
   var appendix = src.substring(src.lastIndexOf('_'), src.lastIndexOf('.'));
   var extension = src.substring(src.lastIndexOf('.'));

   if(event == 'over') {
      document.getElementById(id).src = basename + '_hi' + extension;
   }

   if(event == 'out') {
      document.getElementById(id).src = basename + '_norm' + extension;
   }
}

function calculateAge(year1, month1, day1, year2, month2, day2) {
   var age = null;

   // Wenn eine Angabe fehlt wird "" zur�ckgegeben
   if (year1 != 0 && month1 != 0 && day1 != 0 && year2 != 0 && month2 != 0 && day2 != 0) {
      var date1 = new Date(year1, month1, day1);
      var date2 = new Date(year2, month2, day2);

      age = date2.getFullYear() - date1.getFullYear();

      // Wenn der Monat noch nicht erreicht ist => 1 Jahr abziehen
      if (date2.getMonth() < date1.getMonth()) {
         age = age - 1;
      } else    {
         // Richtiger Monat aber der Tag ist noch nicht erreicht
         // => 1 Jahr abziehen
         //         alert(date2.getMonth() + '   ' + date1.getMonth());
         if (date2.getMonth() == date1.getMonth() && date2.getDate() <= date1.getDate()) {
            //            alert(date2.getDate() + '   ' + date1.getDate());
            age = age - 1;
         }
      }
   }
   return age;
}


function selectAllText(domId) {
   var elem = document.getElementById(domId)
   elem.focus();
   elem.select();
}


function popupCentered(pageEId, width, height, params) {
   var left = (screen.width) ? (screen.width-width)/2 : 0;
   var top = (screen.height) ? (screen.height-height)/2 : 0;
   var uri = 'popup.php?p=' + pageEId;
   if(params != '') {
      uri = uri + '&' + params;
   }

   if(window.screenLeft) {
      left  = left + window.screenLeft;
   }

   ref = window.open(uri, '_blank', "toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=0,width="+width+",height="+height+",top="+top+",left="+left);

   ref.focus();
   return ref;
}

