<?php
/* Copyright (C) 2001-2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
 * Copyright (C) 2003      Eric Seigne          <erics@rycks.com>
 * Copyright (C) 2004-2018 Laurent Destailleur  <eldy@users.sourceforge.net>
 * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@inodbox.com>
 * Copyright (C) 2011      Juanjo Menent        <jmenent@2byte.es>
 * Copyright (C) 2014      Cedric GROSS         <c.gross@kreiz-it.fr>
 * Copyright (C) 2015      Marcos García        <marcosgdf@gmail.com>
 * Copyright (C) 2017      Open-DSI             <support@open-dsi.fr>
 * Copyright (C) 2018-2021 Frédéric France      <frederic.france@netlogic.fr>
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 3 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program. If not, see <https://www.gnu.org/licenses/>.
 */


/**
 *  \file       htdocs/custom/booking/booking_agenda.php
 *  \ingroup    agenda
 *  \brief      Home page of calendar events
 */

// Load Dolibarr environment
require '../../main.inc.php';
require_once DOL_DOCUMENT_ROOT . '/custom/booking/reservation.class.php';

if (isModEnabled('project')) {
    require_once DOL_DOCUMENT_ROOT . '/core/class/html.formprojet.class.php';
}

if (!isset($conf->global->AGENDA_MAX_EVENTS_DAY_VIEW)) {
    $conf->global->AGENDA_MAX_EVENTS_DAY_VIEW = 3;
}

if (empty($conf->global->AGENDA_EXT_NB)) {
    $conf->global->AGENDA_EXT_NB = 5;
}
$MAXAGENDA = $conf->global->AGENDA_EXT_NB;

$disabledefaultvalues = GETPOST('disabledefaultvalues', 'int');

$check_holiday = GETPOST('check_holiday', 'int');
$filter = GETPOST("search_filter", 'alpha', 3) ? GETPOST("search_filter", 'alpha', 3) : GETPOST("filter", 'alpha', 3);
$filtert = GETPOST("search_filtert", "int", 3) ? GETPOST("search_filtert", "int", 3) : GETPOST("filtert", "int", 3);
$usergroup = GETPOST("search_usergroup", "int", 3) ? GETPOST("search_usergroup", "int", 3) : GETPOST("usergroup", "int", 3);
$showbirthday = empty($conf->use_javascript_ajax) ? GETPOST("showbirthday", "int") : 1;

// If not choice done on calendar owner (like on left menu link "Agenda"), we filter on user.
if (empty($filtert) && empty($conf->global->AGENDA_ALL_CALENDARS)) {
    $filtert = $user->id;
}

$newparam = '';

$sortfield = GETPOST('sortfield', 'aZ09comma');
$sortorder = GETPOST('sortorder', 'aZ09comma');
$page = GETPOSTISSET('pageplusone') ? (GETPOST('pageplusone') - 1) : GETPOST("page", 'int');
if (empty($page) || $page == -1) {
    $page = 0;
}     // If $page is not defined, or '' or -1
$limit = GETPOST('limit', 'int') ? GETPOST('limit', 'int') : $conf->liste_limit;
$offset = $limit * $page;
if (!$sortorder) {
    $sortorder = "ASC";
}
if (!$sortfield) {
    $sortfield = "a.datec";
}

// Security check
$socid = GETPOST("search_socid", "int") ? GETPOST("search_socid", "int") : GETPOST("socid", "int");
if ($user->socid) {
    $socid = $user->socid;
}
if ($socid < 0) {
    $socid = '';
}

$canedit = 1;
if (empty($user->rights->agenda->myactions->read)) {
    accessforbidden();
}
if (empty($user->rights->agenda->allactions->read)) {
    $canedit = 0;
}
if (empty($user->rights->agenda->allactions->read) || $filter == 'mine') {  // If no permission to see all, we show only affected to me
    $filtert = $user->id;
}

$action = GETPOST('action', 'aZ09');
$time1 = GETPOST('time1', 'none');
$time2 = GETPOST('time2', 'none');
$facilitie = GETPOST('facilitie', 'numeric');
$area = GETPOST('area', 'numeric');
$profile = GETPOST('profile', 'numeric');
$daterange = GETPOST('daterange', 'none');
$addreservation = GETPOST('addreservation', 'numeric');

