/////////////////////////////////////////// BASIC FUNCTIONS, DON'T EDIT ///////////////////////////////////////////

// Starts loading these functions on loading the page:
window.addEvent('domready', function() {
	// Enables the JS errorconsole when on the internal testing area:
	if (document.location.toString().match('ontwikkelding')) {
		bln_enableErrorConsole = false;
	} else {
		bln_enableErrorConsole = false;
	}
	
	// Define wether to use Firebug as the JS debugger (true) or the custom errorconsole (false):
	if (Browser.Engine.gecko) {
		bln_useFireBugAsErrorConsole = true;
	} else {
		bln_useFireBugAsErrorConsole = false;
	}
	if (bln_useFireBugAsErrorConsole == false) {
		initConsole();
	}
	initLightbox();
	initRemoveLinkLines();
	initExternalLinks();
	initCustomFunctions();

});

window.addEvent('domready', function() {
	tournamentInfoLocation();
	hotelInfoLocation();
	if($('map')) init_map_overlays()
});


function setCookie(id){
	var myCookie = Cookie.write('sportchoice', parseInt(id), {duration: 60*60*24*365, path:'/'});	
}

function initLightbox(width) {
	
	var options = {
//		overlayColor: '#660000',
//		overlayOpacity: 0.8
		displayNav: false,
		initialWidth: 500
	};
	
	 Shadowbox.init(options);
}



// Check for Internet Explorer in general:
var IE = navigator.userAgent.indexOf('MSIE') != -1;
// Check for Internet Explorer for Mac:
var IEMAC = (navigator.userAgent.indexOf('Mac') != -1 && (IE == true));
// Check for browser supporting W3CDOM:
var W3CDOM = (document.createElement && document.getElementsByTagName && !IEMAC);

// JavaScript error console for IE:
if (W3CDOM) {
	function initConsole() {
		if (bln_enableErrorConsole) {
			var el_console = document.createElement('div');
			el_console.id = 'errorConsole';
			el_console.style.background = '#ff9999';
			el_console.style.border = '3px double #ff0000';
			el_console.style.margin = '1em';
			el_console.style.padding = '1em 2em 1.5em';
			el_console.style.clear = 'both';
			var el_errorConsoleTitle = document.createElement('h2');
			el_errorConsoleTitle.innerHTML = 'JavaScript Error Console:';
			el_errorConsoleTitle.style.color = '#ff0000';
			el_errorConsoleTitle.style.fontSize = '1.3em';
			el_errorConsoleTitle.style.margin = '0 0 0.5em';
			el_console.appendChild(el_errorConsoleTitle);
			var el_errorList = document.createElement('ol');
			el_errorList.id = 'errorList';
			el_errorList.style.margin = '0 2em';
			el_console.appendChild(el_errorList);
			document.body.appendChild(el_console);
		}
	}
	function error(message) {
		if (bln_enableErrorConsole && IE == false && bln_useFireBugAsErrorConsole == true) {
			window.console.log(message);
		} else if (bln_enableErrorConsole) {
			var el_newMessage = document.createElement('li');
			el_newMessage.innerHTML = message;
			el_newMessage.style.margin = '0 0 0.25em';
			var el_console = document.getElementById('errorList');
			el_console.appendChild(el_newMessage);
		}
	}
}

// This function is used in order for certain links to open in a new window without the direct target attribute:
function initExternalLinks() { 
	if (!document.getElementsByTagName) return; 
	var arr_anchors = document.getElementsByTagName("a"); 
	for (var i=0; i<arr_anchors.length; i++) { 
		var el_anchor = arr_anchors[i]; 
		if (el_anchor.getAttribute("href") && el_anchor.getAttribute("rel") == "external") {
			el_anchor.target = "_blank";
		}
	}
}

// This function removes the dotted lines around links, but breaks the Tab button on the keyboard: less accessability:
function initRemoveLinkLines() {
	$$('a').addEvent('focus', function(){this.blur()});
}



/////////////////////////////////////////// EDIT CUSTOM JAVASCRIPT BELOW THIS LINE ///////////////////////////////////////////

