// JavaScript Document

$(document).ready(function() {
	
	// AGGIUNGO HEIGHT AL BOX
	$(".box_cal_into").parents().find(".box_guida").css("height","370px");
	
	var jSONFile 		= '/ssi/dyn/box/calendar.json';
	$.ajax({
		'url': jSONFile,
		'type': 'GET',
		'dataType': 'json',
		timeout: 3000,
		error: function(){
			$('.box_cal').remove();
		},
		success: function(jSONdata) {
			var startYear;
			var startMonth;
			var startDate = new Date();
			var endYear;
			var endMonth;
			var endDate = new Date();
			var today = new Date();
			var weSat;
			var weSun;
			for (prop in jSONdata) {
				startYear = typeof(startYear) == 'undefined' ? parseInt(prop, 10) : startYear;
				endYear = parseInt(prop, 10);
			}
			for (prop in jSONdata[startYear]) {
				startMonth = parseInt(prop, 10);
				break;
			}
			for (prop in jSONdata[endYear]) {
				endMonth = parseInt(prop, 10);
			}
			
			startDate.setFullYear(startYear,startMonth - 1,1);
			endDate.setFullYear(endYear,endMonth,0);
			
			
			$('#j-calendar')
				.datePicker({
					inline				: true,
					startDate			: toFdate(startDate, true),
					endDate				: toFdate(endDate, true),
					showYearNavigation	: false,
					createButton		: false,
					renderCallback		:
						function($td, thisDate, month, year)  {
							if ( !isEvent ( jSONdata, thisDate ) ) {
								$td.addClass('disabled');
							}
							if (thisDate.isWeekend()) {
								$td.addClass('weekend');
							}
						}
				})
			.bind(
				'dateSelected',
				function(e, selectedDate, $td) {
					//console.log('You selected ' + toFdate(selectedDate, false));
					$('#form1 #data_evento').val( toFdate(selectedDate, false) );
					
					$('#form1').attr('action', function(){
						return '/catalogo/eventi/ricercaData.action';
					});  
					$('#form1').submit();
				}
			);
			
			var dataRicerca = $('#data_evento');
			//console.log('Data di partenza: ' + dataRicerca.val());
			
			if(dataRicerca.val() != 'undefined' && dataRicerca.val() != ''){
				var dataAPezzi = dataRicerca.val().split('/');
				today.setFullYear(dataAPezzi[2], dataAPezzi[1]-1, dataAPezzi[0]);
				
				$('#j-calendar').dpSetDisabled(true);
				$('#j-calendar').dpClose();
				$('#j-calendar').dpSetDisplayedMonth(today.getMonth() + 1, today.getFullYear());
				$('#j-calendar').dpSetSelected(today.asString(), true, true);
				$('#j-calendar').dpDisplay();
				$('#j-calendar').dpSetDisabled(false);
				
			}
			
			
			// today management
			if ( isEvent ( jSONdata, today ) ) { 
				$('#cal-today').click( function() {
					$('#j-calendar').dpSetDisabled(true);
					$('#j-calendar').dpClose();
					$('#j-calendar').dpSetDisplayedMonth(today.getMonth() + 1, today.getFullYear());
					$('#j-calendar').dpSetSelected(today.asString(), true, true);
					$('#j-calendar').dpDisplay();
					$('#j-calendar').dpSetDisabled(false);
					//$('#form1 #data_evento').val(toFdate(today, false));
					$('#form1 #data_evento').val('OGGI');
				});
			} else {
				$('#cal-today').hide();
			}
			
			// weekend management
			switch(today.getDay()) {
				case 0:
					weSun = new Date();
					weSun.setDate(today.getDate());
					break;    
				case 6:
					weSat = new Date();
					weSun = new Date();
					weSat.setDate(today.getDate());
					weSun.setDate(today.getDate() + 1);
					break;
				default:
					weSat = new Date();
					weSun = new Date();
					weSat.setDate(today.getDate() + 6 - today.getDay());
					weSun.setDate(today.getDate() + 7 - today.getDay());
			}
			if ( isEvent ( jSONdata, weSat ) ||  isEvent ( jSONdata, weSun ) ) { 
				$('#cal-weekend').click( function() {
					$('#j-calendar').dpSetDisabled(true);
					$('#j-calendar').dpClose();
					$('#j-calendar').dpSetSelected(today.asString(), true, true);
					if ( typeof(weSat) != 'undefined' && isEvent ( jSONdata, weSat )) {
						$('#j-calendar').dpSetSelected(weSat.asString(), true, false);
						$('#j-calendar td.selected').next().addClass("selected")
					} else {
						$('#j-calendar').dpSetSelected(weSun.asString(), true, false);
						$('#j-calendar td.selected').prev().addClass("selected")
					}
					$('#j-calendar').dpDisplay();
					$('#j-calendar').dpSetDisabled(false);
					$('#form1 #data_evento').val('WEEKEND');
				});
			} else {
				$('#cal-weekend').hide();
			}

			function toFdate ( jDate, strPad ) {
				var fDate;
				if ( jDate.constructor === Date) {
					fDate = "";
					if (strPad && jDate.getDate() < 10) {
						fDate += '0';
					}
					fDate += String(jDate.getDate()) + '/';
					if (strPad && jDate.getMonth() < 9) {
						fDate += '0';
					}
					fDate += String(jDate.getMonth() + 1) + '/' + String(jDate.getFullYear());
				}
				return fDate;
			}
			
			function isEvent ( jSONdata, theDay ) {
				if ( typeof(theDay) == 'undefined') {
					return false;
				} 
				if (
					typeof(jSONdata[theDay.getFullYear()]) == 'undefined' || 
					typeof(jSONdata[theDay.getFullYear()][theDay.getMonth() + 1]) == 'undefined' || 
					typeof(jSONdata[theDay.getFullYear()][theDay.getMonth() + 1][theDay.getDate()]) == 'undefined'
				) { 
					return false;
				} else { 
					return true;
				}
			}
			
		}
	});
});

// AGENDA
// METTO ZINDEX PER I BTN NEXT E PREV 
$(window).load(function(){
	$(".dp-nav-prev").css("z-index","5");
	$(".dp-nav-next").css("z-index","5");
});
