// 1000*60*60*24-> 86400000
Date.prototype.HAFTA_BOYU=864e5;
/**
 * ISO 8601!
 * weekNumber	: 1..52 veya 1..53
 * weekYear	: 4 haneli yil degeri.
 */
Date.prototype.setWeek = function(weekNumber,weekYear) {
	// yilin ilk haftasi	
	var d = new Date(typeof weekYear!="undefined"?weekYear:this.getFullYear(), 0,4, 0, 0, 0);
	var haftaGunu=d.getDay();
	if(haftaGunu==0) haftaGunu=7;// pazargunu icin 7 kurulsun!.
	//Persembe gunune kur, persembe gunu icin 4
	d.setDate(d.getDate()+4-haftaGunu);

	var fark=(weekNumber-1)*(7 * d.HAFTA_BOYU);
	if(fark<0)
		fark=0;
	
	//cikti.value+="\nfark:"+fark+"\n";
	d=new Date(d.getTime()+fark); 
	
	// tarih degerleri atansin!:
	//cikti.value+="\nhafta kurulmadan once, tarih:"+this+" kurulacak tarih:"+d;
	this.setFullYear(d.getFullYear());
	this.setMonth(d.getMonth());
	this.setDate(d.getDate());	
	//cikti.value+=" !!! tarih kuruldu";
};

/** 
 * ISO 8601!
 * Yilin hafta degerini dondurur. 
 */
Date.prototype.getWeekNumber = function() {
	var d = new Date(this.getFullYear(), this.getMonth(), this.getDate(), 0, 0, 0);
	var hgSimdi= d.getDay();
	if(hgSimdi==0) hgSimdi=7;// pazargunu icin 7 kurulsun!.
	//Persembe gunune kur, persembe gunu icin 4
	d.setDate(d.getDate()+4-hgSimdi); 
	var simdikiZaman = d.valueOf(); // GMT
	d.setMonth(0);
	// ilk hafta, ayin 4'unu icermeli!:
	d.setDate(4); 
	var hgIlk=d.getDay();
	if(hgIlk==0) hgIlk=7;// pazargunu icin 7 kurulsun!.
	//Persembe gunune kur, persembe gunu icin 4:
	d.setDate(d.getDate()+4-hgIlk); 
	var ilkHaftaZaman=d.valueOf(); // GMT
	var fark=(simdikiZaman - ilkHaftaZaman);	
	//cikti.value+="\n simdikiZaman:"+simdikiZaman+" ilkHaftaZaman:"+ilkHaftaZaman+" fark:"+fark;
	return Math.round( (fark)/ (7 * 864e5))+1;
};
