<%@ Page Language="C#" AutoEventWireup="true" UICulture="auto" Culture="auto" meta:resourcekey="PageResource1" %>

<%@ Import Namespace="System.IO" %>
<%@ Import Namespace="System.Threading" %>
<%@ Import Namespace="System.Globalization" %>

<script runat="server">
    String version = WebAppVersion.GetWebAppVersion();

    //@Override this is suggested by Microsoft, overriding the initialize culture function (that is
    //automatically called by the aspx.
    //Checks if the cookie exists and sets the language correctly, otherwise will fall-back to the default language
    //(English).
    protected override void InitializeCulture()
    {
        HttpCookie lang = Request.Cookies["siteLanguage"];

        String selectedLanguage = (lang != null) ? lang.Value : "en";
        UICulture = selectedLanguage;
        Culture = selectedLanguage;

        Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(selectedLanguage);
        Thread.CurrentThread.CurrentUICulture = new CultureInfo(selectedLanguage);
        base.InitializeCulture();
    }
</script>

<%
    //this prevents the browser from caching templates. (on IE the templates where cached with the old language
    //too, so the change language was not working, this is a workaround for that).

    Response.Cache.SetCacheability(HttpCacheability.NoCache);
    Response.Cache.SetExpires(DateTime.Now.AddMinutes(-30)); %>

<%--view template starts here (will be appended inside a row-fluid)--%>


<script id="delays_report" type="text/x-handlebars-template">

    <link href="<%= ResolveUrl("~/assets/libs/js/backgrid-0.3.5/lib/backgrid.css")%>" rel="stylesheet" />
    <link href="<%= ResolveUrl("~/app/pages/eaf/delays-manager/delays-manager.css")%>" rel="stylesheet" />
    <link href="<%= ResolveUrl("~/assets/libs/js/jquery.contextMenu/jquery.contextMenu.css") %>" rel="stylesheet" />

    <link href="<%= ResolveUrl("~/assets/ag-grid/ag-grid.css") %>" rel="stylesheet" />
    <link href="<%= ResolveUrl("~/assets/ag-grid/ag-theme-alpine.css") %>" rel="stylesheet" />
    <link href="<%= ResolveUrl("~/assets/fonts/reboto-font.css") %>" rel="stylesheet" />
    <link href="<%= ResolveUrl("~/assets/tailwind/tailwind.min.css") %>" rel="stylesheet" />

<style>

     /* Reduced grid container height */
     .processes-grid-container.ag-theme-alpine {
        height: 70vh;
        border: 1px solid #ccc;
    }
    .ag-root-wrapper.ag-layout-normal.ag-ltr {
        height: 70vh;
    }

    .processes-grid-container .ag-pinned-right-cols-container,
    .processes-grid-container .ag-pinned-left-cols-container {
      border-right: none !important;
    }

    .ag-cell.ag-cell-last-left-pinned:not(.ag-cell-range-right):not(.ag-cell-range-single-cell) {
        border-right: none !important;
    }

    .ag-pinned-left-header {
        border-right: none !important;
    }

    /* Undeclared delay row styling */
    .ag-theme-alpine .ag-row.undeclared-delay-row,
    .processes-grid-container .ag-row.undeclared-delay-row {
        background-color: #D0A4A4 !important;
    }

    .processes-grid-container .ag-row.undeclared-delay-row .ag-cell {
        background-color: #D0A4A4 !important;
    }

    /* jQuery UI datepicker needs to sit above the AG Grid header */
    #ui-datepicker-div { z-index: 1100 !important; }

    /* Page content */
    .content-container{
        padding-top: 0px !important;
    }
    #subnavbar-inner{
        display:none !important;
    }
    /*Page Title */
    .professional-title {
        font-size: 22px;
        font-weight: 400;
        color: #202124;
        padding-bottom: 1px;
        border-bottom: 1px solid #dadce0;
        margin-bottom: 2px;
        font-family: 'Roboto', Arial, sans-serif;
    }
    /*date picker*/
    .date-picker{
        border:none !important;
        margin-bottom: 0px !important;
        -webkit-box-shadow:none !important;
        box-shadow: none !important;
        width: 100px;
        text-align: center;
    }
    @keyframes spin {
        0% { transform: rotate(0deg); }
        100% { transform: rotate(360deg); }
    }
    .spinner {
        animation: spin 1s linear infinite;
        transform-origin: center;
    }

</style>

<h2 class="professional-title">EAF Delays Manager</h2>

