var kerstgroet = Class.create({

	locatieImg: 	'/img/get/en.jpg',
	locatieSwf: 	'/swf/get/en.swf',
	language:		'nl',				// Taal (bepaalt tekst van sluitknop)
	cookieNaam:		'groetgezien',		// Naam van cookie
	aantalDagen:	500,				// Aantal dagen dat cookie bewaard moet worden
	vanDatum:		null,				// Wordt in initialize() geset
	totDatum:		null,				// Wordt in initialize() geset
	
	initialize: function() {
		// Datum setten vanaf wanneer groet moet worden getoond: 01-12-2009
		this.setVanDatum(2009,12,1);
		// Datum setten tot wanneer groet moet worden getoond: 31-12-2009
		this.setTotDatum(2009,12,31);
	},
	
	/**
	 * Geeft aan of groet qua datum getoond moet worden
	 * 
	 * @return boolean
	 */
	iscorrectDate: function() {
		var huidigeDatum = new Date();
		return (huidigeDatum >= this.vanDatum) && (huidigeDatum <= this.totDatum);
	},
	
	setImgLocatie: function(locatie) {
		return this.locatieImg = locatie;
	},
	
	setSwfLocatie: function(locatie) {
		return this.locatieSwf = locatie;
	},
	
	getSwfLocatie: function() {
		return this.locatieSwf;
	},
	
	setLanguage: function(language) {
		return this.language = language;
	},
	
	setVanDatum: function(jaar,maand,dag) {
		var datum = new Date();
		return this.vanDatum = datum.setFullYear(jaar,maand-1,dag);
	},
	
	setTotDatum: function(jaar,maand,dag) {
		var datum = new Date();
		return this.totDatum = datum.setFullYear(jaar,maand-1,dag);
	},
	
	/**
	 * Geef aantal dagen op dat cookie bewaard moet worden
	 * 
	 * @return this.aantalDagen
	 */
	setAantalDagen: function(dagen) {
		return this.aantalDagen = parseInt(dagen);
	},
	
	/**
	 * Geeft tekst van sluitknop terug op basis van ingestelde taal
	 * 
	 * @return string
	 */
	getSluitTekst: function() {
		switch( this.language ) {
			case 'en':
				return 'Close message';
			default:
				return 'Sluit kerstgroet';
		}
	},
	
	/**
	 * Geeft aan of groet moet worden getoond. Dit gebeurt op basis van ingestelde
	 * van- en tot-datum en of groet al eens is getoond (cookie dus)
	 * 
	 * @return boolean
	 */
	showGroet: function() {
		return this.iscorrectDate() && (readCookie(this.cookieNaam) === null);
	},
	
	/**
	 * Genereert de nodig html en plakt deze aan de goede div die al in de html staat
	 * 
	 * @return void
	 */
	createHtml: function() {
		/*
		<div id="gasunie-kerstgroet">
			<img src="/img/get/en.jpg" alt="Kerstgroet" />
			<a id="gasunie-kerstgroet-sluiten" href="">Sluit kerstgroet</a>
		</div>
		 */
		
		if( this.showGroet() && (wrapper = $('gasunie-kerstgroet-wrapper')) ) {
			var placeHolderElement = new Element('div', {
				'id':		'gasunie-kerstgroet-placeholder'
			});
			
			var imgElement = new Element('img', {
				'alt': 		'Kerstgroet',
				'src':		this.locatieImg
			});
			
			placeHolderElement.insert(imgElement);
			
			var anchorElement = new Element('a', {
				'href':		'',
				'id':		'gasunie-kerstgroet-sluiten'
			})
			.update( this.getSluitTekst() )
			.observe('click' , function(event) {
				this.sluitGroet();
				event.stop();
			}.bind(this));
			
			var kerstgroetElement = new Element('div', {
				'id':		'gasunie-kerstgroet'
			});
			
			kerstgroetElement.insert(placeHolderElement);
			kerstgroetElement.insert(anchorElement);
			wrapper.insert(kerstgroetElement);
		}
	},
	
	/**
	 * Verwijdert de html van de groet en set een cookie
	 * 
	 * @return void
	 */
	sluitGroet: function() {
		if( wrapper = $('gasunie-kerstgroet-wrapper') ) {
			wrapper.remove();
			createCookie( this.cookieNaam, true, this.aantalDagen )
		}
	}

});

//www.quirksmode.org/js/cookies.html
function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

//www.quirksmode.org/js/cookies.html
function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

//www.quirksmode.org/js/cookies.html
function eraseCookie(name) {
	createCookie(name,"",-1);
}