protected void btnSave_Click(object sender, EventArgs e)
        {
            try
            {
                Opportunity    o   = new Opportunity();
                bizOpportunity biz = new bizOpportunity();

                bizMessage bizM = new bizMessage();
                DateTime   result;
                if (this.txtOpportunityDue.Text != "")
                {
                    if (DateTime.TryParse(this.txtOpportunityDue.Text, out result) == false)
                    {
                        this.ucMessanger1.ProcessMessage("Renewal Date: " + bizM.GetMessageText("FieldNotDate"), Enums.enMsgType.Err, "OpportunityDue", typeof(TextBox), true);
                        return;
                    }
                }

                o.ClientID        = int.Parse(Request.QueryString["cid"]);
                o.OpportunityID   = int.Parse(Request.QueryString["oid"]);
                o.OpportunityName = this.txtOpportunityName.Text;
                if (this.txtOpportunityDue.Text != "")
                {
                    o.OpportunityDue = DateTime.Parse(this.txtOpportunityDue.Text);
                }
                o.IncumbentBroker  = this.txtIncumbentBroker.Text;
                o.IncumbentInsurer = this.txtIncumbentInsurer.Text;
                if (this.ddlClassification.SelectedValue != "")
                {
                    o.ClassificationID = int.Parse(this.ddlClassification.SelectedValue);
                }
                if (this.ddlBusinessType.SelectedValue != "")
                {
                    o.BusinessTypeID = int.Parse(this.ddlBusinessType.SelectedValue);
                }
                if (this.ddlContact.SelectedValue != "")
                {
                    o.ContactID = int.Parse(this.ddlContact.SelectedValue);
                }
                o.Flagged = bool.Parse(this.ddlFlagged.SelectedValue);
                if (this.txtEstimatedBrokingIncome.Text != "")
                {
                    o.NetBrokerageEstimated = decimal.Parse(this.txtEstimatedBrokingIncome.Text);
                }
                if (this.txtNetBrokerageQuoted.Text != "")
                {
                    o.NetBrokerageQuoted = decimal.Parse(this.txtNetBrokerageQuoted.Text);
                }
                if (this.txtNetBrokerageActual.Text != "")
                {
                    o.NetBrokerageActual = decimal.Parse(this.txtNetBrokerageActual.Text);
                }
                if (this.txtDateCompleted.Text != "")
                {
                    o.DateCompleted = DateTime.Parse(this.txtDateCompleted.Text);
                }
                o.MemoNumber = this.txtMemoNumber.Text;
                //audit
                o.ModifiedBy = bizUser.GetCurrentUserName();
                o.Modified   = DateTime.Now;
                //action
                if (biz.ValidateOpportunity(o) == false)
                {
                    this.ucMessanger1.ProcessMessages(biz.MSGS, true);
                    return;
                }
                if (biz.UpdateOpportunity(o) == true)
                {
                    Response.Redirect("ViewOpportunity.aspx?cid=" + Request.QueryString["cid"] + "&oid=" + Request.QueryString["oid"], false);
                }
                else
                {
                    this.ucMessanger1.ProcessMessages(biz.MSGS, true);
                }
            }
            catch (Exception ex)
            {
                bizLog.InsertExceptionLog(ex);
                Response.Redirect("~/ErrorPage.aspx", false);
            }
        }