// ==================================================================
// This function toggles the cycling route option.
// ==================================================================

function toggleCyclingRouteOption (routeType, active) {	
	// reset all cycling rout options and descriptions
	if (routeType != 'individualRoute') {
		document.getElementById('preferGreenTracks').value = '0';
		document.getElementById('preferAsphaltTracks').value = '0';
		document.getElementById('usePseudoRouting').value = '0';
		document.getElementById('useElevationData').value = '0';
		if (document.getElementById('cyclingSpeedDescription'))
			document.getElementById('cyclingSpeedDescription').style.display = 'block';
	}
	// switch off all description texts
	if (document.getElementById('advancedRouteDescriptionTH')) {
		document.getElementById('leisureRouteDescriptionTH').style.display = 'none';
		document.getElementById('leisureRouteDescription').style.display = 'none';
		document.getElementById('advancedRouteDescriptionTH').style.display = 'none';
		document.getElementById('advancedRouteDescription').style.display = 'none';
		document.getElementById('saveRouteDescriptionTH').style.display = 'none';
		document.getElementById('saveRouteDescription').style.display = 'none';
		document.getElementById('myRouteDescriptionTH').style.display = 'none';
		document.getElementById('myRouteDescription').style.display = 'none';	
	}
	// activate selected route type an switch on corresponding description on the left hand side
	if (active) {
		if (routeType == 'leisureRoute') {
			document.getElementById('preferGreenTracks').value = '1';
			document.getElementById('useElevationData').value = '1';
			document.getElementById('usePseudoRouting').value = '1';
			document.getElementById('speedFactorBicycle').value = '100';
			if (document.getElementById('leisureRouteDescriptionTH') && document.getElementById('leisureRouteDescription')) {
				document.getElementById('leisureRouteDescriptionTH').style.display = 'block';
				document.getElementById('leisureRouteDescription').style.display = 'block';
				document.getElementById('cyclingSpeedSlow').style.display = 'none';
				document.getElementById('cyclingSpeedNormal').style.display = 'block';
				document.getElementById('cyclingSpeedFast').style.display = 'none';
			}
			document.forms[0].itdLPxx_individualRoute.value = '0';
		}
		else if (routeType == 'advancedRoute') {
			document.getElementById('preferAsphaltTracks').value = '1';
			document.getElementById('speedFactorBicycle').value = '133';
			if (document.getElementById('advancedRouteDescriptionTH') && document.getElementById('advancedRouteDescription')) {
				document.getElementById('advancedRouteDescriptionTH').style.display = 'block';
				document.getElementById('advancedRouteDescription').style.display = 'block';
				document.getElementById('cyclingSpeedSlow').style.display = 'none';
				document.getElementById('cyclingSpeedNormal').style.display = 'none';
				document.getElementById('cyclingSpeedFast').style.display = 'block';
			}
			document.forms[0].itdLPxx_individualRoute.value = '0';
		}
		else if (routeType == 'saveRoute') {
			document.getElementById('usePseudoRouting').value = '1';
			document.getElementById('speedFactorBicycle').value = '100';
			if (document.getElementById('saveRouteDescriptionTH') && document.getElementById('saveRouteDescription')) {
				document.getElementById('saveRouteDescriptionTH').style.display = 'block';
				document.getElementById('saveRouteDescription').style.display = 'block';
				document.getElementById('cyclingSpeedSlow').style.display = 'none';
				document.getElementById('cyclingSpeedNormal').style.display = 'block';
				document.getElementById('cyclingSpeedFast').style.display = 'none';
			}
			document.forms[0].itdLPxx_individualRoute.value = '0';
		}
		else if (routeType == 'individualRoute') {
			if (document.getElementById('myRouteDescriptionTH') && document.getElementById('myRouteDescription')) {
				document.getElementById('myRouteDescriptionTH').style.display = 'block';
				document.getElementById('myRouteDescription').style.display = 'block';
				document.getElementById('cyclingSpeedSlow').style.display = 'none';
				document.getElementById('cyclingSpeedNormal').style.display = 'none';
				document.getElementById('cyclingSpeedFast').style.display = 'none';	
				document.getElementById('cyclingSpeedDescription').style.display = 'none';	
			}
			document.forms[0].itdLPxx_individualRoute.value = '1';
		}
	}
}


// ==================================================================
// This function toggles the cycling mode options links.
// ==================================================================

