(function($) {
	
	$(function () {
		
		$('#slide img:gt(0)').hide();
		setInterval(function () { $('#slide :first-child').fadeOut(1000).next('img').fadeIn(1000).end().appendTo('#slide'); }, 12000);
		$('#slide img').each(function() {
			var maxWidth ;    
			var ratio = 0;  // Used for aspect ratio
			var width = $(this).width();    // Current image width
			ratio = maxWidth / width;   // get ratio for scaling image
			$(this).css("width", maxWidth); // Set new width
		});

		// Everything for the Quote Widget
		var step = 1;
		var maxSteps = 4;
		var type = "skier";

		$('.skier_1').show();

		$('#widget .next').click(function(e) {
			e.preventDefault();
			if ($('.' + type + '_' + (step + 1)).length)
			{
				if ($('.skier_3').css('display') != "block" || check_valid_season_dates())
				{
					$('.' + type + '_' + step).hide();
					step += 1;
					$('.' + type + '_' + step).show();
					updateStep(step);
				}
			}
			else
			{
				// Post the data!
				$('#widget_form').submit();
			}
		});

		$('#widget .prev').click(function(e) {
			e.preventDefault();
			if ($('.' + type + '_' + (step - 1)).length)
			{
				$('.' + type + '_' + step).hide();
				step -= 1;
				$('.' + type + '_' + step).show();
				updateStep(step);
			}
		});

		$('.custom_radio').click(function() {
			if (!$(this).hasClass('checked'))
			{
				$('.custom_radio[data-input_name="' + $(this).data('input_name') + '"]').removeClass('checked');
				$(this).addClass('checked');
				$('input[name="' + $(this).data('input_name') + '"]').val($(this).data('value')).trigger('change');
			}
		});

		$('input[name="type"]').change(function() {
			type = $(this).val();
			updateMaxSteps();
		});

		$('input[name="level"]').change(function() {
			$('#skier_level').text($('.custom_radio[data-input_name="level"].checked')
				.data('info'));
			$('#skier_level').removeClass('advanced intermediate beginner').addClass($(this).val());
		});
		
		$('input[name="arrive"]').datepicker({
			dateFormat		: 'd MM yy'
		});
		$('input[name="depart"]').datepicker({
			dateFormat		: 'd MM yy'
		});

		function check_valid_season_dates()
		{
			var valid = false;
			var jqxhr = $.ajax('/shop/sauze/validate_season_dates.php', {
				'dataType'		: 'json',
				'type'			: 'post',
				'async'			: false,
				'data'			: {
					'arrive'		: $('input[name="arrive"]').val(),
					'depart'		: $('select[name="duration"]').val()
				},
				'success'		: function(data) {
					if (data.status != "success")
						alert(data.msg);
					else
						valid = true;
				},
				'error'			: function(data) {
					alert('Your dates could not be validated, please try again.');
				}
			});

			return valid;
		}

		$('input[name="extra"]').change(function() {
			if ($(this).val() == "1")
			{
				$('.widget_container.extra').addClass('snowboarder_' + ($('[class*="snowboarder_"]').length + 1));
				$('.widget_container.extra').addClass('skier_' + ($('[class*="skier_"]').length + 1));
			}
			else
			{
				$('.widget_container.extra').removeClass('snowboarder_' + $('[class*="snowboarder_"]').length);
				$('.widget_container.extra').removeClass('skier_' + $('[class*="skier_"]').length);
			}
			updateMaxSteps();
		});
		
	});

	$(window).load(function() {
		// Trigger some events
		$('input[name="extra"]').trigger('change');
		$('input[name="level"]').trigger('change');
		$('input[name="type"]').trigger('change');
	});

	function updateStep(step)
	{
		$('.step_number').text(step);
	}

	function updateMaxSteps()
	{
		var steps = $('[class*="' + $('input[name="type"]').val() + '_"]').length;
		$('.max_steps_number').text(steps);
	}
	
})(jQuery);
