$(document).ready(function () {
	// Apply fancybox on all images
	$("a[href$='gif']").fancybox();
	$("a[href$='jpg']").fancybox();
	$("a[href$='png']").fancybox();		
		
	// Font replacement
	Cufon.replace('#logo .title');	
	Cufon.replace('h1');

	// *******************************************************
	/* Slider */
	if ( $.fn.nivoSlider != undefined )
	{
		$('#slider .descriptions .description:first').show(); 
		$('#slider .slides').nivoSlider({
			effect:						'random',
			slices:						15,
			animSpeed:					500,
			pauseTime: 					8000,
			startSlide:					0, //Set starting Slide (0 index)
			directionNav:				true, //Next & Prev
			directionNavHide:			false, //Only show on hover
			controlNav:					true, //1,2,3...
			controlNavThumbs:			false, //Use thumbnails for Control Nav
			controlNavThumbsSearch: 	'.jpg', //Replace this with...
			controlNavThumbsReplace: 	'_thumb.jpg', //...this in thumb Image src
			keyboardNav:				true, //Use left & right arrows
			pauseOnHover:				false, //Stop animation while hovering
			manualAdvance:				false, //Force manual transitions
			captionOpacity:				1.0, //Universal caption opacity
			beforeChange: 				function(){},
			afterChange: 				function(){
				currentSlide = $('#slider .slides').data('nivo:vars').currentSlide
				$('#slider .descriptions table').each(function (index, value) {
					if (index == currentSlide) {
						$('#slider .descriptions table').hide();
						$(this).show();
					}
				});
			},
			slideshowEnd: 				function(){} //Triggers after all slides have been shown
		});
		$('.slider .slides img').css({'visibility': 'visible'});
	}
	// *******************************************************
	/* Form submit button */ 
	var $submit = $('#submit_form');
	var form_success = false;
	
	$('#accept_privacy').click(function(){
		if (!$(this).attr('checked')){
			$submit.addClass('disabled');
		}
		else{
			$submit.removeClass('disabled');
		}
	});
	$submit.click(function(){
		if ($submit.hasClass('disabled')){
			alert("Devi accettare l'informativa sulla privacy!");
		}
		else{
			form_success = false;
			$('#form_contact').submit();
		
		}
		return false;
	});
	
	// *******************************************************
	// Datepicker
	$('.datepicker').each(function(){
		var $input = $(this);
		var alt = {};

		if ($input.attr('alt')!=''){
			var alt = eval('('+$input.attr('alt')+')');
		}
		
	
		$input.datepicker({
											
				onChangeMonthYear:function(year, month, inst){
					var $this = $(this);
					afterChangedDate($('.ui-datepicker-title:first').text(), function(){disable_dates($this)});
				},
				beforeShow:function(){
					var $this = $(this);
					afterChangedDate($('.ui-datepicker-title:first').text(), function(){disable_dates($this)});
				},
				numberOfMonths: alt.numberOfMonths == undefined ? 2 : alt.numberOfMonths, 
				minDate: alt.minDate == undefined ? new Date() : string2Date(alt.minDate),
				maxDate: alt.maxDate == undefined ? '+1y' : string2Date(alt.maxDate)
		});
	});
	
	
	// *******************************************************
	// Form
	var $form = $('#form_contact');
	$('input', $form).keypress(function (e) {
		if(e.which ==13){
			$form.submit();
		}
	});

	$form.submit(function(){
		var $inputs = $('input, textarea, select', $form);
		var success = true;
		var data = {};
		$inputs.each(function(){
			var $input = $(this);
			
			if ( ($input.attr('type') == 'radio') || ($input.attr('type') == 'checkbox') ){
				if ($input.attr('checked')){
					if(new String($input.attr('name')).indexOf('[]') > -1){
						if (data[$input.attr('name')] == undefined)  data[$input.attr('name')] = [];
						data[$input.attr('name')].push($input.val());
					}
					else{
						data[$input.attr('name')] = $input.val();
					}
				}
			}
			else{
				if(new String($input.attr('name')).indexOf('[]') > -1){
					if (data[$input.attr('name')] == undefined)  data[$input.attr('name')] = [];
					data[$input.attr('name')].push($input.val());
				}
				else{
					data[$input.attr('name')] = $input.val();
				}
			}
			
			if (success===true){
				var val = $.trim(new String($input.val()));
				
				// Controllo se il campo è richiesto
				if ( (new String($input.attr('alt')).indexOf('required')>-1) && (val=='') ){
					alert('Devi compilare il campo "'+ $input.attr('name')+'"');
					$input.focus();
					success = false;
				}
				// Controllo se il campo è una email
				else if ((new String($input.attr('alt')).indexOf('email')>-1)  && (! /^([a-zA-Z0-9_.\+-])+@([a-zA-Z0-9_.-])+\.([a-zA-Z])+([a-zA-Z])+/.test(val) ) ){
					alert('Devi inserire un indirizzo e-mail valido!'); 
					$input.focus();
					success = false;
				}
				
			}
		})
		
		
		

		if (success){
			$.ajax({
				data:data,
				beforeSend:function(){
					$submit.before('<img src="img/loading.gif" class="noborder">');
				},
				type:'GET',
                dataType:'json',
				url: $form.attr('action') + '?callback=?',
				success:function(d, t){
					var $answer = $(d);
                    if (d.success){
                        $form.hide().after('<div id="formresp">'+d.result+'</div><a id="formlink" href="#formresp"></a>');
                        $('#formlink').fancybox().trigger('click');
                    }
					else{
						alert(d.result);
					}
					//	$answer.dialog({width:600, modal:true,buttons: {Ok: function() {$(this).dialog('close');}}})
				},
				cache:false
			});
		}
		
		form_success = success;
		return false;
	});	
	
	
	// *******************************************************
	/* Highlight current page menu item */ 
	var page = new String(document.location).split('/').pop();
	if (page.indexOf('#')>=0){
			page = page.substr(0, page.indexOf('#')); // rimuovo #
	}
	
	var $current = $('#main_menu li a[href='+page+'] ').parent().addClass('current_page_item');
	var $current_li = $current.parent().parent().parent();

	
});
	
