window.addEvent('domready', function() {
	// Disable the navigational action for any anchor elements without href values
	$$('a[href$=#]').addEvent('click', fNoAnchor);

	// Make sure any anchor elements meant for navigating "back", send the user to the previous page
	$$('a.backLink').addEvent('click', fGoBack);

	// In event of browsers which don't support CSS3 (IE), use JavaScript to achieve the functionalities
	if (Browser.Engine.trident) {
		/*$$('ul#mainnav li:last-child').setStyle('background-image', 'none');
		$$('ul#mainnav li:last-child a').setStyle('border-right', '0 none');*/

		// Specifically for IE6
		if (Browser.Engine.version == 4) {
			// Add a hover effect to the LI elements of the "Online network" SlideItMoo instance
			if ($('membersnav')) {
				$$('#membersnav li').addEvent('mouseover', function() { this.addClass('active'); });
				$$('#membersnav li').addEvent('mouseout', function() { this.removeClass('active'); });
			}
		}
	}

	/********** Slideshow code for the top ******************************************/
		var oExtraHandles = $$('#slideshow div.indicators span');
		var oSlideshow = new noobSlide({
			box: $('slides'),
			items: $$('#slides div.slide'),
			size: 584,
			// handles: $$('#slideshow div.buttons span'),
			addButtons: {
				previous: $('prevSlide'),
				next: $('nextSlide')
			},
			onWalk: function(currentItem, currentHandle){
				// Style for handles
				$$(this.handles, oExtraHandles).removeClass('active');
				$$(currentHandle, oExtraHandles[this.currentIndex]).addClass('active');
			}, 
			rewind: true
		});
	/********************************************************************************/

	/********** Actions to take when the social sharing bar is on the page **********/
		if ($('socialTools')) {
			if ($('Form_sendFriend')) {
				// Manually set alt attributes for input fields as SilverStripe doesn't support this
				$('Form_sendFriend_NameRecipient').set('alt', 'naam ontvanger');
				$('Form_sendFriend_EmailRecipient').set('alt', 'e-mail ontvanger');
				$('Form_sendFriend_NameSender').set('alt', 'naam verstuurder');
				$('Form_sendFriend_EmailSender').set('alt', 'e-mail verstuurder');

				// Create the OverText labels for the "Send-a-friend" e-mail form
				var lblNameReceiver = new OverText($('Form_sendFriend_NameRecipient')); lblNameReceiver.reposition();
				var lblEmailReceiver = new OverText($('Form_sendFriend_EmailRecipient')); lblEmailReceiver.reposition();
				var lblNameSender = new OverText($('Form_sendFriend_NameSender')); lblNameSender.reposition();
				var lblEmailSender = new OverText($('Form_sendFriend_EmailSender')); lblEmailSender.reposition();

				// Enable revealing and disappearing of the form by clicking an anchor element
				$('toggleSendFriend').addEvent('click', fToggleSendForm);

				// Attach an event to validate the form before letting it submit
				$('Form_sendFriend').addEvent('submit', fCheckSendForm);
			} else {
				// If the form is not present on the page, change the link's HREF to reload the page
				// and use MooTools Tips to inform the user why the link action has changed
				$('toggleSendFriend').addClass('lpbTips');
				$('toggleSendFriend').set('title', '<strong>herlaad de pagina</strong><br />om deze pagina nogmaals door te sturen moet u eerst de pagina herladen');
				$('toggleSendFriend').addEvent('click', function() { document.location.reload(); });
			}

			// Bring up the print dialog box when the user clicks the print button
			$('printBut').addEvent('click', function() { window.print(); });
		}
	/********************************************************************************/

	// Submission of the user registration form
	if ($('Form_registerForm')) {
		$('Form_registerForm').addEvent('submit', fCheckSendForm);
	}

	// Submission of the newsletter signup form
	if ($('mailchimpSubscribe')) {
		$('mailchimpSubscribe').addEvent('submit', fCheckSendForm);
	}

	// Add a MooTools Tips instance to any elements containing the corresponding class
	var bTipHovered = false;
	var oTips = new Tips('.lpbTips', {
		text: '', 
		fixed: true, 
		offset: {
			'x': 24, 
			'y': 24
		}, 
		onShow: function(oTip, oElem) {
			oTip.fade('in');

			oTip.addEvent('mouseenter', function() { bTipHovered = true; });

			oTip.addEvent('mouseleave', function() {
				bTipHovered = false;
				oTip.fade('out'); 
			});
		}, 
		onHide: function(oTip, oElem) {
			if (bTipHovered) {
				oTip.show();
			} else {
				oTip.fade('out');
			}
		}
	});

	/********** Online network page (geographically) ********************************/
		if ($('membersnav')) {
			var oMembersNav = new noobSlide({
				box: $('membersnav'), 
				items: $$('#membersnav li'), 
				mode: 'vertical', 
				size: 32, 
				addButtons: {
					previous: $('prevMember'), 
					next: $('nextMember')
				}, 
				fxOptions: {
					duration: 250, 
					wait: false
				}, 
				rewind: false
			});

			// If there are less than fourteen members, remove the navigational controls
			if ($$('#membersnav li').length < 14) {
				$$('#membersContainer div.left span.control').addClass('hide');
			}

			// Add the click handling to the LI items
			$$('#membersnav li.member a').addEvent('click', fShowMemberOnMap);
			$$('#membersnav li.member').addEvent('click', fShowMemberOnMap);
		}
	/********************************************************************************/

	// Whenever a reCaptcha field is on the screen, replace its buttons with LPB-style buttons
	if ($('recaptcha_widget_div')) {
		var sImgPath = 'themes/lpb/images/but-captcha-';

		$('recaptcha_reload').set('src', sImgPath + 'refresh.gif');
		$('recaptcha_switch_audio').set('src', sImgPath + 'audio.gif');
		$('recaptcha_switch_img').set('src', sImgPath + 'text.gif');
		$('recaptcha_whatsthis').set('src', sImgPath + 'help.gif');
	}
});


