{"id":13163,"date":"2025-07-15T05:59:50","date_gmt":"2025-07-15T05:59:50","guid":{"rendered":"https:\/\/vbapartners.com\/?page_id=13163"},"modified":"2026-02-17T07:02:00","modified_gmt":"2026-02-17T07:02:00","slug":"thailand-corporate-income-tax-calculator","status":"publish","type":"page","link":"https:\/\/vbapartners.com\/fr\/thailand-corporate-income-tax-calculator\/","title":{"rendered":"Thailand Corporate Income Tax Calculator"},"content":{"rendered":"<div data-elementor-type=\"wp-page\" data-elementor-id=\"13163\" class=\"elementor elementor-13163\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-5fc1e48 e-flex e-con-boxed e-con e-parent\" data-id=\"5fc1e48\" 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-0f26283 elementor-widget elementor-widget-html\" data-id=\"0f26283\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<style>\r\n        .vba-calculator {\r\n            max-width: 800px;\r\n            margin: 0 auto;\r\n            font-family: \"Open Sans\", sans-serif;\r\n            background: #ffffff;\r\n            border-radius: 12px;\r\n            box-shadow: 0 10px 30px rgba(15, 65, 96, 0.1);\r\n            overflow: hidden;\r\n            position: relative;\r\n        }\r\n\r\n        .vba-calculator h1, .vba-calculator h2, .vba-calculator h3 {\r\n            font-family: \"Inter\", sans-serif;\r\n            color: #0F4160;\r\n        }\r\n\r\n        .progress-bar-container {\r\n            background: #f8f9fa;\r\n            padding: 15px 30px;\r\n            border-bottom: 1px solid #e1e5e9;\r\n        }\r\n\r\n        .progress-bar {\r\n            height: 4px;\r\n            background: rgba(15, 65, 96, 0.1);\r\n            border-radius: 2px;\r\n            max-width: 800px;\r\n            margin: 0 auto;\r\n        }\r\n\r\n        .progress-fill {\r\n            height: 100%;\r\n            background: #35A692;\r\n            border-radius: 2px;\r\n            transition: width 0.3s ease;\r\n            width: 0%;\r\n        }\r\n\r\n        .step-container {\r\n            padding: 30px;\r\n            min-height: 280px;\r\n        }\r\n\r\n        .step {\r\n            display: none;\r\n        }\r\n\r\n        .step.active {\r\n            display: block;\r\n            animation: fadeInUp 0.4s ease;\r\n        }\r\n\r\n        @keyframes fadeInUp {\r\n            from {\r\n                opacity: 0;\r\n                transform: translateY(20px);\r\n            }\r\n            to {\r\n                opacity: 1;\r\n                transform: translateY(0);\r\n            }\r\n        }\r\n\r\n        .step h2 {\r\n            font-size: 20px;\r\n            margin-bottom: 6px;\r\n            font-weight: 600;\r\n        }\r\n\r\n        .step-description {\r\n            color: #666;\r\n            margin-bottom: 20px;\r\n            font-size: 14px;\r\n            line-height: 1.4;\r\n        }\r\n\r\n        .form-group {\r\n            margin-bottom: 18px;\r\n        }\r\n\r\n        .form-group label {\r\n            display: block;\r\n            margin-bottom: 6px;\r\n            font-weight: 500;\r\n            color: #0F4160;\r\n            font-size: 12px;\r\n        }\r\n\r\n        .form-control {\r\n            width: 100%;\r\n            padding: 10px 14px;\r\n            border: 2px solid #e1e5e9;\r\n            border-radius: 6px;\r\n            font-size: 14px;\r\n            font-family: \"Open Sans\", sans-serif;\r\n            transition: border-color 0.3s ease, box-shadow 0.3s ease;\r\n        }\r\n\r\n        .form-control:focus {\r\n            outline: none;\r\n            border-color: #35A692;\r\n            box-shadow: 0 0 0 3px rgba(53, 166, 146, 0.1);\r\n        }\r\n\r\n        .radio-group {\r\n            display: grid;\r\n            gap: 8px;\r\n        }\r\n\r\n        .checkbox-group {\r\n            display: grid;\r\n            gap: 8px;\r\n        }\r\n\r\n        .radio-option, .checkbox-option {\r\n            position: relative;\r\n            cursor: pointer;\r\n        }\r\n\r\n        .radio-option input[type=\"radio\"], .checkbox-option input[type=\"checkbox\"] {\r\n            display: none;\r\n        }\r\n\r\n        .radio-option label, .checkbox-option label {\r\n            display: flex;\r\n            align-items: center;\r\n            padding: 12px;\r\n            border: 2px solid #e1e5e9;\r\n            border-radius: 6px;\r\n            cursor: pointer;\r\n            transition: all 0.3s ease;\r\n            margin-bottom: 0;\r\n            font-weight: 400;\r\n            font-size: 14px;\r\n        }\r\n\r\n        .radio-option input[type=\"radio\"]:checked + label, .checkbox-option input[type=\"checkbox\"]:checked + label {\r\n            border-color: #35A692;\r\n            background: rgba(53, 166, 146, 0.05);\r\n        }\r\n\r\n        .radio-option label::before {\r\n            content: '';\r\n            width: 16px;\r\n            height: 16px;\r\n            border: 2px solid #ccc;\r\n            border-radius: 50%;\r\n            margin-right: 10px;\r\n            transition: all 0.3s ease;\r\n        }\r\n\r\n        .checkbox-option label::before {\r\n            content: '';\r\n            width: 16px;\r\n            height: 16px;\r\n            border: 2px solid #ccc;\r\n            border-radius: 3px;\r\n            margin-right: 10px;\r\n            transition: all 0.3s ease;\r\n        }\r\n\r\n        .radio-option input[type=\"radio\"]:checked + label::before {\r\n            border-color: #35A692;\r\n            background: #35A692;\r\n            box-shadow: inset 0 0 0 3px white;\r\n        }\r\n\r\n        .checkbox-option input[type=\"checkbox\"]:checked + label::before {\r\n            border-color: #35A692;\r\n            background: #35A692;\r\n            background-image: url(\"data:image\/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http:\/\/www.w3.org\/2000\/svg'%3e%3cpath d='m13.854 3.646-6.5 6.5a.5.5 0 0 1-.708 0l-3-3a.5.5 0 1 1 .708-.708L7 9.293l6.146-6.147a.5.5 0 0 1 .708.708z'\/%3e%3c\/svg%3e\");\r\n        }\r\n\r\n        .button-group {\r\n            display: flex;\r\n            gap: 12px;\r\n            margin-top: 25px;\r\n            flex-wrap: wrap;\r\n            justify-content: flex-end;\r\n        }\r\n\r\n        .btn {\r\n            padding: 10px 20px;\r\n            border: none;\r\n            border-radius: 6px;\r\n            font-size: 14px;\r\n            font-weight: 500;\r\n            cursor: pointer;\r\n            transition: all 0.3s ease;\r\n            font-family: \"Inter\", sans-serif;\r\n            text-decoration: none;\r\n            display: inline-flex;\r\n            align-items: center;\r\n            justify-content: center;\r\n            min-height: 40px;\r\n            min-width: 100px;\r\n        }\r\n\r\n        .btn-primary {\r\n            background: #35A692;\r\n            color: white;\r\n            min-width: 120px;\r\n        }\r\n\r\n        .btn-primary:hover {\r\n            background: #2d8f7c;\r\n            transform: translateY(-1px);\r\n            box-shadow: 0 4px 12px rgba(53, 166, 146, 0.3);\r\n        }\r\n\r\n        .btn-secondary {\r\n            background: transparent;\r\n            color: #0F4160;\r\n            border: 2px solid #e1e5e9;\r\n        }\r\n\r\n        .btn-secondary:hover {\r\n            border-color: #0F4160;\r\n            background: rgba(15, 65, 96, 0.05);\r\n        }\r\n\r\n        .urgency-banner {\r\n            background: linear-gradient(135deg, #fff3cd 0%, #ffeaa7 100%);\r\n            border: 1px solid #ffc107;\r\n            border-radius: 8px;\r\n            padding: 12px;\r\n            margin-bottom: 20px;\r\n            text-align: center;\r\n        }\r\n\r\n        .urgency-banner .title {\r\n            font-weight: 600;\r\n            color: #856404;\r\n            font-size: 14px;\r\n            margin-bottom: 4px;\r\n        }\r\n\r\n        .urgency-banner .subtitle {\r\n            color: #856404;\r\n            font-size: 12px;\r\n        }\r\n\r\n        .results-container {\r\n            background: linear-gradient(135deg, #f8fffe 0%, #f0faf8 100%);\r\n            padding: 15px;\r\n            border-radius: 8px;\r\n            margin: 10px 0;\r\n            border: 1px solid rgba(53, 166, 146, 0.2);\r\n        }\r\n\r\n        .tax-highlight {\r\n            text-align: center;\r\n            padding: 10px;\r\n            background: white;\r\n            border-radius: 8px;\r\n            box-shadow: 0 2px 10px rgba(53, 166, 146, 0.1);\r\n            margin-bottom: 15px;\r\n        }\r\n\r\n        .tax-amount {\r\n            font-size: 20px;\r\n            font-weight: 700;\r\n            color: #35A692;\r\n            font-family: \"Inter\", sans-serif;\r\n        }\r\n\r\n        .tax-label {\r\n            font-size: 11px;\r\n            color: #666;\r\n            margin-top: 2px;\r\n        }\r\n\r\n        .tax-breakdown {\r\n            display: grid;\r\n            grid-template-columns: 1fr;\r\n            gap: 10px;\r\n            margin: 15px 0;\r\n        }\r\n\r\n        .breakdown-card {\r\n            background: white;\r\n            padding: 10px;\r\n            border-radius: 5px;\r\n            border: 1px solid #e1e5e9;\r\n        }\r\n\r\n        select {\r\n            width: 100%;\r\n            padding: 10px 14px;\r\n            border: 2px solid #e1e5e9;\r\n            border-radius: 6px;\r\n            font-size: 14px;\r\n            font-family: \"Open Sans\", sans-serif;\r\n            transition: border-color 0.3s ease, box-shadow 0.3s ease;\r\n        }\r\n\r\n        .breakdown-card h4 {\r\n            font-family: \"Inter\", sans-serif;\r\n            color: #0F4160;\r\n            margin-bottom: 8px;\r\n            font-size: 13px;\r\n        }\r\n\r\n        .breakdown-item {\r\n            display: flex;\r\n            justify-content: space-between;\r\n            margin-bottom: 4px;\r\n            font-size: 11px;\r\n            padding: 2px 0;\r\n        }\r\n\r\n        .breakdown-item .value {\r\n            font-weight: 600;\r\n            color: #0F4160;\r\n        }\r\n\r\n        .advisory-warning {\r\n            background: #f8d7da;\r\n            border: 1px solid #dc3545;\r\n            border-radius: 6px;\r\n            padding: 10px;\r\n            margin: 10px 0;\r\n            font-size: 12px;\r\n            color: #721c24;\r\n        }\r\n\r\n        .optimization-tip {\r\n            background: #d1ecf1;\r\n            border: 1px solid #17a2b8;\r\n            border-radius: 6px;\r\n            padding: 10px;\r\n            margin: 10px 0;\r\n            font-size: 12px;\r\n            color: #0c5460;\r\n        }\r\n\r\n        .sme-indicator {\r\n            background: #d4edda;\r\n            border: 1px solid #28a745;\r\n            border-radius: 6px;\r\n            padding: 8px;\r\n            margin: 8px 0;\r\n            font-size: 11px;\r\n            color: #155724;\r\n            text-align: center;\r\n        }\r\n\r\n        .error-message {\r\n            color: #e74c3c;\r\n            font-size: 13px;\r\n            margin-top: 5px;\r\n            display: none;\r\n        }\r\n\r\n        .loading {\r\n            display: none;\r\n            text-align: center;\r\n            padding: 40px;\r\n        }\r\n\r\n        .spinner {\r\n            width: 40px;\r\n            height: 40px;\r\n            border: 4px solid #f3f3f3;\r\n            border-top: 4px solid #35A692;\r\n            border-radius: 50%;\r\n            animation: spin 1s linear infinite;\r\n            margin: 0 auto 20px;\r\n        }\r\n\r\n        @keyframes spin {\r\n            0% { transform: rotate(0deg); }\r\n            100% { transform: rotate(360deg); }\r\n        }\r\n\r\n        .success-message {\r\n            background: #d4edda;\r\n            color: #155724;\r\n            padding: 15px;\r\n            border-radius: 8px;\r\n            margin-top: 20px;\r\n            display: none;\r\n        }\r\n\r\n\r\n\r\n        \/* Mobile Responsiveness *\/\r\n        @media (max-width: 768px) {\r\n            .vba-calculator {\r\n                margin: 10px;\r\n                border-radius: 8px;\r\n            }\r\n\r\n            .progress-bar-container {\r\n                padding: 10px 20px;\r\n            }\r\n\r\n            .step-container {\r\n                padding: 20px;\r\n            }\r\n\r\n            .step h2 {\r\n                font-size: 18px;\r\n            }\r\n\r\n            .tax-breakdown {\r\n                grid-template-columns: 1fr;\r\n                gap: 8px;\r\n            }\r\n\r\n            .button-group {\r\n                justify-content: center;\r\n            }\r\n\r\n            .btn {\r\n                min-width: 80px;\r\n            }\r\n\r\n            .tax-amount {\r\n                font-size: 18px;\r\n            }\r\n\r\n            select {\r\n                width: 100%;\r\n                padding: 10px 14px;\r\n                border: 2px solid #e1e5e9;\r\n                border-radius: 6px;\r\n                font-size: 14px;\r\n                font-family: \"Open Sans\", sans-serif;\r\n                transition: border-color 0.3s ease, box-shadow 0.3s ease;\r\n            }\r\n\r\n            \/* Mobile: Stack form elements *\/\r\n            #step2 > div[style*=\"grid-template-columns\"],\r\n            #step3 > div[style*=\"grid-template-columns\"],\r\n            #step5 form > div[style*=\"grid-template-columns\"] {\r\n                grid-template-columns: 1fr !important;\r\n                gap: 15px !important;\r\n            }\r\n\r\n            \/* Mobile: Stack radio buttons *\/\r\n            .radio-group[style*=\"grid-template-columns\"] {\r\n                grid-template-columns: 1fr !important;\r\n                gap: 8px !important;\r\n            }\r\n        }\r\n\r\n        @media (max-width: 480px) {\r\n            .step-container {\r\n                padding: 15px;\r\n            }\r\n\r\n            .step h2 {\r\n                font-size: 16px;\r\n            }\r\n\r\n            #step0 h1 {\r\n                font-size: 20px !important;\r\n            }\r\n\r\n            #step0 p {\r\n                font-size: 14px !important;\r\n            }\r\n\r\n            input {\r\n                font-size: 16px;\r\n            }\r\n        }\r\n    <\/style>\r\n<\/head>\r\n<body>\r\n    <div class=\"vba-calculator\" id=\"vbaCalculator\">\r\n        <div class=\"progress-bar-container\">\r\n            <div class=\"progress-bar\">\r\n                <div class=\"progress-fill\" id=\"progressFill\"><\/div>\r\n            <\/div>\r\n        <\/div>\r\n\r\n        <div class=\"step-container\">\r\n            <!-- Step 0: Welcome\/Intro -->\r\n            <div class=\"step active\" id=\"step0\">\r\n                <div style=\"text-align: center; max-width: 600px; margin: 0 auto;\">\r\n                    <h1 style=\"font-family: 'Inter', sans-serif; font-size: 28px; font-weight: 700; color: #0F4160; margin-bottom: 12px; line-height: 1.2;\">\r\n                        Thailand Corporate Income Tax Calculator\r\n                    <\/h1>\r\n                    <p style=\"font-size: 14px; color: #666; margin-bottom: 20px; line-height: 1.4;\">\r\n                        Calculate your 2025 corporate income tax payment. Ensure compliance and avoid penalties with accurate tax estimation.\r\n                    <\/p>\r\n\r\n                    <div class=\"urgency-banner\">\r\n                        <div class=\"title\">\u26a0\ufe0f Half-Year Tax Payment Deadline Approaching<\/div>\r\n                        <div class=\"subtitle\">Based on your estimated annual revenue, half-year tax must be paid. A penalty may apply if the estimation error exceeds 25%.<\/div>\r\n                    <\/div>\r\n\r\n                    <div style=\"display: flex; align-items: center; justify-content: center; gap: 20px; margin-bottom: 25px; flex-wrap: wrap;\">\r\n                        <span style=\"display: flex; align-items: center; font-size: 13px; color: #666;\">\r\n                            <span style=\"color: #35A692; margin-right: 5px;\">\u2713<\/span> SME tax rates included\r\n                        <\/span>\r\n                        <span style=\"display: flex; align-items: center; font-size: 13px; color: #666;\">\r\n                            <span style=\"color: #35A692; margin-right: 5px;\">\u2713<\/span> Penalty risk assessment\r\n                        <\/span>\r\n                        <span style=\"display: flex; align-items: center; font-size: 13px; color: #666;\">\r\n                            <span style=\"color: #35A692; margin-right: 5px;\">\u2713<\/span> Optimization tips\r\n                        <\/span>\r\n                    <\/div>\r\n\r\n                    <button class=\"btn btn-primary\" onclick=\"startCalculator()\" style=\"font-size: 15px; padding: 12px 28px; min-width: 160px;\">\r\n                        Calculate Tax \u2192\r\n                    <\/button>\r\n                <\/div>\r\n            <\/div>\r\n\r\n            <!-- Step 1: Company Information -->\r\n            <div class=\"step\" id=\"step1\">\r\n                <h2>Company information for 2025<\/h2>\r\n                <p class=\"step-description\">Provide your company details to determine if you qualify for the SME reduced tax rates.<\/p>\r\n                \r\n                <div style=\"display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-bottom: 20px;\">\r\n                    <div class=\"form-group\">\r\n                        <label for=\"registeredCapital\">Registered Capital (THB)<\/label>\r\n                        <input type=\"text\" class=\"form-control\" id=\"registeredCapital\" placeholder=\"e.g., 2,000,000\" min=\"0\">\r\n                    <\/div>\r\n\r\n                    <div class=\"form-group\">\r\n                        <label for=\"annualRevenue\">What is your estimated Annual Revenue 2025 (THB)*<\/label>\r\n                        <input type=\"text\" class=\"form-control\" id=\"annualRevenue\" placeholder=\"e.g., 15,000,000\" min=\"0\">\r\n                        <small style=\"color: #666; font-size: 11px;\">*This is your total turnover from goods sold and services for the full calendar year. Your company may be eligible for reduced SME tax rate if your registered capital is no more than \u0e3f5 million and your annual turnover is no more than \u0e3f30 million.<\/small>\r\n                    <\/div>\r\n                <\/div>\r\n\r\n                <div class=\"form-group\">\r\n                    <label>Do you have any special tax exemptions or incentives?<\/label>\r\n                    <div class=\"radio-group\" style=\"grid-template-columns: 1fr 1fr; gap: 12px;\">\r\n                        <div class=\"radio-option\">\r\n                            <input type=\"radio\" id=\"exemption_no\" name=\"taxExemption\" value=\"no\">\r\n                            <label for=\"exemption_no\">No tax exemptions<\/label>\r\n                        <\/div>\r\n                        <div class=\"radio-option\">\r\n                            <input type=\"radio\" id=\"exemption_boi\" name=\"taxExemption\" value=\"boi\">\r\n                            <label for=\"exemption_boi\">BOI tax exemptions<\/label>\r\n                        <\/div>\r\n                    <\/div>\r\n                    <div class=\"radio-group\" style=\"grid-template-columns: 1fr; gap: 12px; margin-top: 8px;\">\r\n                        <div class=\"radio-option\">\r\n                            <input type=\"radio\" id=\"exemption_other\" name=\"taxExemption\" value=\"other\">\r\n                            <label for=\"exemption_other\">Other tax exemptions<\/label>\r\n                        <\/div>\r\n                    <\/div>\r\n                <\/div>\r\n\r\n                <div class=\"button-group\">\r\n                    <button class=\"btn btn-primary\" onclick=\"nextStep()\" id=\"nextBtn1\" disabled>Continue<\/button>\r\n                <\/div>\r\n            <\/div>\r\n\r\n            <!-- Step 2: Revenue Information -->\r\n            <div class=\"step\" id=\"step2\">\r\n                <h2>Revenue and profit estimation for 2025<\/h2>\r\n                <p class=\"step-description\">Enter your expected annual revenues to estimate your corporate tax obligation.<\/p>\r\n                \r\n                <div style=\"display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-bottom: 20px;\">\r\n                    <div class=\"form-group\">\r\n                        <label for=\"estimatedRevenue\">Estimated Annual Revenue 2025 (THB)*<\/label>\r\n                        <input type=\"text\" class=\"form-control\" id=\"estimatedRevenue\" placeholder=\"e.g., 15,000,000\" min=\"0\">\r\n                        <small style=\"color: #666; font-size: 11px;\">*This is your total turnover from goods sold and services for the full calendar year. Your company may be eligible for reduced SME tax rate if your registered capital is no more than \u0e3f5 million and your annual turnover is no more than \u0e3f30 million.<\/small>\r\n                    <\/div>\r\n\r\n                    <div class=\"form-group\">\r\n                        <label for=\"estimatedProfit\">Estimated Annual Net Profit 2025 (THB)*<\/label>\r\n                        <input type=\"text\" class=\"form-control\" id=\"estimatedProfit\" placeholder=\"e.g., 3,000,000\" min=\"0\">\r\n                        <small style=\"color: #666; font-size: 11px;\">*Expected revenue minus deductible expenses, as defined by Thai tax law.<\/small>\r\n                    <\/div>\r\n                <\/div>\r\n\r\n                <div class=\"form-group\">\r\n                    <label for=\"lastYearRevenue\">Previous Year (2024) Actual Revenue (THB)<\/label>\r\n                    <input type=\"text\" class=\"form-control\" id=\"lastYearRevenue\" placeholder=\"e.g., 12,000,000\" min=\"0\">\r\n                    <small style=\"color: #666; font-size: 12px;\">Used to assess estimation accuracy and penalty risk<\/small>\r\n                <\/div>\r\n\r\n                <div class=\"button-group\">\r\n                    <button class=\"btn btn-secondary\" onclick=\"previousStep()\">Back<\/button>\r\n                    <button class=\"btn btn-primary\" onclick=\"nextStep()\" id=\"nextBtn2\" disabled>Continue<\/button>\r\n                <\/div>\r\n            <\/div>\r\n\r\n            <!-- Step 3: Tax Planning Preferences -->\r\n            <div class=\"step\" id=\"step3\">\r\n                <h2>Tax planning preferences<\/h2>\r\n                <p class=\"step-description\">Help us provide relevant optimization recommendations for your situation.<\/p>\r\n                \r\n                <div class=\"form-group\">\r\n                    <label>What is your main concern about corporate tax? (Select all that apply)<\/label>\r\n                    <div class=\"checkbox-group\">\r\n                        <div class=\"checkbox-option\">\r\n                            <input type=\"checkbox\" id=\"concern_compliance\" name=\"mainConcern\" value=\"compliance\">\r\n                            <label for=\"concern_compliance\">Ensuring compliance and avoiding penalties<\/label>\r\n                        <\/div>\r\n                        <div class=\"checkbox-option\">\r\n                            <input type=\"checkbox\" id=\"concern_optimization\" name=\"mainConcern\" value=\"optimization\">\r\n                            <label for=\"concern_optimization\">Optimizing tax burden and reducing costs<\/label>\r\n                        <\/div>\r\n                        <div class=\"checkbox-option\">\r\n                            <input type=\"checkbox\" id=\"concern_planning\" name=\"mainConcern\" value=\"planning\">\r\n                            <label for=\"concern_planning\">Better tax planning and forecasting<\/label>\r\n                        <\/div>\r\n                        <div class=\"checkbox-option\">\r\n                            <input type=\"checkbox\" id=\"concern_cashflow\" name=\"mainConcern\" value=\"cashflow\">\r\n                            <label for=\"concern_cashflow\">Managing cash flow for tax payments<\/label>\r\n                        <\/div>\r\n                    <\/div>\r\n                <\/div>\r\n\r\n                <div class=\"form-group\">\r\n                    <label>Are you interested in tax optimization strategies?<\/label>\r\n                    <div class=\"radio-group\" style=\"grid-template-columns: 1fr 1fr; gap: 12px;\">\r\n                        <div class=\"radio-option\">\r\n                            <input type=\"radio\" id=\"optimization_yes\" name=\"optimizationInterest\" value=\"yes\">\r\n                            <label for=\"optimization_yes\">Yes, very interested<\/label>\r\n                        <\/div>\r\n                        <div class=\"radio-option\">\r\n                            <input type=\"radio\" id=\"optimization_no\" name=\"optimizationInterest\" value=\"no\">\r\n                            <label for=\"optimization_no\">No, compliance only<\/label>\r\n                        <\/div>\r\n                    <\/div>\r\n                <\/div>\r\n\r\n                <div class=\"button-group\">\r\n                    <button class=\"btn btn-secondary\" onclick=\"previousStep()\">Back<\/button>\r\n                    <button class=\"btn btn-primary\" onclick=\"calculateResults()\" id=\"calculateBtn\" disabled>Calculate Tax<\/button>\r\n                <\/div>\r\n            <\/div>\r\n\r\n            <!-- Step 4: Results -->\r\n            <div class=\"step\" id=\"step4\">\r\n                <h2>Your 2025 Corporate Tax Calculation<\/h2>\r\n                <p class=\"step-description\">Based on the information provided, here's your corporate income tax obligation and recommendations:<\/p>\r\n                \r\n                <div class=\"results-container\">\r\n                    <div id=\"smeStatus\" class=\"sme-indicator\" style=\"display: none;\">\r\n                        \u2705 Your company qualifies for SME tax rates!\r\n                    <\/div>\r\n\r\n                    <div class=\"tax-highlight\">\r\n                        <div class=\"tax-amount\" id=\"halfYearTax\">0 THB<\/div>\r\n                        <div class=\"tax-label\">Annual Corporate Income Tax<\/div>\r\n                    <\/div>\r\n\r\n                    <div class=\"tax-breakdown\">\r\n                        <div class=\"breakdown-card\">\r\n                            <h4>Tax Calculation<\/h4>\r\n                            <div id=\"taxCalculation\">\r\n                                <!-- Tax calculation breakdown will be populated by JavaScript -->\r\n                            <\/div>\r\n                        <\/div>\r\n                    <\/div>\r\n\r\n                    <div id=\"advisoryWarning\" class=\"advisory-warning\" style=\"display: none;\">\r\n                        <!-- Advisory warning will be shown if applicable -->\r\n                    <\/div>\r\n\r\n                    <div id=\"optimizationTip\" class=\"optimization-tip\" style=\"display: none;\">\r\n                        <!-- Optimization tip will be shown if applicable -->\r\n                    <\/div>\r\n\r\n                    <div style=\"text-align: center; margin-top: 8px;\">\r\n                        <p style=\"color: #666; font-size: 10px; margin-bottom: 8px;\">\r\n                            *Calculations based on standard Thai corporate tax rates. Consult tax professionals for complex situations.\r\n                        <\/p>\r\n                    <\/div>\r\n                <\/div>\r\n\r\n                <div class=\"button-group\">\r\n                    <button class=\"btn btn-secondary\" onclick=\"previousStep()\">Back<\/button>\r\n                    <button class=\"btn btn-primary\" onclick=\"showContactForm()\" id=\"contactCTA\">Get Tax Optimization Plan<\/button>\r\n                <\/div>\r\n            <\/div>\r\n\r\n            <!-- Step 5: Contact Form -->\r\n            <div class=\"step\" id=\"step5\">\r\n                <h2 id=\"contactFormTitle\">Get Your Personalized Tax Strategy<\/h2>\r\n                <p class=\"step-description\">Receive expert advice on tax optimization and compliance from our tax specialists.<\/p>\r\n                \r\n                <form id=\"contactForm\" action=\"\">\r\n                    <div style=\"display: grid; grid-template-columns: 1fr 1fr; gap: 20px;\">\r\n                        <div class=\"form-group\">\r\n                            <label for=\"fullName\">Full Name *<\/label>\r\n                            <input type=\"text\" class=\"form-control\" id=\"fullName\" required>\r\n                            <div class=\"error-message\" id=\"nameError\">Please enter your full name<\/div>\r\n                        <\/div>\r\n\r\n                        <div class=\"form-group\">\r\n                            <label for=\"company\">Company Name *<\/label>\r\n                            <input type=\"text\" class=\"form-control\" id=\"company\" required>\r\n                            <div class=\"error-message\" id=\"companyError\">Please enter your company name<\/div>\r\n                        <\/div>\r\n                    <\/div>\r\n\r\n                    <div style=\"display: grid; grid-template-columns: 1fr 1fr; gap: 20px;\">\r\n                        <div class=\"form-group\">\r\n                            <label for=\"email\">Email Address *<\/label>\r\n                            <input type=\"email\" class=\"form-control\" id=\"email\" required>\r\n                            <div class=\"error-message\" id=\"emailError\">Please enter a valid email address<\/div>\r\n                        <\/div>\r\n\r\n                        <div class=\"form-group\">\r\n                            <label for=\"phone\">Phone Number *<\/label>\r\n                            <input type=\"tel\" class=\"form-control\" id=\"phone\" required>\r\n                            <div class=\"error-message\" id=\"phoneError\">Please enter your phone number<\/div>\r\n                        <\/div>\r\n                    <\/div>\r\n\r\n                    <div class=\"form-group\">\r\n                        <label for=\"urgency\">When do you need tax planning assistance?<\/label>\r\n                        <select class=\"form-control\" id=\"urgency\">\r\n                            <option value=\"\">Select timeframe<\/option>\r\n                            <option value=\"immediate\">Immediately - half-year payment due soon<\/option>\r\n                            <option value=\"month\">Within this month<\/option>\r\n                            <option value=\"quarter\">Before year-end<\/option>\r\n                            <option value=\"planning\">General tax planning<\/option>\r\n                        <\/select>\r\n                    <\/div>\r\n\r\n                    <div class=\"form-group\">\r\n                        <label for=\"message\">Specific Tax Concerns or Goals <span style=\"color: #999; font-weight: normal;\">(max 300 characters)<\/span><\/label>\r\n                        <textarea class=\"form-control\" id=\"message\" rows=\"5\" maxlength=\"300\" placeholder=\"Tell us about your tax optimization goals, specific concerns, or any questions about the calculation...\" style=\"resize: none; font-family: 'Open Sans', sans-serif;\"><\/textarea>\r\n                        <div style=\"font-size: 11px; color: #999; text-align: right; margin-top: 4px;\">\r\n                            <span id=\"charCount\">0<\/span>\/300 characters\r\n                        <\/div>\r\n                    <\/div>\r\n\r\n                    <div class=\"button-group\">\r\n                        <button class=\"btn btn-secondary\" type=\"button\" onclick=\"previousStep()\">Back<\/button>\r\n                        <button class=\"btn btn-primary\" type=\"submit\" id=\"submitCTA\">Get Tax Strategy<\/button>\r\n                    <\/div>\r\n                <input type=\"hidden\" name=\"trp-form-language\" value=\"fr\"\/><\/form>\r\n\r\n                <div class=\"success-message\" id=\"successMessage\">\r\n                    <strong>Thank you!<\/strong> We've received your tax calculation and will contact you within 24 hours with your personalized tax optimization strategy.\r\n                <\/div>\r\n            <\/div>\r\n\r\n            <!-- Loading state -->\r\n            <div class=\"loading\" id=\"loadingState\">\r\n                <div class=\"spinner\"><\/div>\r\n                <p>Calculating your corporate tax...<\/p>\r\n            <\/div>\r\n        <\/div>\r\n    <\/div>\r\n\r\n    <script>\r\n        \/\/ Number formatting function\r\n        function formatNumberInput(input) {\r\n            let value = input.value.replace(\/[^\\d]\/g, '');\r\n            if (value) {\r\n                value = parseInt(value).toLocaleString();\r\n            }\r\n            input.value = value;\r\n        }\r\n\r\n        \/\/ Parse formatted number back to integer\r\n        function parseFormattedNumber(value) {\r\n            return parseInt(value.replace(\/[^\\d]\/g, '')) || 0;\r\n        }\r\n\r\n        \/\/ Namespace to avoid conflicts\r\n        const VBATaxCalculator = {\r\n            currentStep: 0,\r\n            totalSteps: 6,\r\n            calculatorData: {},\r\n\r\n            init() {\r\n                this.setupEventListeners();\r\n                this.updateProgress();\r\n            },\r\n\r\n            setupEventListeners() {\r\n                \/\/ Number formatting for input fields\r\n                const numberInputs = ['registeredCapital', 'annualRevenue', 'estimatedRevenue', 'estimatedProfit', 'lastYearRevenue'];\r\n                numberInputs.forEach(id => {\r\n                    const input = document.getElementById(id);\r\n                    input.addEventListener('input', () => {\r\n                        formatNumberInput(input);\r\n                        this.validateCurrentStep();\r\n                    });\r\n                });\r\n\r\n                \/\/ Input listeners for step 1\r\n                document.querySelectorAll('input[name=\"taxExemption\"]').forEach(radio => {\r\n                    radio.addEventListener('change', () => {\r\n                        this.validateStep1();\r\n                    });\r\n                });\r\n\r\n                \/\/ Checkbox listeners for step 3\r\n                document.querySelectorAll('input[name=\"mainConcern\"]').forEach(checkbox => {\r\n                    checkbox.addEventListener('change', () => {\r\n                        this.validateStep3();\r\n                    });\r\n                });\r\n\r\n                document.querySelectorAll('input[name=\"optimizationInterest\"]').forEach(radio => {\r\n                    radio.addEventListener('change', () => {\r\n                        this.validateStep3();\r\n                        this.updateContactCTA();\r\n                    });\r\n                });\r\n\r\n                \/\/ Form submission\r\n                document.getElementById('contactForm').addEventListener('submit', (e) => {\r\n                    e.preventDefault();\r\n                    this.submitForm();\r\n                });\r\n\r\n                \/\/ Character counter for textarea\r\n                document.getElementById('message').addEventListener('input', (e) => {\r\n                    const charCount = e.target.value.length;\r\n                    document.getElementById('charCount').textContent = charCount;\r\n                });\r\n            },\r\n\r\n            validateCurrentStep() {\r\n                switch(this.currentStep) {\r\n                    case 1:\r\n                        this.validateStep1();\r\n                        break;\r\n                    case 2:\r\n                        this.validateStep2();\r\n                        break;\r\n                    case 3:\r\n                        this.validateStep3();\r\n                        break;\r\n                }\r\n            },\r\n\r\n            validateStep1() {\r\n                const capital = document.getElementById('registeredCapital').value;\r\n                const annualRevenue = document.getElementById('annualRevenue').value;\r\n                const exemption = document.querySelector('input[name=\"taxExemption\"]:checked');\r\n                \r\n                document.getElementById('nextBtn1').disabled = !(capital && annualRevenue && exemption);\r\n            },\r\n\r\n            validateStep2() {\r\n                const revenue = document.getElementById('estimatedRevenue').value;\r\n                const profit = document.getElementById('estimatedProfit').value;\r\n                const lastYear = document.getElementById('lastYearRevenue').value;\r\n                \r\n                document.getElementById('nextBtn2').disabled = !(revenue && profit && lastYear);\r\n            },\r\n\r\n            validateStep3() {\r\n                const concern = document.querySelector('input[name=\"mainConcern\"]:checked');\r\n                const optimization = document.querySelector('input[name=\"optimizationInterest\"]:checked');\r\n                \r\n                document.getElementById('calculateBtn').disabled = !(concern && optimization);\r\n            },\r\n\r\n            updateContactCTA() {\r\n                const optimizationInterest = document.querySelector('input[name=\"optimizationInterest\"]:checked');\r\n                const contactCTA = document.getElementById('contactCTA');\r\n                const submitCTA = document.getElementById('submitCTA');\r\n                const formTitle = document.getElementById('contactFormTitle');\r\n                \r\n                if (optimizationInterest && optimizationInterest.value === 'no') {\r\n                    contactCTA.textContent = 'Get Tax Advisory';\r\n                    submitCTA.textContent = 'Get Tax Advisory';\r\n                    formTitle.textContent = 'Get Tax Compliance Advisory';\r\n                } else {\r\n                    contactCTA.textContent = 'Get Tax Optimization Plan';\r\n                    submitCTA.textContent = 'Get Tax Strategy';\r\n                    formTitle.textContent = 'Get Your Personalized Tax Strategy';\r\n                }\r\n            },\r\n\r\n            nextStep() {\r\n                if (this.currentStep < this.totalSteps) {\r\n                    \/\/ Auto-fill revenue field in step 2 from step 1\r\n                    if (this.currentStep === 1) {\r\n                        const annualRevenue = document.getElementById('annualRevenue').value;\r\n                        if (annualRevenue) {\r\n                            document.getElementById('estimatedRevenue').value = annualRevenue;\r\n                        }\r\n                    }\r\n                    \r\n                    this.hideStep(this.currentStep);\r\n                    this.currentStep++;\r\n                    this.showStep(this.currentStep);\r\n                    this.updateProgress();\r\n                }\r\n            },\r\n\r\n            previousStep() {\r\n                if (this.currentStep > 0) {\r\n                    this.hideStep(this.currentStep);\r\n                    this.currentStep--;\r\n                    this.showStep(this.currentStep);\r\n                    this.updateProgress();\r\n                }\r\n            },\r\n\r\n            showStep(step) {\r\n                document.getElementById(`step${step}`).classList.add('active');\r\n            },\r\n\r\n            hideStep(step) {\r\n                document.getElementById(`step${step}`).classList.remove('active');\r\n            },\r\n\r\n            updateProgress() {\r\n                const progress = this.currentStep === 0 ? 0 : ((this.currentStep - 1) \/ (this.totalSteps - 2)) * 100;\r\n                document.getElementById('progressFill').style.width = `${progress}%`;\r\n            },\r\n\r\n            startCalculator() {\r\n                this.nextStep();\r\n            },\r\n\r\n            calculateResults() {\r\n                \/\/ Show loading state\r\n                this.hideStep(this.currentStep);\r\n                document.getElementById('loadingState').style.display = 'block';\r\n\r\n                \/\/ Collect form data\r\n                this.collectFormData();\r\n\r\n                \/\/ Simulate calculation delay for better UX\r\n                setTimeout(() => {\r\n                    this.performCalculations();\r\n                    document.getElementById('loadingState').style.display = 'none';\r\n                    this.nextStep();\r\n                }, 2000);\r\n            },\r\n\r\n            collectFormData() {\r\n                this.calculatorData = {\r\n                    registeredCapital: parseFormattedNumber(document.getElementById('registeredCapital').value) || 0,\r\n                    annualRevenue: parseFormattedNumber(document.getElementById('annualRevenue').value) || 0,\r\n                    taxExemption: document.querySelector('input[name=\"taxExemption\"]:checked')?.value,\r\n                    estimatedRevenue: parseFormattedNumber(document.getElementById('estimatedRevenue').value) || 0,\r\n                    estimatedProfit: parseFormattedNumber(document.getElementById('estimatedProfit').value) || 0,\r\n                    lastYearRevenue: parseFormattedNumber(document.getElementById('lastYearRevenue').value) || 0,\r\n                    mainConcern: Array.from(document.querySelectorAll('input[name=\"mainConcern\"]:checked')).map(cb => cb.value),\r\n                    optimizationInterest: document.querySelector('input[name=\"optimizationInterest\"]:checked')?.value\r\n                };\r\n            },\r\n\r\n            performCalculations() {\r\n                const data = this.calculatorData;\r\n                \r\n                \/\/ Corrected SME qualification rules - now based on both capital and revenue from step 1\r\n                const isSME = data.registeredCapital <= 5000000 && data.annualRevenue <= 30000000;\r\n                \r\n                let annualTax = 0;\r\n                let taxBreakdown = [];\r\n\r\n                if (data.taxExemption === 'boi' || data.taxExemption === 'other') {\r\n                    \/\/ BOI or other exemptions\r\n                    annualTax = 0;\r\n                    taxBreakdown.push({\r\n                        range: 'Tax Exempt',\r\n                        rate: '0%',\r\n                        amount: 0\r\n                    });\r\n                } else if (isSME) {\r\n                    \/\/ Corrected SME tax calculation\r\n                    const profit = data.estimatedProfit;\r\n                    \r\n                    if (profit <= 300000) {\r\n                        \/\/ First 300k is exempt\r\n                        annualTax = 0;\r\n                        taxBreakdown.push({\r\n                            range: 'First 300,000 THB',\r\n                            rate: '0% (Exempted)',\r\n                            amount: 0\r\n                        });\r\n                    } else if (profit <= 3000000) {\r\n                        \/\/ 300k exempt + 15% on remainder\r\n                        const taxableAmount = profit - 300000;\r\n                        annualTax = taxableAmount * 0.15;\r\n                        taxBreakdown.push({\r\n                            range: 'First 300,000 THB',\r\n                            rate: '0% (Exempted)',\r\n                            amount: 0\r\n                        });\r\n                        taxBreakdown.push({\r\n                            range: '300,001 - ' + this.formatCurrency(profit) + ' THB',\r\n                            rate: '15%',\r\n                            amount: annualTax\r\n                        });\r\n                    } else {\r\n                        \/\/ 300k exempt + 15% on 300k-3M + 20% on remainder\r\n                        const tier2Tax = (3000000 - 300000) * 0.15; \/\/ 2.7M * 15%\r\n                        const tier3Tax = (profit - 3000000) * 0.20;\r\n                        annualTax = tier2Tax + tier3Tax;\r\n                        \r\n                        taxBreakdown.push({\r\n                            range: 'First 300,000 THB',\r\n                            rate: '0% (Exempted)',\r\n                            amount: 0\r\n                        });\r\n                        taxBreakdown.push({\r\n                            range: '300,001 - 3,000,000 THB',\r\n                            rate: '15%',\r\n                            amount: tier2Tax\r\n                        });\r\n                        taxBreakdown.push({\r\n                            range: '3,000,001 - ' + this.formatCurrency(profit) + ' THB',\r\n                            rate: '20%',\r\n                            amount: tier3Tax\r\n                        });\r\n                    }\r\n                } else {\r\n                    \/\/ Standard 20% corporate tax\r\n                    annualTax = data.estimatedProfit * 0.20;\r\n                    taxBreakdown.push({\r\n                        range: 'All profit',\r\n                        rate: '20%',\r\n                        amount: annualTax\r\n                    });\r\n                }\r\n\r\n                const halfYearTax = annualTax \/ 2; \/\/ Keep for potential future use\r\n                \r\n                \/\/ Calculate estimation accuracy and advisory recommendations\r\n                const revenueGrowth = data.lastYearRevenue > 0 ? \r\n                    ((data.estimatedRevenue - data.lastYearRevenue) \/ data.lastYearRevenue) * 100 : 0;\r\n                \r\n                const needsAdvisory = this.shouldShowAdvisory(data, revenueGrowth, isSME);\r\n\r\n                \/\/ Generate optimization tips\r\n                const optimizationTips = this.generateOptimizationTips(data, isSME, annualTax);\r\n\r\n                \/\/ Update display\r\n                this.updateResultsDisplay({\r\n                    annualTax: annualTax,\r\n                    taxBreakdown: taxBreakdown,\r\n                    isSME: isSME,\r\n                    needsAdvisory: needsAdvisory,\r\n                    revenueGrowth: revenueGrowth,\r\n                    optimizationTips: optimizationTips\r\n                });\r\n            },\r\n\r\n            shouldShowAdvisory(data, revenueGrowth, isSME) {\r\n                \/\/ Show advisory in 4 scenarios\r\n                if (data.taxExemption === 'boi') return { type: 'boi' };\r\n                if (data.taxExemption === 'other') return { type: 'other' };\r\n                if (Math.abs(revenueGrowth) > 20) return { type: 'variance', growth: revenueGrowth };\r\n                if (data.estimatedRevenue >= 20000000 && data.estimatedRevenue <= 30000000 && data.registeredCapital <= 5000000 && isSME) return { type: 'sme_threshold' };\r\n                return false;\r\n            },\r\n\r\n            generateOptimizationTips(data, isSME, annualTax) {\r\n                const tips = [];\r\n                \r\n                if (data.optimizationInterest === 'yes') {\r\n                    tips.push(\"Explore deductible expenses, accelerated depreciation, income timing strategies, and tax structuring\");\r\n                }\r\n                \r\n                if (annualTax > 500000) {\r\n                    tips.push(\"Consider quarterly tax planning to optimize cash flow and reduce year-end surprises\");\r\n                }\r\n                \r\n                return tips;\r\n            },\r\n\r\n            updateResultsDisplay(results) {\r\n                \/\/ Update annual tax amount (not divided by 2)\r\n                document.getElementById('halfYearTax').textContent = \r\n                    this.formatCurrency(results.annualTax) + ' THB';\r\n                \r\n                \/\/ Show SME status\r\n                if (results.isSME) {\r\n                    document.getElementById('smeStatus').style.display = 'block';\r\n                }\r\n\r\n                \/\/ Update tax calculation breakdown\r\n                const taxCalcElement = document.getElementById('taxCalculation');\r\n                taxCalcElement.innerHTML = '';\r\n                results.taxBreakdown.forEach(item => {\r\n                    const itemDiv = document.createElement('div');\r\n                    itemDiv.className = 'breakdown-item';\r\n                    itemDiv.innerHTML = `\r\n                        <span>${item.range}<\/span>\r\n                        <span class=\"value\">${item.rate}<\/span>\r\n                    `;\r\n                    taxCalcElement.appendChild(itemDiv);\r\n                    \r\n                    if (item.amount > 0) {\r\n                        const amountDiv = document.createElement('div');\r\n                        amountDiv.className = 'breakdown-item';\r\n                        amountDiv.innerHTML = `\r\n                            <span>Tax amount:<\/span>\r\n                            <span class=\"value\">${this.formatCurrency(item.amount)} THB<\/span>\r\n                        `;\r\n                        taxCalcElement.appendChild(amountDiv);\r\n                    }\r\n                });\r\n\r\n                \/\/ Update annual estimates - removed this section as per requirements\r\n                \/\/ No longer displaying annual estimates column\r\n\r\n                \/\/ Show advisory warning if applicable\r\n                if (results.needsAdvisory) {\r\n                    const advisoryElement = document.getElementById('advisoryWarning');\r\n                    let message = '';\r\n                    \r\n                    switch(results.needsAdvisory.type) {\r\n                        case 'boi':\r\n                            message = '<strong>\u26a0\ufe0f Tax Advisory Recommended<\/strong><br>Depending on your BOI license, you may or may not have tax exemptions. If you have tax exemptions, they may be limited to certain types of activities, not all. If you have other activities, you may have to file two separate sets of income. For exempted income, you need proper supporting documents and there is additional risk of scrutiny and audit by all departments. Contact us to review your BOI situation.';\r\n                            break;\r\n                        case 'other':\r\n                            message = '<strong>\u26a0\ufe0f Tax Advisory Recommended<\/strong><br>You indicated other tax exemptions. We will need to review how they may apply to your specific situation. Contact us to ensure proper application and compliance.';\r\n                            break;\r\n                        case 'variance':\r\n                            message = `<strong>\u26a0\ufe0f Tax Advisory Recommended<\/strong><br>There is significant difference between 2024 and 2025 revenue (${Math.abs(results.needsAdvisory.growth).toFixed(1)}% ${results.needsAdvisory.growth > 0 ? 'increase' : 'decrease'}). This may lead to more scrutiny and potential audit risk. Contact us to review your estimates and minimize compliance risks.`;\r\n                            break;\r\n                        case 'sme_threshold':\r\n                            message = '<strong>\u26a0\ufe0f Tax Advisory Recommended<\/strong><br>Your revenue is close to the threshold for SME rates. We need to be careful to ensure you continue to benefit from reduced SME rates. Contact us to review your situation and make sure your revenue will still fit the criteria for the reduced SME rates.';\r\n                            break;\r\n                    }\r\n                    \r\n                    advisoryElement.innerHTML = message;\r\n                    advisoryElement.style.display = 'block';\r\n                }\r\n\r\n                \/\/ Show optimization tips\r\n                if (results.optimizationTips.length > 0) {\r\n                    const optimizationElement = document.getElementById('optimizationTip');\r\n                    optimizationElement.innerHTML = `\r\n                        <strong>\ud83d\udca1 Tax Optimization Opportunities:<\/strong><br>\r\n                        ${results.optimizationTips.join('<br>')}\r\n                    `;\r\n                    optimizationElement.style.display = 'block';\r\n                }\r\n\r\n                \/\/ Store results for form submission\r\n                this.calculatorData.results = results;\r\n            },\r\n\r\n            formatCurrency(amount) {\r\n                return new Intl.NumberFormat('en-US').format(Math.round(amount));\r\n            },\r\n\r\n            showContactForm() {\r\n                this.nextStep();\r\n            },\r\n\r\n            submitForm() {\r\n                if (!this.validateContactForm()) {\r\n                    return;\r\n                }\r\n\r\n                const formData = new FormData();\r\n                const contactData = {\r\n                    fullName: document.getElementById('fullName').value,\r\n                    email: document.getElementById('email').value,\r\n                    phone: document.getElementById('phone').value,\r\n                    company: document.getElementById('company').value,\r\n                    urgency: document.getElementById('urgency').value,\r\n                    message: document.getElementById('message').value,\r\n                    calculatorData: this.calculatorData\r\n                };\r\n\r\n                \/\/ Add all data to FormData for WordPress\r\n                formData.append('action', 'vba_tax_calculator_submission');\r\n                formData.append('calculator_data', JSON.stringify(contactData));\r\n\r\n                \/\/ Check if WordPress AJAX is available, otherwise use fallback\r\n                if (typeof window.ajaxurl !== 'undefined') {\r\n                    \/\/ WordPress AJAX is properly configured\r\n                    fetch(window.ajaxurl, {\r\n                        method: 'POST',\r\n                        body: formData\r\n                    })\r\n                    .then(response => response.json())\r\n                    .then(data => {\r\n                        if (data.success) {\r\n                            this.showSuccessMessage();\r\n                            this.sendToExternalService(contactData);\r\n                        } else {\r\n                            this.handleSubmissionError(contactData);\r\n                        }\r\n                    })\r\n                    .catch(error => {\r\n                        console.error('WordPress AJAX Error:', error);\r\n                        this.handleSubmissionError(contactData);\r\n                    });\r\n                } else {\r\n                    \/\/ Fallback: Try WordPress admin-ajax.php directly\r\n                    fetch('\/wp-admin\/admin-ajax.php', {\r\n                        method: 'POST',\r\n                        body: formData\r\n                    })\r\n                    .then(response => {\r\n                        if (response.ok) {\r\n                            return response.json();\r\n                        }\r\n                        throw new Error('WordPress AJAX not configured');\r\n                    })\r\n                    .then(data => {\r\n                        if (data.success) {\r\n                            this.showSuccessMessage();\r\n                            this.sendToExternalService(contactData);\r\n                        } else {\r\n                            this.handleSubmissionError(contactData);\r\n                        }\r\n                    })\r\n                    .catch(error => {\r\n                        console.error('Fallback Error:', error);\r\n                        \/\/ Still show success for testing purposes\r\n                        this.handleSubmissionError(contactData);\r\n                    });\r\n                }\r\n            },\r\n\r\n            showSuccessMessage() {\r\n                document.getElementById('contactForm').style.display = 'none';\r\n                document.getElementById('successMessage').style.display = 'block';\r\n                \r\n                \/\/ Auto-reset form after 6 seconds\r\n                setTimeout(() => {\r\n                    this.resetCalculator();\r\n                }, 6000);\r\n            },\r\n\r\n            resetCalculator() {\r\n                \/\/ Reset to step 0\r\n                this.hideStep(this.currentStep);\r\n                this.currentStep = 0;\r\n                this.showStep(this.currentStep);\r\n                this.updateProgress();\r\n                \r\n                \/\/ Clear all form data\r\n                this.calculatorData = {};\r\n                \r\n                \/\/ Reset all form inputs\r\n                document.getElementById('registeredCapital').value = '';\r\n                document.getElementById('annualRevenue').value = '';\r\n                document.getElementById('estimatedRevenue').value = '';\r\n                document.getElementById('estimatedProfit').value = '';\r\n                document.getElementById('lastYearRevenue').value = '';\r\n                document.getElementById('fullName').value = '';\r\n                document.getElementById('company').value = '';\r\n                document.getElementById('email').value = '';\r\n                document.getElementById('phone').value = '';\r\n                document.getElementById('urgency').value = '';\r\n                document.getElementById('message').value = '';\r\n                document.getElementById('charCount').textContent = '0';\r\n                \r\n                \/\/ Reset all radio buttons and checkboxes\r\n                document.querySelectorAll('input[type=\"radio\"]').forEach(radio => {\r\n                    radio.checked = false;\r\n                });\r\n                document.querySelectorAll('input[type=\"checkbox\"]').forEach(checkbox => {\r\n                    checkbox.checked = false;\r\n                });\r\n                \r\n                \/\/ Reset all buttons to disabled state\r\n                document.getElementById('nextBtn1').disabled = true;\r\n                document.getElementById('nextBtn2').disabled = true;\r\n                document.getElementById('calculateBtn').disabled = true;\r\n                \r\n                \/\/ Hide all results and messages\r\n                document.getElementById('smeStatus').style.display = 'none';\r\n                document.getElementById('advisoryWarning').style.display = 'none';\r\n                document.getElementById('optimizationTip').style.display = 'none';\r\n                document.getElementById('successMessage').style.display = 'none';\r\n                document.getElementById('contactForm').style.display = 'block';\r\n                \r\n                \/\/ Hide error messages\r\n                document.querySelectorAll('.error-message').forEach(error => {\r\n                    error.style.display = 'none';\r\n                });\r\n                \r\n                \/\/ Reset CTA buttons to default state\r\n                document.getElementById('contactCTA').textContent = 'Get Tax Optimization Plan';\r\n                document.getElementById('submitCTA').textContent = 'Get Tax Strategy';\r\n                document.getElementById('contactFormTitle').textContent = 'Get Your Personalized Tax Strategy';\r\n                \r\n                console.log('Calculator reset successfully');\r\n            },\r\n\r\n            handleSubmissionError(contactData) {\r\n                \/\/ For testing purposes, still show success and send test email\r\n                console.log('WordPress AJAX not configured, using fallback...');\r\n                this.showSuccessMessage();\r\n                this.sendTestEmail(contactData);\r\n            },\r\n\r\n            validateContactForm() {\r\n                let isValid = true;\r\n                \r\n                const name = document.getElementById('fullName').value.trim();\r\n                const email = document.getElementById('email').value.trim();\r\n                const phone = document.getElementById('phone').value.trim();\r\n                const company = document.getElementById('company').value.trim();\r\n                \r\n                \/\/ Reset errors\r\n                document.querySelectorAll('.error-message').forEach(error => {\r\n                    error.style.display = 'none';\r\n                });\r\n\r\n                if (!name) {\r\n                    document.getElementById('nameError').style.display = 'block';\r\n                    isValid = false;\r\n                }\r\n\r\n                if (!email || !this.isValidEmail(email)) {\r\n                    const emailError = document.getElementById('emailError');\r\n                    if (!email) {\r\n                        emailError.textContent = 'Please enter a valid email address';\r\n                    } else {\r\n                        emailError.textContent = 'Please use a valid business email address';\r\n                    }\r\n                    emailError.style.display = 'block';\r\n                    isValid = false;\r\n                }\r\n\r\n                if (!phone) {\r\n                    document.getElementById('phoneError').style.display = 'block';\r\n                    isValid = false;\r\n                }\r\n\r\n                if (!company) {\r\n                    document.getElementById('companyError').style.display = 'block';\r\n                    isValid = false;\r\n                }\r\n\r\n                return isValid;\r\n            },\r\n\r\n            isValidEmail(email) {\r\n                const emailRegex = \/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$\/;\r\n                if (!emailRegex.test(email)) return false;\r\n                \r\n                \/\/ Check against disposable email domains\r\n                const disposableDomains = [\r\n                    '10minutemail.com', 'tempmail.org', 'guerrillamail.com', 'mailinator.com',\r\n                    'yopmail.com', 'temp-mail.org', 'throwaway.email', 'getnada.com',\r\n                    'maildrop.cc', 'sharklasers.com', 'guerrillamailblock.com', 'pokemail.net',\r\n                    'spam4.me', 'bccto.me', 'chacuo.net', 'dispostable.com', 'tempail.com',\r\n                    'fakeinbox.com', 'mailnesia.com', 'trashmail.com', 'mohmal.com',\r\n                    'emailondeck.com', 'mytrashmail.com', '20minutemail.it', 'mailexpire.com',\r\n                    'tempemail.com', 'getairmail.com', 'mail-temporaire.fr', 'minuteinbox.com',\r\n                    'spamgourmet.com', 'mailcatch.com', 'filzmail.com', 'armyspy.com',\r\n                    'cuvox.de', 'dayrep.com', 'fleckens.hu', 'gustr.com', 'jourrapide.com',\r\n                    'laposte.net', 'superrito.com', 'teleworm.us', 'rhyta.com',\r\n                    'einrot.com', 'deexa.net', 'discard.email', 'incognitomail.org',\r\n                    'cs.email', 'cool.fr.nf', 'courriel.fr.nf', 'moncourrier.fr.nf',\r\n                    'monemail.fr.nf', 'monmail.fr.nf', 'hide.biz.st', 'mymail.infos.st'\r\n                ];\r\n                \r\n                const domain = email.split('@')[1].toLowerCase();\r\n                return !disposableDomains.includes(domain);\r\n            },\r\n\r\n            sendToExternalService(data) {\r\n                \/\/ Send test notification to lay@shiftcode.co.uk\r\n                this.sendTestEmail(data);\r\n            },\r\n\r\n            sendTestEmail(data) {\r\n                \/\/ Create email content for testing\r\n                const emailContent = {\r\n                    to: 'lay@shiftcode.co.uk',\r\n                    subject: `Corporate Tax Calculator Lead - ${data.fullName}`,\r\n                    message: `\r\n\ud83d\udcb0 NEW CORPORATE TAX CALCULATOR LEAD - VBA PARTNERS\r\n\r\n\ud83d\udc64 Contact Information:\r\nName: ${data.fullName}\r\nEmail: ${data.email}\r\nPhone: ${data.phone}\r\nCompany: ${data.company}\r\nUrgency: ${data.urgency || 'Not specified'}\r\n\r\n\ud83c\udfe2 Company Information:\r\nAnnual Revenue 2025: ${this.formatCurrency(data.calculatorData.annualRevenue)} THB\r\nRegistered Capital: ${this.formatCurrency(data.calculatorData.registeredCapital)} THB\r\nTax Exemptions: ${data.calculatorData.taxExemption}\r\n\r\n\ud83d\udcca 2025 Financial Estimates:\r\nEstimated Revenue: ${this.formatCurrency(data.calculatorData.estimatedRevenue)} THB\r\nEstimated Profit: ${this.formatCurrency(data.calculatorData.estimatedProfit)} THB\r\nPrevious Year Revenue: ${this.formatCurrency(data.calculatorData.lastYearRevenue)} THB\r\n\r\n\ud83d\udcb3 Tax Calculation Results:\r\nAnnual Corporate Tax: ${this.formatCurrency(data.calculatorData.results.annualTax)} THB\r\nSME Qualification: ${data.calculatorData.results.isSME ? 'Yes' : 'No'}\r\nAdvisory Needed: ${data.calculatorData.results.needsAdvisory ? 'Yes' : 'No'}\r\n\r\n\ud83c\udfaf Client Preferences:\r\nMain Concerns: ${data.calculatorData.mainConcern ? data.calculatorData.mainConcern.join(', ') : 'None selected'}\r\nOptimization Interest: ${data.calculatorData.optimizationInterest}\r\n\r\n\ud83d\udcdd Specific Concerns:\r\n${data.message || 'No specific concerns mentioned'}\r\n\r\n\ud83d\ude80 Next Steps:\r\n- Send detailed tax optimization plan\r\n- Schedule tax consultation\r\n- Review estimation accuracy\r\n- Discuss optimization strategies\r\n- Provide compliance timeline\r\n\r\n---\r\nGenerated by VBA Partners Corporate Tax Calculator\r\n${new Date().toLocaleString()}\r\n                    `\r\n                };\r\n\r\n                \/\/ For testing purposes, also log to console\r\n                console.log('Corporate Tax Email Content:', emailContent);\r\n                \r\n                \/\/ You can add actual email service integration here\r\n                \/\/ For now, we'll just show the data was captured\r\n                console.log('Corporate tax lead data captured for:', data.email);\r\n            }\r\n        };\r\n\r\n        \/\/ Initialize calculator when DOM is ready\r\n        document.addEventListener('DOMContentLoaded', () => {\r\n            VBATaxCalculator.init();\r\n        });\r\n\r\n        \/\/ Global functions for button clicks (to avoid scope issues)\r\n        function startCalculator() {\r\n            VBATaxCalculator.startCalculator();\r\n        }\r\n\r\n        function nextStep() {\r\n            VBATaxCalculator.nextStep();\r\n        }\r\n\r\n        function previousStep() {\r\n            VBATaxCalculator.previousStep();\r\n        }\r\n\r\n        function calculateResults() {\r\n            VBATaxCalculator.calculateResults();\r\n        }\r\n\r\n        function showContactForm() {\r\n            VBATaxCalculator.showContactForm();\r\n        }\r\n    <\/script>\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\t\t<\/div>","protected":false},"excerpt":{"rendered":"<p>Thailand Corporate Income Tax Calculator Calculate your 2025 corporate income tax payment. Ensure compliance and avoid penalties with accurate tax estimation. &#x26a0;&#xfe0f; Half-Year Tax Payment Deadline Approaching Based on your estimated annual revenue, half-year tax must be paid. A penalty may apply if the estimation error exceeds 25%. \u2713 SME tax rates included \u2713 Penalty [&hellip;]<\/p>","protected":false},"author":2,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-13163","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/vbapartners.com\/fr\/wp-json\/wp\/v2\/pages\/13163","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vbapartners.com\/fr\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/vbapartners.com\/fr\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/vbapartners.com\/fr\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/vbapartners.com\/fr\/wp-json\/wp\/v2\/comments?post=13163"}],"version-history":[{"count":1,"href":"https:\/\/vbapartners.com\/fr\/wp-json\/wp\/v2\/pages\/13163\/revisions"}],"predecessor-version":[{"id":14061,"href":"https:\/\/vbapartners.com\/fr\/wp-json\/wp\/v2\/pages\/13163\/revisions\/14061"}],"wp:attachment":[{"href":"https:\/\/vbapartners.com\/fr\/wp-json\/wp\/v2\/media?parent=13163"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}