// Add all your custom function which need to be initialized to this function:
function initCustomFunctions() {
	tournamentInfoTabNav();
	initLanguageSelector();
	previousWinnersTabNav();
	reactFormFunctionality();
	brochureFormFunctionality();
	participationFormFunctionality();
	newsletterFormFunctionality();	
	tournamentsFilterFormFunctionality();
	competitorsTooltips();
	tournamentsFilterBtnToggler();
	//agentSelection();	
	locationPulldown();
	offerInterestRadiobuttons(true);
	offerFavoriteCheckboxes();
	offerCountryPulldown(true);	
	offerTournamentPulldown(true);
	filterCheckboxBehavior();
	favLinks();
	favList();
	termsTooltip();
	langDiv();
	initSearchBox();
	//splashSelection();
	toggleSplash();
	downloadMouse();	
	helpTooltips();
//	imageCarousel();
	carrouselNav();
}

// Shows the selected tournament info panel:
function tournamentInfoTabNav() {
	if (!$('tournament_info_tab_nav')) return;
	
	var el_tourInfoNav = $('tournament_info_tab_nav');
	var arr_tourInfoNavLinks = el_tourInfoNav.getElements('a');
	var arr_tourInfoPanels = $$('.tournament_info_panel');
	
	arr_tourInfoNavLinks.each(function(el_tourInfoNavLink) {
		el_tourInfoNavLink.addEvent('click', function() {
			arr_tourInfoNavLinks.each(function(el_tourInfoNavLink2) {
				el_tourInfoNavLink2.removeClass('active');
			});
			el_tourInfoNavLink.addClass('active');
			
			arr_tourInfoPanels.each(function(el_tourInfoPanel) {
				el_tourInfoPanel.addClass('hidden');
			});
			for (var i=0; i<arr_tourInfoNavLinks.length; i++) {
				if (arr_tourInfoNavLinks[i] == el_tourInfoNavLink) {
					arr_tourInfoPanels[i].removeClass('hidden');
				}
			}
		});
	});
}

// Shows the selected tournament info panel:
function tournamentInfoLocation() {
	if (!$('tournament_info_map')) return;

	if (GBrowserIsCompatible()) { 		
		var el_tourInfoMap = $('tournament_info_map');
		var str_tourInfoAddress = el_tourInfoMap.innerHTML;
			
		gmap = new GMap2(document.getElementById("tournament_info_map"));
		var geocoder = new GClientGeocoder();
		geocoder.getLocations(str_tourInfoAddress, tournamentInfoLoadGoogleMaps);
	}
}

// Shows the selected hotel info panel:
function hotelInfoLocation() {	
	if (!$('hotel_info_map')) return;

	if (GBrowserIsCompatible()) { 
		var el_tourInfoMap = $('hotel_info_map');
		var str_tourInfoAddress = el_tourInfoMap.innerHTML;

		gmap = new GMap2(document.getElementById("hotel_info_map"));
		var geocoder = new GClientGeocoder();
		
		var locations = str_tourInfoAddress.split("|");
		
		if(locations.length == 1) {
			
			geocoder.getLocations(locations[0], hotelInfoLoadGoogleMaps);
			
		} else if(locations.length == 2) {
			
			geocoder.getLocations(locations[1], esrInfoLoadGoogleMaps);
			geocoder.getLocations(locations[0], hotelInfoLoadGoogleMaps);
			
			
		}
		
	}
}

// Loads Google Maps from an address:
function tournamentInfoLoadGoogleMaps(response) {
	var place = response.Placemark[0];
	var point = new GLatLng(place.Point.coordinates[1],place.Point.coordinates[0]);
	var marker = new GMarker(point);
	gmap.setCenter(point, 9, G_NORMAL_MAP);
	gmap.addControl(new GSmallMapControl());
	gmap.addOverlay(marker);
//	marker.openInfoWindowHtml(place.address);
}

function hotelInfoLoadGoogleMaps(response) {
	var place = response.Placemark[0];
	var point = new GLatLng(place.Point.coordinates[1],place.Point.coordinates[0]);
	
	var func_icon = new GIcon();
  func_icon.image = "http://www.euro-sportring.org/fileadmin/templates/img/house.png";
  func_icon.iconSize = new GSize(20, 20);
  func_icon.shadowSize = new GSize(30, 30);
  func_icon.iconAnchor = new GPoint(20, 20);
  func_icon.infoWindowAnchor = new GPoint(5, 1);
  var func_markerOpts = {};
  func_markerOpts.icon = func_icon;

	
	var marker = new GMarker(point, func_markerOpts);
	
	gmap.setCenter(point, 6, G_NORMAL_MAP);
	gmap.addControl(new GSmallMapControl());
	gmap.addOverlay(marker);
}

