protected override void OnLoad(EventArgs e)
        {
            if (!IsPostBack)
            {
                TemplateFileSelectorControl.LoadTemplateFiles();

                TxtName.Text  = emailTemplate.Name;
                TxtAlias.Text = emailTemplate.Alias;
                ChkShouldClientReceiveEmail.Checked = emailTemplate.SendEmailToCustomer;

                EmailTemplateSettings defaultSettings = emailTemplate.Settings.SingleOrDefault(s => s.LanguageId == null);
                if (defaultSettings != null)
                {
                    TxtSubject.Text       = defaultSettings.Subject;
                    TxtSenderName.Text    = defaultSettings.SenderName;
                    TxtSenderAddress.Text = defaultSettings.SenderAddress;
                    TxtToAddresses.Text   = string.Join(";", defaultSettings.ToAddresses);
                    TxtCCAddresses.Text   = string.Join(";", defaultSettings.CcAddresses);
                    TxtBCCAddresses.Text  = string.Join(";", defaultSettings.BccAddresses);

                    TemplateFileSelectorControl.Items.TrySelectByValue(defaultSettings.TemplateFile);
                }

                foreach (Language language in umbracoLanguages)
                {
                    TemplateFileSelector templateFileSelectorControl = CurrentTabView.FindControl <TemplateFileSelector>("TemplateFileSelectorControl" + language.id);
                    templateFileSelectorControl.LoadTemplateFiles();

                    EmailTemplateSettings emailTemplateSettings = emailTemplate.Settings.SingleOrDefault(s => s.LanguageId == language.id);
                    if (emailTemplateSettings != null)
                    {
                        TextBox txtSubject       = CurrentTabView.FindControl <TextBox>("TxtSubject" + language.id);
                        TextBox txtSenderName    = CurrentTabView.FindControl <TextBox>("TxtSenderName" + language.id);
                        TextBox txtSenderAddress = CurrentTabView.FindControl <TextBox>("TxtSenderAddress" + language.id);
                        TextBox txtToAddresses   = CurrentTabView.FindControl <TextBox>("TxtToAddresses" + language.id);
                        TextBox txtCCAddresses   = CurrentTabView.FindControl <TextBox>("TxtCCAddresses" + language.id);
                        TextBox txtBCCAddresses  = CurrentTabView.FindControl <TextBox>("TxtBCCAddresses" + language.id);

                        txtSubject.Text       = emailTemplateSettings.Subject;
                        txtSenderName.Text    = emailTemplateSettings.SenderName;
                        txtSenderAddress.Text = emailTemplateSettings.SenderAddress;
                        txtToAddresses.Text   = string.Join(";", emailTemplateSettings.ToAddresses);
                        txtCCAddresses.Text   = string.Join(";", emailTemplateSettings.CcAddresses);
                        txtBCCAddresses.Text  = string.Join(";", emailTemplateSettings.BccAddresses);

                        foreach (ListItem item in templateFileSelectorControl.Items)
                        {
                            item.Selected = item.Value == emailTemplateSettings.TemplateFile;
                            if (item.Selected)
                            {
                                break;
                            }
                        }
                    }
                }
            }

            base.OnLoad(e);
        }
        private Pane AddLanguagePane(int?languageId)
        {
            string strLanguageId = languageId != null?languageId.Value.ToString() : string.Empty;

            Pane pane = new Pane();

            PropertyPanel ppnlSubject = new PropertyPanel();

            ppnlSubject.Text = CommonTerms.Subject;
            pane.Controls.Add(ppnlSubject);

            TextBox txtSubject = new TextBox();

            txtSubject.ID       = "TxtSubject" + strLanguageId;
            txtSubject.CssClass = "guiInputText guiInputStandardSize";
            ppnlSubject.Controls.Add(txtSubject);

            PropertyPanel ppnlSenderName = new PropertyPanel();

            ppnlSenderName.Text = CommonTerms.SenderName;
            pane.Controls.Add(ppnlSenderName);

            TextBox txtSenderName = new TextBox();

            txtSenderName.ID       = "TxtSenderName" + strLanguageId;
            txtSenderName.CssClass = "guiInputText guiInputStandardSize";
            ppnlSenderName.Controls.Add(txtSenderName);

            PropertyPanel ppnlSenderAddress = new PropertyPanel();

            ppnlSenderAddress.Text = CommonTerms.SenderAddress;
            pane.Controls.Add(ppnlSenderAddress);

            TextBox txtSenderAddress = new TextBox();

            txtSenderAddress.ID       = "TxtSenderAddress" + strLanguageId;
            txtSenderAddress.CssClass = "guiInputText guiInputStandardSize";
            ppnlSenderAddress.Controls.Add(txtSenderAddress);

            CustomValidator cusValSenderAddress = new CustomValidator();

            cusValSenderAddress.ID = "CusValSenderAddress" + strLanguageId;
            cusValSenderAddress.ControlToValidate = txtSenderAddress.ID;
            cusValSenderAddress.ServerValidate   += Email_ServerValidate;
            cusValSenderAddress.ErrorMessage      = "*";
            ppnlSenderAddress.Controls.Add(cusValSenderAddress);

            PropertyPanel ppnlToAddresses = new PropertyPanel();

            ppnlToAddresses.Text = CommonTerms.ToAddresses + "<br /><small>" + CommonTerms.SeparateBySemicolon + "</small>";
            pane.Controls.Add(ppnlToAddresses);

            TextBox txtToAddresses = new TextBox();

            txtToAddresses.ID       = "TxtToAddresses" + strLanguageId;
            txtToAddresses.CssClass = "guiInputText guiInputStandardSize";
            ppnlToAddresses.Controls.Add(txtToAddresses);

            CustomValidator cusValToAddresses = new CustomValidator();

            cusValToAddresses.ID = "CusValToAddresses" + strLanguageId;
            cusValToAddresses.ControlToValidate = txtToAddresses.ID;
            cusValToAddresses.ServerValidate   += Email_ServerValidate;
            cusValToAddresses.ErrorMessage      = "*";
            ppnlToAddresses.Controls.Add(cusValToAddresses);

            PropertyPanel ppnlCCAddresses = new PropertyPanel();

            ppnlCCAddresses.Text = CommonTerms.CCAddresses + "<br /><small>" + CommonTerms.SeparateBySemicolon + "</small>";
            pane.Controls.Add(ppnlCCAddresses);

            TextBox txtCCAddresses = new TextBox();

            txtCCAddresses.ID       = "TxtCCAddresses" + strLanguageId;
            txtCCAddresses.CssClass = "guiInputText guiInputStandardSize";
            ppnlCCAddresses.Controls.Add(txtCCAddresses);

            CustomValidator cusValCCAddresses = new CustomValidator();

            cusValCCAddresses.ID = "CusValCCAddresses" + strLanguageId;
            cusValCCAddresses.ControlToValidate = txtCCAddresses.ID;
            cusValCCAddresses.ServerValidate   += Email_ServerValidate;
            cusValCCAddresses.ErrorMessage      = "*";
            ppnlCCAddresses.Controls.Add(cusValCCAddresses);

            PropertyPanel ppnlBCCAddresses = new PropertyPanel();

            ppnlBCCAddresses.Text = CommonTerms.BCCAddresses + "<br /><small>" + CommonTerms.SeparateBySemicolon + "</small>";
            pane.Controls.Add(ppnlBCCAddresses);

            TextBox txtBCCAddresses = new TextBox();

            txtBCCAddresses.ID       = "TxtBCCAddresses" + strLanguageId;
            txtBCCAddresses.CssClass = "guiInputText guiInputStandardSize";
            ppnlBCCAddresses.Controls.Add(txtBCCAddresses);

            CustomValidator cusValBCCAddresses = new CustomValidator();

            cusValBCCAddresses.ID = "CusValBCCAddresses" + strLanguageId;
            cusValBCCAddresses.ControlToValidate = txtBCCAddresses.ID;
            cusValBCCAddresses.ServerValidate   += Email_ServerValidate;
            cusValBCCAddresses.ErrorMessage      = "*";
            ppnlBCCAddresses.Controls.Add(cusValBCCAddresses);

            PropertyPanel ppnlTemplate = new PropertyPanel();

            ppnlTemplate.Text = CommonTerms.TemplateFile;
            pane.Controls.Add(ppnlTemplate);

            TemplateFileSelector templateFileSelectorControl = new TemplateFileSelector();

            templateFileSelectorControl.ID = "TemplateFileSelectorControl" + strLanguageId;
            templateFileSelectorControl.InsertEmptyItem = true;
            ppnlTemplate.Controls.Add(templateFileSelectorControl);

            return(pane);
        }