<?php
session_start();
include "../db.php";

if (isset($_POST['start'])) {
    $start = mysqli_real_escape_string($con, $_POST['start']);
    $AndWhere = '';

    // Sanitize and build filters
    if (!empty($_POST['FirstFilterValue'])) {
        $first = mysqli_real_escape_string($con, $_POST['FirstFilterValue']);
        $AndWhere .= " AND uname = '$first'";
    }

    if (!empty($_POST['SecondFilterValue'])) {
        $second = mysqli_real_escape_string($con, $_POST['SecondFilterValue']);
        $AndWhere .= " AND referal_code = '$second'";
    }

    if (!empty($_POST['StateValue'])) {
        $state = mysqli_real_escape_string($con, $_POST['StateValue']);
        $AndWhere .= " AND state = '$state'";
    }

    if (!empty($_POST['DistValue'])) {
        $dist = mysqli_real_escape_string($con, $_POST['DistValue']);
        $AndWhere .= " AND dist = '$dist'";
    }

    $uref = mysqli_real_escape_string($con, $_SESSION['uref']);
    
    $sql = "SELECT * FROM users WHERE uadmin = '$uref' AND utype = 'Associate' AND udisplay != 'disable' $AndWhere ORDER BY uid DESC LIMIT $start, 10";

    $res = mysqli_query($con, $sql);

        if (mysqli_num_rows($res) === 0) {
            header('Content-Type: text/plain');
            echo '__NO_MORE_DATA__';
            exit;
        } else {
        $c = $start + 1;

        while ($rows = mysqli_fetch_assoc($res)) {
            $m_sql = "SELECT uname, uref FROM users WHERE uref = '" . mysqli_real_escape_string($con, $rows['admin_ref']) . "'";
            $m_run = mysqli_query($con, $m_sql);
            $m_rows = mysqli_fetch_assoc($m_run);

            $state_sql = mysqli_query($con, "SELECT * FROM state WHERE id = '" . mysqli_real_escape_string($con, $rows['state']) . "'");
            $state_name = mysqli_fetch_assoc($state_sql)["name"] ?? '';

            $dist_sql = mysqli_query($con, "SELECT * FROM dist WHERE id = '" . mysqli_real_escape_string($con, $rows['dist']) . "'");
            $dist_name = mysqli_fetch_assoc($dist_sql)["distName"] ?? '';

            $emp_sql = mysqli_query($con, "SELECT * FROM users WHERE uref = '$rows[admin_ref]'");
            if($emp_row = mysqli_fetch_assoc($emp_sql)){
                $employee_name = $emp_row["uname"];
            }

?>
<li class='clearfix' style='float: none;' id="franchisee<?php echo $rows["uid"]?>">
    <div class="single-dis-admin mb-2">
        <div class='row align-items-center'>
            <div class='col-md-3 col-12'>
                <a style='color:orange;font-size:17px;cursor:pointer;text-decoration:none;' class='viewDetails'
                    data-toggle='modal' data-target='#studentDetailsModal' data-name='<?php echo $rows["uname"];?>'
                    data-state='<?php echo $state_name;?>' data-dist='<?php echo $dist_name;?>'
                    data-pin='<?php echo $rows["pin"];?>' data-userid='<?php echo $rows["ucontact"];?>'
                    data-pass='<?php echo $rows["upass"];?>' data-address='<?php echo $rows["saddress"];?>'
                    data-classs='<?php echo $class_name;?>' data-date='<?php echo $rows["ucreated"];?>'>
                    <i class='fa fa-industry' aria-hidden='true'></i> <b><?php echo $rows["uname"];?></b> [
                    <b><?php echo $rows["referal_code"];?></b> ]
                </a>
                <br>
                <a href='tel:<?php echo $rows["ucontact"];?>' class='small text-dark text-decoration-none'
                    title='Click here to Call'> <i class='fa fa-phone fa-rotate-90'></i> <?php echo $rows["ucontact"];?>
                </a>
                <!--&nbsp;
                <b><i class='fa fa-building'></i> </b><?php echo $m_rows["uname"];?>-->
            </div>
            <div class="col-md-3 col-12">
                <label for="employee" class="small">Update Employee:</label>
                <select name="employee" class="form-control form-control-sm" id="pemployee"
                    onchange="updateEmployee(<?php echo $rows['uid']; ?>, this.value)">
                    <?php if(!empty($employee_name)){?>
                    <option value="<?php echo $rows['admin_ref'];?>"><?php echo $employee_name;?>
                    </option>
                    <?php }else{?>
                    <option value="">Select Employee</option>
                    <?php }?>
                    <?php 
                        $esql = "SELECT DISTINCT uname, uref FROM users WHERE utype = 'Employee' AND udisplay != 'disable' ORDER BY uname ASC";
                        $eres = mysqli_query($con, $esql);
                        while ($erow = mysqli_fetch_assoc($eres)) {
                    ?>
                    <option value="<?php echo $erow['uref']; ?>"><?php echo $erow['uname']; ?></option>
                    <?php } ?>
                </select>
            </div>
            <div class='col-md-6 col-12'>
                <div class="d-inline-block d-lg-flex justify-content-between align-items-center">
                    <a href='subFranchiee-list.php?franchisee=<?php echo $rows["uid"];?>&show_list'
                        class='btn btn-primary btn-sm mb-1' title='Click to View Franchiee Details'>Sub Associate List
                    </a>
                    <a href='workActivity.php?user=<?php echo $rows["uid"];?>' class='btn btn-primary btn-sm mb-1'
                        title='Click to View Franchiee Details'>Work Activity
                    </a>
                    <a href='payout.php?user=<?php echo $rows["uid"];?>&show_list' class='btn btn-primary btn-sm mb-1'
                        title='Click to View Franchiee Details'>Payout History
                    </a>
                    <a href='uplodDocuments.php?user=<?php echo $rows["uid"];?>&show_list'
                        class='btn btn-primary btn-sm mb-1' title='Click to Upload Documents'>Documents
                    </a>

                    <a href='view-franchiee.php?edit_id=<?php echo $rows["uid"];?>' class='btn btn-success btn-sm mb-1'
                        title='Click to Edit'><i class='fa fa-edit' aria-hidden='true'></i>
                    </a>
                    <a href='view-franchiee.php?del_id=<?php echo $rows["uid"];?>'
                        class='delete btn btn-danger btn-sm mb-1' title='Click to Delete'><i class='fa fa-trash'
                            aria-hidden='true'></i>
                    </a>

                    <!-- Status Switch Container -->
                    <div class="form-check form-switch status-switch" data-user-id="<?php echo $rows['uid']; ?>">
                        <input class="form-check-input" type="checkbox" role="switch"
                            id="switch_<?php echo $rows['uid']; ?>">
                        <label class="form-check-label" for="switch_<?php echo $rows['uid']; ?>">Loading...</label>
                    </div>

                </div>
            </div>
        </div>
    </div>
</li>

<?php
            $c++;
        }
        mysqli_close($con);
    }
}
?>

