private void ProcessFormCP204(mshtml.HTMLDocument htmlDoc, String strPageIndex)
        {
            try
            {
                EFilingDALCP204 dal    = new EFilingDALCP204(strTaxPayer, strYA, strAuditor, strTaxAgent);
                DataSet         dsData = dal.GetFormDataCP204(strPageIndex);
                dal.CloseConn();
                Boolean boolPindaan = false;
                //Boolean boolNoRecord = false;

                if (dsData.Tables["P1_BORANG_CP204"].Rows.Count > 0)
                {
                    #region "INPUT"
                    foreach (mshtml.HTMLInputElement inpElement in htmlDoc.getElementsByTagName("input"))
                    {
                        //switch (strPageIndex)
                        //{
                        #region "Page 1"
                        //case "CP2042009Page1":

                        string[] arrCorrespondAddress  = new string[3];
                        string[] arrCorrespondAddress2 = new string[3];
                        string[] arrTaxAgentAddress    = new string[3];

                        arrCorrespondAddress[0] = dsData.Tables["P1_BORANG_CP204"].Rows[0].ItemArray[0].ToString();
                        arrCorrespondAddress[1] = dsData.Tables["P1_BORANG_CP204"].Rows[0].ItemArray[1].ToString();
                        arrCorrespondAddress[2] = dsData.Tables["P1_BORANG_CP204"].Rows[0].ItemArray[2].ToString();
                        arrCorrespondAddress    = TextSpliterAddress(arrCorrespondAddress, 30);

                        if (!String.IsNullOrEmpty(dsData.Tables["P1_BORANG_CP204"].Rows[0].ItemArray[6].ToString()))
                        {
                            arrCorrespondAddress2[0] = dsData.Tables["P1_BORANG_CP204"].Rows[0].ItemArray[6].ToString();
                            arrCorrespondAddress2[1] = dsData.Tables["P1_BORANG_CP204"].Rows[0].ItemArray[7].ToString();
                            arrCorrespondAddress2[2] = dsData.Tables["P1_BORANG_CP204"].Rows[0].ItemArray[8].ToString();
                            arrCorrespondAddress2    = TextSpliterAddress(arrCorrespondAddress2, 30);
                            boolPindaan = true;
                        }

                        arrTaxAgentAddress[0] = dsData.Tables["P1_FIRM"].Rows[0].ItemArray[0].ToString();
                        arrTaxAgentAddress[1] = dsData.Tables["P1_FIRM"].Rows[0].ItemArray[1].ToString();
                        arrTaxAgentAddress[2] = dsData.Tables["P1_FIRM"].Rows[0].ItemArray[2].ToString();
                        arrTaxAgentAddress    = TextSpliterAddress(arrTaxAgentAddress, 30);

                        switch (inpElement.name)
                        {
                        case "btnPindaan":
                            FireInpElementEvent(inpElement, "onclick");
                            break;

                        case "txtAlamat1":
                            if (boolPindaan)
                            {
                                inpElement.value = arrCorrespondAddress2[0].ToUpper();
                            }
                            else
                            {
                                inpElement.value = arrCorrespondAddress[0].ToUpper();
                            }
                            break;

                        case "txtAlamat2":
                            if (boolPindaan)
                            {
                                inpElement.value = arrCorrespondAddress2[1].ToUpper();
                            }
                            else
                            {
                                inpElement.value = arrCorrespondAddress[1].ToUpper();
                            }
                            break;

                        case "txtAlamat3":
                            if (boolPindaan)
                            {
                                inpElement.value = arrCorrespondAddress2[2].ToUpper();
                            }
                            else
                            {
                                inpElement.value = arrCorrespondAddress[2].ToUpper();
                            }
                            break;

                        case "txtPoskod":
                            if (boolPindaan)
                            {
                                inpElement.value = dsData.Tables["P1_BORANG_CP204"].Rows[0].ItemArray[9].ToString();
                            }
                            else
                            {
                                inpElement.value = dsData.Tables["P1_BORANG_CP204"].Rows[0].ItemArray[3].ToString();
                            }
                            break;

                        case "txtBandar":
                            if (boolPindaan)
                            {
                                inpElement.value = dsData.Tables["P1_BORANG_CP204"].Rows[0].ItemArray[10].ToString().ToUpper();
                                FireInpElementEvent(inpElement, "onchange");
                            }
                            else
                            {
                                inpElement.value = dsData.Tables["P1_BORANG_CP204"].Rows[0].ItemArray[4].ToString().ToUpper();
                                FireInpElementEvent(inpElement, "onchange");
                            }
                            break;

                        case "txtAnggaran_Cukai2":
                            inpElement.value = dsData.Tables["P1_BORANG_CP204"].Rows[0].ItemArray[12].ToString();
                            FireInpElementEvent(inpElement, "onblur");
                            break;

                        //case "btnPindaanSME": //weihong
                        //if (!String.IsNullOrEmpty(dsData.Tables["P1_BORANG_CP204"].Rows[0].ItemArray[23].ToString()))
                        //{
                        //    FireInpElementEvent(inpElement, "onclick");
                        //}
                        //break;
                        case "txtTarikh_SyktBaru":
                            inpElement.value = dsData.Tables["P1_BORANG_CP204"].Rows[0].ItemArray[13].ToString();
                            FireInpElementEvent(inpElement, "onblur");
                            break;

                        case "TxtThnPertama":             //weihong Status SME FROM
                            inpElement.value = dsData.Tables["P1_BORANG_CP204"].Rows[0].ItemArray[23].ToString();
                            FireInpElementEvent(inpElement, "onblur");
                            break;

                        case "TxtThnKedua":             //weihong Status SME TO
                            inpElement.value = dsData.Tables["P1_BORANG_CP204"].Rows[0].ItemArray[24].ToString();
                            FireInpElementEvent(inpElement, "onblur");
                            break;

                        case "txtTmph_Perakaunan1":
                            inpElement.value = dsData.Tables["P1_BORANG_CP204"].Rows[0].ItemArray[15].ToString();
                            FireInpElementEvent(inpElement, "onblur");
                            break;

                        case "txtTmph_Perakaunan2":
                            inpElement.value = dsData.Tables["P1_BORANG_CP204"].Rows[0].ItemArray[16].ToString();
                            FireInpElementEvent(inpElement, "onblur");
                            break;

                        case "txtTmph_Asas1":
                            inpElement.value = dsData.Tables["P1_BORANG_CP204"].Rows[0].ItemArray[17].ToString();
                            FireInpElementEvent(inpElement, "onblur");
                            break;

                        case "txtTmph_Asas2":
                            inpElement.value = dsData.Tables["P1_BORANG_CP204"].Rows[0].ItemArray[18].ToString();
                            FireInpElementEvent(inpElement, "onblur");
                            break;

                        case "txtTmph_Asas3":
                            inpElement.value = dsData.Tables["P1_BORANG_CP204"].Rows[0].ItemArray[19].ToString();
                            FireInpElementEvent(inpElement, "onblur");
                            break;

                        case "txtTmph_Asas4":
                            inpElement.value = dsData.Tables["P1_BORANG_CP204"].Rows[0].ItemArray[20].ToString();
                            FireInpElementEvent(inpElement, "onblur");
                            break;

                        case "txtTmph_Asas5":
                            inpElement.value = dsData.Tables["P1_BORANG_CP204"].Rows[0].ItemArray[21].ToString();
                            FireInpElementEvent(inpElement, "onblur");
                            break;

                        case "txtTmph_asas6":
                            inpElement.value = dsData.Tables["P1_BORANG_CP204"].Rows[0].ItemArray[22].ToString();
                            FireInpElementEvent(inpElement, "onblur");
                            break;

                        case "txtAgAdd1":
                            inpElement.value = arrTaxAgentAddress[0].ToUpper();
                            break;

                        case "txtAgAdd2":
                            inpElement.value = arrTaxAgentAddress[1].ToUpper();
                            break;

                        case "txtAgAdd3":
                            inpElement.value = arrTaxAgentAddress[2].ToUpper();
                            break;

                        case "txtAgPostcode":
                            inpElement.value = dsData.Tables["P1_FIRM"].Rows[0].ItemArray[3].ToString();
                            break;

                        case "txtAgCity":
                            inpElement.value = dsData.Tables["P1_FIRM"].Rows[0].ItemArray[4].ToString().ToUpper();
                            break;

                        case "txtAgTelephone":
                            inpElement.value = dsData.Tables["P1_FIRM"].Rows[0].ItemArray[6].ToString();
                            break;

                        case "txtAgDaftar":
                            inpElement.value = dsData.Tables["P1_FIRM"].Rows[0].ItemArray[7].ToString().ToUpper();
                            break;

                        case "txtAgEmail":
                            inpElement.value = dsData.Tables["P1_FIRM"].Rows[0].ItemArray[8].ToString().ToUpper();
                            break;

                        case "txtNo_Telefon":
                            inpElement.value = dsData.Tables["P1_FIRM"].Rows[0].ItemArray[6].ToString().ToUpper();
                            break;
                        }
                        //break;

                        #endregion
                        //}
                    }
                    //if (boolNoRecord)
                    //{
                    //    MessageBox.Show("No record found for current document.", "TAXcom E-Filing", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    //}
                    #endregion

                    #region "SELECT"
                    foreach (mshtml.HTMLSelectElement selElement in htmlDoc.getElementsByTagName("select"))
                    {
                        //switch (strPageIndex)
                        //{
                        #region "Page 1"
                        //case "CP2042009Page1":
                        switch (selElement.name)
                        {
                        case "ddlNegeri":
                            if (boolPindaan)
                            {
                                selElement.value = SelectState(dsData.Tables["P1_BORANG_CP204"].Rows[0].ItemArray[11].ToString());
                            }
                            else
                            {
                                selElement.value = SelectState(dsData.Tables["P1_BORANG_CP204"].Rows[0].ItemArray[5].ToString());
                            }
                            break;

                        case "ddlStatus_Akaun":
                            if (dsData.Tables["P1_BORANG_CP204"].Rows[0].ItemArray[14].ToString() == "1")
                            {
                                selElement.value = "Ya";
                                FireSelElementEvent(selElement, "onblur");
                            }
                            else
                            {
                                selElement.value = "Tidak";
                                FireSelElementEvent(selElement, "onblur");
                            }
                            break;

                        case "ddlAgState":
                            selElement.value = SelectState(dsData.Tables["P1_FIRM"].Rows[0].ItemArray[5].ToString());
                            break;
                        }
                        //break;

                        #endregion
                        //}
                    }
                    //if (boolNoRecord)
                    //{
                    //    MessageBox.Show("No record found for current document.", "TAXcom E-Filing", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    //}
                    #endregion
                }
                else
                {
                    MessageBox.Show("No record found for current document.", "TAXcom E-Filing", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }