protected void SaveDatabaseInfo_Click(object sender, EventArgs e)
    {
        Hashtable State = (Hashtable)HttpRuntime.Cache[Session.SessionID];
        Util util = new Util();
        if (util.CheckSessionTimeout(State, Response, "../Default.aspx")) return;

        ClearMessages();
        if (DataSourceID.Text.Length == 0)
        {
            SaveGoogleDocsInfoMessage.Text = "Enter your name for the Data Source ID";
            return;
        }
        if (!Check.ValidateObjectName(SaveGoogleDocsInfoMessage, DataSourceID.Text))
            return;

        GDocs gDocs = new GDocs();
        if (! State["AccountType"].ToString().Contains("google_apps"))
        {
            if (AccountSpreadsheets.SelectedIndex == 0)
            {
                SaveGoogleDocsInfoMessage.Text = "Select a spreadsheet for this app.";
                return;
            }
            if (Username.Text.Length == 0)
            {
                SaveGoogleDocsInfoMessage.Text = "Enter your Google Docs account username.";
                return;
            }
            string password = null;
            if (State["GDocsPassword"] != null)
                password = State["GDocsPassword"].ToString();

            string status = gDocs.ParseGoogleDocsSpreadsheet(State, DataSourceID.Text.Trim(), AccountSpreadsheets.SelectedValue,
                Username.Text.Trim(), password);
            if (status == "OK")
            {
                 State["GDocsPassword"] = null;
                SaveGoogleDocsInfoMessage.Text = "Your Database Info has been saved.";
                Status.Text = "saved";
            }
            else
            {
                SaveGoogleDocsInfoMessage.Text = status;
                Status.Text = "";
            }
        }
        else if ( State["AccountType"].ToString().Contains("google_apps"))
        {
            if (Spreadsheets.SelectedIndex == 0)
            {
                SaveGoogleDocsInfoMessage.Text = "Select a spreadsheet for this app.";
                return;
            }

            string status2 = gDocs.ParseGoogleDocsSpreadsheet(State, DataSourceID.Text.Trim(), Spreadsheets.SelectedValue);
            if (status2 == "OK")
            {
                SaveGoogleDocsInfoMessage.Text = "Your Database Info has been saved.";
                Status.Text = "saved";
            }
            else
            {
                SaveGoogleDocsInfoMessage.Text = status2;
                Status.Text = "";
            }
        }
    }