<?php

include_once __DIR__.'/../../core.php';

// Impostazione filtri di default a tutte le selezioni la prima volta
if (!isset($_SESSION['dashboard']['idtecnici'])) {
    $rs = $dbo->fetchArray("SELECT an_anagrafiche.idanagrafica AS id FROM an_anagrafiche INNER JOIN (an_tipianagrafiche_anagrafiche INNER JOIN an_tipianagrafiche ON an_tipianagrafiche_anagrafiche.idtipoanagrafica=an_tipianagrafiche.idtipoanagrafica) ON an_anagrafiche.idanagrafica=an_tipianagrafiche_anagrafiche.idanagrafica WHERE deleted_at IS NULL AND descrizione='Tecnico'");

    $_SESSION['dashboard']['idtecnici'] = ["'-1'"];

    for ($i = 0; $i < count($rs); ++$i) {
        $_SESSION['dashboard']['idtecnici'][] = "'".$rs[$i]['id']."'";
    }
}

if (!isset($_SESSION['dashboard']['idstatiintervento'])) {
    $rs = $dbo->fetchArray('SELECT idstatointervento AS id, descrizione FROM in_statiintervento WHERE deleted_at IS NULL');

    $_SESSION['dashboard']['idstatiintervento'] = ["'-1'"];

    for ($i = 0; $i < count($rs); ++$i) {
        $_SESSION['dashboard']['idstatiintervento'][] = "'".$rs[$i]['id']."'";
    }
}

if (!isset($_SESSION['dashboard']['idtipiintervento'])) {
    $rs = $dbo->fetchArray('SELECT idtipointervento AS id, descrizione FROM in_tipiintervento');

    $_SESSION['dashboard']['idtipiintervento'] = ["'-1'"];

    for ($i = 0; $i < count($rs); ++$i) {
        $_SESSION['dashboard']['idtipiintervento'][] = "'".$rs[$i]['id']."'";
    }
}

if (!isset($_SESSION['dashboard']['idzone'])) {
    $rs = $dbo->fetchArray('SELECT id, descrizione FROM an_zone');

    $_SESSION['dashboard']['idzone'] = ["'-1'"];

    // "Nessuna zona" di default
    $_SESSION['dashboard']['idzone'][] = "'0'";

    for ($i = 0; $i < count($rs); ++$i) {
        $_SESSION['dashboard']['idzone'][] = "'".$rs[$i]['id']."'";
    }
}

// Stati intervento
$checks = '';
$count = 0;
$total = 0;

$rs = $dbo->fetchArray('SELECT idstatointervento AS id, descrizione, colore FROM in_statiintervento WHERE deleted_at IS NULL ORDER BY descrizione ASC');
$total = count($rs);

$allchecksstati = '';
for ($i = 0; $i < count($rs); ++$i) {
    $attr = '';

    foreach ($_SESSION['dashboard']['idstatiintervento'] as $idx => $val) {
        if ($val == "'".$rs[$i]['id']."'") {
            $attr = 'checked="checked"';
            ++$count;
        }
    }

    $checks .= "<li><input type='checkbox' id='idstato_".$rs[$i]['id']."' value=\"".$rs[$i]['id'].'" '.$attr." onclick=\"$.when ( session_set_array( 'dashboard,idstatiintervento', '".$rs[$i]['id']."' ) ).promise().then(function( ){ $('#calendar').fullCalendar('refetchEvents'); });  update_counter( 'idstati_count', $('#idstati_ul').find('input:checked').length ); \"> <label for='idstato_".$rs[$i]['id']."'> <span class='badge' style=\"color:".color_inverse($rs[$i]['colore']).'; background:'.$rs[$i]['colore'].';">'.$rs[$i]['descrizione']."</span></label></li>\n";

    $allchecksstati .= "session_set_array( 'dashboard,idstatiintervento', '".$rs[$i]['id']."', 0 ); ";
}

if ($count == $total) {
    $class = 'btn-success';
} elseif ($count == 0) {
    $class = 'btn-danger';
} else {
    $class = 'btn-warning';
}

