<?php
// Enable error reporting for debugging
error_reporting(E_ALL);
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);

require_once 'includes/config.php';

// Initialize variables
$member = null;
$error_message = '';
$search_performed = false;
$ahpc_pin = '';

// Process form submission (POST) and redirect to prevent resubmission
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['ahpc_pin'])) {
    $ahpc_pin = trim($_POST['ahpc_pin']);
    
    // Validate AHPC PIN (basic validation)
    if (empty($ahpc_pin)) {
        // Store error in session and redirect
        $_SESSION['verification_error'] = 'Please enter an AHPC PIN';
        $_SESSION['verification_pin'] = $ahpc_pin;
        header('Location: ' . $_SERVER['PHP_SELF']);
        exit;
    } else {
        // Sanitize input to prevent SQL injection
        $ahpc_pin_clean = mysqli_real_escape_string($conn, $ahpc_pin);
        
        // Try multiple search patterns - search both membership_number AND ahpc_pin fields
        $query = "SELECT m.*, mt.type_name 
                  FROM members m 
                  LEFT JOIN member_types mt ON m.member_type_id = mt.id 
                  WHERE m.membership_number = ? OR m.ahpc_pin = ?
                  LIMIT 1";
        
        $stmt = mysqli_prepare($conn, $query);
        if ($stmt) {
            mysqli_stmt_bind_param($stmt, "ss", $ahpc_pin_clean, $ahpc_pin_clean);
            mysqli_stmt_execute($stmt);
            $result = mysqli_stmt_get_result($stmt);
            
            if ($result && mysqli_num_rows($result) > 0) {
                $member = mysqli_fetch_assoc($result);
            } else {
                // If no exact match, try removing leading zeros or spaces
                $ahpc_pin_variations = [
                    ltrim($ahpc_pin_clean, '0'),  // Remove leading zeros
                    str_replace(' ', '', $ahpc_pin_clean),  // Remove spaces
                    preg_replace('/[^0-9]/', '', $ahpc_pin_clean)  // Keep only numbers
                ];
                
                foreach ($ahpc_pin_variations as $variant) {
                    if ($variant && $variant !== $ahpc_pin_clean) {
                        $stmt2 = mysqli_prepare($conn, $query);
                        mysqli_stmt_bind_param($stmt2, "ss", $variant, $variant);
                        mysqli_stmt_execute($stmt2);
                        $result2 = mysqli_stmt_get_result($stmt2);
                        
                        if ($result2 && mysqli_num_rows($result2) > 0) {
                            $member = mysqli_fetch_assoc($result2);
                            mysqli_stmt_close($stmt2);
                            break;
                        }
                        mysqli_stmt_close($stmt2);
                    }
                }
            }
            
            if ($member) {
                // Check if member has required fields
                if (!isset($member['membership_status'])) {
                    $member['membership_status'] = 'Unknown';
                }
                if (!isset($member['type_name'])) {
                    $member['type_name'] = 'Not Specified';
                }
                
                // Store member data in session
                $_SESSION['verification_member'] = $member;
                $_SESSION['verification_pin'] = $ahpc_pin;
                unset($_SESSION['verification_error']);
            } else {
                // Store error in session
                $_SESSION['verification_error'] = 'No member found with AHPC PIN: ' . htmlspecialchars($ahpc_pin) . '. Please verify the PIN and try again.';
                $_SESSION['verification_pin'] = $ahpc_pin;
                unset($_SESSION['verification_member']);
            }
            mysqli_stmt_close($stmt);
        } else {
            $_SESSION['verification_error'] = 'Database query error. Please try again later.';
            $_SESSION['verification_pin'] = $ahpc_pin;
            unset($_SESSION['verification_member']);
        }
        
        // Redirect to prevent form resubmission (Post/Redirect/Get pattern)
        header('Location: ' . $_SERVER['PHP_SELF'] . '?verified=1');
        exit;
    }
}