function esrInfoLoadGoogleMaps(response) {
	var place = response.Placemark[0];
	var point = new GLatLng(place.Point.coordinates[1],place.Point.coordinates[0]);
	
	var func_icon = new GIcon();
  func_icon.image = "http://www.euro-sportring.org/fileadmin/templates/img/esr.png";
  func_icon.iconSize = new GSize(20, 20);
  func_icon.shadowSize = new GSize(30, 30);
  func_icon.iconAnchor = new GPoint(20, 20);
  func_icon.infoWindowAnchor = new GPoint(5, 1);
  var func_markerOpts = {};
  func_markerOpts.icon = func_icon;

	
	var marker = new GMarker(point, func_markerOpts);
	
	gmap.setCenter(point, 10, G_NORMAL_MAP);
	gmap.addControl(new GSmallMapControl());
	gmap.addOverlay(marker);
}

// Shows the selected list with previous winners:
function previousWinnersTabNav() {
	if (!$('previous_winners')) return;
	
	var el_prevWinners = $('previous_winners');
	var arr_prevWinnersListitems = el_prevWinners.getElements('li');
	var arr_prevWinnersLinks = el_prevWinners.getElements('a');
	
	arr_prevWinnersLinks.each(function(el_prevWinnersLink) {
		el_prevWinnersLink.addEvent('click', function() {
			for (var i=0; i<arr_prevWinnersListitems.length; i++) {
				arr_prevWinnersListitems[i].removeClass('active');
				if (arr_prevWinnersListitems[i] == el_prevWinnersLink.getParent('li')) {
					arr_prevWinnersListitems[i].addClass('active');
				}
			}
		});
	});
	
	// Add odd/even classes:
	var arr_prevWinnersLists = el_prevWinners.getElements('ul');
	
	arr_prevWinnersLists.each(function(el_prevWinnersList){
		el_prevWinnersList.getElements('li:odd').addClass('even');
	});
}

// Adds some functionality to the react form:
function reactFormFunctionality() {
	if (!$('react_form')) return;

	var el_reactForm = $('react_form');

	// Submits the form when the custom anchor submit button is being clicked:
	var submitBtn = el_reactForm.getElement('a.button');
	submitBtn.addEvent('click', function(){
		document.react_form.submit();
	});
}
	
// Adds some functionality to the brochure form:
function brochureFormFunctionality() {
	if (!$('brochure_form')) return;

	var el_brochForm = $('brochure_form');

	// Submits the form when the custom anchor submit button is being clicked:
	var submitBtn = el_brochForm.getElement('a.button');
	submitBtn.addEvent('click', function(){
		document.brochure_form.submit();
	});
}

// Adds some functionality to the brochure form:
function newsletterFormFunctionality() {
	if (!$('newsletter_form')) return;

	var el_newsletterForm = $('newsletter_form');

	// Submits the form when the custom anchor submit button is being clicked:
	var submitBtn = el_newsletterForm.getElement('a.button');
	submitBtn.addEvent('click', function(){
		if(checkFormEmail()) {
			document.newsletter_form.submit();
		}
	});
}
	
// Adds some functionality to the participation form:
function participationFormFunctionality() {
	if (!$('participation_form')) return;
	
	var el_partForm = $('participation_form');
	var arr_partFormInputs = el_partForm.getElements('input');
	var el_tourAgeCatAll = $('tournament_age_category_all');
	
	arr_partFormInputs.each(function(el_partFormInput){
		// Selects the radio button belonging to the favourites, when selecting one of the favourite checkboxes:
		if (el_partFormInput.type == 'checkbox' && el_partFormInput.id.test('tournament_interest_favourite_')) {
			el_partFormInput.addEvent('focus', function(){
				$('tournament_interest_favourites').checked = 'checked';
			});
		};
		
		// Selects all age category checkboxes when the "All" checkbox is being clicked:
		el_tourAgeCatAll.addEvent('click', function(){
			if (el_partFormInput.type == 'checkbox' && el_partFormInput.id.test('tournament_age_category_')) {
				el_partFormInput.checked = 'checked';
			};
		});
	});
		
	// Submits the form when the custom anchor submit button is being clicked:
	var submitBtn = el_partForm.getElement('a.button');
	submitBtn.addEvent('click', function(){
		document.participation_form.submit();
	});
}

