@using CarCareTracker.Helper
@inject IConfigHelper config
@model GasRecordInputContainer
@{
    var useMPG = config.GetUserConfig(User).UseMPG;
    var useUKMPG = config.GetUserConfig(User).UseUKMPG;
    var useKwh = Model.UseKwh;
    var isNew = Model.GasRecord.Id == 0;
    string consumptionUnit;
    string distanceUnit;
    if (useKwh)
    {
        consumptionUnit = "kWh";
    } else if (useUKMPG)
    {
        consumptionUnit = "liters";
    }
    else
    {
        consumptionUnit = useMPG ? "gallons" : "liters";
    }
    if (useUKMPG)
    {
        distanceUnit = "miles";
    }
    else
    {
        distanceUnit = useMPG ? "miles" : "kilometers";
    }
}
<div class="modal-header">
    <h5 class="modal-title">@(isNew ? "Add New Gas Record" : "Edit Gas Record")</h5>
    <button type="button" class="btn-close" onclick="hideAddGasRecordModal()" aria-label="Close"></button>
</div>
<div class="modal-body">
    <form>
        <div class="form-group">
            <div class="row">
                <div class="col-md-6 col-12">
                    <input type="text" id="workAroundInput" style="height:0px; width:0px; display:none;">
                    <label for="gasRecordDate">Date</label>
                    <div class="input-group">
                        <input type="text" id="gasRecordDate" placeholder="Date refueled" class="form-control" value="@Model.GasRecord.Date">
                        <span class="input-group-text"><i class="bi bi-calendar-event"></i></span>
                    </div>
                    <label for="gasRecordMileage">Odometer Reading(@distanceUnit)</label>
                    <input type="number" id="gasRecordMileage" class="form-control" placeholder="Odometer reading when refueled" value="@(isNew ? "" : Model.GasRecord.Mileage)">
                    <label for="gasRecordGallons">Fuel Consumption(@(consumptionUnit))</label>
                    <input type="text" id="gasRecordGallons" class="form-control" placeholder="Amount of gas refueled" value="@(isNew ? "" : Model.GasRecord.Gallons)">
                    <div class="form-check form-switch">
                        <input class="form-check-input" type="checkbox" role="switch" id="gasIsFillToFull" checked="@Model.GasRecord.IsFillToFull">
                        <label class="form-check-label" for="gasIsFillToFull">Is Filled To Full</label>
                    </div>
                    <div class="form-check form-switch">
                        <input class="form-check-input" type="checkbox" role="switch" id="gasIsMissed" checked="@Model.GasRecord.MissedFuelUp">
                        <label class="form-check-label" for="gasIsMissed">Missed Fuel Up(Skip MPG Calculation)</label>
                    </div>
                    <label for="GasRecordCost">Cost</label>
                    @if (isNew)
                    {
                        <div class="input-group">
                            <input type="text" id="gasRecordCost" class="form-control" placeholder="Cost of gas refueled" value="@(isNew ? "" : Model.GasRecord.Cost)">
                            <div class="input-group-text">
                                <select class="form-select form-select-sm" id="gasCostType">
                                    <option value="total">Total</option>
                                    <option value="unit">Unit</option>
                                </select>
                            </div>
                        </div>
                    } else
                    {
                        <input type="text" id="gasRecordCost" class="form-control" placeholder="Cost of gas refueled" value="@(isNew ? "" : Model.GasRecord.Cost)">
                    }
                </div>
                <div class="col-md-6 col-12">
                    <label for="gasRecordNotes">Notes(optional)</label>
                    <textarea id="gasRecordNotes" class="form-control" rows="5">@Model.GasRecord.Notes</textarea>
                    @if (Model.GasRecord.Files.Any())
                    {
                        <div>
                            @await Html.PartialAsync("_UploadedFiles", Model.GasRecord.Files)
                            <label for="gasRecordFiles">Upload more documents</label>
                            <input onChange="uploadVehicleFilesAsync(this)" type="file" multiple accept=".png,.jpg,.jpeg,.pdf,.xls,.xlsx,.docx" class="form-control-file" id="gasRecordFiles">
                        </div>
                    }
                    else
                    {
                        <label for="gasRecordFiles">Upload documents(optional)</label>
                        <input onChange="uploadVehicleFilesAsync(this)" type="file" multiple accept=".png,.jpg,.jpeg,.pdf,.xls,.xlsx,.docx" class="form-control-file" id="gasRecordFiles">
                    }
                </div>
            </div>
        </div>
    </form>
</div>
<div class="modal-footer">
    @if (!isNew)
    {
        <button type="button" class="btn btn-danger" onclick="deleteGasRecord(@Model.GasRecord.Id)" style="margin-right:auto;">Delete</button>
    }
    <button type="button" class="btn btn-secondary" onclick="hideAddGasRecordModal()">Cancel</button>
    @if (isNew)
    {
        <button type="button" class="btn btn-primary" onclick="saveGasRecordToVehicle()">Add New Gas Record</button>
    }
    else if (!isNew)
    {
        <button type="button" class="btn btn-primary" onclick="saveGasRecordToVehicle(true)">Edit Gas Record</button>
    }
</div>
<script>
    var uploadedFiles = [];
    getUploadedFilesFromModel();
    function getUploadedFilesFromModel() {
    @foreach (UploadedFiles filesUploaded in Model.GasRecord.Files)
    {
        @:uploadedFiles.push({ name: "@filesUploaded.Name", location: "@filesUploaded.Location" });
    }
    }
    function getGasRecordModelData(){
        return { id: @Model.GasRecord.Id}
    }
</script>