<div class="bg-white shadow-md rounded-lg p-2 mb-4">
    <div data-bind="classes: { hide: isPageLoading }">
        <div class="bg-white shadow-md rounded-lg mb-2">
            <div class="flex items-center justify-between flex-wrap">
                <div class="flex items-center flex-wrap space-x-2 mb-2">
                    <div class="flex flex-wrap items-center space-x-1">
                        <div class="flex flex-col">
                            <div class="flex items-center">
                                <label for="dateStartTbx" class="ml-2 mr-2 text-sm font-medium text-gray-700">Start</label>
                                <div class="flex items-center border border-gray-300 rounded-md">
                                    <input type="text" id="dateStartTbx" class="input-date date-picker pl-10 pr-3 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-1 focus:ring-blue-500 focus:border-blue-500" style="z-index:1000;width:100px" data-bind="value: momentFormat(start$, 'YYYY-MM-DD', '<asp:Localize runat=server meta:resourcekey=mmddyyyy_format />')">
                                    <button id="calendarStartBtn" class="px-2 py-2 border-l border-gray-300 hover:bg-gray-100">
                                        <svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5 text-gray-600" viewBox="0 0 20 20" fill="currentColor">
                                            <path fill-rule="evenodd" d="M6 2a1 1 0 00-1 1v1H4a2 2 0 00-2 2v10a2 2 0 002 2h12a2 2 0 002-2V6a2 2 0 00-2-2h-1V3a1 1 0 10-2 0v1H7V3a1 1 0 00-1-1zm0 5a1 1 0 000 2h8a1 1 0 100-2H6z" clip-rule="evenodd" />
                                        </svg>
                                    </button>
                                </div>
                            </div>
                        </div>

                        <div class="flex flex-col"></div>
                            <div class="flex items-center">
                                <label for="dateEndTbx" class="ml-2 mr-2 text-sm font-medium text-gray-700">End</label>
                                <div class="flex items-center border border-gray-300 rounded-md">
                                    <input type="text" id="dateEndTbx" class="input-date date-picker pl-10 pr-3 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-1 focus:ring-blue-500 focus:border-blue-500" style="z-index:1000;width:100px" data-bind="value: momentFormat(end$, 'YYYY-MM-DD', '<asp:Localize runat=server meta:resourcekey=mmddyyyy_format />')">
                                    <button id="calendarEndBtn" class="px-2 py-2 border-l border-gray-300 hover:bg-gray-100">
                                        <svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5 text-gray-600" viewBox="0 0 20 20" fill="currentColor">
                                            <path fill-rule="evenodd" d="M6 2a1 1 0 00-1 1v1H4a2 2 0 00-2 2v10a2 2 0 002 2h12a2 2 0 002-2V6a2 2 0 00-2-2h-1V3a1 1 0 10-2 0v1H7V3a1 1 0 00-1-1zm0 5a1 1 0 000 2h8a1 1 0 100-2H6z" clip-rule="evenodd" />
                                        </svg>
                                    </button>
                                </div>
                            </div>
                    </div>
                    <div class="flex flex-wrap items-center space-x-1">
                        <div class="flex items-center">
                            <label class="ml-2 mr-2 text-sm font-medium text-gray-700 whitespace-nowrap"><asp:Localize runat="server" meta:resourcekey="machine_combo_label" /></label>
                            <select data-bind="value: integer(machineId), options: machines, optionsDefault: { label: '<asp:Localize runat=server meta:resourcekey=all_machines_label />', value: -1 }" class="block w-full pl-3 pr-10 text-base border-gray-300 focus:outline-none focus:ring-blue-500 focus:border-blue-500 sm:text-sm rounded-md print-drop-down">
                            </select>
                        </div>
                        <div class="flex items-center">
                            <label class="ml-2 mr-2 text-sm font-medium text-gray-700 whitespace-nowrap"><asp:Localize runat="server" meta:resourcekey="shift_combo_label" /></label>
                            <select data-bind="value: integer(shiftId), options: shifts, optionsDefault: { label: '<asp:Localize runat=server meta:resourcekey=all_shifts_label />', value: -1 }" class="block w-full pl-3 pr-10 text-base border-gray-300 focus:outline-none focus:ring-blue-500 focus:border-blue-500 sm:text-sm rounded-md print-drop-down">
                            </select>
                        </div>
                        <div class="flex items-center">
                            <label class="ml-2 mr-2 text-sm font-medium text-gray-700 whitespace-nowrap"><asp:Localize runat="server" meta:resourcekey="crew_combo_label" /></label>
                            <select data-bind="value: integer(crewId), options: crews, optionsDefault: { label: '<asp:Localize runat=server meta:resourcekey=all_crews_label />', value: -1 }" class="block w-full pl-3 pr-10 text-base border-gray-300 focus:outline-none focus:ring-blue-500 focus:border-blue-500 sm:text-sm rounded-md print-drop-down">
                            </select>
                        </div>
                        <div class="flex items-center">
                            <label class="ml-2 mr-2 text-sm font-medium text-gray-700 whitespace-nowrap"><asp:Localize runat="server" meta:resourcekey="codeGroup_combo_label" /></label>
                            <select data-bind="value: integer(delayCategoryId), options: delayCategories, optionsDefault: { label: '<asp:Localize runat=server meta:resourcekey=all_codeGroup_label />', value: -1 }" class="block w-full pl-3 pr-10 text-base border-gray-300 focus:outline-none focus:ring-blue-500 focus:border-blue-500 sm:text-sm rounded-md print-drop-down">
                            </select>
                        </div>
                    </div>
                </div>
                <div class="flex space-x-2 mb-2">
                    <button id="exportExcelBtn" type="button" class="btn-export-to-excel bg-gray-100 hover:bg-gray-200 text-gray-800 py-2 px-4 rounded flex items-center justify-center" style="height: 36.5px; font-size: 14px;">
                        <span class="fa fa-file-excel-o mr-2"></span>
                        <span>Excel</span>
                    </button>
                    <button id="refreshBtn" class="bg-blue-600 hover:bg-blue-700 text-white py-2 px-4 rounded flex items-center justify-center" style="width: 180px; height: 36.5px; font-size: 14px;">
                        <div data-bind="classes: { hide: isLoading }">
                            <span>Refresh</span>
                        </div>
                        <div data-bind="classes: { hide: not(isLoading) }">
                            <div class="flex items-center">
                                <svg class="h-5 w-5 mr-3" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
                                    <g class="spinner">
                                        <circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4" fill="none"/>
                                        <path class="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"/>
                                    </g>
                                </svg>
                                <span>Loading...</span>
                            </div>
                        </div>
                    </button>
                </div>
            </div>
        </div>
        <div class="mx-auto">
            <div class="bg-white shadow-md rounded-lg p-2 mb-4" style="border: 4px solid #ccc;">
                <div class="processes-grid-container ag-theme-alpine w-full"></div>
            </div>
        </div>
    </div>

    <div data-bind="classes: { hide: not(isPageLoading) }">
        <div class="bg-white shadow-md rounded-lg mb-2">
            <div class="flex items-center justify-between">
                <div class="flex items-center space-x-2 mb-2">
                    <div class="flex flex-wrap items-center space-x-1">
                        <div class="skeleton-input w-40 h-10 bg-gray-200 rounded-md"></div>
                        <div class="skeleton-input w-40 h-10 bg-gray-200 rounded-md"></div>
                    </div>
                    <div class="skeleton-select w-32 h-10 bg-gray-200 rounded-md"></div>
                </div>
                <div class="flex space-x-2 mb-2">
                    <div class="skeleton-button w-64 h-9 bg-gray-200 rounded"></div>
                </div>
            </div>
        </div>
        <div class="mx-auto">
            <div class="bg-white shadow-md rounded-lg p-2 mb-4" style="border: 4px solid #ccc;">
                <div class="skeleton-grid w-full h-64vh bg-gray-200"></div>
            </div>
        </div>
    </div>