function addChildren(el){
	addMultiple(el, 'Eta_Bambino', 'Età %n° bambino');
}

function afterChangedDate(before, fn){
	fn();
	setTimeout(function(){afterChangedDate(before, fn)}, 1000);
}

function string2Date(str){
	if (str.indexOf('/') == -1) return str;
	var d = str.split('/');
	return new Date(d[2], d[1]-1, d[0]);
	
}
function addMultiple(el, label, desc){
	$this = $(el);
	$('#multiple'+label).remove();
	$multiple = $('<div id="multiple'+label+'"></div>');

	var text = '';
	for (var i=0; i<$this.val(); i++){
		text+='<p><input class="input smallinputtext" type="text" name="'+label+'_'+(i+1)+'" id="'+label+'_'+(i+1)+'" value="" /><label for="'+label+'_'+(i+1)+'">'+ desc.replace('%n', i+1)+'</label></p>';
	}
	$multiple.append(text);
	
	$this.parent().after($multiple);
}

function getNDate(date){
	date = date.split('/');
	date[0] = date[0].length < 2  ? '0'+new String(date[0]) : date[0];
	date[1] = date[1].length < 2  ? '0'+new String(date[1]) : date[1];
	return parseInt(date[2]+''+date[1]+''+date[0]);
}


function array_search( needle, haystack, argStrict ) {
    var strict = !!argStrict;
    var key = '';
    for(key in haystack){
        if( (strict && haystack[key] === needle) || (!strict && haystack[key] == needle) ){
            return key;
        }
    }
    return false;
}

function disable_dates($el){
	var alt = $el.attr('alt');
	if (alt == undefined || alt==''){
		return;
	}
	alt = eval('('+alt+')');
	$('#ui-datepicker-div .ui-datepicker-group').each(function(){
															   
		year = $('.ui-datepicker-year', this).text();
		month = array_search( $('.ui-datepicker-month', this).text(), $.datepicker.regional['it'].monthNames );
		$('td', this).each(function(){
			if ($('a', this).length==0){
				return;
			}
			var n = $(this).text();
			
			alert(n);
			var $td = $(this);
			var date = getNDate(n+'/'+(parseInt(month)+1)+'/' +year);
			$.each(alt.disabledFrom, function(i, dateDisabled){
				//alert(getNDate(dateDisabled[0])+'<= '+date+ '<= '+ getNDate(dateDisabled[1]));
				if ( (getNDate(dateDisabled[0]) <= date) && (getNDate(dateDisabled[1]) >= date) ){
					//alert(date);
					$td.html('<span class="ui-state-default">'+n+'</span>').unbind('click').addClass('ui-datepicker-unselectable ui-state-disabled');
				}
			});
		});

	});
}