// Handle GET request after redirect (retrieve data from session)
if (isset($_GET['verified']) || isset($_SESSION['verification_member']) || isset($_SESSION['verification_error'])) {
    $search_performed = true;
    
    // Retrieve member data from session
    if (isset($_SESSION['verification_member'])) {
        $member = $_SESSION['verification_member'];
    }
    
    // Retrieve error message from session
    if (isset($_SESSION['verification_error'])) {
        $error_message = $_SESSION['verification_error'];
    }
    
    // Retrieve the searched PIN
    if (isset($_SESSION['verification_pin'])) {
        $ahpc_pin = $_SESSION['verification_pin'];
    }
}

// Clear session data if explicitly requested
if (isset($_GET['clear']) && $_GET['clear'] == '1') {
    unset($_SESSION['verification_member']);
    unset($_SESSION['verification_error']);
    unset($_SESSION['verification_pin']);
    header('Location: ' . $_SERVER['PHP_SELF']);
    exit;
}

// Determine member standing status
$standing_status = '';
$standing_class = '';
$standing_description = '';

if ($member) {
    $membership_status = strtolower($member['membership_status']);
    
    switch ($membership_status) {
        case 'active':
            $standing_status = 'Good Standing';
            $standing_class = 'good-standing';
            $standing_description = 'This member is in good standing with OHPAG and all membership requirements are up to date.';
            break;
        case 'inactive':
            $standing_status = 'Not in Good Standing';
            $standing_class = 'not-good-standing';
            $standing_description = 'This member\'s account is currently inactive. Please contact OHPAG for more information.';
            break;
        case 'suspended':
            $standing_status = 'Suspended';
            $standing_class = 'suspended';
            $standing_description = 'This member\'s account has been suspended. Please contact OHPAG for clarification.';
            break;
        case 'pending':
            $standing_status = 'Pending Approval';
            $standing_class = 'pending';
            $standing_description = 'This member\'s application is pending approval.';
            break;
        default:
            $standing_status = 'Status Unknown';
            $standing_class = 'unknown';
            $standing_description = 'Unable to determine membership standing. Please contact OHPAG.';
    }
}

$page_title = 'Member Good Standing Verification';

// SEO Meta Tags
$seo_title = 'Member Good Standing Verification';
$seo_description = 'Verify OHPAG member good standing status using your AHPC PIN. Check if a dental professional is a member in good standing with the Oral Health Professionals Association of Ghana.';
$seo_keywords = 'OHPAG member verification, good standing verification, AHPC PIN lookup, member status check, dental professional verification Ghana, oral health professionals verification';
$seo_image = BASE_URL . 'assets/images/background/page-title.jpg';
$seo_type = 'website';
$canonical_url = BASE_URL . 'good-standing';

// Structured Data
$structured_data = '
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "WebPage",
  "name": "Member Good Standing Verification",
  "description": "' . htmlspecialchars($seo_description) . '",
  "url": "' . BASE_URL . 'good-standing",
  "mainEntity": {
    "@type": "SearchAction",
    "target": "' . BASE_URL . 'good-standing?ahpc_pin={search_term_string}",
    "query-input": "required name=search_term_string"
  }
}
</script>
';

require_once 'includes/header.php';
?>

<style>
.verification-form {
    max-width: 600px;
    margin: 0 auto;
    padding: 40px;
    background: #fff;
    border-radius: 10px;
    box-shadow: 0 5px 20px rgba(0,0,0,0.1);
}

.verification-form .form-group {
    margin-bottom: 25px;
}

.verification-form label {
    display: block;
    margin-bottom: 10px;
    font-weight: 600;
    color: #222;
    font-size: 16px;
}

.verification-form input[type="text"] {
    width: 100%;
    padding: 15px;
    border: 2px solid #e0e0e0;
    border-radius: 5px;
    font-size: 16px;
    transition: border-color 0.3s;
}

.verification-form input[type="text"]:focus {
    outline: none;
    border-color: var(--primary-color);
}

.verification-form .submit-btn {
    width: 100%;
    padding: 15px;
    background: #143248 !important;
    color: #fff !important;
    border: none;
    border-radius: 5px;
    font-size: 16px;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.3s;
    display: block;
    text-align: center;
}

.verification-form .submit-btn:hover {
    background: #0d2738 !important;
    transform: translateY(-2px);
    box-shadow: 0 5px 15px rgba(0,0,0,0.2);
}

.alert {
    padding: 15px 20px;
    border-radius: 5px;
    margin-bottom: 20px;
    font-size: 15px;
}

.alert-danger {
    background: #fee;
    color: #c33;
    border: 1px solid #fcc;
}

.member-card {
    max-width: 800px;
    margin: 0 auto;
    background: #fff;
    border-radius: 10px;
    box-shadow: 0 5px 20px rgba(0,0,0,0.1);
    overflow: hidden;
}

.member-card-header {
    padding: 40px;
    text-align: center;
}

.member-card-header.good-standing {
    background: #28a745;
}

.member-card-header.not-good-standing {
    background: #dc3545;
}

.member-card-header.suspended {
    background: #6c757d;
}

.member-card-header.pending {
    background: #ffc107;
}

.member-card-header.unknown {
    background: #6c757d;
}

.standing-badge {
    display: inline-block;
    padding: 15px 30px;
    background: rgba(255,255,255,0.2);
    border: 3px solid #fff;
    border-radius: 50px;
    color: #fff;
    font-size: 24px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 15px;
}

.standing-description {
    color: #fff;
    font-size: 16px;
    margin-top: 15px;
    line-height: 1.6;
}

.member-details {
    padding: 40px;
}

.detail-row {
    display: flex;
    padding: 15px 0;
    border-bottom: 1px solid #e0e0e0;
}

.detail-row:last-child {
    border-bottom: none;
}

.detail-label {
    flex: 0 0 200px;
    font-weight: 600;
    color: #666;
}

.detail-value {
    flex: 1;
    color: #222;
    font-weight: 500;
}

.search-again-btn {
    text-align: center;
    margin-top: 30px;
}

.search-again-btn a {
    display: inline-block;
    padding: 12px 30px;
    background: var(--primary-color);
    color: #fff;
    text-decoration: none;
    border-radius: 5px;
    font-weight: 600;
    transition: all 0.3s;
}

.search-again-btn a:hover {
    background: #0d2738;
    transform: translateY(-2px);
    box-shadow: 0 5px 15px rgba(0,0,0,0.2);
}

@media (max-width: 768px) {
    .detail-row {
        flex-direction: column;
    }
    
    .detail-label {
        margin-bottom: 5px;
    }
    
    .verification-form {
        padding: 30px 20px;
    }
    
    .member-details {
        padding: 30px 20px;
    }
}
</style>

<!-- page-title -->
<section class="page-title">
    <div class="bg-layer" style="background-image: url(<?php echo BASE_URL; ?>assets/images/background/page-title.jpg);"></div>
    <div class="auto-container">
        <div class="content-box">
            <h1>Member Good Standing</h1>
            <ul class="bread-crumb clearfix">
                <li><a href="<?php echo BASE_URL; ?>">Home</a></li>
                <li>Good Standing Verification</li>
            </ul>
        </div>
    </div>
</section>
<!-- page-title end -->