<script>
function initializeStatusSwitches() {
    $('.status-switch').each(function() {
        const container = $(this);
        const userId = container.data('user-id');
        const inputSwitch = container.find('input');
        const label = container.find('label');

        // Fetch current status
        $.post('fetch_status.php', {
            userId
        }, function(response) {
            try {
                const data = JSON.parse(response);
                const status = parseInt(data.uStatus, 10) || 0;

                inputSwitch.prop('checked', status === 1);
                label.text(status === 1 ? 'Active' : 'Inactive');
                inputSwitch.attr('title', 'Click to ' + (status === 1 ? 'Inactive' : 'Active'));
            } catch (e) {
                console.error('Status fetch error:', e);
                label.text('Error');
            }
        });

        // Handle switch change
        inputSwitch.on('change', function() {
            const newStatus = $(this).is(':checked') ? 1 : 0;

            $.post('update_status.php', {
                userId,
                uStatus: newStatus
            }, function(response) {
                try {
                    const res = JSON.parse(response);
                    if (res.status === 'success') {
                        label.text(newStatus === 1 ? 'Active' : 'Inactive');
                        inputSwitch.attr('title', 'Click to ' + (newStatus === 1 ? 'Inactive' :
                            'Active'));
                    } else {
                        alert(res.message || 'Update failed');
                        inputSwitch.prop('checked', !newStatus);
                    }
                } catch (e) {
                    console.error('Update parse error:', e);
                    alert('Error updating status');
                    inputSwitch.prop('checked', !newStatus);
                }
            }).fail(function() {
                alert('Update request failed');
                inputSwitch.prop('checked', !newStatus);
            });
        });
    });
}
</script>

<script>
$(document).ready(function() {
    $('.viewDetails').on('click', function(e) {
        e.preventDefault(); // Prevent default anchor tag action

        var name = $(this).data('name');
        $('#modalName').text(name);

        var state = $(this).data('state');
        $('#modalState').text(state);

        var dist = $(this).data('dist');
        $('#modalDist').text(dist);

        var pin = $(this).data('pin');
        $('#modalPin').text(pin);

        var userid = $(this).data('userid');
        $('#modalId').text(userid);

        var pass = $(this).data('pass');
        $('#modalPass').text(pass);

        var classs = $(this).data('classs');
        $('#modalClasss').text(classs);

        var qualification = $(this).data('qualification');
        $('#modalqualification').text(qualification);

        var address = $(this).data('address');
        $('#modalAddress').text(address);

        var date = $(this).data('date');
        $('#modalDate').text(date);

        $('#studentDetailsModal').modal('show'); // Open the modal
    });

});

function updateEmployee(associateId, employeeValue) {
    var xhr = new XMLHttpRequest();
    xhr.open("POST", "updateEmployee.php", true); // This is the PHP file that will update the employee
    xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    xhr.onreadystatechange = function() {
        if (xhr.readyState == 4 && xhr.status == 200) {
            // Optionally show success message
            console.log(xhr.responseText);
        }
    };
    xhr.send("associate_id=" + associateId + "&employee=" + employeeValue);
}
</script>