/**
*@fileoverview Erweiterungen des JavaScript "Date" Objekts
*/
var monNames = new Array("Sty.","Lut.","Mar.","Kwi.","Maj","Cze.","Lip.","Sie.","Wrz.","Paź.","Lis.","Gru.");

function twoDigit(val){
  return parseInt(val,10)<10?"0"+parseInt(val,10):parseInt(val,10);
}
/**
*@param {int} month Anzahl der Monate, um die das Datum erhöht werden soll
* (optional, default=1)
*@addon
*/
Date.prototype.addMonth=function(month){
  if(typeof(month)=='undefined') month=1;
  month = parseInt(month);
  var years=Math.floor(month/12);
  this.addYear(years);
  month = month%12;
  if((this.getMonth()+month)>11){
    this.addYear();
    this.setMonth((this.getMonth()+month)%12);
  }else{
    this.setMonth(this.getMonth()+month);
  }
}

/**
*@param {int} years Anzahl der Jahre, um die das Datum erhöht werden soll
* (optional, default=1)
*@addon
*/
Date.prototype.addYear=function(years){
  if(typeof(years)=='undefined') years=1;
  years = parseInt(years);
  var aktYear = this.getFullYear();
  //this.setYear(aktYear+years);
  this.setFullYear(aktYear+years);
  return this;
};
/**
*@param {int} days Anzahl der Tage, um die das Datum erhöht werden soll
* (optional, default=1)
*@addon
*/
Date.prototype.addDay=function(days){
  if(typeof(days)=='undefined') days=1;
  days = parseInt(days);
  var aktTs = this.getTime();
  var addTs = days*86400000;
  this.setTime(aktTs+addTs);
  return this;
};
/**
*Setzt Die Uhrzeit eines Dateobjekts auf 00:00:00:00 (HH:MM:SS:MS)
*@addon
*/
Date.prototype.resetTime = function(){
  this.setHours(0,0,0,0);
  return this;
};

/**
*Liefert die Kalenderwoche
*@addon
*/
Date.prototype.getWeek = function(){
  var dt      = new Date(this.getTime());
  var aktDay  = dt.getDay();
  if(aktDay==0)
    dt.addDay(-6);
  else
    dt.addDay(1-aktDay);
  var aktYear = dt.getFullYear();
  var tmpDt   = new Date(dt.getTime());
  tmpDt.addDay(6);
  if(tmpDt.getFullYear()>aktYear && tmpDt.getDate()>=4)
    return 1;
  var dtFirst = new Date(aktYear,0,1);
  var dFirst  = dtFirst.getDay();
  if(dFirst<=4)
    dtFirst.addDay(1-dFirst);
  else
    dtFirst.addDay(8-dFirst);
  return 1+parseInt((dt.getTime()-dtFirst.getTime())/(86400000*7),10);
}

function getTimestampFromString(sTermin){
  var day   = 0;
  var month = 0;
  var year  = 0;
  if(sTermin.search(/(Mo|Di|Mi|Do|Fr|Sa|So)\. (\d{2})\.(\d{2})\.(\d{4})/i)!=-1){
    day   = parseInt(RegExp.$2, 10);
    month = parseInt(RegExp.$3, 10);
    year  = parseInt(RegExp.$4, 10);
  }else if(sTermin.search(/(\d{2})[\.\/]?(\d{2})[\.\/]?(\d{4})/)!=-1){
    day   = parseInt(RegExp.$1, 10);
    month = parseInt(RegExp.$2, 10);
    year  = parseInt(RegExp.$3, 10);
  }else if(sTermin.search(/(\d{2})[\.\/]?(\d{2})[\.\/]?(\d{2})/)!=-1){
    day   = parseInt(RegExp.$1, 10);
    month = parseInt(RegExp.$2, 10);
    year  = parseInt(RegExp.$3, 10);
    year = year>20?(1900+year):(2000+year);
  }
  if (day >= 1 && day <= 31 && month >= 1 && month <= 12 && year >= 1920 && year < 2020) {
    var dt = new Date(year,month-1,day,12,0,0);
  } else {
    var dt = new Date();
    dt.setHours(12,0,0,0);
  }
  return dt.getTime();
}

var DateHelperLoaded = true;