$mode = GETPOST('mode', 'aZ09');
if (empty($mode) && preg_match('/show_/', $action)) {
    $mode = $action;    // For backward compatibility
}

// Load translation files required by the page
$langs->loadLangs(array('agenda', 'other', 'commercial'));

// Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context
$hookmanager->initHooks(array('agenda'));

$result = restrictedArea($user, 'agenda', 0, 'actioncomm&societe', 'myactions|allactions', 'fk_soc', 'id');
if ($user->socid && $socid) {
    $result = restrictedArea($user, 'societe', $socid);
}

$reshook = $hookmanager->executeHooks('beforeAgenda', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks
if ($reshook < 0) {
    setEventMessages($hookmanager->error, $hookmanager->errors, 'errors');
}

$help_url = 'EN:Module_Agenda_En|FR:Module_Agenda|ES:M&oacute;dulo_Agenda';
llxHeader('', $langs->trans("Agenda"), $help_url);
$form = new Form($db);
$reservation = new Reservation();

$facilities = ["1" => "Gellért fürdő", "2" => "Széchenyi fürdő", "3" => "Lukács fürdő"];
$area2 = [
    "1" => ["1" => "Medence_1", "2" => "Medence_2", "3" => "Focipálya"],
    "2" => ["1" => "Medence_1", "2" => "Medence_2"],
    "3" => ["1" => "Medence_1", "2" => "Focipálya"]
];
$areas = ["1" => "Medence_1", "2" => "Medence_2", "3" => "Focipálya"];
$profiles = [
    "1" => ["id" => 1, "idclass" => "SwimmingPoolLine", "name" => "SwimmingPool", "lines" => "6", "type" => 'H', "frameName" => "SwimmingPoolTitle"],
    "2" => ["id" => 2, "idclass" => "PoolLine", "name" => "Pool", "lines" => "4", "type" => 'V', "frameName" => "PoolTitle"],
    "3" => ["id" => 3, "idclass" => "PoloLine", "name" => "Polo", "lines" => "3", "type" => 'V', "frameName" => "PoloTitle"]
];

//print_r($_REQUEST);

if ($addreservation == 1) {
    print_r($_REQUEST);
    /* $reservation = new stdClass();
    $reservation->facilitie = $facilitie;
    $reservation->area = $area;
    $reservation->daterange = $daterange;
    $reservation->profile = $profile;
    $reservation->fromtime = $time1;
    $reservation->totime = $time2;
    print_r($reservation);exit; */
}

// Fürdő és Medence választás
print '<div class="container mt-5"><h2>' . $langs->trans("reservationTitle") . '</h2><form id="reservatonForm" name="reservatonForm" onsubmit="return validatePage()">';
print '<div class="container2">';
print '<div style="width:100%; text-align:center; margin-top: 20px; margin-bottom: 20px;">
<button type="button" style="width:25%;margin: 0em; margin-top: 20px;" class="butSetDefault" onclick="setDefault()">' . $langs->trans('SetDefault') . '</button></div>';
print '</div>';

print '<div class="container2">';
if ($daterange == '') {
    $daterange = date("Y-m-d", dol_now()) . ' - ' . date("Y-m-d", dol_now());
}
$reservation->generateSelectorInput('facilitie', $facilities, $facilitie);
print '<div class="box areaClass displayNone"></div>';
$reservation->generateSelectorDateInput('date', $daterange);
print '<div class="box profileClass displayNone"></div>';
print '</div>';
$time1Value = $time1 == '' ? '06:00' : $time1;
$time2Value = $time2 == '' ? '22:00' : $time2;
//$reservation->generateTimerLine($time1Value, $time2Value);
print '<div class="timerClass displayNone" style="margin: 20px 5px 0px 5px; text-align: center; background-color: lightgrey; padding-top: 10px; padding-bottom: 10px;">
        <button type="button" onclick="adjustTime(\'time1\',\'decrease\')">-</button>
        <input style="text-align: center;" type="text" pattern="[0-9]+:[0-9]{2}$" placeholder="hh:mm" id="time1" name="time1" maxlength="5" value="' . $time1Value . '" readonly>
        <button type="button" onclick="adjustTime(\'time1\',\'increase\')">+</button>
        - 
        <button type="button" onclick="adjustTime(\'time2\',\'decrease\')">-</button>
        <input style="text-align: center;" type="text" pattern="[0-9]+:[0-9]{2}$" placeholder="hh:mm" id="time2" name="time2" maxlength="5" value="' . $time2Value . '" readonly>
        <button type="button" onclick="adjustTime(\'time2\',\'increase\')">+</button>
        </div>';
print '<div class="profileTypeClass"></div>';
print '<div style="width:100%; margin: 0px 5px 0px 5px;"><button style="width:100%;margin: 0em; margin-top: 20px;" id="addreservation" name="addreservation" type="submit" value="1" class="butAction">Küldés</button></div>';
print '</div>';
print '</form></div>';
?>
<link rel="stylesheet" type="text/css" href="reservation.css">
<script>
    var gen = {
        setElem: "ok",
        init: function() {
            var now = new Date;
            $("#date-range").attr("date-start", now.toISOString().slice(0, 10));
            $("#date-range").attr("date-end", now.toISOString().slice(0, 10));

            $(document).on("input", ".timestart", function(event) {
                if (gen.setElem == "ok") {
                    gen.setElem = "input";
                    var elem = $(this);
                    var a = (elem.val()).split(":");
                    var b = (elem.parent().find(".durationtime").val()).split(":");
                    var time = new Date();
                    time.setHours(parseInt(a[0]), parseInt(a[1]), 00, 000);
                    time.setMinutes(time.getMinutes() + parseInt(b[1]));
                    time.setHours(time.getHours() + parseInt(b[0]));
                    // var c = [time.getHours(), time.getMinutes()];
                    elem.parent().find(".timeend").val(time.getHours() + ":" + time.getMinutes())
                    var minutes = [parseInt(a[0]) * 60 + parseInt(a[1]), parseInt(b[0]) * 60 + parseInt(b[1])];
                    if (isNaN(minutes[0])) {
                        minutes[0] = 0;
                    }
                    if (isNaN(minutes[1])) {
                        minutes[1] = 0;
                    }
                    elem.parent().parent().find(".time_slider").slider("values", 0, minutes[0]);
                    elem.parent().parent().find(".time_slider").slider("values", 1, minutes[0] + minutes[1]);
                    elem.parent().find(".timestart").attr("info", minutes[0]);
                    elem.parent().find(".timeend").attr("info", minutes[0] + minutes[1]);
                    // elem.parent().find(".durationtime").attr("info",minutes[1]);
                    gen.setElem = "ok";
                }
            });
            $(document).on("input", ".durationtime", function(event) {
                if (gen.setElem == "ok") {
                    gen.setElem = "input";
                    var elem = $(this);
                    var a = (elem.parent().find(".timestart").val()).split(":");
                    var b = (elem.val()).split(":");
                    var time = new Date();
                    time.setHours(parseInt(a[0]), parseInt(a[1]), 00, 000);
                    time.setMinutes(time.getMinutes() + parseInt(b[1]));
                    time.setHours(time.getHours() + parseInt(b[0]));
                    // var c = [time.getHours(), time.getMinutes()];
                    elem.parent().find(".timeend").val(time.getHours() + ":" + time.getMinutes())
                    var minutes = [parseInt(a[0]) * 60 + parseInt(a[1]), parseInt(b[0]) * 60 + parseInt(b[1])];
                    if (isNaN(minutes[0])) {
                        minutes[0] = 0;
                    }
                    if (isNaN(minutes[1])) {
                        minutes[1] = 0;
                    }
                    // console.log(minutes);
                    elem.parent().parent().find(".time_slider").slider("values", 0, minutes[0]);
                    elem.parent().parent().find(".time_slider").slider("values", 1, minutes[0] + minutes[1]);
                    elem.parent().find(".timestart").attr("info", minutes[0]);
                    elem.parent().find(".timeend").attr("info", minutes[0] + minutes[1]);
                    // elem.parent().find(".durationtime").attr("info",minutes[1]);
                    gen.setElem = "ok";
                }
            });


            var option = {
                //autoUpdateInput: false,
                locale: {
                    "format": "YYYY-MM-DD",
                    cancelLabel: "M&eacute;gse",
                    applyLabel: "Ok",
                    "monthNames": [
                        "janu&aacute;r",
                        "febru&aacute;r",
                        "m&aacute;rcius",
                        "&aacute;prilis",
                        "m&aacute;jus",
                        "j&uacute;nius",
                        "j&uacute;lius",
                        "augusztus",
                        "szeptember",
                        "okt&oacute;ber",
                        "november",
                        "december"
                    ],
                    "daysOfWeek": [
                        "Vas",
                        "H&eacute;",
                        "Ke",
                        "Sze",
                        "Cs&uuml;t",
                        "P&eacute;",
                        "Szo"
                    ],
                }
            };
            $("#date-range").daterangepicker(option, function(start, end, label) {
                $("#date-range").attr("date-start", start.format("YYYY-MM-DD"));
                $("#date-range").attr("date-end", end.format("YYYY-MM-DD"));
            });
        },
    };
    $(function() {
        gen.init();
    });
</script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/momentjs/latest/moment.min.js"></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/daterangepicker/daterangepicker.min.js"></script>
<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/daterangepicker/daterangepicker.css">
<script>
    $("form").on("keydown", function(event) {
        if (event.key === "Enter") {
            event.preventDefault();
        }
    });
    /* document.getElementById("time1").addEventListener("input", function() {
        let input = this.value.replace(/[^0-9]/g, ""); // Csak számokat enged meg
        let hours = input.slice(0, 2);
        let minutes = input.slice(2, 4);

        if (hours.length === 1 && hours > "2") {
            hours = "0" + hours;
        } else if (hours.length === 2 && parseInt(hours, 10) > 23) {
            hours = "23";
        }

        if (minutes.length === 2 && parseInt(minutes, 10) > 59) {
            minutes = "59";
        }

        this.value = hours + (minutes ? ':' + minutes : '');
    });

    document.getElementById("time2").addEventListener("input", function() {
        let input = this.value.replace(/[^0-9]/g, ""); // Csak számokat enged meg
        let hours = input.slice(0, 2);
        let minutes = input.slice(2, 4);

        if (hours.length === 1 && hours > "2") {
            hours = "0" + hours;
        } else if (hours.length === 2 && parseInt(hours, 10) > 23) {
            hours = "23";
        }

        if (minutes.length === 2 && parseInt(minutes, 10) > 59) {
            minutes = "59";
        }

        this.value = hours + (minutes ? ':' + minutes : '');
    });
 */
    function lineClick(profile, timeline, lineNumber, idclass) {
        var currentClass = $('#' + idclass + '_' + timeline + '_' + lineNumber).attr('class');
        if (currentClass.includes('LineRed')) {
            $('#' + idclass + '_' + timeline + '_' + lineNumber).removeClass('LineRed').addClass('LineGreen');
            var hiddenInput = document.getElementById(idclass + '_' + timeline);
            var arr = JSON.parse(hiddenInput.value);
            arr[lineNumber - 1] = 0;
            hiddenInput.value = arr;
            console.log("New value of hidden input:", arr);
        }
        if (currentClass.includes('LineGreen')) {
            $('#' + idclass + '_' + timeline + '_' + lineNumber).removeClass('LineGreen').addClass('LineRed');
            var hiddenInput = document.getElementById(idclass + '_' + timeline);
            var arr = JSON.parse(hiddenInput.value);
            arr[lineNumber - 1] = 1;
            hiddenInput.value = JSON.stringify(arr);
            console.log("New value of hidden input:", arr);
        }
    }

    function lineFullClick(profile, timeline, lineNumber, idclass) {
        for (i = 1; i < lineNumber; i++) {
            var currentClass = $('#' + idclass + '_' + timeline + '_' + i).attr('class');
            if (currentClass.includes('LineRed')) {
                $('#' + idclass + '_' + timeline + '_' + i).removeClass('LineRed').addClass('LineGreen');
                var hiddenInput = document.getElementById(idclass + '_' + timeline);
                var arr = JSON.parse(hiddenInput.value);
                arr[i - 1] = 0;
                hiddenInput.value = JSON.stringify(arr);
            }
            if (currentClass.includes('LineGreen')) {
                $('#' + idclass + '_' + timeline + '_' + i).removeClass('LineGreen').addClass('LineRed');
                var hiddenInput = document.getElementById(idclass + '_' + timeline);
                var arr = JSON.parse(hiddenInput.value);
                arr[i - 1] = 1;
                hiddenInput.value = JSON.stringify(arr);
            }
        }
    }
</script>
<script>
    function setDefault() {
        var fullUrl = window.location.origin;
        window.location.href = fullUrl + "/custom/booking/reservation.php";
    }

    function adjustTime(inputId, action) {
        var input = document.getElementById(inputId);
        var currentTime = input.value || "06:00"; // Alapértelmezett idő, ha nincs megadva
        var parts = currentTime.split(':');
        var hours = parseInt(parts[0], 10);
        var minutes = parseInt(parts[1], 10);

        // Növelés vagy csökkentés 30 perccel
        if (action === 'increase') {
            minutes += 30;
        } else if (action === 'decrease') {
            minutes -= 30;
        }

        // Kezelés a túlcsordulásokra
        if (minutes >= 60) {
            hours += 1;
            minutes = minutes % 60;
        } else if (minutes < 0) {
            hours -= 1;
            minutes = 60 + minutes;
        }

        if (hours >= 24) {
            hours = 0;
        } else if (hours < 0) {
            hours = 23;
        }

        // Formázás, hogy mindig kétjegyű legyen az óra és perc
        var formattedTime = ("0" + hours).slice(-2) + ":" + ("0" + minutes).slice(-2);
        input.value = formattedTime;

        var from = document.getElementById("time1");
        var to = document.getElementById("time2");
        var selectedProfileVal = $("#profile").find("option:selected").val();

        var xhrIntervalChange = new XMLHttpRequest();
        xhrIntervalChange.open("POST", "reservation_intervalchange.php", true);
        xhrIntervalChange.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

        xhrIntervalChange.send("from=" + encodeURIComponent(from.value) + "&to=" + encodeURIComponent(to.value) + "&profile=" + selectedProfileVal);

        xhrIntervalChange.onload = function() {
            if (xhrIntervalChange.status === 200) {
                const profileTypeDiv = document.querySelector('.profileTypeClass');
                profileTypeDiv.innerHTML = xhrIntervalChange.responseText;
            } else {
                alert("Request failed");
            }
        };
        //document.getElementById('reservatonForm').submit();
    }

    function validatePage() {
        var selectfac = document.getElementById("facilitie");
        var selectarea = document.getElementById("area");
        var selectprof = document.getElementById("profile");
        var selectdaterange = document.getElementById("date-range");

        if ((!selectfac || selectfac.value == -1) ||
            (!selectarea || selectarea.value == -1) ||
            (!selectprof || selectprof.value == -1) ||
            (!selectdaterange || selectdaterange.value == '')) {

            if (!selectfac || selectfac.value == -1) {
                $("#request_facilitie").removeClass("displayNone").addClass("displayBlock");
            } else {
                $("#request_facilitie").addClass("displayNone");
            }

            if (!selectarea || selectarea.value == -1) {
                $("#request_area").removeClass("displayNone").addClass("displayBlock");
            } else {
                $("#request_area").addClass("displayNone");
            }

            if (!selectdaterange || selectdaterange.value == '') {
                console.log('date-range: ' + (selectdaterange ? selectdaterange.value : 'N/A'));
                $("#request_date").removeClass("displayNone").addClass("displayBlock");
            } else {
                $("#request_date").addClass("displayNone");
            }

            if (!selectprof || selectprof.value == -1) {
                $("#request_profile").removeClass("displayNone").addClass("displayBlock");
            } else {
                $("#request_profile").addClass("displayNone");
            }

            return false;

        } else {
            $("#request_facilitie").addClass("displayNone");
            $("#request_area").addClass("displayNone");
            $("#request_date").addClass("displayNone");
            $("#request_profile").addClass("displayNone");
            alert('Mentve');
        }

    }


    var facilitiesSelect = $("#facilitie");
    var areaSelect = $("#area");
    var profileSelect = $("#profile");
    var daterangeInput = $("#date-range");
    facilitiesSelect.select2();
    areaSelect.select2();
    profileSelect.select2();
    facilitiesSelect.on("change", function(e) {
        var selectedFacilityValue = $(this).val();
        var selectedFacilityText = $(this).find("option:selected").text();
        if (selectedFacilityValue == -1) {
            $("#date-range, #time1, #time2").val("");
            $("#time1, #time2, #area, #date-range, #profile").prop("disabled", true);
            var fullUrl = window.location.origin;
            window.location.href = fullUrl + "/custom/booking/reservation.php";
        } else {
            var xhr = new XMLHttpRequest();
            xhr.open("POST", "reservation_area.php", true);
            xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

            // Kérés elküldése
            xhr.send("facilitie=" + encodeURIComponent(selectedFacilityValue) /* + "&email=" + encodeURIComponent('valami2')*/ );

            // Válasz kezelése
            xhr.onload = function() {
                if (xhr.status === 200) {
                    $("#area").prop("disabled", false);
                    $(".areaClass").removeClass("displayNone").addClass("displayBlock");
                    const areaDiv = document.querySelector('.areaClass');
                    areaDiv.innerHTML = xhr.responseText;
                    var areaSelect = $("#area");
                    areaSelect.on("change", function(e) {
                        var selectedAreaVal = $(this).find("option:selected").val();
                        if (selectedAreaVal == -1) {
                            $("#time1, #time2").val("").prop("disabled", true);
                            $(".profilesClass, .profileClass, .timerClass, .dateClass")
                                .removeClass("displayBlock")
                                .addClass("displayNone");
                        } else {
                            var xhrArea = new XMLHttpRequest();
                            xhrArea.open("POST", "reservation_profile.php", true);
                            xhrArea.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

                            xhrArea.send("area=" + encodeURIComponent(selectedAreaVal));

                            xhrArea.onload = function() {
                                if (xhrArea.status === 200) {
                                    $(".dateClass").removeClass("displayNone").addClass("displayBlock");
                                    $("#profile").prop("disabled", false);
                                    $(".profileClass").removeClass("displayNone").addClass("displayBlock");
                                    const profileDiv = document.querySelector('.profileClass');
                                    profileDiv.innerHTML = xhrArea.responseText;
                                    var profileSelect = $("#profile");
                                    profileSelect.on("change", function(e) {
                                        $(".timerClass").removeClass("displayNone").addClass("displayBlock");
                                        var selectedProfileVal = $(this).find("option:selected").val();
                                        if (selectedProfileVal == -1) {
                                            $("#time1, #time2").val("").prop("disabled", true);
                                            $(".profilesClass").removeClass("displayBlock").addClass("displayNone");
                                        } else {
                                            $("#time1").val("06:00");
                                            $("#time2").val("22:00");
                                            var selectedProfileText = $(this).find("option:selected").text();
                                            var xhrProfile = new XMLHttpRequest();
                                            xhrProfile.open("POST", "reservation_profile_type.php", true);
                                            xhrProfile.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

                                            xhrProfile.send("profile=" + encodeURIComponent(selectedProfileVal));

                                            xhrProfile.onload = function() {
                                                if (xhrProfile.status === 200) {
                                                    const profileTypeDiv = document.querySelector('.profileTypeClass');
                                                    profileTypeDiv.innerHTML = xhrProfile.responseText;
                                                } else {
                                                    alert("Request failed");
                                                }
                                            };
                                        }
                                    });
                                } else {
                                    alert("Request failed");
                                }
                            };
                        }
                    });
                } else {
                    alert("Request failed");
                }
            };
        }
    });
    daterangeInput.on("change", function(e) {
        $("#request_date").removeClass("displayBlock").addClass("displayNone");
    })
</script>