﻿function allClick()
{
try
{
	var clickbox = $('.allclick');
	clickbox.each(function()
	{
		var $this = $(this);
		$this.css('cursor','pointer');
		$this.find('a').click(function(event){event.preventDefault();});
		$this.click(function(){window.location.href=$('a',this).attr('href');});
	});
}
catch(e) {toDebug(e.toString());}
}



function slidingEffects()
{
try
{
 	$('#slider').cycle({
		fx: 'fade',
		speed: 2000,
		timeout: 6500,
		pause: 1,
		manualTrump: false
	});

 	$('#gallery-slider').cycle({
		fx: 'scrollHorz',
		speed: 1500,
		timeout: 0,
		next:   '#nextImg',
		prev:   '#prevImg',
		pause: 1,
		manualTrump: false
	});

 	$('#offerte').cycle({
		fx: 'scrollHorz',
		speed: 1500,
		timeout: 6500,
		next:   '#nextOff',
		prev:   '#prevOff',
		pause: 1,
		manualTrump: false
	});

}
catch(e) {toDebug(e.toString());}
}


function cancellaForm()
{
try
{
	$("input").not(":password,:checkbox,:radio").bind('focus blur',function(event)
	{
		var value = $(this).attr("placeholder");
		if (event.type == "focus") {
			if ($(this).val() == "" || $(this).val() == value) {
				$(this).val("");
			}
		}else {
			if ($(this).val() == "") {
				$(this).val(value);
			}
		}
	});

	$("textarea").bind('focus blur',function(event)
	{
		var value = $(this).attr("placeholder");
		if (event.type == "focus") {
			if ($(this).text() == "" || $(this).text() == value) {
				$(this).text("");
			}
		}else {
			if ($(this).text() == "") {
				$(this).text(value);
			}
		}
	});
}
catch(e) {toDebug(e.toString());}
}

/*
 * Funzione per la creazione di un cookie.
 * Se viene settato il parametro 'days', esso corrisponde al numero di giorni di validità del cookie,
 * altrimenti la durata sarà quella della sessione.
*/
function setCookie(name, value, days)
{
try
{
	// se passato il numero dei giorni setto la validità
	if(days){
	    $.cookie(name, value, { expires: days, path: '/'});

	}else{
	// altrimenti rimane valido per la sessione
		$.cookie(name,value);
	}
}
catch(e) {toDebug(e.toString());}
}


function activeMenu()
{
try
{
	var activeControl = function(activelem){
		if(activelem.parent().attr('id')!= 'nav'){
			if(activelem.parent().is('li')){
				activelem.parent().addClass('open');
			}
			activelem.parent().addClass('active');
			activeControl(activelem.parent());
		}else{
			activelem.removeClass('active');
		}
	}

	$('#nav').find('.active').each(function(){
		activeControl($(this));
	});

}
catch(e) {toDebug(e.toString());}
}



function menuEvents()
{
try
{
	$('#nav').find('span').click(function(){
		var $this = $(this);
		if(!$this.parent('li').is('.open')){
			$('#nav').find('span').siblings().slideUp('fast');
			$('#nav').find('li.open').removeClass('open');
			$this.siblings().slideDown('fast');
			$this.parent('li').addClass('open');
		}else{
			$this.siblings().slideUp('fast');
			$this.parent('li').removeClass('open');
		}
	});

}
catch(e) {toDebug(e.toString());}
}

/*
 * Funzione per la creazione di un cookie.
 * Se viene settato il parametro 'days', esso corrisponde al numero di giorni di validità del cookie,
 * altrimenti la durata sarà quella della sessione.
*/
function setCookie(name, value, days)
{
try
{
	// se passato il numero dei giorni setto la validità
	if(days){
	    $.cookie(name, value, { expires: days, path: '/'});

	}else{
	// altrimenti rimane valido per la sessione
		$.cookie(name,value);
	}
}
catch(e) {toDebug(e.toString());}
}


function videoOnLoad()
{
try
{
	//setCookie('video', false);
	//alert(!Boolean(eval($.cookie('video'))));

	if(!(Boolean(eval($.cookie('video')))) && $('body').is('.homepage')){

		$('#video').trigger('click');
	}

}
catch(e) {toDebug(e.toString());}
}


function setDateInputs()
{
	var lang='en';

	$('form').each(function()
	{
		var form = $(this);
		//primo init base
		$('.date',form).each(function()
		{
			var openDate = new Date( new Date().getFullYear(), 3, 5, 0, 0, 0 );
			var closeDate = new Date( new Date().getFullYear(), 10, 2, 0, 0, 0 );

			jQuery(this).datepicker({minDate: 0, dateFormat: "dd-mm-yy", numberOfMonths: 3});
			//jQuery(this).datepicker( "option", "minDate", new Date(openDate.getFullYear(), openDate.getMonth(), openDate.getDate()) );
			//jQuery(this).datepicker( "option", "maxDate", new Date(closeDate.getFullYear(), closeDate.getMonth(), closeDate.getDate()) );
		});


		$('.date',form).each(function()
		{
			var input = $(this);
			var date_ref = input.attr('data-date-ref');

			// attributi per allineare data di arrivo e data di partenza nel change
			var date_linkto = input.attr('data-linkto');
			var date_linkref = input.attr('data-linkref');

			input.change(function(event,date){
				if(date_linkto)
				{
					// controllo su data di arrivo e di partenza
					date1 = jQuery(this).datepicker( 'getDate' );
					date1 = new Date(date1);
					date1.setDate(date1.getDate() + 1);

					var linkto_dest = $('.date[data-linkref="'+date_linkto+'"]',form);

					// Aggiorno la data di partenza in caso sia una data piu vecchia di quella di arrivo
					if( date1 > linkto_dest.datepicker( 'getDate' ))
					{
						date2 = new Date(date1);
						date2.setDate(date1.getDate());
						linkto_dest.datepicker('option', 'minDate',date2);
					}
				}
				//return false;
			});
		});

		// Imposto le date di default (quella odierna per la data di arrivo ed il giorno seguente per quella di partenza)
		jQuery("input.date[data-linkto]", form).datepicker( "setDate", "0" );;
		jQuery("input.date[data-linkref]", form).datepicker( "setDate", "+1" );;
	});
}

