  function lz(x) {
    return(x<0||x>9?"":"0")+x;
  }

  function include_once(src) {
    // hole alle vorhandenen Script-Elemente
    var scripts = document.getElementsByTagName('script');
    if(scripts) {
      for(var k=0; k<scripts.length; k++) {
        // script schon geladen, abbrechen
        if(scripts[k].src == src) {
          return;
        }
      }
    }
    // script noch nicht geladen, binde es ein
    var script = document.createElement('script');
    script.src = src;
    script.type = 'text/javascript';
    (document.getElementsByTagName('HEAD')[0] || document.body).appendChild(script);
  }

  function isNumber(n) {
    return !isNaN(parseFloat(n)) && isFinite(n);
  }

  function numbersonly(e)
  {
    var key;
    var keychar;
    if (window.event)
       key = window.event.keyCode;
    else if (e)
       key = e.which;
    else
       return true;
    keychar = String.fromCharCode(key);
    // control keys
    if ((key==null) || (key==0) || (key==8) || (key==9) || (key==13) || (key==27) )
       return true;
    // numbers
    else if ((("0123456789").indexOf(keychar) > -1))
       return true;
    else
       return false;
  }

  function setPeriod(period, objFrom, objTo)
  {

    var nullDate = new Date(0,0,0);

    var datFrom = nullDate;
    var datTo   = nullDate;

    var today = new Date();
    var tempd = new Date();

    var toMonday = 0;
    var toSunday = 0;

    switch(period) {
    case "":
    case "Gesamte Zeit":
      break;
    case "Benutzerdefiniert":
      return;
    case "Heute":
      datFrom = today;
      datTo = today;
      break;
    case "Gestern":
      tempd.setDate(tempd.getDate()-1);
      datFrom = tempd;
      datTo = tempd;
      break;
    case "Vorgestern":
      tempd.setDate(tempd.getDate()-2);
      datFrom = tempd;
      datTo = tempd;
      break;
    case "Diese Woche":
      day = today.getDay();
      switch(day)
      {
        case 0:
          toMonday = 6;
          toSunday = 0;
          break;
        default:
          toMonday = (day - 1);
          toSunday = (7 - day);
          break;
      }
      tempd.setDate(tempd.getDate()-toMonday);
      datFrom = tempd;
      tempd = today;
      tempd.setDate(tempd.getDate()+toSunday);
      datTo = tempd;
      break;
    case "Letzte Woche":
      day = today.getDay();
      switch(day)
      {
        case 0:
          toMonday = 6;
          toSunday = 0;
          break;
        default:
          toMonday = (day - 1);
          toSunday = (7 - day);
          break;
      }
      tempd.setDate(tempd.getDate()-toMonday-7);
      datFrom = tempd;
      tempd = today;
      tempd.setDate(tempd.getDate()+toSunday-7);
      datTo = tempd;
      break;

    case "Diesen Monat":
    case "Dieser Monat":
      datFrom = new Date((today.getYear()+1900), today.getMonth(), 1);
      datTo   = new Date((today.getYear()+1900), today.getMonth()+1, 0);
      break;
      
    case "Letzten Monat":
    case "Letzter Monat":
      datFrom = new Date((today.getYear()+1900), today.getMonth()-1, 1);
      datTo   = new Date((today.getYear()+1900), today.getMonth()+1-1, 0);
      break;
    case "Gesamt":
      datFrom = 0;
      datTo = 0;
      break;
    case "Dieses Jahr":
      datFrom = new Date((today.getYear()+1900), 0, 1);
      datTo   = new Date((today.getYear()+1900), 11, 31);
      break;
    case "Letztes Jahr":
      datFrom = new Date((today.getYear()+1900-1), 0, 1);
      datTo   = new Date((today.getYear()+1900-1), 11, 31);
      break;
    case "Letzte sieben Tage":
    case "Die letzten sieben Tage":
      tempd.setDate(tempd.getDate()-(7-1));
      datFrom = tempd;
      datTo   = today;
      break;

    default:

      if(period.match(/^\d{4}$/)) {
        datFrom = new Date(period, 0, 1);
        datTo   = new Date(period, 11, 31);

      } else if(period.match(/(Die )*letzte(n)* \d* Tage/i)) {
        var daymatch = period.match(/(\d)+/);
        if(daymatch){
          var days = daymatch[0];
          tempd.setDate(tempd.getDate()-(days-1));
          datFrom = tempd;
          datTo   = today;
        }
        
      } else if(period.match(/(Die )*letzte(n)* \d* Monate/i)) {
        var monthmatch = period.match(/(\d)+/);
        if(monthmatch){
          var months = monthmatch[0];
          datFrom = new Date((today.getYear()+1900), today.getMonth()-months-1, today.getDay());          
          datTo   = today;
        }

      } else if(period.match(/vor \d* Tag(en)*/i)) {
        var daymatch = period.match(/(\d)+/);
        if(daymatch){
          var days = daymatch[0];
          tempd.setDate(tempd.getDate()-days);
          datFrom = tempd;
          datTo   = tempd;
        }

      }  else {
          return;
      }
    }

    if(datFrom != nullDate) {
      var fromOut = "";
      fromOut = datFrom.getDate()+"."+(datFrom.getMonth()+1)+"."+(datFrom.getYear()+1900);
      objFrom.val(fromOut);
    }
    else {objFrom.val('');}

    if(datTo != nullDate) {
      var toOut = "";
      toOut = datTo.getDate()+"."+(datTo.getMonth()+1)+"."+(datTo.getYear()+1900);
      objTo.val(toOut);
    }
    else {objTo.val('');}
  }