if ($total == 0) {
    $class = 'btn-primary disabled';
}
?>

<!-- Filtri -->
<div class="row">
	<!-- STATI INTERVENTO -->
	<div class="dropdown col-md-3">
		<a class="btn <?php echo $class; ?> btn-block" data-toggle="dropdown" href="javascript:;" id="idstati_count"><i class="fa fa-filter"></i> <?php echo tr('Stati intervento'); ?> (<?php echo $count.'/'.$total; ?>) <i class="caret"></i></a>

		<ul class="dropdown-menu" role="menu" id="idstati_ul">
			<?php echo $checks; ?>
			<div class="btn-group pull-right">
				<button  id="selectallstati" onclick="<?php echo $allchecksstati; ?>" class="btn btn-primary btn-xs" type="button"><?php echo tr('Tutti'); ?></button>
				<button id="deselectallstati" class="btn btn-danger btn-xs" type="button"><i class="fa fa-times"></i></button>
			</div>

		</ul>
	</div>

<?php
// Tipi intervento
$checks = '';
$count = 0;
$total = 0;

$rs = $dbo->fetchArray('SELECT idtipointervento AS id, descrizione FROM in_tipiintervento ORDER BY descrizione ASC');
$total = count($rs);

$allcheckstipi = '';
for ($i = 0; $i < count($rs); ++$i) {
    $attr = '';

    foreach ($_SESSION['dashboard']['idtipiintervento'] as $idx => $val) {
        if ($val == "'".$rs[$i]['id']."'") {
            $attr = 'checked="checked"';
            ++$count;
        }
    }

    $checks .= "<li><input type='checkbox' id='idtipo_".$rs[$i]['id']."' value=\"".$rs[$i]['id'].'" '.$attr." onclick=\"$.when ( session_set_array( 'dashboard,idtipiintervento', '".$rs[$i]['id']."' ) ).promise().then(function( ){ $('#calendar').fullCalendar('refetchEvents');  }); update_counter( 'idtipi_count', $('#idtipi_ul').find('input:checked').length ); \"> <label for='idtipo_".$rs[$i]['id']."'> ".$rs[$i]['descrizione']."</label></li>\n";

    $allcheckstipi .= "session_set_array( 'dashboard,idtipiintervento', '".$rs[$i]['id']."', 0 ); ";
}

if ($count == $total) {
    $class = 'btn-success';
} elseif ($count == 0) {
    $class = 'btn-danger';
} else {
    $class = 'btn-warning';
}

if ($total == 0) {
    $class = 'btn-primary disabled';
}
?>
	<!-- TIPI DI INTERVENTO -->
	<div class="dropdown col-md-3">
		<a class="btn <?php echo $class; ?> btn-block" data-toggle="dropdown" href="javascript:;" id="idtipi_count"><i class="fa fa-filter"></i> <?php echo tr('Tipi intervento'); ?> (<?php echo $count.'/'.$total; ?>) <i class="caret"></i></a>

		<ul class="dropdown-menu" role="menu" id="idtipi_ul">
			<?php echo $checks; ?>
			<div class="btn-group pull-right">
				<button  id="selectalltipi" onclick="<?php echo $allcheckstipi; ?>" class="btn btn-primary btn-xs" type="button"><?php echo tr('Tutti'); ?></button>
				<button id="deselectalltipi" class="btn btn-danger btn-xs" type="button"><i class="fa fa-times"></i></button>
			</div>

		</ul>

	</div>

<?php
// Tecnici
$checks = '';
$count = 0;
$total = 0;
$totale_tecnici = 0; // conteggia tecnici eliminati e non

