/*
Functie aan date toevoegen voor weeknummer
*/

//--> Weeknummer functie
Date.prototype.getWeek = function()
{
	//--> Dagen per maand
	var dagen	= new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
	var schrikjaar;

	
	//--> Als het jaar een schrikkeljaar is
	schrikjaar	= this.getFullYear() % 4;
	if(schrikjaar == 0){ dagen[1] = 29; }else{ dagen[1] = 28; }

	//--> Totaal dagen tot datum
	var totDagen	= this.getDate()-4;
	for(var maand = 0; maand < this.getMonth(); maand++)
	{		
		//--> Tel dagen op
		totDagen	+= dagen[maand];
	}
	
	
	
	//--> Aantal weken
	var totWeken	= Math.floor(totDagen/7);
	
	
	
	//--> Dagnummer van dag zelf
	var dagZelf	= new Date(this.getFullYear(), this.getMonth(), this.getDate(), 0, 0, 0, 0);
	dagZelf		= dagZelf.getDay();
	if(dagZelf == 0){ dagZelf = 7; }
	
	
	
	//--> Dagnummer van 4 januari in jaar ervoor
	var vorJan	= new Date(this.getFullYear()-1, 1, 1, 0, 0, 0, 0);
	vorJan	= vorJan.getDay();
	if(vorJan == 0){ vorJan = 7; }
	
	
	
	//--> Als het jaar een schrikkeljaar is
	schrikjaar	= (this.getFullYear()-1) % 4;
	if(schrikjaar == 0){ dagen[1] = 29; }else{ dagen[1] = 28; }
	
	//--> Alle dagen tellen
	var allDagen	= dagen[11]-4;
	for(var maand = 0; maand < 11; maand++)
	{
		allDagen	+= dagen[maand];
	}
	
	
	
	//--> Alle weken tellen
	var allWeken	= Math.floor(allDagen/7);
	
	
	
	//--> Dagnummer van 31 december in jaar ervoor
	var vorDec	= new Date(this.getFullYear()-1, 11, 31, 0, 0, 0, 0);
	vorDec	= vorDec.getDay();
	if(vorDec == 0){ vorDec = 7; }
	
	
	
	//--> Dagnummer van 4 januarie in jaar zelf
	var dagJan	= new Date(this.getFullYear(), 0, 4, 0, 0, 0, 0);
	dagJan	= dagJan.getDay();
	if(dagJan == 0){ dagJan = 7; }
	
	
	
	//--> Dagnummer van 4 januarie in jaar erna
	var naJan	= new Date(this.getFullYear()+1, 0, 4, 0, 0, 0, 0);
	naJan	= naJan.getDay();
	if(naJan == 0){ naJan = 7; }
	
	
	
	//--> Weeknummer van 31 december in jaar ervoor
	var vorWeek;
	if(vorDec < dagJan)
	{
		vorWeek	= 1;
	}else if(vorDec < vorJan)
	{
		vorWeek	= allWeken + 2
	}else
	{
	 	vorWeek	= allWeken + 1
	}
	
	
	
	//--> Als voorbeeld datum 1, 2 of 3 januari is
	if(this.getMonth() == 0 && (this.getDate() == 1 || this.getDate() == 2 || this.getDate() == 3))
	{
		//--> Als dag zelf kleiner is dan dag in januari
		if(dagZelf < dagJan)
		{
			var dagWeek	= 1;
		}else
		{
			var dagWeek	= vorWeek;
		}
	}else
	{
		//--> Als dag in reeks 29, 30, 31 december zit
		if((this.getMonth() == 11 && (this.getDate() == 29 || this.getDate() == 30 || this.getDate() == 31)) && dagZelf < naJan)
		{
			var dagWeek	= 1;
		}else
		{
			//--> Als dag zelf kleiner is dan dag in januari
			if(dagZelf < dagJan)
			{
				var dagWeek	= totWeken + 2;
			}else
			{
				var dagWeek	= totWeken + 1;
			}
		}
	}
	
	
	return dagWeek;
}