// Adds some functionality to the tournament filter form:
function tournamentsFilterFormFunctionality() {
	if (!$('tournaments_filter_form')) return;

	var el_tourForm = $('tournaments_filter_form');

	// Submits the form when the custom anchor submit button is being clicked:
	var submitBtn = el_tourForm.getElement('a.button');
	submitBtn.addEvent('click', function(){
		document.tournaments_filter_form.submit();
	});
}
	
// Adds tooltips to certain links:
function competitorsTooltips() {
	return false;
	var arr_compLinks = $$('.competitorslink');
	if (arr_compLinks.length == 0) return;
	
	for(var i=0; i<arr_compLinks.length; i++) {

		var tipTitle = arr_compLinks[i].title.split('::');
		
		var obj_compTooltips = new Tips(arr_compLinks[i], {
			className: 'competitors_tooltip',
			offsets: {'x': -55, 'y': -90},
			fixed: true
		});	
		
		arr_compLinks[i].store('tip:title', tipTitle[0]);
		arr_compLinks[i].store('tip:text', tipTitle[1]);
			
		
	}

}

function helpTooltips() {
	var arr_helpLinks = $$('.help');
	if (arr_helpLinks.length == 0) return;
	
	var tipTitle = $('helpTip').title.split('::');

	var obj_helpTooltips = new Tips(arr_helpLinks, {
		className: 'help_tooltip',
		offsets: {'x': -55, 'y': -90},
		fixed: true
	});
		
	$('helpTip').store('tip:title', tipTitle[0]);
	$('helpTip').store('tip:text', tipTitle[1]);
	
}

// Enables the filterbutton to toggle the opening and closing of the the filterform:
function tournamentsFilterBtnToggler() {
	if (!$('tournaments_filter_btn')) return;
	
	var el_tourFilter = $('tournaments_filter');
	var el_tourFilterBtn = $('tournaments_filter_btn');
	var el_tourFilterCloseBtn = $('tournaments_filter_close_btn');
	var str_tourFilterBtnTitleDouble = el_tourFilterBtn.title;
	var arr_tourFilterBtnTitle = str_tourFilterBtnTitleDouble.split('|');
	var str_tourFilterBtnTitleOpen = arr_tourFilterBtnTitle[0];
	var str_tourFilterBtnTitleClose = arr_tourFilterBtnTitle[1];
	
	el_tourFilterBtn.title = str_tourFilterBtnTitleOpen;

	el_tourFilterBtn.addEvent('click', function(){
		el_tourFilter.toggleClass('opened');
		if (el_tourFilter.className == 'opened') {
			el_tourFilterBtn.title = str_tourFilterBtnTitleClose;
			$$('div.map_tournament').removeClass('active');
		} else {
			el_tourFilterBtn.title = str_tourFilterBtnTitleOpen;
		}
	});
	
	el_tourFilterCloseBtn.addEvent('click', function(){
		el_tourFilter.toggleClass('opened');
	});
}

// Splashpage dropdown functionality
function toggleSplash(el_select) {
	var el_selectList = $(el_select);
	
	if (el_selectList) 
	{
		if (el_selectList.getStyle('display') == 'none' ) {
			el_selectList.setStyle('display', 'block');
		} else {
			el_selectList.setStyle('display', 'none');
		}		
	}
	
	
}

//togglesplash input functie
function setSelected(el_element) {
	var text = el_element.get('html');
	var parent = el_element.getParent('div.selectbox');
	var selector = el_element.getParent('div.selector');

	parent.setStyle('display', 'none');
	selector.getElement('p').set('html', text);
}


//Set hidden field on splash page
function setHiddenField(el_element, str_field_id) {
	var el_hiddenField = $(str_field_id);
	el_hiddenField.value = el_element.id;
	
//	alert(el_hiddenField);
//	alert(el_element.id);
}


// Zoekveld wissen bij onfocus en weer terugzetten

function inputFocus(argElement) {
	
	var inputElement = $(argElement);
	
	inputElement.setStyles({
		'color': '#000000'
	});
	
	if (inputElement.value == inputElement.defaultValue) {
		inputElement.value = '';	
	}
}

function inputReset(argElement) {
	
	var inputElement = $(argElement);
	
	if (inputElement.value == '') {
	
		inputElement.setStyles({
			'color': '#000000'
		});

		inputElement.value = inputElement.defaultValue;
	}
}

// mouseover downloads 
function downloadMouse() {
	var downloadM = $$('.downloads_holder');
	downloadM.addEvents({
		'mouseover': function(){
			downloadM.setStyle('background-color', '#fbf9f9')
		},
		'mouseleave': function(){
			downloadM.setStyle('background-color', '#f2eceb')
		}
	});
}


// Carrousel navigation and loading of functions
function carrouselNav() {
	if(!$('carousel_tab_nav')) return;
	
	var el_carNav = $('carousel_tab_nav');
	var arr_carNavBtns = $('carousel_tab_nav').getElements('a');
	var arr_carScrollHolders = $$('.carousel_scrollholder');
	var arr_carConts = $$('.carousel_container');
	
	imageCarousel(arr_carConts[0], arr_carScrollHolders[0]);

	arr_carNavBtns.each(function(el_carNavBtn, n){
		el_carNavBtn.addEvent('click',function(){
			arr_carNavBtns.each(function(el_thisCarNavBtn){
				el_thisCarNavBtn.removeClass('active');
			});
			arr_carScrollHolders.each(function(el_thisCarScrollHolder){
				el_thisCarScrollHolder.addClass('hidden');
			});
			arr_carConts.each(function(el_thisCarConts){
				el_thisCarConts.addClass('hidden');
			});
			
			if (el_carNavBtn == arr_carNavBtns[n]) {
				el_carNavBtn.addClass('active');
				arr_carScrollHolders[n].removeClass('hidden');
				arr_carConts[n].removeClass('hidden');
			}
			
			if (el_carNavBtn == arr_carNavBtns[0]) {
				imageCarousel(arr_carConts[0], arr_carScrollHolders[0]);
			} else if (el_carNavBtn == arr_carNavBtns[1]) {
				imageCarousel(arr_carConts[1], arr_carScrollHolders[1]);
			}
		});
	});
}


// Function for the Image Carousel on the homepage
function imageCarousel(thisCarHolder, thisCarScrollHolder) {

	if(!thisCarHolder) return false;
	
	var arr_carImages = thisCarHolder.getElements('img');

	arr_carImages.each(function(el) { 
		el.className = 'car_thumb';
	});
	
	var elPrevBtn = thisCarScrollHolder.getElement('.prev');
	var elNextBtn = thisCarScrollHolder.getElement('.next');

	var int_carPage = 0;
	var arr_carPages = new Array;
		
	for (var i=0; i<arr_carImages.length; i=i+5) {
		arr_carPages = arr_carPages.include(int_carPage);
		int_carPage = int_carPage + 1;
	}
	
	if (arr_carImages.length > 5) {
		var nS2 = new noobSlide({
			box: thisCarHolder,
			items: arr_carPages,
			interval: 1000,
			autoPlay: false,
			fxOptions: {
				duration: 500,
				transition: Fx.Transitions.Quart.easeOut,
				wait: true
			},
			addButtons: {
				previous: elPrevBtn,
				next: elNextBtn
			}
		});
	} else {
		elPrevBtn.setStyle('display','none');
		elNextBtn.setStyle('display','none');
	}
	
}



/////////////////////////////////////////// DEVELOPMENT FUNCTIONS ///////////////////////////////////////////

// AJAX call:
function ajaxCall(actie){
	var test = location.href.split('?');
	
	if(test.length<=1){
		var url =  location.href+'?type=105';
	}else{
		var url =  location.href+'&type=105';
	}	
	
	var myRequest = new Request(
	{
			method: 'post', 
			url: url,
			onSuccess: function(txt) {
			
			}
		}).send('actie='+actie+'');
} 

