function replaceButton(form) {

	var originalButtons = $ES('input.button', form);

	originalButtons.each(function(originalButton, index) {
		var newButton = new Element('p', { 'class': 'button_replaced' });
		newButton.setText(originalButton.getProperty('value'));
		originalButton.replaceWith(newButton);
		newButton.addEvent('click',  function() { form.submit(); });
	});
}

function toggleRoute(button, map, info) {
	button.toggleClass('active');
	info.toggleClass('info_active');
	map.toggleClass('map_active');
	map.itemSlider.toggle();
}

function setSliderRoutes(info, map) {
	// set event on target element
	map.itemSlider = new Fx.Slide(map, {duration: 500});
	map.itemSlider.hide();

	// add link to toggle map
	var toggle_map = new Element('p', { 'class': 'toggle_map' });
	toggle_map.setText('Routebeschrijving');
	toggle_map.injectInside(info);
	toggle_map.addEvent('click',  function() { toggleRoute(this, map, info); });
}

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

	// replace form buttons
	if ($('form_search_main'))  replaceButton($('form_search_main'));
	if ($('form_search'))       replaceButton($('form_search'));

	// slide location map
	var info = $E('div.info', 'cnr_ctt_main');
	var map  = $E('div.map',  'cnr_ctt_main');
	if (info && map) setSliderRoutes(info, map);
	
	// open links to downloadable files or other sites in a new window
	Array.prototype.f_contains = function(s) {
		for (var i = 0; i < this.length; i++) {
			if (this[i] == s) return true;
		}
		return false;
	}

	// known extensions for downloadable files
	var exts = ['png', 'jpg', 'jpeg', 'gif', 'pdf', 'doc', 'xls', 'ppt', 'zip', 'gz', 'mpg', 'mpeg', 'mov', 'mp4', 'avi', 'wmv', 'mp3', 'wav', 'swf', 'bmp', 'tif', 'tiff', 'svg'];

	var links = document.getElementsByTagName('a');

	for (var i = 0; i < links.length; i++) {
		var link  = links[i];

		// find extension
		var split_slash = link.href.split('/');
		var split_ext   = split_slash[split_slash.length - 1].split('.');
		var ext = split_ext[split_ext.length - 1];

		// check if extension indicates a downloadable file
		if (split_ext.length > 1) {
			if (exts.f_contains(ext)) {
				links[i].target = '_blank';
			}
		}

		// look for links to other sites
		if (link.href.substring(0, 7) == 'http://') {
			if (link.href.substring(7, 7 + window.location.hostname.length) != window.location.hostname) {
				links[i].target = '_blank';
			}
		}
	}

	// known extensions for Shadowbox media files
	var shadowboxMediaFound = false;

	var s_exts = ['jpg', 'jpeg', 'png', 'gif', 'flv'];

	var s_links = document.getElementsByTagName('a');

	for (var j = 0; j < s_links.length; j++) {
		var s_link  = s_links[j];

		// find extension
		var s_split_slash = s_link.href.split('/');
		var s_split_ext   = s_split_slash[s_split_slash.length - 1].split('.');
		var s_ext = s_split_ext[s_split_ext.length - 1];

		// check if extension indicates a Shadowbox media file
		if (s_split_ext.length > 1) {
			if (s_exts.f_contains(s_ext)) {
				s_links[j].rel = 'shadowbox[all]';
				shadowboxMediaFound = true;
			}
		}
	}

	// initialize Shadowbox (if necessary)
	if (shadowboxMediaFound) {
		var options = {
			flvPlayer: '/swf/lib/shadowbox/flvplayer.swf'
		};

		Shadowbox.init(options);
	}
});
