$(function() {
	$('.supplemental_nav .rider_level span, #trip_levels .set_rider_level, #about_your_trip .level_text_button')
		.show()
		.colorbox({
			width: 580,
			height: 510,
			inline:true,
			href:'.level_change_box',
			onOpen: function() {
				$('.level_change_box').show();
			},
			onCleanup: function() {
				$('.level_change_box').hide();
			}
		});

	$('#rider_level_tabs').show();

	$(".change_level_tabs .tab_content").each(function() {
		$(this).hide();
	});

	$(".default_tab").show();
	$(".default_link").hide();

	$('.change_level_tabs ul li span').click(function() {
		$('#message_block').find('.success, .error').remove();
	})

	$('.change_level_tabs a').not('[href="/about_your_trip/trip_levels"]').click(function() {
		var link  = $(this);
		var block = $('#message_block');

		$.ajax({
			type: 'GET',
			url: link.attr('href'),
			dataType: 'json',
			success: function(payload, status) {
				block.find('.success, .error').remove();

				if (payload.error) {
					block.append('<div class="error">Could not update rider level at this time.</div>');
				} else {
					if ('All' == payload.level) {
						$('.tab_content').hide();
						$('#change_all_tab_content').show();
						$('.change_level_tabs ul li span').removeClass('active');
						$('#change_level_specific').hide();
						$('#change_level_all').show();
					} else {
						$('#change_level_all').hide();
						$('#change_level_specific .current_level').text(payload.level);
						$('#change_level_specific').show();
					}
					$('.change_link').show();
					link.parents('.change_link').hide();

					$('.current_level_box em').text(payload.level);
					$('.supplemental_nav .rider_level span').text('Level: ' + payload.level + ' (change?)');

					block.append('<div class="success">Thanks! This site will show trips and content appropriate to your chosen level.</div>');
				}
			},
			error: function(request, status) {
				block.find('.success, .error').remove();

				block.append('<div class="error">Could not update rider level at this time.</div>');
			}
		});

		return false;
	})
})