function locationPulldown() {

	if (!$('location_pulldown')) return;
		
	var test = location.href.split('?');
	var url  = test.length<=1 ? location.href+'?type=108' : location.href+'&type=108';	
	
	$('location_pulldown').addEvent('change', function() {

	var myRequest = new Request({
			method: 'post', 
			url: url,
			onSuccess: function(html) {
				
				if(html) {
					
					// in html zit de nieuwe alsosee blok voor het linker kolom
					$('contact').innerHTML = html;					
					
					// indien men zich op de contactpagina bevindt, hele pagina herladen
					//if($('contactagents')) {
						window.location.reload()
					//}				
					
				}
				
			}
		}).send('action=changeLocation&location='+this.value);
			
	});	
	
}

function offerInterestRadiobuttons(loaded) {	
	if (!$('tournamentinterest')) return;
	
	var fields = $('tournamentinterest').getElements('input');
	
	fields.each(function(field) {
		
		if(field.type=='radio') {
			
			switch(field.id) {
				case 'tournament_interest_specific':
					if(field.checked==false) {
						// reset tournament_country en tournament_tournament
						resetField('tournament_country','select', 'close');							
						resetField('tournament_tournament','select', 'close');
						offerCountryPulldown(false);
						offerTournamentPulldown(false);
						resetField('tournament_country','select', 'close');				
					} else {
						if(!loaded) {
							resetField('tournament_country','select', 'open');
							resetField('tournament_tournament','select', 'open');
						}
					}
					break;
				case 'tournament_interest_favourites':
					if(field.checked==false) {
						// reset favorite_checkboxes
						resetField('favorite_checkboxes','checkboxfield', 'close');						
					} else {
						resetField('favorite_checkboxes','checkboxfield', 'open');	
					}
					break;
				case 'tournament_interest_period':
					if(field.checked==false) {
						// reset tournament_period
						resetField('tournament_period','select', 'close');					
					} else {
						if(!loaded) {
							resetField('tournament_period','select', 'open');
						}
					}
					break;	
			}
						
		}
		
	});
	
}

function resetField(id, type, status) {
	
	var field = $(id);
	
	switch(type) {
		case 'checkboxfield':
			var Soptions = field.getElements('input');
			Soptions.each(function(Soption) {
				Soption.checked  = status=='close' ? false : Soption.checked;
				Soption.disabled = status=='close' ? true : false;
			});
			break;
		case 'select':
			var Soptions = field.getElements('option');
			
			Soptions.each(function(Soption) {
				
				Soption.selected = false;				
				
			});
			
			field.value = status=='close' ? '': field.value;
			field.disabled = status=='close' ? true: false;
			break;
	}
	
	
}

function offerFavoriteCheckboxes() {
	if (!$('favorite_checkboxes')) return;
	
	var checkboxes = $('favorite_checkboxes').getElements('input');
	var totSel = 0;
	
	checkboxes.each(function(checkboxitem) {
		
		// tel geselecteerde checkboxes
		if(checkboxitem.checked) totSel++;
		
		// geef ze allemaal een onclick
		checkboxitem.onclick = function() {
			offerFavoriteCheckboxes();
		}
		
	});
	
	// vanaf 3 items de rest disablen
	checkboxes.each(function(checkboxitem) {
			
		if($('tournament_interest_favourites').checked==false || totSel>=3) {
			if(checkboxitem.checked==false) checkboxitem.disabled = true;
		} else {
			if(checkboxitem.checked==false) checkboxitem.disabled = false;
		}
	
	});	
	
}