$rs = $dbo->fetchArray("SELECT an_anagrafiche.idanagrafica AS id, ragione_sociale, colore FROM an_anagrafiche INNER JOIN (an_tipianagrafiche_anagrafiche INNER JOIN an_tipianagrafiche ON an_tipianagrafiche_anagrafiche.idtipoanagrafica=an_tipianagrafiche.idtipoanagrafica) ON an_anagrafiche.idanagrafica=an_tipianagrafiche_anagrafiche.idanagrafica
LEFT OUTER JOIN in_interventi_tecnici ON  in_interventi_tecnici.idtecnico = an_anagrafiche.idanagrafica  INNER JOIN in_interventi ON in_interventi_tecnici.idintervento=in_interventi.id
WHERE an_anagrafiche.deleted_at IS NULL AND an_tipianagrafiche.descrizione='Tecnico' ".Modules::getAdditionalsQuery('Interventi').' GROUP BY an_anagrafiche.idanagrafica ORDER BY ragione_sociale ASC');
$total = count($rs);

$totale_tecnici += $total;

$allchecktecnici = '';
for ($i = 0; $i < count($rs); ++$i) {
    $attr = '';

    foreach ($_SESSION['dashboard']['idtecnici'] as $idx => $val) {
        if ($val == "'".$rs[$i]['id']."'") {
            $attr = 'checked="checked"';
            ++$count;
        }
    }

    $checks .= "<li><input type='checkbox' id='tech_".$rs[$i]['id']."' value=\"".$rs[$i]['id'].'" '.$attr." onclick=\"$.when ( session_set_array( 'dashboard,idtecnici', '".$rs[$i]['id']."' ) ).promise().then(function( ){ $('#calendar').fullCalendar('refetchEvents'); }); update_counter( 'idtecnici_count', $('#idtecnici_ul').find('input:checked').length );  \"> <label for='tech_".$rs[$i]['id']."'><span class='badge' style=\"color:#000; background:transparent; border: 1px solid ".$rs[$i]['colore'].';">'.$rs[$i]['ragione_sociale']."</span></label></li>\n";

    $allchecktecnici .= "session_set_array( 'dashboard,idtecnici', '".$rs[$i]['id']."', 0 ); ";
}

// TECNICI ELIMINATI CON ALMENO 1 INTERVENTO
$rs = $dbo->fetchArray("SELECT an_anagrafiche.idanagrafica AS id, ragione_sociale FROM an_anagrafiche INNER JOIN (an_tipianagrafiche_anagrafiche INNER JOIN an_tipianagrafiche ON an_tipianagrafiche_anagrafiche.idtipoanagrafica=an_tipianagrafiche.idtipoanagrafica) ON an_anagrafiche.idanagrafica=an_tipianagrafiche_anagrafiche.idanagrafica INNER JOIN in_interventi_tecnici ON in_interventi_tecnici.idtecnico = an_anagrafiche.idanagrafica WHERE deleted_at IS NOT NULL AND descrizione='Tecnico' GROUP BY an_anagrafiche.idanagrafica ORDER BY ragione_sociale ASC");
$total = count($rs);

$totale_tecnici += $total;

if ($total > 0) {
    $checks .= "<li><hr>Tecnici eliminati:</li>\n";
    for ($i = 0; $i < count($rs); ++$i) {
        $attr = '';

        foreach ($_SESSION['dashboard']['idtecnici'] as $idx => $val) {
            if ($val == "'".$rs[$i]['id']."'") {
                $attr = 'checked="checked"';
                ++$count;
            }
        }

        $checks .= "<li><input type='checkbox' id='tech_".$rs[$i]['id']."' value=\"".$rs[$i]['id'].'" '.$attr." onclick=\"$.when ( session_set_array( 'dashboard,idtecnici', '".$rs[$i]['id']."' ) ).promise().then(function( ){ $('#calendar').fullCalendar('refetchEvents');  }); update_counter( 'idtecnici_count', $('#idtecnici_ul').find('input:checked').length ); \"> <label for='tech_".$rs[$i]['id']."'> ".$rs[$i]['ragione_sociale']."</label></li>\n";

        $allchecktecnici .= "session_set_array( 'dashboard,idtecnici', '".$rs[$i]['id']."', 0 ); ";
    } // end for
} // end if

if ($count == $totale_tecnici) {
    $class = 'btn-success';
} elseif ($count == 0) {
    $class = 'btn-danger';
} else {
    $class = 'btn-warning';
}

if ($totale_tecnici == 0) {
    $class = 'btn-primary disabled';
}

?>
	<!-- TECNICI -->
	<div class="dropdown col-md-3">
		<a class="btn <?php echo $class; ?> btn-block" data-toggle="dropdown" href="javascript:;" id="idtecnici_count"><i class="fa fa-filter"></i> <?php echo tr('Tecnici'); ?> (<?php echo $count.'/'.$totale_tecnici; ?>) <i class="caret"></i></a>

		<ul class="dropdown-menu" role="menu" id="idtecnici_ul">
			<?php echo $checks; ?>
			<div class="btn-group pull-right">
				<button id="selectalltecnici" onclick="<?php echo $allchecktecnici; ?>" class="btn btn-primary btn-xs" type="button"><?php echo tr('Tutti'); ?></button>
				<button id="deselectalltecnici" class="btn btn-danger btn-xs" type="button"><i class="fa fa-times"></i></button>
			</div>
		</ul>
	</div>


<?php
// Zone
$allcheckzone = null;

$checks = '';
$count = 0;
$total = 0;

$rs = $dbo->fetchArray('(SELECT 0 AS ordine, \'0\' AS id, \'Nessuna zona\' AS descrizione) UNION (SELECT 1 AS ordine, id, descrizione FROM an_zone) ORDER BY ordine, descrizione ASC');
$total = count($rs);

for ($i = 0; $i < count($rs); ++$i) {
    $attr = '';

    foreach ($_SESSION['dashboard']['idzone'] as $idx => $val) {
        if ($val == "'".$rs[$i]['id']."'") {
            $attr = 'checked="checked"';
            ++$count;
        }
    }

    $checks .= "<li><input type='checkbox' id='idzone_".$rs[$i]['id']."' value=\"".$rs[$i]['id'].'" '.$attr." 	onclick=\"$.when ( session_set_array( 'dashboard,idzone', '".$rs[$i]['id']."' ) ).promise().then(function( ){ $('#calendar').fullCalendar('refetchEvents'); update_counter( 'idzone_count', $('#idzone_ul').find('input:checked').length ); }); \"> <label for='idzone_".$rs[$i]['id']."'> ".$rs[$i]['descrizione']."</label></li>\n";

    $allcheckzone = "session_set_array( 'dashboard,idzone', '".$rs[$i]['id']."', 0 ); ";
}

if ($count == $total) {
    $class = 'btn-success';
} elseif ($count == 0) {
    $class = 'btn-danger';
} else {
    $class = 'btn-warning';
}

if ($total == 0) {
    $class = 'btn-primary disabled';
}
?>
	<!-- ZONE -->
	<div class="dropdown col-md-3">
		<a class="btn <?php echo $class; ?> btn-block" data-toggle="dropdown" href="javascript:;" id="idzone_count"><i class="fa fa-filter"></i> <?php echo tr('Zone'); ?> (<?php echo $count.'/'.$total; ?>) <i class="caret"></i></a>

		<ul class="dropdown-menu" role="menu" id="idzone_ul">
			<?php echo $checks; ?>
			<div class="btn-group pull-right">
				<button id="selectallzone" onclick="<?php echo $allcheckzone; ?>" class="btn btn-primary btn-xs" type="button"><?php echo tr('Tutti'); ?></button>
				<button id="deselectallzone" class="btn btn-danger btn-xs" type="button"><i class="fa fa-times"></i></button>
			</div>
		</ul>
	</div>
</div>
<br>
<?php
$qp = 'SELECT MONTH(data_richiesta) AS mese, YEAR(data_richiesta) AS anno FROM (co_promemoria INNER JOIN co_contratti ON co_promemoria.idcontratto=co_contratti.id) INNER JOIN an_anagrafiche ON co_contratti.idanagrafica=an_anagrafiche.idanagrafica WHERE idcontratto IN( SELECT id FROM co_contratti WHERE idstato IN(SELECT id FROM co_staticontratti WHERE is_pianificabile = 1) ) AND idintervento IS NULL

UNION SELECT MONTH(data_scadenza) AS mese, YEAR(data_scadenza) AS anno FROM (co_ordiniservizio INNER JOIN co_contratti ON co_ordiniservizio.idcontratto=co_contratti.id) INNER JOIN an_anagrafiche ON co_contratti.idanagrafica=an_anagrafiche.idanagrafica WHERE idcontratto IN( SELECT id FROM co_contratti WHERE idstato IN(SELECT id FROM co_staticontratti WHERE is_pianificabile = 1) ) AND idintervento IS NULL

UNION SELECT MONTH(data_richiesta) AS mese, YEAR(data_richiesta) AS anno FROM in_interventi INNER JOIN an_anagrafiche ON in_interventi.idanagrafica=an_anagrafiche.idanagrafica WHERE (SELECT COUNT(*) FROM in_interventi_tecnici WHERE in_interventi_tecnici.idintervento = in_interventi.id) = 0 ORDER BY anno,mese';
$rsp = $dbo->fetchArray($qp);

if (!empty($rsp)) {
    echo '
<div class="row">
    <div class="col-md-10">';
}

echo '
<div id="calendar"></div>';

if (!empty($rsp)) {
    echo '
    </div>

    <div id="external-events" class="hidden-xs hidden-sm col-md-2">
        <h4>'.tr('Promemoria da pianificare').'</h4>';

    // Controllo pianificazioni mesi precedenti
    $qp_old = 'SELECT co_promemoria.id FROM co_promemoria INNER JOIN co_contratti ON co_promemoria.idcontratto=co_contratti.id WHERE idstato IN(SELECT id FROM co_staticontratti WHERE is_pianificabile = 1) AND idintervento IS NULL AND DATE_ADD(co_promemoria.data_richiesta, INTERVAL 1 DAY) <= NOW()

    UNION SELECT co_ordiniservizio.id FROM co_ordiniservizio INNER JOIN co_contratti ON co_ordiniservizio.idcontratto=co_contratti.id WHERE idstato IN(SELECT id FROM co_staticontratti WHERE is_pianificabile = 1) AND idintervento IS NULL AND DATE_ADD(co_ordiniservizio.data_scadenza, INTERVAL 1 DAY) <= NOW()

    UNION SELECT in_interventi.id FROM in_interventi INNER JOIN an_anagrafiche ON in_interventi.idanagrafica=an_anagrafiche.idanagrafica WHERE (SELECT COUNT(*) FROM in_interventi_tecnici WHERE in_interventi_tecnici.idintervento = in_interventi.id) = 0 AND DATE_ADD(in_interventi.data_richiesta, INTERVAL 1 DAY) <= NOW()';
    $rsp_old = $dbo->fetchNum($qp_old);

    if ($rsp_old > 0) {
        echo '<div class="alert alert-warning alert-dismissible" role="alert"><i class="fa fa-exclamation-triangle"></i><button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button> '.tr('Ci sono '.$rsp_old.' interventi scaduti da pianificare.').'</div>';
    }

    $mesi = months();

    // Creo un array con tutti i mesi che contengono interventi
    $mesi_interventi = [];
    for ($i = 0; $i < sizeof($rsp); ++$i) {
        $mese_n = $rsp[$i]['mese'].$rsp[$i]['anno'];
        $mese_t = $mesi[intval($rsp[$i]['mese'])].' '.$rsp[$i]['anno'];
        $mesi_interventi[$mese_n] = $mese_t;
    }

    // Aggiungo anche il mese corrente
    $mesi_interventi[date('m').date('Y')] = $mesi[intval(date('m'))].' '.date('Y');

    // Rimuovo i mesi doppi
    array_unique($mesi_interventi);

    // Ordino l'array per anno
    foreach ($mesi_interventi as $key => &$data) {
        ksort($data);
    }

    echo '<select class="superselect" id="select-intreventi-pianificare">';

    foreach ($mesi_interventi as $key => $mese_intervento) {
        echo '<option value="'.$key.'">'.$mese_intervento.'</option>';
    }

    echo '</select>';

    echo '<div id="interventi-pianificare"></div>';

    echo '
    </div>
</div>';
}

$vista = setting('Vista dashboard');
if ($vista == 'mese') {
    $def = 'month';
} elseif ($vista == 'giorno') {
    $def = 'agendaDay';
} else {
    $def = 'agendaWeek';
}
?>

<script type="text/javascript">
	
	function load_interventi_da_pianificare(mese){
		
		if (mese == undefined){
			// Seleziono il mese corrente per gli interventi da pianificare
			var date = new Date();
			var mese;
			date.setDate(date.getDate());

			//Note: January is 0, February is 1, and so on.
			mese = ('0' + (date.getMonth()+1)).slice(-2) + date.getFullYear();

			$('#select-intreventi-pianificare option[value='+mese+']').attr('selected','selected').trigger('change');
		}
		
		$('#interventi-pianificare').html('<center><br><br><i class=\'fa fa-refresh fa-spin fa-2x fa-fw\'></i></center>');
		$.get( '<?php echo $rootdir; ?>/modules/dashboard/actions.php', { op: 'load_intreventi', mese: mese }, function(data){
			
        })
		.done(function( data ) {
			$('#interventi-pianificare').html(data);
			$('#external-events .fc-event').each(function() {
                $(this).draggable({
                    zIndex: 999,
                    revert: true,
                    revertDuration: 0
                });
            });
			
		});
		
	}
    $('#select-intreventi-pianificare').change(function(){
        var mese = $(this).val();
        load_interventi_da_pianificare(mese);

    });

	$(document).ready(function() {
       
		
		load_interventi_da_pianificare();

        // Comandi seleziona tutti
        $('#selectallstati').click(function(event) {

            $(this).parent().parent().find('li input[type=checkbox]').each(function(i) { // loop through each checkbox
             	this.checked = true;
				$.when (session_set_array( 'dashboard,idstatiintervento', this.value, 0 )).promise().then(function() {
					$('#calendar').fullCalendar('refetchEvents');
				});

				i++;
				update_counter( 'idstati_count',i);

            });

        });

        $('#selectalltipi').click(function(event) {

            $(this).parent().parent().find('li input[type=checkbox]').each(function(i) { // loop through each checkbox
				this.checked = true;
				$.when (session_set_array( 'dashboard,idtipiintervento', this.value, 0 )).promise().then(function() {
					$('#calendar').fullCalendar('refetchEvents');
				});
				i++;
				update_counter( 'idtipi_count', i);

            });

        });

        $('#selectalltecnici').click(function(event) {

            $(this).parent().parent().find('li input[type=checkbox]').each(function(i) { // loop through each checkbox
				this.checked = true;
				$.when (session_set_array( 'dashboard,idtecnici', this.value, 0 )).promise().then(function() {
					$('#calendar').fullCalendar('refetchEvents');
				});
				i++;
				update_counter( 'idtecnici_count', i);
            });

        });

        $('#selectallzone').click(function(event) {

            $(this).parent().parent().find('li input[type=checkbox]').each(function(i) { // loop through each checkbox
				this.checked = true;
				 $.when (session_set_array( 'dashboard,idzone', this.value, 0 )).promise().then(function() {
						$('#calendar').fullCalendar('refetchEvents');
				});

				i++
				update_counter( 'idzone_count', i);

            });

        });

        // Comandi deseleziona tutti
        $('#deselectallstati').click(function(event) {

			$(this).parent().parent().find('li input[type=checkbox]').each(function() { // loop through each checkbox
				this.checked = false;
				 $.when (session_set_array( 'dashboard,idstatiintervento', this.value, 1 )).promise().then(function() {
						$('#calendar').fullCalendar('refetchEvents');
				});

				update_counter( 'idstati_count', 0);

            });

        });

        $('#deselectalltipi').click(function(event) {

			$(this).parent().parent().find('li input[type=checkbox]').each(function() { // loop through each checkbox
				this.checked = false;
				 $.when (session_set_array( 'dashboard,idtipiintervento', this.value, 1 )).promise().then(function() {
						$('#calendar').fullCalendar('refetchEvents');
				});


				update_counter( 'idtipi_count', 0);

            });

        });

        $('#deselectalltecnici').click(function(event) {

			$(this).parent().parent().find('li input[type=checkbox]').each(function() { // loop through each checkbox
				this.checked = false;
				 $.when (session_set_array( 'dashboard,idtecnici', this.value, 1 )).promise().then(function() {
						$('#calendar').fullCalendar('refetchEvents');
				});

				update_counter( 'idtecnici_count', 0);

            });

        });

        $('#deselectallzone').click(function(event) {

			$(this).parent().parent().find('li input[type=checkbox]').each(function() { // loop through each checkbox
				this.checked = false;
				$.when (session_set_array( 'dashboard,idzone', this.value, 1 )).promise().then(function() {
						$('#calendar').fullCalendar('refetchEvents');
				});

				update_counter( 'idzone_count', 0);

            });

        });

        // Creazione del calendario
		create_calendar();

        // Data di default
        $('.fc-prev-button, .fc-next-button, .fc-today-button').click(function(){
            var date_start = $('#calendar').fullCalendar('getView').start.format('YYYY-MM-DD');
            date_start = moment(date_start);

            if('<?php echo $def; ?>'=='month'){
                if(date_start.date()>1){
                    date_start = moment(date_start).add(1, 'M').startOf('month');
                }
            }

            date_start = date_start.format('YYYY-MM-DD');
            setCookie('calendar_date_start', date_start, 365);
        });

        calendar_date_start = getCookie('calendar_date_start');
		if (calendar_date_start!='')
			$('#calendar').fullCalendar( 'gotoDate', calendar_date_start );

	});

	function create_calendar(){
        $('#external-events .fc-event').each(function() {

			// store data so the calendar knows to render an event upon drop
			$(this).data('event', {
				title: $.trim($(this).text()), // use the element's text as the event title
				stick: false // maintain when user navigates (see docs on the renderEvent method)
			});

			// make the event draggable using jQuery UI
			$(this).draggable({
				zIndex: 999,
				revert: true,     // will cause the event to go back to its
				revertDuration: 0  //  original position after the drag
			});

		});

		var calendar = $('#calendar').fullCalendar({
            locale: globals.locale,
<?php
$domenica = setting('Visualizzare la domenica sul calendario');
if (empty($domenica)) {
    echo '
            hiddenDays: [ 0 ],';
}
?>
			header: {
				left: 'prev,next today',
				center: 'title',
				right: 'month,agendaWeek,agendaDay'
			},
			timeFormat: 'H:mm',
            slotLabelFormat: "H:mm",
			slotDuration: '00:15:00',
            defaultView: '<?php echo $def; ?>',
<?php

echo "
            minTime: '".setting('Inizio orario lavorativo')."',
            maxTime: '".((setting('Fine orario lavorativo') == '00:00') ?: '23:59:59')."',
";

?>
            lazyFetching: true,
			selectHelper: true,
			eventLimit: false, // allow "more" link when too many events
			allDaySlot: false,
            loading: function(isLoading, view) {
                if(isLoading) {
 					$('#tiny-loader').fadeIn();
                } else {
                    $('#tiny-loader').hide();
                }
            },
<?php
if (Modules::getPermission('Interventi') == 'rw') {
    ?>
            droppable: true,
            drop: function(date, jsEvent, ui, resourceId) {
                data = moment(date).format("YYYY-MM-DD");
				ora_dal = moment(date).format("HH:mm");
                ora_al = moment(date).add(1, 'hours').format("HH:mm");

                ref = $(this).data('ref');
                if (ref == 'ordine') {
                    name = 'idordineservizio';
                } else if (ref == 'promemoria') {
                    name = 'idcontratto_riga';
                } else {
                    name = 'id_intervento';
                }

                launch_modal('<?php echo tr('Pianifica intervento'); ?>', globals.rootdir + '/add.php?id_module=<?php echo Modules::get('Interventi')['id']; ?>&data='+data+'&orario_inizio='+ora_dal+'&orario_fine='+ora_al+'&ref=dashboard&idcontratto=' + $(this).data('idcontratto') + '&' + name + '=' + $(this).data('id'), 1);

                $(this).remove();

                $('#bs-popup').on('hidden.bs.modal', function () {
                    $('#calendar').fullCalendar('refetchEvents');
                });
            },

            selectable: true,
			select: function(start, end, allDay) {
				data = moment(start).format("YYYY-MM-DD");
				ora_dal = moment(start).format("HH:mm");
				ora_al = moment(end).format("HH:mm");

                launch_modal('<?php echo tr('Aggiungi intervento'); ?>', globals.rootdir + '/add.php?id_module=<?php echo Modules::get('Interventi')['id']; ?>&ref=dashboard&data='+data+'&orario_inizio='+ora_dal+'&orario_fine='+ora_al, 1 );

				$('#calendar').fullCalendar('unselect');
			},

            editable: true,
            eventDrop: function(event,dayDelta,minuteDelta,revertFunc) {
				$.get(globals.rootdir + "/modules/dashboard/actions.php?op=update_intervento&id="+event.id+"&idintervento="+event.idintervento+"&timeStart="+moment(event.start).format("YYYY-MM-DD HH:mm")+"&timeEnd="+moment(event.end).format("YYYY-MM-DD HH:mm"), function(data,response){
					if( response=="success" ){
						data = $.trim(data);
						if( data!="ok" ){
							alert(data);
							$('#calendar').fullCalendar('refetchEvents');
							revertFunc();
						}
						else{
							return false;
						}
					}
				});
			},
            eventResize: function(event,dayDelta,minuteDelta,revertFunc) {
				$.get(globals.rootdir + "/modules/dashboard/actions.php?op=update_intervento&id="+event.id+"&idintervento="+event.idintervento+"&timeStart="+moment(event.start).format("YYYY-MM-DD HH:mm")+"&timeEnd="+moment(event.end).format("YYYY-MM-DD HH:mm"), function(data,response){
					if( response=="success" ){
						data = $.trim(data);
						if(data != "ok"){
							alert(data);
							$('#calendar').fullCalendar('refetchEvents');
							revertFunc();
						}
						else{
							return false;
						}
					}
				});
			},
<?php
}
?>
			eventAfterRender: function(event, element) {
				element.find('.fc-title').html(event.title);
                element.data('idintervento', event.idintervento);
<?php

if (setting('Utilizzare i tooltip sul calendario') == '1') {
    ?>
				element.mouseover( function(){
				    if( !element.hasClass('tooltipstered') ){
				        $(this).data('idintervento', event.idintervento );
				        
				        $.get(globals.rootdir + "/modules/dashboard/actions.php?op=get_more_info&id="+$(this).data('idintervento'), function(data,response){
							if( response=="success" ){
								data = $.trim(data);
								if( data!="ok" ){
									element.tooltipster({
										content: data,
										animation: 'grow',
										contentAsHTML: true,
										hideOnClick: true,
										onlyOne: true,
										speed: 200,
										delay: 100,
										maxWidth: 400,
										theme: 'tooltipster-shadow',
										touchDevices: true,
										trigger: 'hover',
										position: 'left'
									});
								}
								else{
									return false;
								}

				                $('#calendar').fullCalendar('option', 'contentHeight', 'auto');
				            }
				        });
					}
				});
<?php
}
?>
			},
            events: {
				url: globals.rootdir + "/modules/dashboard/actions.php?op=get_current_month",
                type: 'GET',
				error: function() {
					alert('<?php echo tr('Errore durante la creazione degli eventi'); ?>');
				}
			}
		});
	}
</script>