(function($){

/* READY */

$(function()
{

	// MENU: add class noBorder
	$('#navigator ul').each
	(
	 	function()
		{
			$(this).find('li:first').addClass('noBorder');
		}
	);

	// MENU: add class hasSubMenu
	$('#navigator > ul > li').each
	(
		function()
		{
			var hasSubMenu = $(this).find('ul').length;
			if(hasSubMenu != 0)
				$(this).addClass('hasSubMenu');
		}
	);

	// GRIGLIA PRODOTTI
	$('#grigliaProdotti .row').each
	(
		function ()
		{
			$(this).find('.prodotto:first').css('margin-left',0);
		}
	);



	// crea array elementi
	var prodotti = new Array();
	$('#listaProdotti a').hide().each
	(
		function()
		{
			var $el = $(this);

			var href = $el.attr('href');
			var title = $el.attr('title');
			var src = $el.attr('rel');
			var html = $el.html();

			prodotti.push
			({
				href:href,
				title:title,
				src:src,
				html:html
			});
		}
	);

	var prodPerPagina = 10;
	var rowLength = 5;
	var currentPage = 1;	

	var pagine = Math.ceil(prodotti.length / prodPerPagina);

	var $paging = $('#pagingProdotti');

	// solo una pagina?
	if(pagine == 1)
		$paging.html('');

	else
	{
		var $arrow = $paging.find('.arrow');

		var $arrowPrev = $paging.find('.arrow.prev');
		var $arrowNext = $paging.find('.arrow.next');

		$paging.html('');
		$paging.append($arrowPrev);

		$paging.append('<a class="active">1</a>');

		for(var i = 1; i < pagine; i ++)
		{
			var $a = $('<a href="#">' + (i + 1) + '</a>');
			$paging.append($a);
		}
		$paging.append($arrowNext);

		$arrowNext.html('&gt;&gt;');
		$arrowPrev.html('&lt;&lt;');

		$paging = $('#pagingProdotti');

		// CLICK
		$('#pagingProdotti a').click
		(
			function()
			{
				$a = $(this);

				if($a.hasClass('active'))
					return false;

				else if($a.hasClass('arrow'))
				{
					if($a.hasClass('prev'))
					{
						if(currentPage > 1)
							currentPage --;
					}
					else
					{
						if(currentPage < pagine)
							currentPage ++;
					}
				}
				else
				{
					currentPage = parseInt($a.text());
				}

				$paging.find('a.active').removeAttr('class').attr('href','#');

				var active = $paging.find('a')[currentPage];
				$(active).addClass('active').removeAttr('href');

				assegnaImmagini($a);

				return false;
			}
		);
	}

	assegnaImmagini(null);

	function assegnaImmagini($a)
	{
		if($a)
			$a.blur();

		var counter = 0;

		$('#grigliaProdotti .prodotto').each
		(
			function()
			{
				var $p = $(this);
				
				var data = prodotti[counter + (currentPage - 1) * prodPerPagina];
				if(!data)
				{
					$p.find('a').removeAttr('href')
					$p.find('img').addClass('noImage').attr('src','images/blank.gif').attr('alt','');
					$p.find('span').remove();
					return;
				}

				$a = $p.find('a');
				$a.attr('href',data.href);
				$a.attr('title',data.title);

				$img = $a.find('img');
				$img.attr('src',data.src);
				$img.attr('alt',data.title);

				$p.find('span').remove();
				$p.append(data.html);

				counter ++;
			}
		);
	} // assegnaImmagigi()




	// PERSONAL SHOPPER
	var $shopper = $('#banner .destra');
	var $opzioni = $('.domanda ul');


	// INIZIALIZZA DOMANDA
	$opzioni.find('a').click
	(
		function()
		{
			var $visibile = $('.domanda.visibile');

			var $a = $(this);

			var $selected = $visibile.find('.selected');
			if($selected.length != 0)
			{
				$a.blur();
				return false;
			}

			var $li = $a.parent();
			
			$li.addClass('selected');

			var $prossima = $visibile.next('.domanda');
			if($prossima.length > 0)
			{
				// nascondi domanda
				$shopper.delay(250).muovi(40,nuovaDomanda);
			}
			else
			{
				function mostraRiepilogo()
				{
					$visibile.hide();

					var $riepilogo = $('#riepilogoShopper');
					$riepilogo.prepend('<ul></ul>');
					$lista = $riepilogo.find('ul');

					var $selected = $('.domanda .selected');
					var idRisposte = '';

					$selected.each
					(
						function()
						{
							var $this = $(this);
							var domanda = $this.parent().parent().find('h3').text();
							var opt = $this.attr('id');
							var risposta = $this.find('a').text();
							var id = opt.split('_')[1];
							idRisposte += ',' + id;

							$lista.append('<li>' + domanda + ' <strong>' + risposta + '</strong></li>');
						}
					);
					idRisposte = idRisposte.replace(',','');
					$riepilogo.find('input[name="idRisposte"]').attr('value',idRisposte);

					$riepilogo.fadeIn('slow');
				}

				$visibile.delay(250).muovi(-450,mostraRiepilogo);
			}


			function nuovaDomanda()
			{
				$visibile.removeClass('visibile').hide();
				$visibile = $prossima;

				$visibile.addClass('visibile').show();

				$shopper.delay(250).muovi('475');
			}

			$a.blur();
			return false;
		}
	);

	$.fn.muovi = function(leftDest,callBack)
	{
		$this = $(this);
		$this.animate
		({
			left: leftDest
		},500,fine);

		function fine()
		{
			if(callBack)
				callBack();
		}
	}





	/* GALLERY NEGOZI */

	var $gallery = $('#galleryNegozio');
	var $gPics = $('#gPics');
	var $gPrev = $('#gPrev');
	var $gNext = $('#gNext');
	var $freccia = $gallery.find('a.arrow');

	var $list = $gPics.find('a');
	$list.hide();


	$gPics.find('img').load
	(
		function()
		{
			$(this).fadeIn('slow');
		}
	);

	var currentPic = 0;

	var $title = $('#galleryNegozio h3');

	$freccia.click
	(
		function()
		{
			var dir = 0;
			var $el = $(this);
			if($el.hasClass('left'))
			{
				if(currentPic == 0)
					currentPic = $list.size() - 1;
				else
					currentPic -= 1;
			}
			else if($el.hasClass('right'))
			{
				if(currentPic == $list.size() - 1)
					currentPic = 0;
				else
					currentPic += 1;
			}

			var $img = $gPics.find('img');
			$img.fadeOut('slow',fadeOutComplete);

			function fadeOutComplete()
			{
				var $current = $($list[currentPic]);

				$img.attr('src',$current.attr('href'));
				$title.html($current.attr('title'));
				
				$img.load
				(
				 	function()
					{
						$(this).fadeIn('slow');
					}
				);
			}

			$el.blur();
			return false;
		}
	);



	/* VALIDA FORM */
	function validateEmail(emailAddress)
	{
		var pattern = new RegExp(/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i);

		return(pattern.test(emailAddress));
	}

	function validateDate(d)
	{
		return isDate(d,'d/M/yyyy');
	}

	var $formAlert = $('#formAlert');
	function alertMsg(msg)
	{
		if(msg == '')
			$formAlert.hide();
		else
			$formAlert.show().html(msg);
	}

	function validateForm(id)
	{
		var email = $('#email').attr('value');
		var messaggio = $('#messaggio').attr('value');
		var antispam = $('#antispam').attr('value');

		if(id == "guestbook")
		{
			if(!validateEmail(email))
			{
				alertMsg('Indirizzo email non valido');
				return false;
			}
	
			if(email == '' || messaggio == '' || antispam == '')
			{
				alertMsg('Compilare i campi obbligatori');
				return false;
			}
		}

		return true;
	}

	$('form').submit
	(
		function()
		{
			var id = $(this).attr('id');
			return validateForm(id);
		}
	);


	$('form input').change
	(
		function()
		{
			alertMsg('');
		}
	);

}); // closing $(document).ready()

})(jQuery);