function toggleCyclingModeOption (cyclingMode, active) {
	// display options link
	if (active && (cyclingMode == 'takeBikeAlong' || cyclingMode == 'bikeAndRide')) {
		document.getElementById('cyclingOptionsLink').style.display = 'block';
		// display/hide additional otpions for bike & ride
		if (cyclingMode == 'bikeAndRide') {
			toggleBikeAndRideOptions(true);
			document.forms[0].execInst.value= 'verifyOnly';
		}
		else 
			toggleBikeAndRideOptions(false);
	}
	// hide options links
	else {
		document.getElementById('cyclingOptionsLink').style.display = 'none';
	}		
}


// ==================================================================
// This function displays/hides the additional options for bike & ride.
// ==================================================================

function toggleBikeAndRideOptions (state) {
	if (document.getElementById('cyclingRouteTypeSelection')) {
		if (state)
			document.getElementById('cyclingRouteTypeSelection').style.display = 'block';
		else 
			document.getElementById('cyclingRouteTypeSelection').style.display = 'none';
	}
	if (document.getElementById('cyclingLineRestriction')) {
		if (state)
			document.getElementById('cyclingLineRestriction').style.display = 'block';
		else 
			document.getElementById('cyclingLineRestriction').style.display = 'none';
	}
	if (document.getElementById('cyclingMaxInterchanges')) {
		if (state)
			document.getElementById('cyclingMaxInterchanges').style.display = 'block';
		else 
			document.getElementById('cyclingMaxInterchanges').style.display = 'none';
	}
	if (document.getElementById('cyclingSelfTransportOptions')) {
		if (state)
			document.getElementById('cyclingSelfTransportOptions').style.display = 'block';
		else 
			document.getElementById('cyclingSelfTransportOptions').style.display = 'none';
	}
	if (document.getElementById('cyclingMobilityRestrictions')) {
		if (state)
			document.getElementById('cyclingMobilityRestrictions').style.display = 'block';
		else 
			document.getElementById('cyclingMobilityRestrictions').style.display = 'none';
	}
	if (document.getElementById('cyclingTramExclusion')) {
		if (state)
			document.getElementById('cyclingTramExclusion').style.display = 'block';
		else 
			document.getElementById('cyclingTramExclusion').style.display = 'none';
	}
	if (document.getElementById('cyclingAirportShuttleExclusion')) {
		if (state)
			document.getElementById('cyclingAirportShuttleExclusion').style.display = 'block';
		else 
			document.getElementById('cyclingAirportShuttleExclusion').style.display = 'none';
	}
	if (document.getElementById('cyclingRegionalBusExclusion')) {
		if (state)
			document.getElementById('cyclingRegionalBusExclusion').style.display = 'block';
		else 
			document.getElementById('cyclingRegionalBusExclusion').style.display = 'none';
	}
	if (document.getElementById('cyclingAstExclusion')) {
		if (state)
			document.getElementById('cyclingAstExclusion').style.display = 'block';
		else 
			document.getElementById('cyclingAstExclusion').style.display = 'none';
	}
	if (document.getElementById('advancedOptions_cycle_2')) {
		if (state)
			document.getElementById('advancedOptions_cycle_2').className = 'advancedOptions';
		else 
			document.getElementById('advancedOptions_cycle_2').className = 'advancedOptions advancedOptionsTakeBike';
	}
}


// ==================================================================
// This function opens the "my route" options popup.
// ==================================================================

function openMyRouteOptions () {
	document.forms[0].itdLPxx_individualRoute.value = '1';
	openAdvancedOption('advancedOptions_cycle_1');
}


// ==================================================================
// This function toggels the pseudo routing (for my route options)
// ==================================================================
function togglePseudoRouting () {
	if (document.forms[0].usePseudoRouting.value=='1')
		document.forms[0].usePseudoRouting.value='0';
	else 
		document.forms[0].usePseudoRouting.value='1';
}


// ==================================================================
// This function toggels the asphalt track option (for my route options)
// ==================================================================
function toggleAsphaltTracks () {
	if (document.forms[0].preferAsphaltTracks.value=='1')
		document.forms[0].preferAsphaltTracks.value='0';
	else 
		document.forms[0].preferAsphaltTracks.value='1';
}

// ==================================================================
// This function toggels the no elevation option (for my route options)
// ==================================================================
function toggleUseElevationData () {
	if (document.forms[0].useElevationData.value=='1')
		document.forms[0].useElevationData.value='0';
	else 
		document.forms[0].useElevationData.value='1';
}

// ==================================================================
// This function toggels the green tracks option (for my route options)
// ==================================================================
function toggleGreenTracks () {
	if (document.forms[0].preferGreenTracks.value=='1')
		document.forms[0].preferGreenTracks.value='0';
	else 
		document.forms[0].preferGreenTracks.value='1';
}



