// (c) 2007 Yves Horsmans
// www.archyves.com


// Bepaal dagnummer
Date.prototype.getDayInYear = function() {
var januaryFirst = new Date(this.getFullYear(),0,1);
return Math.ceil((this - januaryFirst) / 86400000); // 86400000 is het aantal milliseconden in een dag
} 

var today = new Date();
var dayNumber = today.getDayInYear(); // Huidige dagnummer in dit jaar
var yearNumber = today.getYear(); // Huidig jaartal
var leapYear = new Date(yearNumber,1,29).getDate() == 29; // Bestaat 29 februari? Ofwel. Is dit een schrikkeljaar? (true of false)

if (leapYear == true) {
	leapDay = 1; // Dit is een schrikkeljaar, dus voor de data op of na 1 maart, moet er een schrikkeldag bijgeteld worden
}
else {
	leapDay = 0; // Dit is geen schrikkeljaar, dus gewoon een jaar met 365 dagen.
}

// Berekening eerste Paasdag 
// Formule afkomstig van Wikipedia
// http://en.wikipedia.org/wiki/Computus [Meeus/Jones/Butcher Gregorian algorithm]
var a = yearNumber % 19; 
var b = Math.floor(yearNumber / 100);
var c = yearNumber % 100;
var d = Math.floor(b / 4); 
var e = b % 4;
var f = Math.floor((b + 8) / 25);
var g = Math.floor((b - f + 1) / 3);
var h = (19 * a + b - d - g + 15) % 30;
var i = Math.floor(c / 4);
var k = c % 4;
var L = (32 + 2 * e + 2 * i - h - k) % 7;
var m = Math.floor((a + 11 * h + 22 * L) / 451);

var easternMonth = Math.floor((h + L - 7 * m + 114) / 31);
var easternDay = ((h + L - 7 * m + 114) % 31) + 1 ;

if (easternMonth == 3 ){ // Eerste paasadag valt in maart
	dayNumberEastern = 31 + 28 + leapDay + easternDay; // Als het een schrikkeljaar is, wordt er een dag bijgeteld in februari
}
else { // Eerste paasadag valt in april
	dayNumberEastern = 31 + 28 + leapDay + 31 + easternDay; // Als het een schrikkeljaar is, wordt er een dag bijgeteld in februari
}

// Berekening bepaalde dag in de maand
// Formule afkomstig van 
// http://www.smart.net/~mmontes/ushols.html

// a = (14 - month) / 12
// y = year - a
// m = month + 12*a - 2
// d = (day + y + y/4 - y/100 + y/400 + (31*m)/12) % 7 (Bepaald de dag in de week van "day" voor de gekozen maand in een bepaald jaar)

// De Qde N-dag in de betreffende maand van dat bepaalde jaar: NQ = 1 + (Q-1)*7 + (N - s)%7 
// met N = 1 voor maandag, 2 voor dinsdag etc. 
// (Amerika begint met zondag, dus daar is Sunday = 0, Monday =1 etc.)

// Omdat mei (moederdag) en juni (vaderdag) allbei na februari vallen, 
// hoeft in dit geval het eerste deel van de formule (a, y en m) niet berekend te worden
// m = maandNummer - 2


// Berekening Moederdag (de 2e zondag in mei)
var maandNummerMei = 5;
var eersteDagInDeMaandMei = (1 + yearNumber + Math.floor(yearNumber/4) - Math.floor(yearNumber/100) + Math.floor(yearNumber/400) + Math.floor((31*(maandNummerMei - 2))/12)) % 7;
var tweedeZondagInMei = 1 + (2-1)*7 + (7 - eersteDagInDeMaandMei) % 7; 
var dayNumberMothersDay = 31 + 28 + leapDay + 31 + 30 + tweedeZondagInMei; // Als het een schrikkeljaar is, wordt er een dag bijgeteld in februari


// Berekening Vaderdag (de 3e zondag in juni)
var maandNummerJuni = 6;
var eersteDagInDeMaandJuni = (1 + yearNumber + Math.floor(yearNumber/4) - Math.floor(yearNumber/100) + Math.floor(yearNumber/400) + Math.floor((31*(maandNummerJuni - 2))/12)) % 7;
var derdeZondagInJuni = 1 + (3-1)*7 + (7 - eersteDagInDeMaandJuni) % 7; 
var dayNumberFathersDay = 31 + 28 + leapDay + 31 + 30 + 31 + derdeZondagInJuni; // Als het een schrikkeljaar is, wordt er een dag bijgeteld in februari

var randomNumber = (Math.floor(Math.random()*2)) + 1; // Genereert willekeurig een 1 of een 2 voor de LOEWE actie