function fToggleSendForm() {
	$('toggleSendFriend').removeEvent('click', fToggleSendForm);
	$$('#Form_sendFriend label').setStyle('display', 'none');
	var oSendForm = $('Form_sendFriend');

	if (oSendForm.getStyle('display') == 'none') {
		oSendForm.setStyle('display', 'block');
		OverText.update();
	} else {
		oSendForm.setStyle('display', 'none');
		OverText.update();
	}

	$('toggleSendFriend').addEvent('click', fToggleSendForm);
	$$('#Form_sendFriend label').setStyle('display', 'inline');
}


function fCheckSendForm() {
	var iErrorCnt = 0;

	// Store a reference to all mandatory fields to iterate through
	var oFieldsToCheck = $$('#' + this.get('id') + ' input.required');

	$each(oFieldsToCheck, function(oField, iIndex) {
		var bValid = true;

		// Check whether or not the field has a value
		if (oField.get('value') == "") { bValid = false; }

		// Do another check for e-mail fields
		if ($$('#' + oField.get('id') + '[name*=Email]')[0]) {
			if (!emailCheck(oField.get('value'))) { bValid = false; }
		}

		if (bValid) {
			oField.removeClass("invalid");
			oField.addClass("valid");
		} else {
			oField.removeClass("valid");
			oField.addClass("invalid");
			iErrorCnt++;
		}
	});

	if (iErrorCnt > 0) {
		// If a feedback element was hidden, display it now
		if ($$('.fbMessage')[0]) { $$('.fbMessage').removeClass('hide'); }

		return false;
	} else {
		// If a feedback element was displayed, hide it now
		if ($$('.fbMessage')[0]) { $$('.fbMessage').addClass('hide'); }
		return true;
	}
}


function fNoAnchor() {
	return false;
}

function fGoBack() {
	history.back();
}