function getWeek ( tDate ) {
  //current year limits
  var jan1st = new Date ( tDate.getFullYear(), 0, 1 ) ;  
  var dec31st = new Date ( tDate.getFullYear(), 11, 31 ) ;  
  //1st january weekday number
  var jan1stNum = jan1st.getDay() == 0 ? 7 : jan1st.getDay() ; 
  //first days in the first week
  var firstWeek = 7 - jan1stNum > 2 ? true : false ;
  // first monday next 1st january
  var firstMonday = 9 - jan1stNum ; 
  //number of days since 1st january & how many days this year
  var numberOfDays= Math.ceil( ( (tDate - jan1st) / 86400000));
  // how many week this year
  var yearDays = Math.ceil( ( (dec31st - jan1st) / 86400000)+1);
  //nombre de semaines dans l'annee
  var numberOfWeeks ;
  if (jan1stNum == 4 || (jan1stNum == 3 && yearDays == 366)) { numberOfWeeks = 53 ; }else { numberOfWeeks = 52 ; }

  //same datas for previous year in cas of a week which begin the year before
  var prev_jan1st = new Date ( tDate.getFullYear()-1, 0, 1 );  
  var prev_dec31st = new Date ( tDate.getFullYear()-1, 11, 31 ); 
  var prev_jan1stNum = prev_jan1st.getDay() == 0 ? 7 : prev_jan1st.getDay() ; 
  var prev_YearNbDays = Math.ceil( ( (prev_dec31st - prev_jan1st) / 86400000)+1);
  var numberOfWeeksPrev ;
  if (prev_jan1stNum == 4 || (prev_jan1stNum == 3 && prev_YearNbDays == 366)) { numberOfWeeksPrev = 53 ; }else { numberOfWeeksPrev = 52 ; }
  
  //week number
  var numberOfWeeksCompl = Math.ceil(  (numberOfDays- firstMonday) / 7) ;
  var week = firstWeek + numberOfWeeksCompl;
  var weekId = '';
  if (numberOfDays< firstMonday) {
    if (firstWeek) {weekId = 1;}
    else {weekId = numberOfWeeksPrev;}
  }
  else {
    if ((week > 52) && (week > numberOfWeeks)) {weekId = 1;}
    else {weekId = week;}
  }
  return (weekId) ;
}
