//document.writeln(new Date() + " --> " + getWeek ( new Date() ));
//document.writeln("<BR>");
//document.writeln("01/01/2005 --> " + getWeek ( new Date(2005, 0, 1) )) ;
//document.writeln("<BR>");
//document.writeln("01/01/2004 --> " + getWeek ( new Date(2004, 0, 1) )) ;
//document.writeln("<BR>");
//document.writeln("31/12/2004 --> " + getWeek ( new Date(2004, 11, 31) )) ;
//document.writeln("<BR>");
//document.writeln("01/01/2007 --> " + getWeek ( new Date(2007, 0, 1) )) ;
//document.writeln("<BR>");
//document.writeln("08/01/2007 --> " + getWeek ( new Date(2007, 0, 8) )) ;
//document.writeln("<BR>");
//document.writeln("10/01/2005 --> " + getWeek ( new Date(2005, 0, 10) )) ;
//document.writeln("<BR>");
//document.writeln("29/12/2003 --> " + getWeek ( new Date(2003, 11, 29) )) ;

function getWeek ( tDate ) {
var res = '' ;

//de l'année courante
var janv1 = new Date ( tDate.getFullYear(), 0, 1 ) ; //1 janvier
var dec31 = new Date ( tDate.getFullYear(), 11, 31 ) ; //31 decembre
var janv1Num = janv1.getDay() == 0 ? 7 : janv1.getDay() ; //numero du 1 janvier
var premSem = 7 - janv1Num > 2 ? true : false ; //si la première semaine compte ou pas
var premLundi = 9 - janv1Num ; //date du premier lundi suivant le 1 janvier
//nb jour separant la date du 1 janvier
var nbJour = parseInt((tDate - janv1) / (60 * 60 * 24 * 1000) + 1, 10) ;
//nb jour dans l'annee
var nbJourTot = parseInt((dec31 - janv1) / (60 * 60 * 24 * 1000) + 1, 10) ;
//nombre de semaines dans l'annee
var nbSem ;
if (janv1Num == 4 || (janv1Num == 3 && nbJourTot == 366)) { nbSem = 53 ; }
else { nbSem = 52 ; }

//de l'année précédente
var janv1Prev = new Date ( tDate.getFullYear()-1, 0, 1 ) ; //1 janvier
var dec31Prev = new Date ( tDate.getFullYear()-1, 11, 31 ) ; //31 decembre
var janv1NumPrev = janv1Prev.getDay() == 0 ? 7 : janv1Prev.getDay() ; //numero du 1 janvier
//nb jour dans l'annee
var nbJourTotPrev = parseInt((dec31Prev - janv1Prev) / (60 * 60 * 24 * 1000) + 1, 10) ;
//nombre de semaines dans l'annee
var nbSemPrev ;
if (janv1NumPrev == 4 || (janv1NumPrev == 3 && nbJourTotPrev == 366)) { nbSemPrev = 53 ; }
else { nbSemPrev = 52 ; }

//calcul de la semaine
var nbSemCompl = parseInt((nbJour - premLundi) / 7 , 10) ;

var week = premSem + nbSemCompl + 1 ;

if (nbJour < premLundi) {
if (premSem) {
res = '01/' + tDate.getFullYear() ;
}
else {
res = nbSemPrev + '/' + (tDate.getFullYear()-1) ;
}
}
else {
if ((week > 52) && (week > nbSem)) {
res = '01/' + (tDate.getFullYear()+1) ;
}
else {
var tmp = '0' + week ;
res = tmp.substring(tmp.length-2, tmp.length);// + '/' + tDate.getFullYear() ;
}
}

return (res) ;
}
