/**
 * @author Thomas Sømoen
 */
(function($) {
	$.fn.delay = function(millis, callBack) {
		var object = $(this);
		$.extend(object, { callBack: callBack });
		return window.setTimeout(function() {
			object.callBack();
			return object;
		}, millis);
	};

	$.fn.fixPositions = function() {
		return $(this).each(function() {
			var container = $(this);

			container.children('div:not(.response)').css('position', 'relative');

			container.children('div:not(.response)').focus(function() {
				container.children('div').css('z-index', '');
				$(this).css('z-index', '99');
			});

			container.children('div:not(.response)').blur(function() {
				$(this).css('z-index', '');
			});
		});
	};

	var sendBookingRequest = function(e) {
		e.preventDefault();
		var pane = $(this).parent();
		var response = pane.find('div.response');
		var data = pane.find('input,select,textarea');
		response.removeClass('hidden').hide();
		response.load(
			$.settings.actions.sendBookingRequest,
			data,
			function() {
				$(this).fadeIn(
					'fast',
					function() {
							$(this).delay(
								1000,
								function(){
									$(this).fadeOut('fast');
								}
							);
					}
				);
			}
		);
	}

	var registrerNewsletter = function(e) {
		e.preventDefault();
		var pane = $(this).parent();
		var response = pane.find('div.response');
		var data = pane.find('input,select');
		response.removeClass('hidden').hide();
		response.load(
			$.settings.actions.registrerNewsletter,
			data,
			function() {
				$(this).fadeIn(
					'fast',
					function() {
						$(this).delay(
							4000,
							function() {
								$(this).fadeOut('fast');
							}
						);
					}
				);
			}
		);
	}

	$(document).ready(function() {
		$('div.booking select').sSelect();

		$.datepicker.setDefaults({
			dateFormat: 'dd/mm/yy',
			firstDay: 1,
			minDate: new Date(),
			maxDate: '+2y',
			showOn: 'button',
			buttonImage: '/Public/css/elm/icon_date_picker.gif',
			monthNames: ['Januar', 'Februar', 'Mars', 'April', 'May', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Desember'],
			dayNames: ['Søndag', 'Mandag', 'Tirsdag', 'Onsdag', 'Torsdag', 'Fredag', 'Lørdag'],
			dayNamesShort: ['Søn', 'Man', 'Tir', 'Ons', 'Tor', 'Fre', 'Lør'],
			dayNamesMin: ['Sø', 'Ma', 'Ti', 'On', 'To', 'Fr', 'Lø']
		});

		$("#booking-arrival").datepicker();
		$("#booking-departure").datepicker({
			beforeShow: function(input) {
				var arrival = $("#booking-arrival").datepicker('getDate');
				$("#booking-arrival").datepicker('setDate', arrival);
				$("#booking-departure").datepicker('option', 'minDate', arrival);
			}

		});


		$('div.booking div.canvas fieldset').fixPositions();

		//$("#input div.booking input.submit").click(sendBookingRequest);
		$("#input div.newsletter input.submit").click(registrerNewsletter);

		$('div.menu-resort > div.main > ul > li:last').addClass('no-devider');
		$('div.menu-resort > div.main > ul > li.selected').prev().addClass('no-devider');

		$('.newListSelected').focus(function() {
			$(this).css('z-index', '1');
		});

		$('.newListSelected').blur(function() {
			$(this).css('z-index', '0');
		});
	});

})(jQuery);
