{"id":1754,"date":"2022-04-07T10:48:54","date_gmt":"2022-04-07T10:48:54","guid":{"rendered":"https:\/\/foxiz.themeruby.com\/news\/membership-join\/"},"modified":"2026-02-08T10:13:51","modified_gmt":"2026-02-08T10:13:51","slug":"grants","status":"publish","type":"page","link":"https:\/\/grants.zimadtech.com\/home\/grants\/","title":{"rendered":"Grants"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"1754\" class=\"elementor elementor-1754\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-360fe71 e-flex e-con-boxed e-con e-parent\" data-id=\"360fe71\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;,&quot;shape_divider_bottom&quot;:&quot;tilt&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-shape elementor-shape-bottom\" aria-hidden=\"true\" data-negative=\"false\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 1000 100\" preserveAspectRatio=\"none\">\n\t<path class=\"elementor-shape-fill\" d=\"M0,6V0h1000v100L0,6z\"\/>\n<\/svg>\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-d27b7be e-con-full e-flex e-con e-child\" data-id=\"d27b7be\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-a69bb0c elementor-widget elementor-widget-heading\" data-id=\"a69bb0c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Great funding opportunities<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-822d943 elementor-widget elementor-widget-text-editor\" data-id=\"822d943\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Browse through for a great funding opportunity.\u00a0<\/p><p>Apply Today!<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-383f69b e-con-full e-flex e-con e-child\" data-id=\"383f69b\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-88b384f elementor-widget elementor-widget-image\" data-id=\"88b384f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/grants.zimadtech.com\/home\/wp-content\/uploads\/2026\/02\/GoodChanceLogo-150x150.webp\" class=\"attachment-thumbnail size-thumbnail wp-image-4438\" alt=\"\" srcset=\"https:\/\/grants.zimadtech.com\/home\/wp-content\/uploads\/2026\/02\/GoodChanceLogo-150x150.webp 150w, https:\/\/grants.zimadtech.com\/home\/wp-content\/uploads\/2026\/02\/GoodChanceLogo-300x300.webp 300w, https:\/\/grants.zimadtech.com\/home\/wp-content\/uploads\/2026\/02\/GoodChanceLogo-1024x1024.webp 1024w, https:\/\/grants.zimadtech.com\/home\/wp-content\/uploads\/2026\/02\/GoodChanceLogo-768x768.webp 768w, https:\/\/grants.zimadtech.com\/home\/wp-content\/uploads\/2026\/02\/GoodChanceLogo-1536x1536.webp 1536w, https:\/\/grants.zimadtech.com\/home\/wp-content\/uploads\/2026\/02\/GoodChanceLogo-2048x2048.webp 2048w, https:\/\/grants.zimadtech.com\/home\/wp-content\/uploads\/2026\/02\/GoodChanceLogo-450x450.webp 450w, https:\/\/grants.zimadtech.com\/home\/wp-content\/uploads\/2026\/02\/GoodChanceLogo-780x780.webp 780w, https:\/\/grants.zimadtech.com\/home\/wp-content\/uploads\/2026\/02\/GoodChanceLogo-1600x1600.webp 1600w\" sizes=\"(max-width: 150px) 100vw, 150px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-2c69967 e-flex e-con-boxed e-con e-parent\" data-id=\"2c69967\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-f63cc71 elementor-widget elementor-widget-text-editor\" data-id=\"f63cc71\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<div class=\"grants-table-container\">\n    <div class=\"grants-header\">\n        <h2>Available Development Grants<\/h2>\n        <p class=\"subtitle\">Apply for funding opportunities from leading organizations<\/p>\n        \n        <div class=\"table-controls\">\n            <div class=\"search-box\">\n                <input type=\"text\" id=\"grantSearch\" placeholder=\"Search grants...\">\n                <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                    <circle cx=\"11\" cy=\"11\" r=\"8\"><\/circle>\n                    <path d=\"m21 21-4.35-4.35\"><\/path>\n                <\/svg>\n            <\/div>\n            \n            <div class=\"filter-dropdown\">\n                <select id=\"statusFilter\">\n                    <option value=\"all\">All Status<\/option>\n                    <option value=\"open\">Open<\/option>\n                    <option value=\"closing\">Closing Soon<\/option>\n                    <option value=\"closed\">Closed<\/option>\n                <\/select>\n            <\/div>\n        <\/div>\n    <\/div>\n\n    <div class=\"table-responsive\">\n        <table class=\"grants-table\">\n            <thead>\n                <tr>\n                    <th class=\"logo-column\">Logo<\/th>\n                    <th class=\"name-column\">Grant Name<\/th>\n                    <th class=\"amount-column\">Amount<\/th>\n                    <th class=\"date-column\">Deadline<\/th>\n                    <th class=\"status-column\">Status<\/th>\n                    <th class=\"action-column\">Apply<\/th>\n                <\/tr>\n            <\/thead>\n            <tbody id=\"grantsTableBody\">\n                <!-- Rows will be populated by JavaScript -->\n            <\/tbody>\n        <\/table>\n    <\/div>\n    \n    <div class=\"table-footer\">\n        <div class=\"pagination\">\n            <button class=\"pagination-btn\" id=\"prevPage\" disabled>\u2190 Previous<\/button>\n            <span class=\"page-info\">Page <span id=\"currentPage\">1<\/span> of <span id=\"totalPages\">3<\/span><\/span>\n            <button class=\"pagination-btn\" id=\"nextPage\">Next \u2192<\/button>\n        <\/div>\n        \n        <div class=\"results-info\">\n            Showing <span id=\"showingCount\">6<\/span> of <span id=\"totalCount\">18<\/span> grants\n        <\/div>\n    <\/div>\n<\/div>\n\n<style>\n\/* Grants Table Container *\/\n.grants-table-container {\n    max-width: 1200px;\n    margin: 40px auto;\n    padding: 20px;\n    background: #ffffff;\n    border-radius: 12px;\n    box-shadow: 0 5px 20px rgba(0, 0, 0, 0.08);\n    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, sans-serif;\n}\n\n.grants-header {\n    margin-bottom: 30px;\n}\n\n.grants-header h2 {\n    color: #1428a0;\n    font-size: 28px;\n    margin-bottom: 8px;\n    font-weight: 700;\n}\n\n.subtitle {\n    color: #666;\n    font-size: 16px;\n    margin-bottom: 25px;\n}\n\n\/* Table Controls *\/\n.table-controls {\n    display: flex;\n    gap: 20px;\n    margin-bottom: 20px;\n    flex-wrap: wrap;\n}\n\n.search-box {\n    flex: 1;\n    min-width: 250px;\n    position: relative;\n}\n\n.search-box input {\n    width: 100%;\n    padding: 12px 15px 12px 45px;\n    border: 1px solid #ddd;\n    border-radius: 8px;\n    font-size: 15px;\n    transition: all 0.3s;\n}\n\n.search-box input:focus {\n    outline: none;\n    border-color: #1428a0;\n    box-shadow: 0 0 0 3px rgba(20, 40, 160, 0.1);\n}\n\n.search-box svg {\n    position: absolute;\n    left: 15px;\n    top: 50%;\n    transform: translateY(-50%);\n    color: #888;\n}\n\n.filter-dropdown select {\n    padding: 12px 40px 12px 15px;\n    border: 1px solid #ddd;\n    border-radius: 8px;\n    font-size: 15px;\n    background: white;\n    cursor: pointer;\n    min-width: 180px;\n    appearance: none;\n    background-image: url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='12' height='12' fill='%231428a0' viewBox='0 0 16 16'%3E%3Cpath d='M7.247 11.14 2.451 5.658C1.885 5.013 2.345 4 3.204 4h9.592a1 1 0 0 1 .753 1.659l-4.796 5.48a1 1 0 0 1-1.506 0z'\/%3E%3C\/svg%3E\");\n    background-repeat: no-repeat;\n    background-position: right 15px center;\n    background-size: 12px;\n}\n\n.filter-dropdown select:focus {\n    outline: none;\n    border-color: #1428a0;\n}\n\n\/* Table Styles *\/\n.table-responsive {\n    overflow-x: auto;\n    margin-bottom: 30px;\n    border-radius: 8px;\n    border: 1px solid #eee;\n}\n\n.grants-table {\n    width: 100%;\n    border-collapse: collapse;\n    min-width: 800px;\n}\n\n.grants-table th {\n    background: #f0f7ff;\n    color: #1428a0;\n    font-weight: 600;\n    text-align: left;\n    padding: 18px 15px;\n    font-size: 15px;\n    border-bottom: 2px solid #ddd;\n}\n\n.grants-table td {\n    padding: 20px 15px;\n    border-bottom: 1px solid #eee;\n    vertical-align: middle;\n    transition: background-color 0.2s;\n}\n\n.grants-table tbody tr:hover {\n    background-color: #f9f9f9;\n}\n\n\/* Column-specific styles *\/\n.logo-column {\n    width: 80px;\n}\n\n.name-column {\n    min-width: 250px;\n}\n\n.amount-column {\n    width: 150px;\n}\n\n.date-column {\n    width: 140px;\n}\n\n.status-column {\n    width: 120px;\n}\n\n.action-column {\n    width: 100px;\n    text-align: center;\n}\n\n\/* Logo Styles *\/\n.grant-logo {\n    width: 50px;\n    height: 50px;\n    border-radius: 10px;\n    object-fit: contain;\n    background: white;\n    padding: 8px;\n    border: 1px solid #eee;\n    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05);\n}\n\n\/* Grant Name Styles *\/\n.grant-name {\n    font-weight: 600;\n    color: #333;\n    margin-bottom: 5px;\n    font-size: 16px;\n}\n\n.grant-org {\n    color: #666;\n    font-size: 14px;\n    display: block;\n}\n\n\/* Amount Styles *\/\n.amount-badge {\n    display: inline-block;\n    background: #e8f5e9;\n    color: #00c853;\n    padding: 6px 12px;\n    border-radius: 20px;\n    font-weight: 600;\n    font-size: 14px;\n}\n\n\/* Date Styles *\/\n.date-display {\n    font-weight: 500;\n    color: #333;\n    font-size: 15px;\n}\n\n.date-remaining {\n    display: block;\n    font-size: 13px;\n    color: #666;\n    margin-top: 4px;\n}\n\n\/* Status Styles *\/\n.status-badge {\n    display: inline-block;\n    padding: 6px 12px;\n    border-radius: 20px;\n    font-size: 13px;\n    font-weight: 600;\n    text-transform: uppercase;\n    letter-spacing: 0.5px;\n}\n\n.status-open {\n    background: #e8f5e9;\n    color: #00c853;\n}\n\n.status-closing {\n    background: #fff8e1;\n    color: #ff9800;\n}\n\n.status-closed {\n    background: #ffebee;\n    color: #f44336;\n}\n\n\/* Apply Button Styles *\/\n.apply-btn {\n    display: inline-block;\n    padding: 10px 15px;\n    font-size: 14px;\n    font-weight: 600;\n    text-decoration: none;\n    border-radius: 6px;\n    border: none;\n    cursor: pointer;\n    transition: all 0.3s ease;\n    width: 100%;\n    max-width: 120px;\n    text-align: center;\n}\n\n\/* Open Button - Blue Gradient *\/\n.apply-open {\n    background: linear-gradient(135deg, #1428a0, #1a34c5);\n    color: white;\n    box-shadow: 0 2px 8px rgba(20, 40, 160, 0.2);\n}\n\n.apply-open:hover {\n    background: linear-gradient(135deg, #1a34c5, #2038e0);\n    transform: translateY(-2px);\n    box-shadow: 0 4px 12px rgba(20, 40, 160, 0.3);\n}\n\n\/* Closing Soon Button - Orange Gradient *\/\n.apply-closing {\n    background: linear-gradient(135deg, #ff9800, #ffb74d);\n    color: white;\n    box-shadow: 0 2px 8px rgba(255, 152, 0, 0.2);\n}\n\n.apply-closing:hover {\n    background: linear-gradient(135deg, #ffb74d, #ffcc80);\n    transform: translateY(-2px);\n    box-shadow: 0 4px 12px rgba(255, 152, 0, 0.3);\n}\n\n\/* Closed Button - Gray *\/\n.apply-closed {\n    background: #f5f5f5;\n    color: #999;\n    border: 1px solid #ddd;\n    cursor: not-allowed;\n}\n\n\/* Button states *\/\n.apply-btn:disabled {\n    opacity: 0.7;\n    cursor: not-allowed;\n    transform: none !important;\n    box-shadow: none !important;\n}\n\n\/* Table Footer *\/\n.table-footer {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    padding-top: 20px;\n    border-top: 1px solid #eee;\n    flex-wrap: wrap;\n    gap: 20px;\n}\n\n.pagination {\n    display: flex;\n    align-items: center;\n    gap: 15px;\n}\n\n.pagination-btn {\n    background: #f0f7ff;\n    color: #1428a0;\n    border: 1px solid #ddd;\n    padding: 10px 20px;\n    border-radius: 6px;\n    cursor: pointer;\n    font-weight: 500;\n    transition: all 0.3s;\n    min-width: 100px;\n}\n\n.pagination-btn:hover:not(:disabled) {\n    background: #1428a0;\n    color: white;\n    border-color: #1428a0;\n}\n\n.pagination-btn:disabled {\n    opacity: 0.5;\n    cursor: not-allowed;\n}\n\n.page-info {\n    font-weight: 500;\n    color: #333;\n    min-width: 100px;\n    text-align: center;\n}\n\n.results-info {\n    color: #666;\n    font-size: 14px;\n}\n\n\/* Responsive Design *\/\n@media (max-width: 992px) {\n    .grants-table-container {\n        margin: 20px;\n        padding: 15px;\n    }\n    \n    .grants-header h2 {\n        font-size: 24px;\n    }\n    \n    .table-footer {\n        flex-direction: column;\n        align-items: stretch;\n    }\n    \n    .pagination {\n        justify-content: center;\n    }\n}\n\n@media (max-width: 768px) {\n    .grants-table th,\n    .grants-table td {\n        padding: 15px 10px;\n    }\n    \n    .logo-column {\n        width: 60px;\n    }\n    \n    .grant-logo {\n        width: 40px;\n        height: 40px;\n    }\n    \n    .apply-btn {\n        padding: 8px 12px;\n        font-size: 13px;\n        max-width: 100px;\n    }\n    \n    .amount-badge,\n    .status-badge {\n        padding: 4px 8px;\n        font-size: 12px;\n    }\n}\n\n@media (max-width: 480px) {\n    .table-controls {\n        flex-direction: column;\n    }\n    \n    .search-box,\n    .filter-dropdown select {\n        min-width: 100%;\n    }\n    \n    .grants-table {\n        min-width: 700px;\n    }\n    \n    .pagination-btn {\n        min-width: 80px;\n        padding: 8px 15px;\n    }\n}\n\n\/* Card View for Mobile *\/\n@media (max-width: 768px) {\n    .mobile-grant-cards {\n        display: none;\n    }\n    \n    .grants-table {\n        display: none;\n    }\n    \n    .mobile-grant-cards {\n        display: block;\n    }\n    \n    .grant-card {\n        background: white;\n        border: 1px solid #eee;\n        border-radius: 10px;\n        padding: 20px;\n        margin-bottom: 20px;\n        display: flex;\n        align-items: flex-start;\n        gap: 15px;\n        transition: transform 0.3s, box-shadow 0.3s;\n    }\n    \n    .grant-card:hover {\n        transform: translateY(-3px);\n        box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);\n    }\n    \n    .grant-card-logo {\n        width: 60px;\n        height: 60px;\n        border-radius: 10px;\n        object-fit: contain;\n        background: white;\n        padding: 8px;\n        border: 1px solid #eee;\n        flex-shrink: 0;\n    }\n    \n    .grant-card-content {\n        flex: 1;\n    }\n    \n    .grant-card-header {\n        display: flex;\n        justify-content: space-between;\n        align-items: flex-start;\n        margin-bottom: 10px;\n    }\n    \n    .grant-card-name {\n        font-weight: 600;\n        color: #333;\n        font-size: 16px;\n        margin-bottom: 5px;\n    }\n    \n    .grant-card-org {\n        color: #666;\n        font-size: 14px;\n    }\n    \n    .grant-card-details {\n        display: grid;\n        grid-template-columns: repeat(2, 1fr);\n        gap: 15px;\n        margin-top: 15px;\n    }\n    \n    .grant-card-detail {\n        display: flex;\n        flex-direction: column;\n    }\n    \n    .detail-label {\n        font-size: 12px;\n        color: #888;\n        margin-bottom: 4px;\n        text-transform: uppercase;\n        letter-spacing: 0.5px;\n    }\n    \n    .detail-value {\n        font-weight: 500;\n        color: #333;\n        font-size: 14px;\n    }\n    \n    .grant-card-apply {\n        text-align: right;\n        margin-top: 15px;\n    }\n    \n    .mobile-apply-btn {\n        display: inline-block;\n        padding: 10px 20px;\n        font-size: 14px;\n        font-weight: 600;\n        text-decoration: none;\n        border-radius: 6px;\n        border: none;\n        cursor: pointer;\n        transition: all 0.3s ease;\n        width: 100%;\n    }\n    \n    .mobile-apply-open {\n        background: linear-gradient(135deg, #1428a0, #1a34c5);\n        color: white;\n        box-shadow: 0 2px 8px rgba(20, 40, 160, 0.2);\n    }\n    \n    .mobile-apply-closing {\n        background: linear-gradient(135deg, #ff9800, #ffb74d);\n        color: white;\n        box-shadow: 0 2px 8px rgba(255, 152, 0, 0.2);\n    }\n    \n    .mobile-apply-closed {\n        background: #f5f5f5;\n        color: #999;\n        border: 1px solid #ddd;\n        cursor: not-allowed;\n    }\n    \n    .mobile-apply-btn:hover:not(.mobile-apply-closed) {\n        transform: translateY(-2px);\n        box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);\n    }\n}\n\n\/* Error Modal *\/\n.error-modal {\n    display: none;\n    position: fixed;\n    top: 0;\n    left: 0;\n    width: 100%;\n    height: 100%;\n    background: rgba(0, 0, 0, 0.5);\n    z-index: 1000;\n    align-items: center;\n    justify-content: center;\n}\n\n.error-modal-content {\n    background: white;\n    padding: 40px;\n    border-radius: 12px;\n    max-width: 500px;\n    width: 90%;\n    text-align: center;\n    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.2);\n    animation: modalFadeIn 0.3s ease;\n}\n\n@keyframes modalFadeIn {\n    from { opacity: 0; transform: scale(0.9); }\n    to { opacity: 1; transform: scale(1); }\n}\n\n.error-icon {\n    font-size: 60px;\n    color: #ff4444;\n    margin-bottom: 20px;\n}\n\n.error-title {\n    color: #d32f2f;\n    font-size: 24px;\n    margin-bottom: 15px;\n    font-weight: 600;\n}\n\n.error-code {\n    background: #ffebee;\n    color: #d32f2f;\n    padding: 8px 20px;\n    border-radius: 20px;\n    font-weight: bold;\n    font-size: 18px;\n    display: inline-block;\n    margin: 10px 0;\n}\n\n.error-message {\n    color: #666;\n    margin: 20px 0;\n    line-height: 1.6;\n}\n\n.close-error-modal {\n    background: #1428a0;\n    color: white;\n    border: none;\n    padding: 12px 30px;\n    border-radius: 6px;\n    font-weight: 600;\n    cursor: pointer;\n    margin-top: 20px;\n    transition: background 0.3s;\n}\n\n.close-error-modal:hover {\n    background: #1a34c5;\n}\n<\/style>\n\n<script>\n\/\/ Sample grants data with different button states\nconst grantsData = [\n    {\n        id: 1,\n        name: \"Samsung Development Grant\",\n        organization: \"Samsung Electronics\",\n        logo: \"https:\/\/img.icons8.com\/color\/96\/000000\/samsung.png\",\n        amount: \"AUD$350,000\",\n        deadline: \"2026-03-30\",\n        status: \"open\",\n        description: \"Funding for innovative technology projects\",\n        buttonState: \"open\", \/\/ Open button with direct URL\n        buttonUrl: \"https:\/\/grants.zimadtech.com\/home\/application-form\/\"\n    },\n    {\n        id: 2,\n        name: \"Sustainable Development Award\",\n        organization: \"Global Green Initiative\",\n        logo: \"https:\/\/img.icons8.com\/color\/96\/000000\/recycle-sign.png\",\n        amount: \"AUD$175,000\",\n        deadline: \"2026-02-10\",\n        status: \"closing\",\n        description: \"Support for sustainable development projects\",\n        buttonState: \"closing\", \/\/ Closing Soon button shows Error 218\n        daysLeft: 3\n    },\n    {\n        id: 3,\n        name: \"AI Research Fellowship\",\n        organization: \"TechFuture Foundation\",\n        logo: \"https:\/\/img.icons8.com\/color\/96\/000000\/artificial-intelligence.png\",\n        amount: \"AUD$230,000\",\n        deadline: \"2025-09-20\",\n        status: \"closed\",\n        description: \"Research funding for AI projects\",\n        buttonState: \"closed\" \/\/ Closed button shows notice\n    },\n    {\n        id: 4,\n        name: \"Community Impact Grant\",\n        organization: \"SocialGood Network\",\n        logo: \"https:\/\/img.icons8.com\/color\/96\/000000\/community.png\",\n        amount: \"AUD$125,000\",\n        deadline: \"2026-03-10\",\n        status: \"open\",\n        description: \"Funding for community development initiatives\",\n        buttonState: \"open\",\n        buttonUrl: \"https:\/\/grants.zimadtech.com\/home\/application-form\/\"\n    },\n    {\n        id: 5,\n        name: \"Startup Accelerator Fund\",\n        organization: \"Innovate Capital\",\n        logo: \"https:\/\/img.icons8.com\/color\/96\/000000\/startup.png\",\n        amount: \"AUD$100,000\",\n        deadline: \"2026-02-11\",\n        status: \"closing\",\n        description: \"Seed funding for early-stage startups\",\n        buttonState: \"closing\",\n        daysLeft: 7\n    },\n    {\n        id: 6,\n        name: \"Digital Literacy Program\",\n        organization: \"Education First\",\n        logo: \"https:\/\/img.icons8.com\/color\/96\/000000\/education.png\",\n        amount: \"AUD$140,000\",\n        deadline: \"2025-11-15\",\n        status: \"closed\",\n        description: \"Funding for digital education programs\",\n        buttonState: \"closed\"\n    },\n    {\n        id: 7,\n        name: \"Healthcare Innovation Grant\",\n        organization: \"HealthTech Alliance\",\n        logo: \"https:\/\/img.icons8.com\/color\/96\/000000\/health.png\",\n        amount: \"AUD$160,000\",\n        deadline: \"2026-02-21\",\n        status: \"open\",\n        description: \"Support for healthcare technology innovations\",\n        buttonState: \"open\",\n        buttonUrl: \"https:\/\/grants.zimadtech.com\/home\/application-form\/\"\n    },\n    {\n        id: 8,\n        name: \"Women in Tech Scholarship\",\n        organization: \"Diversity in Tech\",\n        logo: \"https:\/\/img.icons8.com\/color\/96\/000000\/women.png\",\n        amount: \"AUD$220,000\",\n        deadline: \"2026-02-15\",\n        status: \"closing\",\n        description: \"Scholarship for women in technology fields\",\n        buttonState: \"closing\",\n        daysLeft: 2\n    },\n    {\n        id: 9,\n        name: \"Renewable Energy Grant\",\n        organization: \"Clean Energy Partners\",\n        logo: \"https:\/\/img.icons8.com\/color\/96\/000000\/solar-panel.png\",\n        amount: \"AUD$180,000\",\n        deadline: \"2025-11-30\",\n        status: \"closed\",\n        description: \"Funding for renewable energy projects\",\n        buttonState: \"closed\"\n    },\n    {\n        id: 10,\n        name: \"Smart Cities Initiative\",\n        organization: \"Urban Development Corp\",\n        logo: \"https:\/\/img.icons8.com\/color\/96\/000000\/city.png\",\n        amount: \"AUD$250,000\",\n        deadline: \"2026-02-10\",\n        status: \"open\",\n        description: \"Large-scale smart city development funding\",\n        buttonState: \"open\",\n        buttonUrl: \"https:\/\/grants.zimadtech.com\/home\/application-form\/\"\n    },\n    {\n        id: 11,\n        name: \"EdTech Innovation Fund\",\n        organization: \"Future Learning\",\n        logo: \"https:\/\/img.icons8.com\/color\/96\/000000\/online-learning.png\",\n        amount: \"AUD$135,000\",\n        deadline: \"2026-02-10\",\n        status: \"closing\",\n        description: \"Funding for educational technology innovations\",\n        buttonState: \"closing\",\n        daysLeft: 5\n    },\n    {\n        id: 12,\n        name: \"Climate Action Grant\",\n        organization: \"Planet Protectors\",\n        logo: \"https:\/\/img.icons8.com\/color\/96\/000000\/earth-planet.png\",\n        amount: \"AUD$55,000\",\n        deadline: \"2025-10-30\",\n        status: \"closed\",\n        description: \"Support for climate change mitigation projects\",\n        buttonState: \"closed\"\n    },\n    {\n        id: 13,\n        name: \"FinTech Innovation Award\",\n        organization: \"Banking Future\",\n        logo: \"https:\/\/img.icons8.com\/color\/96\/000000\/bank-card-back-side.png\",\n        amount: \"AUD$45,000\",\n        deadline: \"2026-03-05\",\n        status: \"open\",\n        description: \"Award for innovative financial technology\",\n        buttonState: \"open\",\n        buttonUrl: \"https:\/\/grants.zimadtech.com\/home\/application-form\/\"\n    },\n    {\n        id: 14,\n        name: \"Rural Development Fund\",\n        organization: \"Community Builders\",\n        logo: \"https:\/\/img.icons8.com\/color\/96\/000000\/farm.png\",\n        amount: \"AUD$165,000\",\n        deadline: \"2026-02-15\",\n        status: \"closing\",\n        description: \"Funding for rural community development\",\n        buttonState: \"closing\",\n        daysLeft: 1\n    },\n    {\n        id: 15,\n        name: \"Youth Entrepreneurship\",\n        organization: \"NextGen Leaders\",\n        logo: \"https:\/\/img.icons8.com\/color\/96\/000000\/conference.png\",\n        amount: \"AUD$30,000\",\n        deadline: \"2025-10-05\",\n        status: \"closed\",\n        description: \"Support for young entrepreneurs\",\n        buttonState: \"closed\"\n    },\n    {\n        id: 16,\n        name: \"Disability Tech Grant\",\n        organization: \"Access for All\",\n        logo: \"https:\/\/img.icons8.com\/color\/96\/000000\/accessible.png\",\n        amount: \"$50,000\",\n        deadline: \"2026-03-10\",\n        status: \"open\",\n        description: \"Funding for assistive technology\",\n        buttonState: \"open\",\n        buttonUrl: \"https:\/\/grants.zimadtech.com\/home\/application-form\/\"\n    },\n    {\n        id: 17,\n        name: \"Creative Arts Fund\",\n        organization: \"Arts Council\",\n        logo: \"https:\/\/img.icons8.com\/color\/96\/000000\/paint-palette.png\",\n        amount: \"AUD$125,000\",\n        deadline: \"2026-02-12\",\n        status: \"closing\",\n        description: \"Support for creative arts projects\",\n        buttonState: \"closing\",\n        daysLeft: 4\n    },\n    {\n        id: 18,\n        name: \"Blockchain Research Grant\",\n        organization: \"Crypto Innovation Lab\",\n        logo: \"https:\/\/img.icons8.com\/color\/96\/000000\/blockchain.png\",\n        amount: \"AUD$70,000\",\n        deadline: \"2026-02-20\",\n        status: \"open\",\n        description: \"Research funding for blockchain technology\",\n        buttonState: \"open\",\n        buttonUrl: \"https:\/\/grants.zimadtech.com\/home\/application-form\/\"\n    }\n];\n\n\/\/ Format date to readable string\nfunction formatDate(dateString) {\n    const date = new Date(dateString);\n    return date.toLocaleDateString('en-US', { \n        month: 'short', \n        day: 'numeric', \n        year: 'numeric' \n    });\n}\n\n\/\/ Calculate days remaining\nfunction getDaysRemaining(dateString) {\n    const deadline = new Date(dateString);\n    const today = new Date();\n    const diffTime = deadline - today;\n    const diffDays = Math.ceil(diffTime \/ (1000 * 60 * 60 * 24));\n    \n    if (diffDays < 0) return \"Deadline passed\";\n    if (diffDays === 0) return \"Due today\";\n    if (diffDays === 1) return \"1 day left\";\n    return `${diffDays} days left`;\n}\n\n\/\/ Get status badge class\nfunction getStatusClass(status, deadline) {\n    if (status === 'closed') return 'status-closed';\n    \n    const daysRemaining = getDaysRemaining(deadline);\n    if (daysRemaining.includes('passed')) return 'status-closed';\n    if (daysRemaining.includes('today') || daysRemaining.includes('1 day')) return 'status-closing';\n    \n    return status === 'closing' ? 'status-closing' : 'status-open';\n}\n\n\/\/ Get button text and class based on state\nfunction getButtonInfo(grant) {\n    if (grant.buttonState === 'open') {\n        return {\n            text: 'Apply Now',\n            class: 'apply-btn apply-open',\n            mobileClass: 'mobile-apply-btn mobile-apply-open',\n            action: 'open'\n        };\n    } else if (grant.buttonState === 'closing') {\n        return {\n            text: 'Apply Now',\n            class: 'apply-btn apply-closing',\n            mobileClass: 'mobile-apply-btn mobile-apply-closing',\n            action: 'closing'\n        };\n    } else {\n        return {\n            text: 'Grant Closed',\n            class: 'apply-btn apply-closed',\n            mobileClass: 'mobile-apply-btn mobile-apply-closed',\n            action: 'closed'\n        };\n    }\n}\n\n\/\/ Render table rows\nfunction renderTableRows(grants) {\n    const tableBody = document.getElementById('grantsTableBody');\n    const mobileCardsContainer = document.getElementById('mobileGrantCards');\n    \n    tableBody.innerHTML = '';\n    \n    if (mobileCardsContainer) {\n        mobileCardsContainer.innerHTML = '';\n    }\n    \n    grants.forEach(grant => {\n        const statusClass = getStatusClass(grant.status, grant.deadline);\n        const daysRemaining = getDaysRemaining(grant.deadline);\n        const buttonInfo = getButtonInfo(grant);\n        \n        \/\/ Desktop table row\n        const row = document.createElement('tr');\n        row.innerHTML = `\n            <td>\n                <img decoding=\"async\" src=\"${grant.logo}\" alt=\"${grant.organization}\" class=\"grant-logo\" loading=\"lazy\">\n            <\/td>\n            <td>\n                <div class=\"grant-name\">${grant.name}<\/div>\n                <span class=\"grant-org\">${grant.organization}<\/span>\n            <\/td>\n            <td>\n                <span class=\"amount-badge\">${grant.amount}<\/span>\n            <\/td>\n            <td>\n                <div class=\"date-display\">${formatDate(grant.deadline)}<\/div>\n                <span class=\"date-remaining\">${daysRemaining}<\/span>\n            <\/td>\n            <td>\n                <span class=\"status-badge ${statusClass}\">\n                    ${grant.status === 'closing' ? 'Closing Soon' : grant.status}\n                <\/span>\n            <\/td>\n            <td>\n                <button class=\"${buttonInfo.class}\" \n                        onclick=\"handleApplyClick(${grant.id}, '${buttonInfo.action}')\"\n                        ${buttonInfo.action === 'closed' ? 'disabled' : ''}>\n                    ${buttonInfo.text}\n                <\/button>\n            <\/td>\n        `;\n        tableBody.appendChild(row);\n        \n        \/\/ Mobile card view (if container exists)\n        if (mobileCardsContainer) {\n            const card = document.createElement('div');\n            card.className = 'grant-card';\n            card.innerHTML = `\n                <img decoding=\"async\" src=\"${grant.logo}\" alt=\"${grant.organization}\" class=\"grant-card-logo\">\n                <div class=\"grant-card-content\">\n                    <div class=\"grant-card-header\">\n                        <div>\n                            <div class=\"grant-card-name\">${grant.name}<\/div>\n                            <div class=\"grant-card-org\">${grant.organization}<\/div>\n                        <\/div>\n                        <span class=\"status-badge ${statusClass}\">\n                            ${grant.status === 'closing' ? 'Closing Soon' : grant.status}\n                        <\/span>\n                    <\/div>\n                    <div class=\"grant-card-details\">\n                        <div class=\"grant-card-detail\">\n                            <span class=\"detail-label\">Amount<\/span>\n                            <span class=\"detail-value\">${grant.amount}<\/span>\n                        <\/div>\n                        <div class=\"grant-card-detail\">\n                            <span class=\"detail-label\">Deadline<\/span>\n                            <span class=\"detail-value\">${formatDate(grant.deadline)}<\/span>\n                        <\/div>\n                        <div class=\"grant-card-detail\">\n                            <span class=\"detail-label\">Time Left<\/span>\n                            <span class=\"detail-value\">${daysRemaining}<\/span>\n                        <\/div>\n                    <\/div>\n                    <div class=\"grant-card-apply\">\n                        <button class=\"${buttonInfo.mobileClass}\" \n                                onclick=\"handleApplyClick(${grant.id}, '${buttonInfo.action}')\"\n                                ${buttonInfo.action === 'closed' ? 'disabled' : ''}>\n                            ${buttonInfo.text}\n                        <\/button>\n                    <\/div>\n                <\/div>\n            `;\n            mobileCardsContainer.appendChild(card);\n        }\n    });\n}\n\n\/\/ Handle apply button clicks\nfunction handleApplyClick(grantId, buttonType) {\n    const grant = grantsData.find(g => g.id === grantId);\n    \n    if (!grant) return;\n    \n    switch(buttonType) {\n        case 'open':\n            \/\/ Open grant - redirect to application form\n            window.open(grant.buttonUrl || 'https:\/\/grants.zimadtech.com\/home\/application-form\/', '_blank');\n            break;\n            \n        case 'closing':\n            \/\/ Closing Soon - show Error 218 modal\n            showError218Modal(grant);\n            break;\n            \n        case 'closed':\n            \/\/ Closed - show notice\n            alert(`Grant Currently Closed\\n\\n${grant.name} by ${grant.organization}\\n\\nThe application period for this grant has ended. Please check back for future opportunities.`);\n            break;\n    }\n}\n\n\/\/ Show Error 218 modal\nfunction showError218Modal(grant) {\n    \/\/ Create modal if it doesn't exist\n    let modal = document.getElementById('error218Modal');\n    if (!modal) {\n        modal = document.createElement('div');\n        modal.id = 'error218Modal';\n        modal.className = 'error-modal';\n        modal.innerHTML = `\n            <div class=\"error-modal-content\">\n                <div class=\"error-icon\">\u26a0\ufe0f<\/div>\n                <h2 class=\"error-title\">Application System Error<\/h2>\n                <div class=\"error-code\">Error 218<\/div>\n                <p class=\"error-message\">\n                    The application system for <strong>${grant.name}<\/strong> is currently experiencing \n                    high traffic due to approaching deadline. \n                    <br><br>\n                    Please try again in 24 hours or contact support if you need immediate assistance.\n                <\/p>\n                <button class=\"close-error-modal\" onclick=\"closeErrorModal()\">Close & Try Later<\/button>\n            <\/div>\n        `;\n        document.body.appendChild(modal);\n    }\n    \n    \/\/ Update modal content\n    modal.querySelector('.error-message').innerHTML = `\n        The application system for <strong>${grant.name}<\/strong> is currently experiencing \n        high traffic due to approaching deadline. \n        <br><br>\n        <strong>Deadline:<\/strong> ${formatDate(grant.deadline)}<br>\n        <strong>Time Left:<\/strong> ${getDaysRemaining(grant.deadline)}\n        <br><br>\n        Please try again in 24 hours or contact support if you need immediate assistance.\n    `;\n    \n    \/\/ Show modal\n    modal.style.display = 'flex';\n}\n\nfunction closeErrorModal() {\n    const modal = document.getElementById('error218Modal');\n    if (modal) {\n        modal.style.display = 'none';\n    }\n}\n\n\/\/ Close modal when clicking outside\ndocument.addEventListener('click', function(event) {\n    const modal = document.getElementById('error218Modal');\n    if (modal && modal.style.display === 'flex' && event.target === modal) {\n        closeErrorModal();\n    }\n});\n\n\/\/ Pagination variables\nlet currentPage = 1;\nconst itemsPerPage = 6;\nlet filteredGrants = [...grantsData];\n\n\/\/ Initialize pagination\nfunction updatePagination() {\n    const totalPages = Math.ceil(filteredGrants.length \/ itemsPerPage);\n    document.getElementById('totalPages').textContent = totalPages;\n    document.getElementById('totalCount').textContent = filteredGrants.length;\n    \n    const startIndex = (currentPage - 1) * itemsPerPage;\n    const endIndex = startIndex + itemsPerPage;\n    const showingGrants = filteredGrants.slice(startIndex, endIndex);\n    \n    document.getElementById('showingCount').textContent = showingGrants.length;\n    document.getElementById('currentPage').textContent = currentPage;\n    \n    document.getElementById('prevPage').disabled = currentPage === 1;\n    document.getElementById('nextPage').disabled = currentPage === totalPages;\n    \n    renderTableRows(showingGrants);\n}\n\n\/\/ Search functionality\ndocument.getElementById('grantSearch').addEventListener('input', function(e) {\n    const searchTerm = e.target.value.toLowerCase();\n    filterAndSearchGrants(searchTerm);\n});\n\n\/\/ Filter functionality\ndocument.getElementById('statusFilter').addEventListener('change', function(e) {\n    filterAndSearchGrants(document.getElementById('grantSearch').value);\n});\n\nfunction filterAndSearchGrants(searchTerm) {\n    const statusFilter = document.getElementById('statusFilter').value;\n    \n    filteredGrants = grantsData.filter(grant => {\n        const matchesSearch = searchTerm === '' || \n            grant.name.toLowerCase().includes(searchTerm) ||\n            grant.organization.toLowerCase().includes(searchTerm) ||\n            grant.description.toLowerCase().includes(searchTerm);\n        \n        const matchesStatus = statusFilter === 'all' || \n            (statusFilter === 'open' && grant.status === 'open') ||\n            (statusFilter === 'closing' && grant.status === 'closing') ||\n            (statusFilter === 'closed' && grant.status === 'closed');\n        \n        return matchesSearch && matchesStatus;\n    });\n    \n    currentPage = 1;\n    updatePagination();\n}\n\n\/\/ Pagination controls\ndocument.getElementById('prevPage').addEventListener('click', function() {\n    if (currentPage > 1) {\n        currentPage--;\n        updatePagination();\n    }\n});\n\ndocument.getElementById('nextPage').addEventListener('click', function() {\n    const totalPages = Math.ceil(filteredGrants.length \/ itemsPerPage);\n    if (currentPage < totalPages) {\n        currentPage++;\n        updatePagination();\n    }\n});\n\n\/\/ Initialize on page load\ndocument.addEventListener('DOMContentLoaded', function() {\n    \/\/ Create mobile cards container\n    const mobileCardsContainer = document.createElement('div');\n    mobileCardsContainer.id = 'mobileGrantCards';\n    mobileCardsContainer.className = 'mobile-grant-cards';\n    document.querySelector('.table-responsive').appendChild(mobileCardsContainer);\n    \n    updatePagination();\n    \n    \/\/ Toggle between table and card view based on screen size\n    function toggleView() {\n        const table = document.querySelector('.grants-table');\n        const cards = document.getElementById('mobileGrantCards');\n        \n        if (window.innerWidth <= 768) {\n            table.style.display = 'none';\n            cards.style.display = 'block';\n        } else {\n            table.style.display = 'table';\n            cards.style.display = 'none';\n        }\n    }\n    \n    toggleView();\n    window.addEventListener('resize', toggleView);\n});\n<\/script>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Great funding opportunities Browse through for a great funding opportunity.\u00a0 Apply Today! Available Development Grants Apply for funding opportunities from leading organizations All StatusOpenClosing SoonClosed Logo Grant Name Amount Deadline Status Apply \u2190 Previous Page 1 of 3 Next \u2192 Showing 6 of 18 grants<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"content-type":"","footnotes":""},"class_list":["post-1754","page","type-page","status-publish"],"_links":{"self":[{"href":"https:\/\/grants.zimadtech.com\/home\/wp-json\/wp\/v2\/pages\/1754","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/grants.zimadtech.com\/home\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/grants.zimadtech.com\/home\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/grants.zimadtech.com\/home\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/grants.zimadtech.com\/home\/wp-json\/wp\/v2\/comments?post=1754"}],"version-history":[{"count":141,"href":"https:\/\/grants.zimadtech.com\/home\/wp-json\/wp\/v2\/pages\/1754\/revisions"}],"predecessor-version":[{"id":4642,"href":"https:\/\/grants.zimadtech.com\/home\/wp-json\/wp\/v2\/pages\/1754\/revisions\/4642"}],"wp:attachment":[{"href":"https:\/\/grants.zimadtech.com\/home\/wp-json\/wp\/v2\/media?parent=1754"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}