function headerPicker(){

var header = document.getElementById('header');

// NIEUWJAAR
if ( dayNumber == 365 + leapDay || dayNumber == 1 ) { 
	header.style.backgroundImage = 'url(_contentImages/specialHeaders/headerNieuwjaar.jpg)';
	}
// LOEWE ACTIE
// van 1 februari 2010 (dag 32) tot en met 31 maart 2010 (dag 90)
// Halloween overruled de Loewe actie
//else if ( dayNumber >= 32 && dayNumber <= 90 ) {
//	header.style.backgroundImage = 'url(_contentImages/specialHeaders/headerLoewe' + randomNumber + '.jpg)';
//	}
// VALENTIJN 
// van 9 februari (dag 40) tot en met 14 februari (dag 45)
else if(dayNumber >= 40 && dayNumber <= 45  ) { 
	header.style.backgroundImage = 'url(_contentImages/specialHeaders/headerValentijn.jpg)';
	}
// LOEWE ACTIE 2
// van 1 april 2010 (dag 91) tot en met 30 juni 2010 (dag 181)
// Pasen, koningedag, moederdag en vaderdag overrulen de Loewe actie
//else if ( dayNumber >= 91 && dayNumber <= 181 ) {
//	header.style.backgroundImage = 'url(_contentImages/specialHeaders/headerLoewe' + randomNumber + '.jpg)';
//	}
// PASEN
// Formule berekening eerste Paasdag
else if(dayNumber == dayNumberEastern || dayNumber == dayNumberEastern + 1 ) { 
	header.style.backgroundImage = 'url(_contentImages/specialHeaders/headerPasen.jpg)';
	}
	
// KONINGINNEDAG
// 30 april (dag 120)
else if(dayNumber == 120 + leapDay ) { 
	header.style.backgroundImage = 'url(_contentImages/specialHeaders/headerKoninginnedag.jpg)';
	}
	
// MOEDERDAG
// Formule berekening Moederdag
// 2e zondag in mei
// Wordt 5 dagen op voorhand getoond. Het laatste dagnummer is dus Moederdag zelf
// 2008: 11 mei (dag 127 t/m 132)
// 2009: 10 mei (dag 125 t/m 130)
// 2010: 9 mei (dag 124 t/m 129)
// 2011: 8 mei (dag 123 t/m 128)
else if(dayNumber >= dayNumberMothersDay - 5 && dayNumber <= dayNumberMothersDay  ) {
	header.style.backgroundImage = 'url(_contentImages/specialHeaders/headerMoederdag.jpg)';
	}
	
// VADERDAG
// Formule berekening Vaderdag
// 3e zondag in juni 
// Wordt 5 dagen op voorhand getoond. Het laatste dagnummer is dus Vaderdag zelf
// 2008: 15 juni (dag 162 t/m 167)
// 2009: 21 juni (dag 167 t/m 172)
// 2010: 20 juni (dag 166 t/m 171)
// 2011: 19 juni (dag 165 t/m 170)
else if(dayNumber >= dayNumberFathersDay - 5 && dayNumber <= dayNumberFathersDay  ) { 
	header.style.backgroundImage = 'url(_contentImages/specialHeaders/headerVaderdag.jpg)';
	}
	
// BACK TO SCHOOL
// Aanvang schooljaar midden nederland (voorlopig)
// Basis Onderwijs / Voortgezet onderwijs
// 01-09-2008 / 01-09-2008 (dagnummer 245)
// 24-08-2009 / 31-08-2009 (dagnummer 236 & 243)
// 16-08-2010 / 23-08-2010 (dagnummer 228 & 235)
// 15-08-2011 / 22-08-2011 (dagnummer 227 & 234)
// 20-08-2012 / 27-08-2012 (dagnummer 233 & 240)
// 02-09-2013 / 02-09-2013 (dagnummer 245)
// 15-08-2014 / 22-08-2014 (dagnummer 227 & 234)
// In dit voorbeeld staan 10 augustus 2008 t/m 5 september 2008 klaar (dag 228 t/m 249) 
else if(dayNumber >= 223 && dayNumber <= 249  ) { 
	header.style.backgroundImage = 'url(_contentImages/specialHeaders/headerStartSchool.jpg)';
	}
	
// HALLOWEEN
// 31 oktober (dag 304)
else if(dayNumber == 304 + leapDay ) { 
	header.style.backgroundImage = 'url(_contentImages/specialHeaders/headerHalloween.jpg)';
	}
	
// SINTERKLAAS
// van 29 november t/m 5 december (dag 333 t/m 339)
else if(dayNumber >= 333 + leapDay && dayNumber <= 339 + leapDay ) { 
	header.style.backgroundImage = 'url(_contentImages/specialHeaders/headerSinterklaas.jpg)';
	}
	
// KERST(PERIODE)
// van 15 december t/m 23 december (dag 349 t/m 357)
else if(dayNumber >= 349 + leapDay  && dayNumber <= 357 + leapDay  ) { 
	header.style.backgroundImage = 'url(_contentImages/specialHeaders/headerKerst.jpg)';
	}
// KERSTMIS
// van 24 december t/m 26 december (dag 358 t/m 360)
else if(dayNumber >= 358 + leapDay  && dayNumber <= 360 + leapDay  ) { 
	header.style.backgroundImage = 'url(_contentImages/specialHeaders/headerKerstmis.jpg)';
	}
	
// alert(dayNumber);
}




if (window.addEventListener) //DOM method for binding an event (eg. FireFox)
window.addEventListener("load", headerPicker, false)

else if (window.attachEvent) //IE exclusive method for binding an event (eg. Internet Explorer)
window.attachEvent("onload", headerPicker)

else if (document.getElementById) //support older modern browsers
window.onload=headerPicker