function offerCountryPulldown(loaded) {
	if (!$('tournament_country') && !$('tournament_tournament')) return;
	
	var countryPulldown = $('tournament_country');
	var test = location.href.split('?');
	var url  = test.length<=1 ? location.href+'?type=105' : location.href+'&type=105';
	var html = '';
	
	if(!loaded) {

		var myRequest = new Request({
			method: 'post', 
			url: url,
			onSuccess: function(txt) {
				
				var fieldname 		= $('tournament_tournament').name;
				var fieldid   		= $('tournament_tournament').id;
				var fieldisabled 	= $('tournament_tournament').disabled;
				
				html  = '<select id="'+fieldid+'" name="'+fieldname+'" '+(fieldisabled ? 'disabled' : '')+'>';
				html += txt;
				html += '</select>';
				
				$('tournament_tournamentdiv').innerHTML = html;
				
			}
		}).send('action=getTournamentOptions&countryId=');
		
	}
	
	countryPulldown.addEvent('change', function() {
		
		var myRequest = new Request({
			method: 'post', 
			url: url,
			onSuccess: function(txt) {
				
				var fieldname = $('tournament_tournament').name;
				var fieldid   = $('tournament_tournament').id;
				
				html  = '<select id="'+fieldid+'" name="'+fieldname+'">';
				html += txt;
				html += '</select>';
				
				$('tournament_tournamentdiv').innerHTML = html;
				
				offerTournamentPulldown(true);
				
			}
		}).send('action=getTournamentOptions&countryId='+this.value);
		
	});
	
}

function offerTournamentPulldown(loaded) {

	if (!$('tournament_country') && !$('tournament_tournament') && !$('tournament_agecategory')) return;
	
	var tournamentPulldown = $('tournament_tournament');
	var test = location.href.split('?');
	var url  = test.length<=1 ? location.href+'?type=105' : location.href+'&type=105';
	var html = '';

	if(!loaded) {

		var myRequest = new Request({
			method: 'post', 
			url: url,
			onSuccess: function(txt) {
				
				$('tournament_agecategory').innerHTML = txt;
				
			}
		}).send('action=getCatgories&tournamentId=0');
		
	}

	$('tournament_tournament').addEvent('change', function() {
				
		var myRequest = new Request({
			method: 'post', 
			url: url,
			onSuccess: function(txt) {
								
				$('tournament_agecategory').innerHTML = txt;
				
			}
		}).send('action=getCatgories&tournamentId='+this.value);
		
	});	
	
}

function addAgentToFavourites(id) {
		
	var test = location.href.split('?');
	var url  = test.length<=1 ? location.href+'?type=107' : location.href+'&type=107';
	
	url = url.replace(/&type=106/, '');
	
	var myRequest = new Request({
			method: 'post', 
			url: url,
			onSuccess: function(html) {
									
				parent.location.reload();
				
			}
		}).send('action=addAgentToFavourites&agentId='+id);
	
}




// Takes care of 'all' checkbox behavior in selection filters
function filterCheckboxBehavior() {
	if(!$('tournaments_filter_form')) return;

	$$('#tournaments_filter_form fieldset').each(function(item, index) {
		var rest = item.getElements('input').erase(item.getElement('input')); // all checkboxes in the fieldset, except the first ('all')
		var groep = rest;
		
		if(item.getElement('input')) {
			item.getElement('input').setProperty('disabled',  'disabled');
		}
		
		rest.each(function(item2, index2, groep) {
			// uncheck and enable the 'all' option if any of the group checkboxes are checked
			item2.addEvent('click', function() {
				if (groep.some(function(item3) { return item3.getProperty('checked') })) {
					item.getElement('input').removeProperties('disabled', 'checked');
				} else {
				// if no checkboxes remain checked, check and disable the 'all' option
					item.getElement('input').setProperties({
						disabled: 'disabled',
						checked: 'checked'
					});
				}
			});
		});
		
		if(item.getElement('input')) {
			item.getElement('input').addEvent('click', function() {
				if (this.getProperty('checked')) {
					// if 'all' is checked, uncheck all checkboxes and check&disable the 'all' option again
					groep.each(function(item2) {
						item2.removeProperty('checked');
					});
					this.setProperty('disabled', 'disabled');
				}
			});
		}
	});
}

function favLinks() {
	
	$(document.body).getElements('a.favlink').addEvents({
    'click': function(){    	
    	addTournamentToFavourites(this.id.replace(/fav_/,''));    		    
    }
	});
	
}

function favList() {
	if(!$('fav_list')) return false;
	
	$('fav_list').getElements('span.delete').addEvents({
    'click': function(){    	
    	deleteFavourite(this.id.replace(/delete_/,'')); 		    
    }
	});
	
}

