/*
 *		Wabi Tabs
 *
 *		jQuery plugin
 *
 *		Copyright (c) 2011 Wabisabi. All rights reserved.
 *
 *		Author: 		Jose Faeti
 *		Version:		1.1.1
 */
(function(b){b.fn.wabi_tabs=function(h){var e={mode:"overlap"};return this.each(function(){b.extend(!0,e,h);var f=b(this),g=f.children();f.addClass("wabi-tabs-container");var c=b("<div>").appendTo(f);c.addClass("content-container");g.each(function(){var d=b(this);d.addClass("tab");var a=d.children().eq(0);a.addClass("content");d.data("content",a);a.appendTo(c);"hide"===e.mode&&a.css("display","none")});g.eq(0).addClass("selected");c.children().eq(0).appendTo(c).css("display","block");f.bind("click",
function(d){var a=b(d.target);d.stopPropagation();a.hasClass("tab")&&(g.removeClass("selected"),a.addClass("selected"),"hide"===e.mode&&c.children().css("display","none"),a.data("content").appendTo(c),"hide"===e.mode&&a.data("content").css("display","block"))})})}})(jQuery);





/*

	Wabi Content Fader (jQuery plugin)

	Copyright 2011 Wabisabi. All rights reserved.
	
	
	Author:			Jose Faeti
	Version:		1.1.0
	
	Created:		2011-03-09
	Last revision:	2011-05-05

*/
(function($) {

	$.fn.wabi_content_fader = function (options) {

		// internal variables
		var $window	= $(window),

		// default settings
		settings = {		  
			// fading settings
			'fading' : {
				'speed' : 1000,
				'delay' : 3000,
				'method' : 'fade' // 'fade', 'zoom out'
			},
			buttons: {
				id: 'image-fader-buttons'
			}
		};

		return this.each(function () {

			$.extend(true, settings, options);

			var $this		= $(this),
				$this_id	= $this.attr('id'),

			methods = settings.fading.method.split(','),
			css_start = {},
			css_end = {},
			timeout,
			$container = $this,

			isFading = false;

			for (var x=0, len=methods.length; x<len; x++)
			{
				// check animation method
				switch ( methods[x] )
				{
					case 'fade':
				
						$.extend(css_start,{
							'opacity': 0
						});
						$.extend(css_end,{
							'opacity': 1
						});
			
						break;
				
					case 'zoom out':
				
						$.extend(css_start,{
							'margin-left' : '+=150',
							'margin-top' : '+=100',
							'width' : 0,
							'height' : 0
						});
						$.extend(css_end,{
							'width' : '100%',
							'height' : '100%',
							'margin' : 0
						});
			
						break;
				}
			}

			// check if element has more than one child
			if ( $this.children().length > 1 ) {			

				$this.addClass('wabi-fader-container');

				$window.load(function () {
					$this.children().css('display','block');
					//window.setInterval(content_fade,settings.fading.delay);
					timeout = setTimeout(function () { content_fade(-1); }, settings.fading.delay);
				});

				/* Assign a value to each fading element (a sort of ID to identify each element separately) */
				$this.children().each(function (i) {
					$(this).data('value', i);
				});

			}

			// check if navigation buttons exists
			var $buttons = $( '#' + settings.buttons.id );

			if ( $buttons.length )
			{
				var $button,
					$children,
					$buttons_already_present;

				$buttons_already_present = $buttons.children();

				$children = $this.children();

				$children.each( function (i) {

					if ( $buttons_already_present.length === 0 )
					{
						$button = $( '<div>' ).appendTo( $buttons );
					}
					else
					{
						$button = $buttons_already_present.eq( i );
					}

					$button.data('target', i);
					$button.click(function () {
						
						var $this = $(this);
						
						if (!isFading) {
							
							content_fade( $this.data('target') );
					
						}
						
					});
					
					if (i === $children.length - 1) {
						$button.addClass('selected');
					}
					
				});
			}

			/* Fade the currently visualized element */
			function content_fade(target) {

				if ( isFading ) {
					//setTimeout(content_fade, 1000);
					return;
				}

				clearTimeout(timeout);

				if ( target === -1 ) {

					var $e = $container.children(':last');

					isFading = true;

					// Highlight selected button, remove highlight from the others

					$buttons.children().each(function () {

						var $this = $(this),
							$e = $container.children().eq(-2);
						
						( $this.data('target') === $e.data('value') ) ? $this.addClass('selected') : $this.removeClass('selected');

					});

					$e.animate(css_start, settings.fading.speed, function () {

						var $this = $(this);

						$this.css(css_end).prependTo($container);
						isFading = false;
						clearTimeout(timeout);
						timeout = setTimeout(function () { content_fade(-1); }, settings.fading.delay);

					});

				} else if ( target !== $container.children(':last').data('value') ) {

					var $e;

					$container.children().each(function () {

						$e = $(this);

						/* Highlight selected button, remove highlight from the others */
						$buttons.children().each(function () {
	
							var $this = $(this);
							
							( $this.data('target') === target ) ? $this.addClass('selected') : $this.removeClass('selected');
	
						});

						/* Find the element with data value corresponding to the target ID */
						if ($e.data('value') === target)
						{
							/* Target element found */
							
							isFading = true;

							var $current_e = $container.children(':last');
							
							/* Append the target element on top of all the others, then re-append the one that was on top before */
							$e.appendTo($container);
							$current_e.appendTo($container);

							/* Fade out the topmost element and when done move it last */
							$current_e.animate(css_start, settings.fading.speed, function() {
								$(this).css(css_end).prependTo($this);
								isFading = false;
								clearTimeout(timeout);
								timeout = setTimeout(function () { content_fade(-1); }, settings.fading.delay);
							});

							/* Terminate the each loop entirely */
							return false;
						}
						
					});

				} // end if

			} // end function

		});

	};

})(jQuery);





/*
		D O C U M E N T   R E A D Y
*/
( function ( $ ) {
	
	$( function () {

		/*
			W A B I   T A B S
		*/
		/*
		$( '#main-content .subsections' ).wabi_tabs({
			mode:	'hide'
		});
		//*/
		
		/*
			W A B I   C O N T E N T   F A D E R
		*/
		$( '#background-container' ).wabi_content_fader();


		enable_forms_controls();



		function enable_forms_controls()
		{
			//	Enable form prenotazione input default values
			$( 'form' ).each( function () {

				var $this_form = $( this );

				$this_form.find( 'input[type="text"],textarea' ).each( function () {
					
					var $this_input = $( this );

					$this_input.data( 'default-value', $this_input.val() );

					//alert( $this_input.data( 'default-value' ) );

					$this_input.focus( function () {

						if ( $this_input.val() === $this_input.data( 'default-value' ) )
						{
							$this_input
								.val( '' );
								//.addClass( 'white-text' );
						}

					});

					$this_input.blur( function () {
						
						if ( $this_input.val() === '' )
						{
							$this_input
								.val( $this_input.data( 'default-value' ) )
								.removeClass( 'white-text' );
						}

					});

				});
				
				$this_form.find( '#reset' ).click( function () {
				
					$this_form.find( 'input' ).removeClass( 'white-text' );
						
				});

			});
		}


	});

}(jQuery));
