function scroll(element, direction) {

	var scrollValue = direction == 'next' ? -150 : 150;
	var currentPos  = element.getStyle('top').toInt();
	var totalHeight = element.totalHeight;
	var viewHeight  = element.viewHeight;

	if (direction == 'next' && currentPos > (-1 * (totalHeight - viewHeight)) ) {
		element.scrollFx.start('top', currentPos + scrollValue);
	}

	if (direction == 'previous' && currentPos != 0) {
		element.scrollFx.start('top', currentPos + scrollValue);
	}
}

window.addEvent('domready', function() {

	var IE = Browser.Engine.trident;

	// animatie logo languages
	var logo   = $(document.body).getElement('#logo a');

	// get current positions
	if (IE) {
		var currentXPos = logo.getStyle('background-position-x');
	} else {
		var bgPositions = logo.getStyle('background-position').split(' ');
		var currentXPos = bgPositions[0].toInt();
	}
	
	var logoFx = new Fx.Tween(logo,  { duration: 500, transition: Fx.Transitions.Quad.easeIn });

	var languageAnimation = { yPos: 0, xPos: currentXPos };

	var animateLogo = function() {

		if (this.yPos == -800) {
			this.yPos = 0;
			logo.setStyle('background-position', this.xPos + 'px ' + this.yPos + 'px');
		}
		this.yPos-=160;

		logoFx.start('background-position', this.xPos + 'px ' + this.yPos + 'px');
	};
	animateLogo.periodical(4000, languageAnimation);

	// move calendar image to right column
	if ($$('div.calendar')[0]) {
		var firstImage = $$('div.calendar')[0].getElement('img');
		if (firstImage) { firstImage.addClass('right'); }
	}

	// add spans to headers, to add black backgrounds
	var headers = [];
	var h1 = $('main').getElements('h1');
	var h2 = $('main').getElements('h2');

	headers.extend(h1).extend(h2);

	if (headers.length > 0) {

		headers.each(function(header, index) {

			var header_text = header.get('html');
			header.set('html', '');

			var span = new Element('span', {
				'class': 'black',
				'html': header_text
			});

			span.inject(header);
		});
	}

	// add hover and click event to calendar items
	var calendarOverview = $('calendar-overview');

	if (calendarOverview) {

		calendarOverview.footer      = $('calendar-footer');
		calendarOverview.wrapper     = $('wpr-calendar-overview');
		calendarOverview.totalHeight = calendarOverview.getStyle('height').toInt();
		calendarOverview.viewHeight  = 300;
		calendarOverview.scrollFx    = new Fx.Tween(calendarOverview);

		var calendarItems = calendarOverview.getElements('li');

		calendarItems.each(function(calendarItem, index) {

			var link = calendarItem.getElement('h3 a').getProperty('href');

			calendarItem.set({style: 'cursor: pointer;'});

			calendarItem.addEvent('click', function() {
				window.open(link, '_self');
			});
		});

		// add navigation to calendar overview
		if (calendarOverview && calendarOverview.footer && calendarOverview.totalHeight > calendarOverview.viewHeight) {

			calendarOverview.buttonNext = new Element('a', {
				'class': 'btn-next',
				'events': {
					'click': function(){
						scroll(calendarOverview, 'next');
					}
				}
			});
			calendarOverview.buttonNext.inject(calendarOverview.footer);

			calendarOverview.buttonPrevious = new Element('a', {
				'class': 'btn-previous',
				'events': {
					'click': function(){
						scroll(calendarOverview, 'previous');
					}
				}
			});
			calendarOverview.buttonPrevious.inject(calendarOverview.footer);
		}
	}
});
