{"id":13152,"date":"2025-07-15T05:43:02","date_gmt":"2025-07-15T05:43:02","guid":{"rendered":"https:\/\/vbapartners.com\/?page_id=13152"},"modified":"2026-02-17T07:02:05","modified_gmt":"2026-02-17T07:02:05","slug":"business-setup-cost-estimator","status":"publish","type":"page","link":"https:\/\/vbapartners.com\/fr\/business-setup-cost-estimator\/","title":{"rendered":"Business Setup Cost Estimator"},"content":{"rendered":"<div data-elementor-type=\"wp-page\" data-elementor-id=\"13152\" class=\"elementor elementor-13152\" 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\r\n\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: 13px;\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        .radio-option {\r\n            position: relative;\r\n            cursor: pointer;\r\n        }\r\n\r\n        .radio-option input[type=\"radio\"] {\r\n            display: none;\r\n        }\r\n\r\n        .radio-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 {\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        .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-group {\r\n            display: grid;\r\n            gap: 8px;\r\n        }\r\n\r\n        .checkbox-option {\r\n            position: relative;\r\n            cursor: pointer;\r\n        }\r\n\r\n        .checkbox-option input[type=\"checkbox\"] {\r\n            display: none;\r\n        }\r\n\r\n        .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        .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        .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        .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,<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"white\"><path d=\"M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z\"\/><\/svg>');\r\n            background-size: 12px;\r\n            background-position: center;\r\n            background-repeat: no-repeat;\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        .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        .cost-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        .cost-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        .cost-label {\r\n            font-size: 11px;\r\n            color: #666;\r\n            margin-top: 2px;\r\n        }\r\n\r\n        .cost-breakdown {\r\n            background: white;\r\n            padding: 15px;\r\n            border-radius: 6px;\r\n            border: 1px solid #e1e5e9;\r\n            margin: 15px 0;\r\n        }\r\n\r\n        .cost-breakdown h4 {\r\n            font-family: \"Inter\", sans-serif;\r\n            color: #0F4160;\r\n            margin-bottom: 12px;\r\n            font-size: 14px;\r\n        }\r\n\r\n        .cost-item {\r\n            display: flex;\r\n            justify-content: space-between;\r\n            margin-bottom: 6px;\r\n            font-size: 12px;\r\n            padding: 4px 0;\r\n            border-bottom: 1px solid #f5f5f5;\r\n        }\r\n\r\n        .cost-item:last-child {\r\n            border-bottom: none;\r\n            font-weight: 600;\r\n            color: #0F4160;\r\n            border-top: 2px solid #35A692;\r\n            padding-top: 8px;\r\n            margin-top: 8px;\r\n        }\r\n\r\n        .cost-item .value {\r\n            font-weight: 600;\r\n            color: #0F4160;\r\n        }\r\n\r\n        .timeline-info {\r\n            background: #f8f9fa;\r\n            padding: 10px;\r\n            border-radius: 6px;\r\n            margin: 10px 0;\r\n            font-size: 12px;\r\n            color: #666;\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        \/* 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            .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            .cost-amount {\r\n                font-size: 18px;\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    <\/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                        Business Setup Cost Estimator\r\n                    <\/h1>\r\n                    <p style=\"font-size: 14px; color: #666; margin-bottom: 25px; line-height: 1.4;\">\r\n                        Get accurate cost estimates for setting up your business in Thailand. Compare different company types and service packages to find the best solution for your needs.\r\n                    <\/p>\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> Instant cost breakdown\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> Timeline estimates\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> Free consultation\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                        Get Estimate \u2192\r\n                    <\/button>\r\n                <\/div>\r\n            <\/div>\r\n\r\n            <!-- Step 1: Company Type -->\r\n            <div class=\"step\" id=\"step1\">\r\n                <h2>What type of company do you want to establish?<\/h2>\r\n                <p class=\"step-description\">Different company structures have different setup costs and requirements.<\/p>\r\n                \r\n                <div class=\"form-group\">\r\n                    <div class=\"radio-group\">\r\n                        <div class=\"radio-option\">\r\n                            <input type=\"radio\" id=\"limitedCompany\" name=\"companyType\" value=\"limited\" data-cost=\"45000\">\r\n                            <label for=\"limitedCompany\">Thai Limited Company (most common for SMEs)<\/label>\r\n                        <\/div>\r\n                        <div class=\"radio-option\">\r\n                            <input type=\"radio\" id=\"boiCompany\" name=\"companyType\" value=\"boi\" data-cost=\"250000\">\r\n                            <label for=\"boiCompany\">BOI Promoted Company (tax incentives)<\/label>\r\n                        <\/div>\r\n                        <div class=\"radio-option\">\r\n                            <input type=\"radio\" id=\"branchOffice\" name=\"companyType\" value=\"branch\" data-cost=\"35000\">\r\n                            <label for=\"branchOffice\">Branch Office (foreign company extension)<\/label>\r\n                        <\/div>\r\n                        <div class=\"radio-option\">\r\n                            <input type=\"radio\" id=\"repOffice\" name=\"companyType\" value=\"representative\" data-cost=\"25000\">\r\n                            <label for=\"repOffice\">Representative Office (liaison only)<\/label>\r\n                        <\/div>\r\n                        <div class=\"radio-option\">\r\n                            <input type=\"radio\" id=\"regionOffice\" name=\"companyType\" value=\"regional\" data-cost=\"40000\">\r\n                            <label for=\"regionOffice\">Regional Office (coordination hub)<\/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: Services Required -->\r\n            <div class=\"step\" id=\"step2\">\r\n                <h2>What services do you need?<\/h2>\r\n                <p class=\"step-description\">Select all services you require for your business setup and ongoing operations.<\/p>\r\n                \r\n                <div class=\"form-group\">\r\n                    <div class=\"checkbox-group\">\r\n                        <div class=\"checkbox-option\">\r\n                            <input type=\"checkbox\" id=\"companyRegistration\" name=\"services\" value=\"registration\" data-cost=\"15000\">\r\n                            <label for=\"companyRegistration\">Company Registration & Documentation<\/label>\r\n                        <\/div>\r\n                        <div class=\"checkbox-option\">\r\n                            <input type=\"checkbox\" id=\"accountingSetup\" name=\"services\" value=\"accounting\" data-cost=\"8000\">\r\n                            <label for=\"accountingSetup\">Accounting System Setup<\/label>\r\n                        <\/div>\r\n                        <div class=\"checkbox-option\">\r\n                            <input type=\"checkbox\" id=\"taxRegistration\" name=\"services\" value=\"tax\" data-cost=\"5000\">\r\n                            <label for=\"taxRegistration\">Tax Registration (VAT, Corporate)<\/label>\r\n                        <\/div>\r\n                        <div class=\"checkbox-option\">\r\n                            <input type=\"checkbox\" id=\"workPermit\" name=\"services\" value=\"workpermit\" data-cost=\"25000\">\r\n                            <label for=\"workPermit\">Work Permit & Visa Support<\/label>\r\n                        <\/div>\r\n                        <div class=\"checkbox-option\">\r\n                            <input type=\"checkbox\" id=\"bankAccount\" name=\"services\" value=\"banking\" data-cost=\"12000\">\r\n                            <label for=\"bankAccount\">Corporate Bank Account Opening<\/label>\r\n                        <\/div>\r\n                        <div class=\"checkbox-option\">\r\n                            <input type=\"checkbox\" id=\"socialSecurity\" name=\"services\" value=\"social\" data-cost=\"3000\">\r\n                            <label for=\"socialSecurity\">Enregistrement \u00e0 la s\u00e9curit\u00e9 sociale<\/label>\r\n                        <\/div>\r\n                        <div class=\"checkbox-option\">\r\n                            <input type=\"checkbox\" id=\"monthlyAccounting\" name=\"services\" value=\"monthly\" data-cost=\"15000\">\r\n                            <label for=\"monthlyAccounting\">Monthly Accounting & Compliance (first year)<\/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=\"nextStep()\" id=\"nextBtn2\" disabled>Continue<\/button>\r\n                <\/div>\r\n            <\/div>\r\n\r\n            <!-- Step 3: Business Details -->\r\n            <div class=\"step\" id=\"step3\">\r\n                <h2>Tell us about your business<\/h2>\r\n                <p class=\"step-description\">These details help us provide more accurate cost estimates and timeline.<\/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=\"expectedRevenue\">Expected Annual Revenue (THB)<\/label>\r\n                        <select class=\"form-control\" id=\"expectedRevenue\">\r\n                            <option value=\"\">Select revenue range<\/option>\r\n                            <option value=\"under2m\">Under 2 Million THB<\/option>\r\n                            <option value=\"2m-10m\">2 - 10 Million THB<\/option>\r\n                            <option value=\"10m-50m\">10 - 50 Million THB<\/option>\r\n                            <option value=\"50m-200m\">50 - 200 Million THB<\/option>\r\n                            <option value=\"over200m\">Over 200 Million THB<\/option>\r\n                        <\/select>\r\n                    <\/div>\r\n\r\n                    <div class=\"form-group\">\r\n                        <label for=\"employeeCount\">Planned Number of Employees<\/label>\r\n                        <select class=\"form-control\" id=\"employeeCount\">\r\n                            <option value=\"\">Select employee count<\/option>\r\n                            <option value=\"1-3\">1 - 3 employees<\/option>\r\n                            <option value=\"4-10\">4 - 10 employees<\/option>\r\n                            <option value=\"11-25\">11 - 25 employees<\/option>\r\n                            <option value=\"26-50\">26 - 50 employees<\/option>\r\n                            <option value=\"50+\">50+ employees<\/option>\r\n                        <\/select>\r\n                    <\/div>\r\n                <\/div>\r\n\r\n                <div class=\"form-group\">\r\n                    <label for=\"businessActivity\">Primary Business Activity<\/label>\r\n                    <select class=\"form-control\" id=\"businessActivity\">\r\n                        <option value=\"\">Select business activity<\/option>\r\n                        <option value=\"trading\">Trading & Import\/Export<\/option>\r\n                        <option value=\"manufacturing\">Industrie manufacturi\u00e8re<\/option>\r\n                        <option value=\"services\">Professional Services<\/option>\r\n                        <option value=\"technology\">Technology & Software<\/option>\r\n                        <option value=\"consulting\">Consulting<\/option>\r\n                        <option value=\"hospitality\">Hospitality & Tourism<\/option>\r\n                        <option value=\"retail\">Retail & E-commerce<\/option>\r\n                        <option value=\"other\">Other<\/option>\r\n                    <\/select>\r\n                <\/div>\r\n\r\n                <div class=\"form-group\">\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=\"urgentSetup\" name=\"timeline\" value=\"urgent\">\r\n                            <label for=\"urgentSetup\">Urgent (2-4 weeks)<\/label>\r\n                        <\/div>\r\n                        <div class=\"radio-option\">\r\n                            <input type=\"radio\" id=\"standardSetup\" name=\"timeline\" value=\"standard\">\r\n                            <label for=\"standardSetup\">Standard (4-8 weeks)<\/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 Costs<\/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 Business Setup Cost Estimate<\/h2>\r\n                <p class=\"step-description\">Based on your requirements, here's your detailed cost breakdown:<\/p>\r\n                \r\n                <div class=\"results-container\">\r\n                    <div class=\"cost-highlight\">\r\n                        <div class=\"cost-amount\" id=\"totalCost\">0 THB<\/div>\r\n                        <div class=\"cost-label\">Total Estimated Cost<\/div>\r\n                    <\/div>\r\n\r\n                    <div class=\"cost-breakdown\">\r\n                        <h4>Cost Breakdown<\/h4>\r\n                        <div id=\"costItems\">\r\n                            <!-- Cost items will be populated by JavaScript -->\r\n                        <\/div>\r\n                    <\/div>\r\n\r\n                    <div class=\"timeline-info\">\r\n                        <strong>Estimated Timeline:<\/strong> <span id=\"timelineEstimate\">4-8 weeks<\/span>\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                            *Estimates based on standard procedures. Final costs may vary based on specific requirements.\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()\">Get Detailed Quote<\/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>Get Your Detailed Business Setup Quote<\/h2>\r\n                <p class=\"step-description\">Receive a personalized quote and consultation with our business setup experts.<\/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\">\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=\"startDate\">When do you plan to start the setup process?<\/label>\r\n                        <select class=\"form-control\" id=\"startDate\">\r\n                            <option value=\"\">Select timeframe<\/option>\r\n                            <option value=\"immediately\">Immediately<\/option>\r\n                            <option value=\"1month\">Within 1 month<\/option>\r\n                            <option value=\"3months\">Within 3 months<\/option>\r\n                            <option value=\"6months\">Within 6 months<\/option>\r\n                            <option value=\"planning\">Still planning<\/option>\r\n                        <\/select>\r\n                    <\/div>\r\n\r\n                    <div class=\"form-group\">\r\n                        <label for=\"message\">Additional Requirements <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 specific requirements, questions about the process, or any additional services you need...\" 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\">Get Free Quote<\/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 information and will contact you within 24 hours with your detailed business setup quote.\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 setup costs...<\/p>\r\n            <\/div>\r\n        <\/div>\r\n    <\/div>\r\n\r\n    <script>\r\n        \/\/ Namespace to avoid conflicts\r\n        const VBASetupCalculator = {\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                \/\/ Radio button listeners\r\n                document.querySelectorAll('input[name=\"companyType\"]').forEach(radio => {\r\n                    radio.addEventListener('change', () => {\r\n                        document.getElementById('nextBtn1').disabled = false;\r\n                    });\r\n                });\r\n\r\n                document.querySelectorAll('input[name=\"timeline\"]').forEach(radio => {\r\n                    radio.addEventListener('change', () => {\r\n                        this.validateStep3();\r\n                    });\r\n                });\r\n\r\n                \/\/ Checkbox listeners\r\n                document.querySelectorAll('input[name=\"services\"]').forEach(checkbox => {\r\n                    checkbox.addEventListener('change', () => {\r\n                        this.validateStep2();\r\n                    });\r\n                });\r\n\r\n                \/\/ Select dropdown listeners\r\n                document.getElementById('expectedRevenue').addEventListener('change', () => {\r\n                    this.validateStep3();\r\n                });\r\n\r\n                document.getElementById('employeeCount').addEventListener('change', () => {\r\n                    this.validateStep3();\r\n                });\r\n\r\n                document.getElementById('businessActivity').addEventListener('change', () => {\r\n                    this.validateStep3();\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            validateStep2() {\r\n                const checkedServices = document.querySelectorAll('input[name=\"services\"]:checked');\r\n                document.getElementById('nextBtn2').disabled = checkedServices.length === 0;\r\n            },\r\n\r\n            validateStep3() {\r\n                const revenue = document.getElementById('expectedRevenue').value;\r\n                const employees = document.getElementById('employeeCount').value;\r\n                const activity = document.getElementById('businessActivity').value;\r\n                const timeline = document.querySelector('input[name=\"timeline\"]:checked');\r\n                \r\n                document.getElementById('calculateBtn').disabled = !(revenue && employees && activity && timeline);\r\n            },\r\n\r\n            nextStep() {\r\n                if (this.currentStep < this.totalSteps) {\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                    companyType: document.querySelector('input[name=\"companyType\"]:checked')?.value,\r\n                    services: Array.from(document.querySelectorAll('input[name=\"services\"]:checked')).map(cb => cb.value),\r\n                    expectedRevenue: document.getElementById('expectedRevenue').value,\r\n                    employeeCount: document.getElementById('employeeCount').value,\r\n                    businessActivity: document.getElementById('businessActivity').value,\r\n                    timeline: document.querySelector('input[name=\"timeline\"]:checked')?.value\r\n                };\r\n            },\r\n\r\n            performCalculations() {\r\n                const data = this.calculatorData;\r\n                let totalCost = 0;\r\n                let costItems = [];\r\n                \r\n                \/\/ Company type base cost\r\n                const companyTypeRadio = document.querySelector('input[name=\"companyType\"]:checked');\r\n                const baseCost = parseInt(companyTypeRadio.dataset.cost);\r\n                totalCost += baseCost;\r\n                \r\n                const companyTypeNames = {\r\n                    'limited': 'Thai Limited Company Setup',\r\n                    'boi': 'BOI Company Setup',\r\n                    'branch': 'Branch Office Setup',\r\n                    'representative': 'Representative Office Setup',\r\n                    'regional': 'Regional Office Setup'\r\n                };\r\n                \r\n                costItems.push({\r\n                    name: companyTypeNames[data.companyType],\r\n                    cost: baseCost\r\n                });\r\n\r\n                \/\/ Services costs\r\n                const selectedServices = document.querySelectorAll('input[name=\"services\"]:checked');\r\n                selectedServices.forEach(service => {\r\n                    const serviceCost = parseInt(service.dataset.cost);\r\n                    totalCost += serviceCost;\r\n                    costItems.push({\r\n                        name: service.nextElementSibling.textContent,\r\n                        cost: serviceCost\r\n                    });\r\n                });\r\n\r\n                \/\/ Timeline urgency fee\r\n                if (data.timeline === 'urgent') {\r\n                    const urgencyFee = totalCost * 0.2; \/\/ 20% rush fee\r\n                    totalCost += urgencyFee;\r\n                    costItems.push({\r\n                        name: 'Urgent Processing Fee (20%)',\r\n                        cost: urgencyFee\r\n                    });\r\n                }\r\n\r\n                \/\/ Government fees estimate\r\n                const govFees = 5000; \/\/ Standard government fees\r\n                totalCost += govFees;\r\n                costItems.push({\r\n                    name: 'Government Fees & Stamps',\r\n                    cost: govFees\r\n                });\r\n\r\n                \/\/ Update display\r\n                this.updateResultsDisplay({\r\n                    totalCost: totalCost,\r\n                    costItems: costItems,\r\n                    timeline: data.timeline === 'urgent' ? '2-4 weeks' : '4-8 weeks'\r\n                });\r\n            },\r\n\r\n            updateResultsDisplay(results) {\r\n                document.getElementById('totalCost').textContent = \r\n                    this.formatCurrency(results.totalCost) + ' THB';\r\n                \r\n                const costItemsContainer = document.getElementById('costItems');\r\n                costItemsContainer.innerHTML = '';\r\n                \r\n                results.costItems.forEach(item => {\r\n                    const itemDiv = document.createElement('div');\r\n                    itemDiv.className = 'cost-item';\r\n                    itemDiv.innerHTML = `\r\n                        <span>${item.name}<\/span>\r\n                        <span class=\"value\">${this.formatCurrency(item.cost)} THB<\/span>\r\n                    `;\r\n                    costItemsContainer.appendChild(itemDiv);\r\n                });\r\n\r\n                \/\/ Add total line\r\n                const totalDiv = document.createElement('div');\r\n                totalDiv.className = 'cost-item';\r\n                totalDiv.innerHTML = `\r\n                    <span><strong>Total Cost<\/strong><\/span>\r\n                    <span class=\"value\"><strong>${this.formatCurrency(results.totalCost)} THB<\/strong><\/span>\r\n                `;\r\n                costItemsContainer.appendChild(totalDiv);\r\n\r\n                document.getElementById('timelineEstimate').textContent = results.timeline;\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                    startDate: document.getElementById('startDate').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_setup_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\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                \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                    document.getElementById('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                return isValid;\r\n            },\r\n\r\n            isValidEmail(email) {\r\n                const emailRegex = \/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$\/;\r\n                return emailRegex.test(email);\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: `Business Setup Calculator Lead - ${data.fullName}`,\r\n                    message: `\r\n\ud83c\udfe2 NEW BUSINESS SETUP CALCULATOR LEAD - VBA PARTNERS\r\n\r\n\ud83d\udc64 Contact Information:\r\nName: ${data.fullName}\r\nEmail: ${data.email}\r\nPhone: ${data.phone || 'Not provided'}\r\nCompany: ${data.company || 'Not provided'}\r\nStart Date: ${data.startDate || 'Not specified'}\r\n\r\n\ud83d\udcbc Business Setup Requirements:\r\nCompany Type: ${data.calculatorData.companyType}\r\nServices Required: ${data.calculatorData.services.join(', ')}\r\nExpected Revenue: ${data.calculatorData.expectedRevenue}\r\nEmployee Count: ${data.calculatorData.employeeCount}\r\nBusiness Activity: ${data.calculatorData.businessActivity}\r\nTimeline: ${data.calculatorData.timeline}\r\n\r\n\ud83d\udcb0 Cost Estimate:\r\nTotal Setup Cost: ${this.formatCurrency(data.calculatorData.results.totalCost)} THB\r\nEstimated Timeline: ${data.calculatorData.results.timeline}\r\n\r\n\ud83d\udcdd Additional Requirements:\r\n${data.message || 'No additional information provided'}\r\n\r\n\ud83d\ude80 Next Steps:\r\n- Send detailed business setup quote\r\n- Schedule consultation call\r\n- Explain setup process and timeline\r\n- Provide service agreement\r\n\r\n---\r\nGenerated by VBA Partners Business Setup 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('Business Setup 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('Business setup 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            VBASetupCalculator.init();\r\n        });\r\n\r\n        \/\/ Global functions for button clicks (to avoid scope issues)\r\n        function startCalculator() {\r\n            VBASetupCalculator.startCalculator();\r\n        }\r\n\r\n        function nextStep() {\r\n            VBASetupCalculator.nextStep();\r\n        }\r\n\r\n        function previousStep() {\r\n            VBASetupCalculator.previousStep();\r\n        }\r\n\r\n        function calculateResults() {\r\n            VBASetupCalculator.calculateResults();\r\n        }\r\n\r\n        function showContactForm() {\r\n            VBASetupCalculator.showContactForm();\r\n        }\r\n    <\/script>\r\n\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>Business Setup Cost Estimator Get accurate cost estimates for setting up your business in Thailand. Compare different company types and service packages to find the best solution for your needs. \u2713 Instant cost breakdown \u2713 Timeline estimates \u2713 Free consultation Get Estimate \u2192 What type of company do you want to establish? Different company structures [&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-13152","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/vbapartners.com\/fr\/wp-json\/wp\/v2\/pages\/13152","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=13152"}],"version-history":[{"count":1,"href":"https:\/\/vbapartners.com\/fr\/wp-json\/wp\/v2\/pages\/13152\/revisions"}],"predecessor-version":[{"id":14063,"href":"https:\/\/vbapartners.com\/fr\/wp-json\/wp\/v2\/pages\/13152\/revisions\/14063"}],"wp:attachment":[{"href":"https:\/\/vbapartners.com\/fr\/wp-json\/wp\/v2\/media?parent=13152"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}