function addTournamentToFavourites(id) {
		
	var test = location.href.split('?');
	var url  = test.length<=1 ? location.href+'?type=105' : location.href+'&type=105';
	
	var myRequest = new Request({
			method: 'post', 
			url: url,
			onSuccess: function(html) {
				
				$('fav_list').innerHTML = html;
				favList();			
				
			}
		}).send('action=addTournamentToFavourites&tournamentId='+id);
	
}


function deleteFavourite(id) {
	
	var test = location.href.split('?');
	var url  = test.length<=1 ? location.href+'?type=109' : location.href+'&type=109';

	var myRequest = new Request({
			method: 'post', 
			url: url,
			onSuccess: function(html) {
									
				$('fav_list').innerHTML = html;
				favList();
				
			}
		}).send('action=deleteFavourite&favouriteId='+id);
	

}

// Displays the Tooltips on rollover
function termsTooltip() {

	var termLinks = new Array;
	termLinks = $$('a.terms');
	termLinks.each(function(item){
		item.addEvents( {
			'mouseover': function(){
				item.getParent().getElement('div.competitors_tooltip').setStyle('display', 'block')
			},
			 'mouseout': function(){
			 	item.getParent().getElement('div.competitors_tooltip').setStyle('display', 'none')
			 }
		})
	});
	
	var termtips = new Array;
	termtips = $$('div.competitors_tooltip');
	termtips.each(function(item){
		item.addEvents( {
			'mouseover': function(){
				item.setStyle('display', 'block')
			},
			 'mouseout': function(){
			 	item.setStyle('display', 'none')
			 }
		})
	});
}

function checkFormEmail() {
	
	errorMessage = '';
	errorFound = false;
	
	if (document.newsletter_form.email.value == '') {
		errorMessage = errorMessage + '- Geen e-mailadres ingevuld.\n';
		errorFound = true;
	} else  {
		emailAddress = document.newsletter_form.email.value;
		if (emailAddress.search(/^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?/i) == -1)
		{
			errorMessage = errorMessage + '- Ongeldig e-mailadres ingevuld.\n';
			errorFound = true;
		}
	}

		
	if (document.newsletter_form.aNaam.value == '') 
	{
		errorMessage = errorMessage + '- Geen achternaam ingevuld.\n';
		errorFound = true;
	} 

	if (!(document.newsletter_form.geslacht[0].checked || document.newsletter_form.geslacht[1].checked)) 
	{
		errorMessage = errorMessage + '- Geen geslacht gekozen.\n';
		errorFound = true;
	
	}
	
	if (errorFound) 
	{
		alert(errorMessage);
		return false;
	} else {
		return true;
	}

	
}

// Displays the Language DIV

function langDiv(){
	var langDisplay = new Array;
	langDisplay = $$('div.langholder'); // nog aanpassen naar de a link holder
	langDisplay.each(function(item){
		item.addEvents({
			'click': function(){
				item.getParent().getElement('div.languageDisplay').setStyle('display', 'block')
			}
		})
	});
	
	var langDisplay2 = new Array;
	langDisplay2 = $$('div.languageDisplay'); // nog aanpassen naar de a link holder
	langDisplay2.each(function(item){
		item.addEvents({
			'mouseleave': function(){
				item.getParent().getElement('div.languageDisplay').setStyle('display', 'none')
			}
		})
	});
  
}

function initSearchBox() {
	if(!$('tournaments_filter_search')) return false;
	
	$('tournaments_filter_search').addEvents({
		
		'click': function(){
			
			if(this.value=='Search by name' || this.value=='Zoeken op naam' || this.value=='Rechercher sur le nom' || this.value=='Suchen auf Name' || this.value=='Cerca per nome') {
				this.value = '';
			}
			
		}		
		
	});	
}

function initLanguageSelector() {	
	
	if(!$('locationSelector')) return false;
	
	$('locationSelector').addEvents({
		
		'change': function(){

			window.location = this.value;
			
		}		
		
	});	
	
}


function init_map_overlays() {
	var tournaments = $$('div#map div.map_tournament');
	tournaments.each(function(item) {
		item.addEvent('mouseenter', function() {
			tournaments.removeClass('active');
			item.addClass('active');
		});
		item.getElement('button.close').addEvent('click', function() {
			tournaments.removeClass('active');
		});
		if(item.getStyle('left').toInt() < 400) item.getElement('div.overlay').addClass('leftoverlay');
	});
	
}