<!-- verification-section -->
<section class="service-page-section" style="padding: 100px 0 80px;">
    <div class="auto-container">
        <div class="sec-title centred" style="margin-bottom: 50px;">
            <span class="sub-title">Verification Service</span>
            <h2>Member Good Standing Verification</h2>
            <p>Enter your AHPC PIN to verify your membership standing with OHPAG</p>
        </div>

        <?php if (!$search_performed || $error_message): ?>
            <!-- Verification Form -->
            <div class="verification-form">
                <?php if ($error_message): ?>
                    <div class="alert alert-danger">
                        <strong>Error:</strong> <?php echo htmlspecialchars($error_message); ?>
                    </div>
                <?php endif; ?>

                <form method="POST" action="" id="verificationForm">
                    <div class="form-group">
                        <label for="ahpc_pin">AHPC PIN (Membership Number)</label>
                        <input 
                            type="text" 
                            id="ahpc_pin" 
                            name="ahpc_pin" 
                            value="<?php echo htmlspecialchars($ahpc_pin); ?>" 
                            placeholder="Enter your AHPC PIN" 
                            required
                            autocomplete="off"
                        >
                        <small style="display: block; margin-top: 8px; color: #666;">
                            Your AHPC PIN is your unique membership identification number
                        </small>
                    </div>

                    <button type="submit" class="submit-btn" id="submitBtn">
                        <i class="flaticon-search" style="margin-right: 8px;"></i>
                        Verify Standing
                    </button>
                </form>

                <script>
                // Add loading state to button on form submission
                document.getElementById('verificationForm').addEventListener('submit', function() {
                    var btn = document.getElementById('submitBtn');
                    btn.innerHTML = '<i class="flaticon-loading" style="margin-right: 8px;"></i>Processing...';
                    btn.disabled = true;
                    btn.style.opacity = '0.7';
                    btn.style.cursor = 'not-allowed';
                });
                </script>

                <div style="margin-top: 30px; padding-top: 30px; border-top: 1px solid #e0e0e0; text-align: center;">
                    <p style="color: #666; font-size: 14px; line-height: 1.6;">
                        <strong>Note:</strong> This verification service is provided to confirm membership status. 
                        For any discrepancies or questions, please contact OHPAG directly.
                    </p>
                </div>
            </div>
        <?php else: ?>
            <!-- Member Results -->
            <div class="member-card">
                <!-- Standing Status Header -->
                <div class="member-card-header <?php echo $standing_class; ?>">
                    <div class="standing-badge">
                        <?php echo htmlspecialchars($standing_status); ?>
                    </div>
                    <p class="standing-description">
                        <?php echo htmlspecialchars($standing_description); ?>
                    </p>
                </div>

                <!-- Member Details -->
                <div class="member-details">
                    <h3 style="margin-bottom: 30px; color: #222; font-size: 24px; text-align: center;">
                        Member Information
                    </h3>

                    <div class="detail-row">
                        <div class="detail-label">Full Name:</div>
                        <div class="detail-value">
                            <?php echo htmlspecialchars(($member['first_name'] ?? '') . ' ' . ($member['last_name'] ?? '')); ?>
                        </div>
                    </div>

                    <div class="detail-row">
                        <div class="detail-label">AHPC PIN:</div>
                        <div class="detail-value">
                            <?php 
                            // Display ahpc_pin if available, otherwise show membership_number
                            $display_pin = '';
                            if (isset($member['ahpc_pin']) && !empty($member['ahpc_pin'])) {
                                $display_pin = $member['ahpc_pin'];
                            } elseif (isset($member['membership_number']) && !empty($member['membership_number'])) {
                                $display_pin = $member['membership_number'];
                            } else {
                                $display_pin = 'N/A';
                            }
                            echo htmlspecialchars($display_pin);
                            ?>
                        </div>
                    </div>
                    
                    <?php if (isset($member['membership_number']) && !empty($member['membership_number']) && $member['membership_number'] != ($member['ahpc_pin'] ?? '')): ?>
                    <div class="detail-row">
                        <div class="detail-label">Membership Number:</div>
                        <div class="detail-value">
                            <?php echo htmlspecialchars($member['membership_number']); ?>
                        </div>
                    </div>
                    <?php endif; ?>

                    <div class="detail-row">
                        <div class="detail-label">Member Type:</div>
                        <div class="detail-value">
                            <?php echo htmlspecialchars($member['type_name'] ?? 'Not Specified'); ?>
                        </div>
                    </div>

                    <div class="detail-row">
                        <div class="detail-label">Membership Status:</div>
                        <div class="detail-value">
                            <span style="display: inline-block; padding: 5px 15px; background: <?php 
                                echo $standing_class == 'good-standing' ? '#28a745' : 
                                     ($standing_class == 'not-good-standing' ? '#dc3545' : 
                                     ($standing_class == 'suspended' ? '#6c757d' : 
                                     ($standing_class == 'pending' ? '#ffc107' : '#adb5bd'))); 
                            ?>; color: #fff; border-radius: 3px; font-size: 14px; font-weight: 600;">
                                <?php echo htmlspecialchars($member['membership_status'] ?? 'Unknown'); ?>
                            </span>
                        </div>
                    </div>

                    <?php if (isset($member['registration_date']) && !empty($member['registration_date'])): ?>
                        <div class="detail-row">
                            <div class="detail-label">Registration Date:</div>
                            <div class="detail-value">
                                <?php echo date('d F Y', strtotime($member['registration_date'])); ?>
                            </div>
                        </div>
                    <?php endif; ?>

                    <?php if (isset($member['email']) && !empty($member['email'])): ?>
                        <div class="detail-row">
                            <div class="detail-label">Email:</div>
                            <div class="detail-value">
                                <?php echo htmlspecialchars($member['email']); ?>
                            </div>
                        </div>
                    <?php endif; ?>

                    <div class="detail-row">
                        <div class="detail-label">Place of Work:</div>
                        <div class="detail-value">
                            <?php 
                            if (isset($member['working_facility']) && !empty($member['working_facility'])) {
                                echo htmlspecialchars($member['working_facility']);
                            } else {
                                echo '<span style="color: #999;">Not specified</span>';
                            }
                            ?>
                        </div>
                    </div>
                    
                    <?php if (isset($member['facility_type']) && !empty($member['facility_type'])): ?>
                        <div class="detail-row">
                            <div class="detail-label">Facility Type:</div>
                            <div class="detail-value">
                                <?php 
                                $facility_type = $member['facility_type'];
                                $facility_type_display = [
                                    'government' => 'Government',
                                    'quasi_government' => 'Quasi-Government',
                                    'private' => 'Private',
                                    'teaching_hospital' => 'Teaching Hospital',
                                    'none' => 'None'
                                ];
                                echo htmlspecialchars($facility_type_display[$facility_type] ?? ucfirst(str_replace('_', ' ', $facility_type)));
                                ?>
                            </div>
                        </div>
                    <?php endif; ?>

                    <div class="search-again-btn">
                        <a href="<?php echo BASE_URL; ?>good-standing?clear=1">
                            <i class="flaticon-search" style="margin-right: 8px;"></i>
                            Verify Another Member
                        </a>
                    </div>
                </div>
            </div>
        <?php endif; ?>

        <!-- Information Box -->
        <div style="max-width: 800px; margin: 60px auto 0; text-align: center;">
            <div style="padding: 30px; background: #f8f9fa; border-radius: 10px; border-left: 5px solid var(--primary-color);">
                <h4 style="margin-bottom: 15px; color: #222;">What does "Good Standing" mean?</h4>
                <p style="color: #666; line-height: 1.8; margin-bottom: 0;">
                    A member in good standing has fulfilled all membership requirements including payment of dues, 
                    adherence to professional standards, and compliance with OHPAG regulations. This status confirms 
                    that the member is a recognised professional within the Oral Health Professionals Association of Ghana.
                </p>
            </div>
        </div>
    </div>
</section>
<!-- verification-section end -->

<!-- cta-section -->
<section class="cta-section" style="margin-bottom: 100px;">
    <div class="auto-container">
        <div class="inner-container" style="margin-bottom: 0;">
            <div class="bg-layer" style="background-image: url(<?php echo BASE_URL; ?>assets/images/background/cta-bg.jpg);"></div>
            <div class="inner-box">
                <h2>Need Information About Membership?</h2>
                <ul class="info clearfix">
                    <li><a href="tel:<?php echo str_replace(['(', ')', ' ', '+'], '', SITE_PHONE_1); ?>"><?php echo SITE_PHONE_1; ?></a>,</li>
                    <li><a href="mailto:<?php echo SITE_EMAIL; ?>"><?php echo SITE_EMAIL; ?></a></li>
                </ul>
            </div>
        </div>
    </div>
</section>
<!-- cta-section end -->

<?php require_once 'includes/footer.php'; ?>