</div>
</script>

<!-- DECLARE / EDIT DELAY MODAL -->
<script id="declare_delay" type="text/x-handlebars-template">
    <link href="<%= ResolveUrl("~/assets/ag-grid/ag-theme-alpine.css") %>" rel="stylesheet" />
    <link href="<%= ResolveUrl("~/assets/fonts/reboto-font.css") %>" rel="stylesheet" />
    <link href="<%= ResolveUrl("~/assets/tailwind/tailwind.min.css") %>" rel="stylesheet" />
    <style>
        #delays-manager-declare {
            width: 650px !important;
            margin-left: -325px !important;
        }
    </style>
    <div class="modal-header noselect">
        <button type="button" class="close mr-2" data-dismiss="modal" aria-hidden="true">&times;</button>
        <h3 class="text-lg font-semibold text-gray-800 mb-4 mt-4 ml-4"><asp:Localize runat="server" meta:resourcekey="delay_information_title" /></h3>
    </div>
    <div style="max-height:450px;" class="modal-body noselect">
        <div class="delay1">
            <div class="space-y-4">
                <div class="flex space-x-4">
                    <div class="flex flex-col items-start w-1/3">
                        <label class="text-sm font-medium text-gray-700 mb-1"><asp:Localize runat="server" meta:resourcekey="start_label" /></label>
                        <input style="height:40px" disabled type="text" data-bind="value:start" class="text-center w-full px-3 py-2 border border-gray-300 rounded-md text-sm focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500">
                    </div>
                    <div class="flex flex-col items-start w-1/3">
                        <label class="text-sm font-medium text-gray-700 mb-1"><asp:Localize runat="server" meta:resourcekey="end_label" /></label>
                        <input style="height:40px" disabled type="text" data-bind="value:end" class="text-center w-full px-3 py-2 border border-gray-300 rounded-md text-sm focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500">
                    </div>
                    <div class="flex flex-col items-start w-1/3">
                        <label class="text-sm font-medium text-gray-700 mb-1"><asp:Localize runat="server" meta:resourcekey="duration_label" /></label>
                        <input style="height:40px" disabled type="text" data-bind="value:durationinMin" class="text-center w-full px-3 py-2 border border-gray-300 rounded-md text-sm focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500">
                    </div>
                </div>

                <div class="flex space-x-4">
                    <div class="flex flex-col w-1/3">
                        <label class="text-sm font-medium text-gray-700 mb-1"><asp:Localize runat="server" meta:resourcekey="machine_combo_label" /></label>
                        <input style="height:40px" disabled type="text" data-bind="value:productionItem" class="text-center w-full px-3 py-2 border border-gray-300 rounded-md text-sm focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500">
                    </div>
                    <div class="flex flex-col w-2/3">
                        <label class="text-sm font-medium text-gray-700 mb-1"><asp:Localize runat="server" meta:resourcekey="code_label" /></label>
                        <select style="height:40px"
                            class="w-full text-center px-3 py-2 border border-gray-300 rounded-md text-sm focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500"
                            data-bind="value: integer(delayCodeId), options: delayCodes, optionsDefault: { label: '<asp:Localize runat=server meta:resourcekey=not_declared_category_label />', value: -1 }">
                        </select>
                    </div>
                </div>

                <div class="flex flex-col">
                    <label class="text-sm font-medium text-gray-700 mb-1"><asp:Localize runat="server" meta:resourcekey="comments_label" /></label>
                    <textarea class="w-full px-3 py-2 border border-gray-300 rounded-md text-sm focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500" rows="4" placeholder="0/200 max." data-bind="value: commentsDelay"></textarea>
                </div>
            </div>
        </div>
    </div>
    <div class="modal-footer noselect">
        <div class="row-fluid">
            <div class="flex items-center justify-between">
                <div class="span6">
                    <button id="delay_declare_btn" class="bg-blue-600 hover:bg-blue-700 text-white py-2 px-4 rounded" style="width: 250px; height: 36.5px;"><asp:Localize runat="server" meta:resourcekey="save_label" /></button>
                </div>
                <button class="btn-close bg-gray-100 hover:bg-gray-200 rounded" style="width: 250px; height: 36.5px; border: 1px solid"><asp:Localize runat="server" meta:resourcekey="cancel_label" /></button>
            </div>
        </div>
    </div>
