@extends('layouts.app')

@section('content')
    @include('layouts.navbars.auth.topnav', ['title' => $title])
    <div class="container">
        {{-- Card: Subject and Lesson Selection and Questions --}}
        <div class="card mb-4">
            <div class="card-header d-flex justify-content-between align-items-center">
                <h4 class="mb-0">Filter Your Questions</h4>
                <a href="{{ route('lms_make_question_bank_index') }}" class="btn btn-secondary">Back</a>
            </div>

            <div class="card-body">
                <div class="row align-items-center">
                    {{-- Subject Dropdown --}}
                    <div class="col-lg-4">
                        <label for="subject_sid">Subject</label>
                        <select name="subject_sid" id="subject_sid" class="form-select select2">
                            <option value="" disabled selected>Select Subject</option>
                            @foreach ($subject as $item)
                                <option value="{{ $item->subject->cms_subject_sid }}">{{ $item->subject->subject_name }}
                                </option>
                            @endforeach
                        </select>
                    </div>

                    {{-- Lesson Dropdown --}}
                    <div class="col-lg-4">
                        <label for="lesson_sid">Lesson</label>
                        <select name="lesson_sid" id="lesson_sid" class="form-select select2" multiple>
                            <option value="" disabled>Select Lesson</option>
                        </select>
                    </div>

                    {{-- Show Button --}}
                    <div class="col-lg-4 mt-4">
                        <button class="btn btn-primary mt-4" id="showQuestions">Show</button>
                    </div>
                </div>
            </div>
        </div>
        <div class="card">
            <form action="{{ route('lms_make_question_bank_save') }}" method="POST" id="questionForm">
                @csrf
                <div class="card-header d-flex align-items-center justify-content-between">
                    <h4 class="mb-0">Questions</h4>
                    <div class="d-flex align-items-center">
                        <input type="text" name="question_bank_name" class="form-control me-2"
                            placeholder="Enter Question Bank Name" required>
                        <button class="btn btn-primary mt-3">Save</button>
                    </div>
                </div>


                <div class="card-body">
                    <div class="table-responsive">
                        <table class="table table-stripped" id="writtenQuestionsTable">
                            <thead>
                                <tr>
                                    <th class="text-center"><input type="checkbox" name="check_all" id="check_all"></th>
                                    <th>Type</th>
                                    <th>Question</th>
                                    <th>Mark</th>
                                    <th>Action</th>
                                </tr>
                            </thead>
                            <tbody>

                            </tbody>
                        </table>
                    </div>
                </div>
            </form>
        </div>
        <!-- View MCQ Modal -->
        <div class="modal fade" id="ViewMcqModal" tabindex="-1" aria-labelledby="ViewMcqModalLabel" aria-hidden="true">
            <div class="modal-dialog modal-lg">
                <div class="modal-content">
                    <div class="modal-header">
                        <h5 class="modal-title" id="ViewMcqModalLabel">View MCQ</h5>
                        <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
                    </div>
                    <div class="modal-body">
                        <div class="row">
                            <!-- Left container: Question, Default-Mark, and Description -->
                            <div class="col-lg-6">
                                <div class="col-lg-12 mb-3">
                                    <label for="question" class="form-label">Question</label>
                                    <textarea class="form-control" name="mcq" id="mcq" rows="6" disabled></textarea>
                                </div>
                                <div class="col-lg-12 mb-3">
                                    <label for="mcq_default_mark" class="form-label">Default-Mark</label>
                                    <input type="text" class="form-control" name="mcq_default_mark" id="mcq_default_mark"
                                        disabled>
                                </div>
                                <div class="col-lg-12 mb-3">
                                    <label for="mcq_description" class="form-label">Description</label>
                                    <textarea class="form-control" name="mcq_description" id="mcq_description" rows="1" disabled></textarea>
                                </div>
                            </div>

                            <!-- Right container: Options and Right Answer -->
                            <div class="col-lg-6">
                                <div class="col-lg-12 mb-3">
                                    <label for="option1" class="form-label">Option-1</label>
                                    <div class="d-flex align-items-center">
                                        <div class="form-check-inline ml-2">
                                            <input type="radio" class="form-check" name="right_answer_radio"
                                                value="1" id="right_answer_radio1" disabled>
                                        </div>
                                        <input type="text" class="form-control" name="option1" id="option1" disabled>
                                    </div>
                                </div>
                                <div class="col-lg-12 mb-3">
                                    <label for="option2" class="form-label">Option-2</label>
                                    <div class="d-flex align-items-center">
                                        <div class="form-check-inline ml-2">
                                            <input type="radio" class="form-check" name="right_answer_radio"
                                                value="2" id="right_answer_radio2" disabled>
                                        </div>
                                        <input type="text" class="form-control" name="option2" id="option2"
                                            disabled>
                                    </div>
                                </div>
                                <div class="col-lg-12 mb-3">
                                    <label for="option3" class="form-label">Option-3</label>
                                    <div class="d-flex align-items-center">
                                        <div class="form-check-inline ml-2">
                                            <input type="radio" class="form-check" name="right_answer_radio"
                                                value="3" id="right_answer_radio3" disabled>
                                        </div>
                                        <input type="text" class="form-control" name="option3" id="option3"
                                            disabled>
                                    </div>
                                </div>
                                <div class="col-lg-12 mb-3">
                                    <label for="option4" class="form-label">Option-4</label>
                                    <div class="d-flex align-items-center">
                                        <div class="form-check-inline ml-2">
                                            <input type="radio" class="form-check" name="right_answer_radio"
                                                value="4" id="right_answer_radio4" disabled>
                                        </div>
                                        <input type="text" class="form-control" name="option4" id="option4"
                                            disabled>
                                    </div>
                                </div>
                            </div>
                        </div>
                    </div>

                    <div class="modal-footer">
                        <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Close</button>
                    </div>
                </div>
            </div>
        </div>

        <!-- View Question Modal -->
        <div class="modal fade" id="ViewQuestionModal" tabindex="-1" aria-labelledby="ViewQuestionModalLabel"
            aria-hidden="true">
            <div class="modal-dialog modal-lg">
                <div class="modal-content">
                    <div class="modal-header">
                        <h5 class="modal-title" id="ViewQuestionModalLabel">View Question</h5>
                        <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
                    </div>
                    <div class="modal-body">
                        <div class="row">
                            <!-- Left container: Question and Description -->
                            <div class="col-lg-6 mb-3">
                                <div class="col-lg-12 mb-3">
                                    <label for="view_question" class="form-label">Question</label>
                                    <textarea class="form-control" id="view_question" rows="5" disabled></textarea>
                                </div>
                            </div>
                            <div class="col-lg-6 mb-3">
                                <div class="col-lg-12 mb-3">
                                    <label for="view_mark" class="form-label">Mark</label>
                                    <input type="text" class="form-control" id="view_mark" disabled>
                                </div>
                                <div class="col-lg-12 mb-3">
                                    <label for="view_description" class="form-label">Description</label>
                                    <textarea class="form-control" id="view_description" rows="1" disabled></textarea>
                                </div>
                            </div>
                        </div>
                    </div>

                    <div class="modal-footer">
                        <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Close</button>
                    </div>
                </div>
            </div>
        </div>
    @endsection

    @push('scripts')
        <script>
            $(document).ready(function() {
                // Handle lesson change
                $('#subject_sid').change(function() {
                    var subjectSid = $(this).val();
                    if (subjectSid) {
                        $.ajax({
                            url: '{{ route('fetchLessons') }}',
                            method: 'GET',
                            data: {
                                subject_sid: subjectSid
                            },
                            success: function(data) {
                                var lessonSelect = $('#lesson_sid');
                                lessonSelect.empty().append(
                                    '<option value="" disabled>Select Lesson</option>');
                                $.each(data.lessons, function(index, lesson) {
                                    lessonSelect.append('<option value="' + lesson
                                        .staff_subject_lessons_sid + '">' + lesson
                                        .title + '</option>');
                                });
                            }
                        });
                    }
                });

                // Show button click event
                $('#showQuestions').click(function() {
                    var lessonSid = $('#lesson_sid').val();
                    const cms_subject_sid = $('#subject_sid').val();
                    if (lessonSid) {
                        $.ajax({
                            url: '{{ route('fetch_question_bank_lesson') }}',
                            method: 'GET',
                            data: {
                                lesson_sid: lessonSid,
                                subject_sid: cms_subject_sid
                            },
                            success: function(data) {
                                var tableBody = $('#writtenQuestionsTable tbody');
                                tableBody.empty();
                                // MCQ                              
                                $.each(data.mcq_questions, function(index, question) {
                                    console.log(question);
                                    tableBody.append(`
                                        <tr>
                                            <td class="text-center"><input type="checkbox" class="question-checkbox" name="selected_questions[]" value="${question.cms_mcq_sid}#M" />
                                                 <input type="hidden" name="subject_sid" value="${data.subject_sid}" /></td>
                                            <td>MCQ</td>
                                            <td>${truncateText(question.question, 50)}</td>
                                            <td>${question.default_mark}</td>
                                            <td>
                                                <a href="#" class="btn btn-link p-0" data-bs-toggle="modal" data-bs-target="#ViewMcqModal"
                                                    data-id="${question.cms_mcq_sid}" 
                                                    data-question="${question.question}" 
                                                    data-description="${question.description}" 
                                                    data-mark="${question.default_mark}" 
                                                    data-option_1="${question.option_1}" 
                                                    data-option_2="${question.option_2}" 
                                                    data-option_3="${question.option_3}" 
                                                    data-option_4="${question.option_4}" 
                                                    data-right_answer="${question.right_answer}">
                                                    <i class="fa-solid fa-eye"></i>
                                                </a>
                                            </td>
                                        </tr>
                                    `);
                                });
                                // written
                                $.each(data.written_questions, function(index, question) {
                                    tableBody.append(`
                                        <tr>
                                            <td class="text-center"><input type="checkbox" class="question-checkbox" name="selected_questions[]" value="${question.cms_question_sid}#W" />
                                                 <input type="hidden" name="subject_sid" value="${data.subject_sid}" /></td>
                                            <td>Written</td>
                                            <td>${truncateText(question.question, 50)}</td>
                                            <td>${question.default_mark}</td>
                                            <td>
                                                <a href="#" class="btn btn-link p-0" data-bs-toggle="modal" data-bs-target="#ViewQuestionModal"
                                                    data-id="${question.cms_question_sid}"
                                                    data-question="${question.question}" 
                                                    data-description="${question.description}" 
                                                    data-mark="${question.default_mark}">
                                                    <i class="fa-solid fa-eye"></i>
                                                </a>
                                            </td>
                                        </tr>
                                    `);
                                });
                            }
                        });
                    }
                });


            });

            function truncateText(text, maxLength) {
                if (text.length > maxLength) {
                    return text.substring(0, maxLength) + '...';
                }
                return text;
            }
        </script>
        <script>
            // Handle "Select All" functionality
            $('#check_all').change(function() {
                var isChecked = $(this).prop('checked');
                $('.question-checkbox').prop('checked', isChecked);
            });

            // Handle individual checkbox click to toggle the "Select All" checkbox
            $(document).on('change', '.question-checkbox', function() {
                var totalCheckboxes = $('.question-checkbox').length;
                var checkedCheckboxes = $('.question-checkbox:checked').length;

                if (totalCheckboxes === checkedCheckboxes) {
                    $('#check_all').prop('checked', true);
                } else {
                    $('#check_all').prop('checked', false);
                }
            });
        </script>
        <script>
            function truncateText(text, maxLength) {
                if (text.length > maxLength) {
                    return text.substring(0, maxLength) + '...';
                }
                return text;
            }
        </script>
        <script>
            // Event listener for the View MCQ modal
            $('#ViewMcqModal').on('show.bs.modal', function(event) {
                var button = $(event.relatedTarget); // Button that triggered the modal
                var id = button.data('id');
                var question = button.data('question');
                var description = button.data('description');
                var mark = button.data('mark');
                var option1 = button.data('option_1');
                var option2 = button.data('option_2');
                var option3 = button.data('option_3');
                var option4 = button.data('option_4');
                var rightAnswer = button.data('right_answer');

                // Update the modal's content
                $('#mcq').val(question);
                $('#mcq_default_mark').val(mark);
                $('#mcq_description').val(description);
                $('#option1').val(option1);
                $('#option2').val(option2);
                $('#option3').val(option3);
                $('#option4').val(option4);

                // Set the correct radio button based on the right answer
                $('input[name="right_answer_radio"][value="' + rightAnswer + '"]').prop('checked', true);
            });
        </script>
        <script>
            // Event listener for the View Question modal
            $('#ViewQuestionModal').on('show.bs.modal', function(event) {
                var button = $(event.relatedTarget); // Button that triggered the modal
                var questionText = button.data('question');
                var descriptionText = button.data('description');
                var mark = button.data('mark');

                // Update the modal's content
                $('#view_question').val(questionText);
                $('#view_description').val(descriptionText);
                $('#view_mark').val(mark);
            });
        </script>
    @endpush