function jQueryValidateAddons(){

	//jQuery Validator - Funzioni addizionali
	jQuery.validator.addMethod(
		"dateITA",
		function(value, element) {
			// put your own logic here, this is just a (crappy) example
			return value.match(/^\d{1,2}-\d{1,2}-\d{4}$/);
		},
		"Please enter a date in the format dd-mm-yyyy"
	);
}

function newsletterSignup()
{
	jQuery("form[name='news-signup']").validate({
		rules: {
			"nome": "required",
			"email": {
				required: true,
				email: true
			},
			"privacy": "required"
		},
		messages: {
			"nome": "",
			"email": "",
			"privacy": ""
		}
	});
}

function formPreventivo()
{
	jQuery("form[name='preventivo']").validate({
		rules: {
			nome: "required",
			cognome: "required",
			email: {
				required: true,
				email: true
			},
			telefono: "required",
			dataarrivo: {
				required: true,
				date: false
			},
			datapartenza: {
				required: true,
				date: false
			},
			numeroospiti: "required",
			numerocamere: "required",
			ulterioririchieste: "required",
			privacy: "required"
		},
		messages: {
			nome: "",
			cognome: "",
			email: "",
			telefono: "",
			dataarrivo: "",
			datapartenza: "",
			numeroospiti: "",
			numerocamere: "",
			ulterioririchieste: "",
			privacy: "Please authorize the use of your data in accordance with the Privacy Act. (Art. 13 L. 675/03)"
		}
	});

	jQuery("form[name='preventivo']").submit( function(){
		var dateFrom = jQuery(this).find("input[name='dataarrivo']");
		var dateTo = jQuery(this).find("input[name='datapartenza']");

		var pDate = /^[\d]{1,2}-[\d]{1,2}-[\d]{4}$/;

		if( !pDate.test( dateFrom.val())){
			dateFrom.addClass("error");
			return false;
		}
		else{
			dateFrom.removeClass("error");
		}

		if( !pDate.test( dateTo.val())){
			dateTo.addClass("error");
			return false;
		}
		else{
			dateTo.removeClass("error");
		}
	});
}

function formContatti()
{
	// Form Contatti
	jQuery("form[name='form_contatti']").validate({
		rules: {
			nome: "required",
			cognome: "required",
			email: {
				required: false,
				email: true
			},
			telefono: "required",
			richiesta: "required"
		},
		messages: {
			nome: "",
			cognome: "",
			email: "",
			telefono: "",
			richiesta: ""
		}
	});
}

/*****************************************************************************************/
function includeIe6Nomore()
{
	if($.browser.msie && $.browser.version.match('6.'))
		$('#ie6nomore').load('ie6nomore.html');
}

//	inizio funzioni di debug

debug_msg = false;
function toDebug(string)
{
	if (debug_msg)
	{
		if((typeof window.console=="undefined")) {alert(string);}
		else {
			console.error();
			console.group(string);
			console.trace();
			console.groupEnd();
		}
	}
}

function toConsole(string)
{
	if((typeof window.console=="undefined")) {alert(string);}
	else console.log(string);
}

//fine funzioni di debug

function $j(argument)
{
	var result = jQuery(argument);
	if (result.length == 0) return null;
	else return result;
}

$j(document).ready(function()
{
	// jQuery Validate
	jQueryValidateAddons();

	allClick();
	activeMenu();
	slidingEffects();
	cancellaForm();

	menuEvents();

	/* $("a[data-rel^='prettyPhoto']").prettyPhoto({theme: 'facebook'}); */

	// Datepicker
	setDateInputs();

	// Iscrizione Newsletter
	newsletterSignup();

	// Richiesta preventivo online
	formPreventivo();

	// Form contatti
	formContatti();

	// ABS Booking
	jQuery("form[name='abs-booking']").submit( function()
	{
		try
		{
			var absForm=jQuery(this);

			var datada=absForm.find("input[name='data_arrivo']").val().split("-");
			var dataa=absForm.find("input[name='data_partenza']").val().split("-");

			jQuery(absForm).append('<input type="hidden" name="gg" id="gg" value="'+datada[0]+'"></input><input type="hidden" name="mm" id="mm" value="'+datada[1]+'"></input><input type="hidden" name="aa" id="aa" value="'+datada[2]+'"></input>');
			jQuery(absForm).append('<input type="hidden" name="ggf" id="ggf" value="'+dataa[0]+'"></input><input type="hidden" name="mmf" id="mmf" value="'+dataa[1]+'"></input><input type="hidden" name="aaf" id="aaf" value="'+dataa[2]+'"></input>');

			return true;
		}
		catch(e){console.log(e);}

		return false;
	});

});

$j(window).load(function()
{

	Shadowbox.init({
		language:   "it",
		players:    ["flv", "html", "iframe", "img", "qt", "swf", "wmp"],
		onClose:	function(){
						setCookie('video', true);
					}
	});

	videoOnLoad();

});

$j(window).resize(function()
{

});

/*****************************************************************************************/