</script>

<!-- SPLIT DELAY MODAL -->
<script id="split_delay" type="text/x-handlebars-template">
    <link href="<%= ResolveUrl("~/assets/libs/js/bootstrap-slider/css/bootstrap-slider.min.css") %>" rel="stylesheet" />
    <link href="<%= ResolveUrl("~/assets/ag-grid/ag-theme-alpine.css") %>" rel="stylesheet" />
    <link href="<%= ResolveUrl("~/assets/fonts/reboto-font.css") %>" rel="stylesheet" />
    <link href="<%= ResolveUrl("~/assets/tailwind/tailwind.min.css") %>" rel="stylesheet" />
    <style>
        #split_delay_slider .slider-selection {
            background: #479dc4;
        }
        #split_delay_slider .slider-track-high {
            background: #00ff90;
        }
        #split_delay_slider .slider-handle {
            border-bottom-color: blue;
        }
        #delays-manager-split {
            width: 700px !important;
            margin-left: -350px !important;
        }
    </style>
    <div class="modal-header noselect">
        <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
        <h3 class="text-lg font-semibold text-gray-800 mb-4"><asp:Localize runat="server" meta:resourcekey="split_delay_title" /></h3>
    </div>
    <div style="max-height:450px;" class="modal-body noselect">
        <div class="row-fluid text-center">
            <span class="muted"><asp:Localize runat="server" meta:resourcekey="drag_to_change_duration_label" /></span>
        </div>
        <div class="row-fluid">
            <div class="pull-left" style="margin-left:10px;">
                <span style="font-size:10px;margin-left:2px;">{{start_date}}</span><br />
                <span style="font-size:14px;">{{start_time}}</span>
            </div>
            <div class="pull-right" style="margin-right:10px;">
                <span style="font-size:10px;margin-left:2px;">{{end_date}}</span><br />
                <span style="font-size:14px;">{{end_time}}</span>
            </div>
        </div>
        <div style="height:50px;" class="row-fluid">
            <div class="span12">
                <div class="span10" style="margin:0 auto;position:relative;float:none;clear:both;">
                    <div class="span12 slider-container" style="display:inline-block;">
                        <div class="slider-arrow-left" style="display:inline-block;width:5%;text-align:right;top:1px;position:relative;">
                            <i style="cursor:pointer;" class="fa fa-arrow-left"></i>
                        </div>
                        <input type="text" class="slider" style="width:90%;display:inline-block;" value=""
                            data-slider-id="split_delay_slider"
                            id="split_delay_slider_original" data-slider-tooltip="hover" />
                        <div class="slider-arrow-right" style="display:inline-block;text-align:left;top:1px;position:relative;width:3%;">
                            <i style="cursor:pointer;" class="fa fa-arrow-right"></i>
                        </div>
                    </div>
                </div>
            </div>
        </div>
        <div class="grid grid-cols-2 mt-6">
            <!-- Delay 1 -->
            <div class="delay1 pr-6">
                <h3 class="text-base font-semibold text-gray-800 mb-3">Delay 1</h3>
                <div class="flex space-x-4">
                    <div class="flex flex-col w-1/2">
                        <label class="text-sm font-medium text-gray-700 mb-1"><asp:Localize runat="server" meta:resourcekey="start_label" /></label>
                        <input disabled type="text" style="height:40px;text-align:center;" data-bind="value:delay1Start" class="w-full px-3 py-2 border border-gray-300 rounded-md text-sm bg-gray-100">
                    </div>
                    <div class="flex flex-col w-1/2">
                        <label class="text-sm font-medium text-gray-700 mb-1"><asp:Localize runat="server" meta:resourcekey="end_label" /></label>
                        <input type="time" step="1" id="delay1-end" style="height:40px;text-align:center;" data-bind="value:delay1End" class="w-full px-3 py-2 border border-blue-400 rounded-md text-sm focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500">
                    </div>
                </div>
            </div>
            <!-- Delay 2 -->
            <div class="delay2 border-l border-gray-300 pl-6">
                <h3 class="text-base font-semibold text-gray-800 mb-3">Delay 2</h3>
                <div class="flex space-x-4">
                    <div class="flex flex-col w-1/2">
                        <label class="text-sm font-medium text-gray-700 mb-1"><asp:Localize runat="server" meta:resourcekey="start_label" /></label>
                        <input disabled type="text" style="height:40px;text-align:center;" data-bind="value:delay2Start" class="w-full px-3 py-2 border border-gray-300 rounded-md text-sm">
                    </div>
                    <div class="flex flex-col w-1/2">
                        <label class="text-sm font-medium text-gray-700 mb-1"><asp:Localize runat="server" meta:resourcekey="end_label" /></label>
                        <input disabled type="text" style="height:40px;text-align:center;" data-bind="value:delay2End" class="w-full px-3 py-2 border border-gray-300 rounded-md text-sm">
                    </div>
                </div>
            </div>
        </div>
    </div>
    <div class="modal-footer noselect">
        <div class="flex w-full space-x-4">
            <button class="delay_split_modal_split_btn w-1/2 bg-blue-600 hover:bg-blue-700 text-white py-2 px-4 rounded h-10"><asp:Localize runat="server" meta:resourcekey="split_label" /></button>
            <button class="btn-close w-1/2 bg-gray-100 hover:bg-gray-200 rounded border border-gray-300 h-10"><asp:Localize runat="server" meta:resourcekey="cancel_label" /></button>
        </div>
    </div>
</script>
