public void afterSelect()
        {
            String mbxGUID = "";

            formMain.start = 0;

            if (formMain.treeView1.SelectedNode.Tag == null)
            {
                return;
            }

            String       parentguid = "";
            ServerResult myres      = (ServerResult)formMain.treeView1.SelectedNode.Tag;

            parentguid = myres.documentId;
            if (myres.cvStub == null)
            {
                mbxGUID = "";
            }
            else
            {
                mbxGUID = myres.cvowner;
            }
            formMain.selectedItemGuid = parentguid;

            if (myres.dataType.Equals("5")) //if true, the selected node is a mailbox
            {
                formMain.listView1.Items.Clear();
                formMain.currentCore = formMain.treeView1.SelectedNode.Parent.Text;
                formMain.start       = 0;

                SolrQuery newQuery  = new SolrQuery(formMain.ip, parentguid, formMain, mbxGUID);
                XMLParser newParser = new XMLParser(newQuery.data);

                formMain.AppendTextBox("Query took" + newParser.timeForQuery + " ms");

                var subfolders = newParser.results.OrderBy(n => n.subject);

                foreach (ServerResult subfolder in subfolders)
                {
                    formMain.serverResults.Add(subfolder);
                }

                formMain.treeView1.SelectedNode.Nodes.Clear();

                foreach (ServerResult result in subfolders)
                {
                    TreeNode node = new TreeNode(result.subject);
                    node.Tag = result;
                    formMain.treeView1.SelectedNode.Nodes.Add(node);
                }
                //treeView1.SelectedNode.Expand();

                if (formMain.settings[3])
                {
                    formMain.addSmartFolders();
                }
            }
            else if (myres.dataType.Equals("6")) //the selected node is a smart folder
            {
                formMain.treeView1.SelectedNode.Nodes.Clear();
                formMain.smartFolderHandler.smartFolderClick();
            }
            else if (myres.dataType.Equals("7"))//the selected node is the child of a smart folder
            {
                formMain.smartFolderHandler.smartFolderChildClick();
            }
            else //the selected node is a subfolder
            {
                formMain.AppendTextBox("Now displaying page " + (formMain.start + 1).ToString());

                formMain.treeView1.SelectedNode.Nodes.Clear();

                if (((ServerResult)formMain.treeView1.SelectedNode.Tag).cvStub == null)
                {
                    mbxGUID = "";
                }
                SolrQuery newQuery = new SolrQuery(formMain.ip, 0, formMain, mbxGUID);
                if (newQuery.pagesNeeded(mbxGUID, parentguid) > 1)
                {/*kevin
                  * txtActivity.Height = 75;
                  * txtActivity.SelectionStart = txtActivity.Text.Length;
                  * txtActivity.ScrollToCaret();*/
                    LinkLabel previousPage = new LinkLabel();
                    previousPage.Height   = 15;
                    previousPage.Text     = "Previous Page";
                    previousPage.Width    = 30;
                    previousPage.Location = new Point(275, 639);
                    previousPage.Click   += new System.EventHandler(formMain.previousPageLink);
                    formMain.Controls.Add(previousPage);
                    previousPage.Show();

                    LinkLabel nextPage = new LinkLabel();
                    nextPage.Height   = 15;
                    nextPage.Text     = "Next Page";
                    nextPage.Location = new Point(310, 639);
                    nextPage.Width    = 30;
                    nextPage.Click   += new System.EventHandler(formMain.nextPageLink);
                    formMain.Controls.Add(nextPage);
                    nextPage.Show();
                }
                List <ServerResult> subfolders = new List <ServerResult>();
                try
                {
                    List <XmlDocument> results;
                    if (((ServerResult)formMain.treeView1.SelectedNode.Tag).cvStub == null)
                    {
                        results = newQuery.getSubfoldersForJournalMBX(parentguid);
                    }
                    else
                    {
                        results = newQuery.getSubfoldersForOneMailbox(mbxGUID, parentguid);
                    }
                    XMLParser parser = new XMLParser(results);
                    formMain.AppendTextBox("Query took" + parser.timeForQuery + " ms");
                    subfolders = parser.results;
                }
                catch
                {
                    //List<ServerResult> subfolders = new List<ServerResult>();
                }
                //if so ^ add subnodes

                if (subfolders == null)
                {
                    return;
                }

                var subfolders1 = subfolders.OrderBy(n => n.subject);

                if (subfolders.Count > 0)
                {
                    foreach (ServerResult subfolder in subfolders1)
                    {
                        formMain.serverResults.Add(subfolder);
                        if (subfolder.links.IndexOf(subfolder.subject + "\\") > -1)
                        {
                            TreeNode node = new TreeNode(subfolder.links.Substring(subfolder.links.IndexOf("\\" + subfolder.subject + "\\") + subfolder.subject.Length + 2));
                            node.Tag = subfolder;
                            formMain.treeView1.SelectedNode.Nodes.Add(node);
                        }
                        else
                        {
                            TreeNode node = new TreeNode(subfolder.subject);
                            node.Tag = subfolder;
                            formMain.treeView1.SelectedNode.Nodes.Add(node);
                        }
                    }
                }
                //check if the selected subfolder has any datatype2 children
                XMLParser           parser1 = new XMLParser(newQuery.getMailsForOneSubfolder(mbxGUID, formMain.selectedItemGuid, formMain.start, formMain.jid, formMain.mailSort));
                List <ServerResult> mails   = parser1.results;
                formMain.lastPage    = (parser1.numFound / formMain.pageSize);
                formMain.currentPage = mails;
                formMain.listView1.Items.Clear();
                if (mails != null)
                {
                    formMain.writeMailsInList(mails);
                }
            }

            if (formMain.listView1.Items.Count == 0)
            {
                formMain.nextButton.Visible     = false;
                formMain.previousButton.Visible = false;
                formMain.customPageBox.Visible  = false;
                formMain.label1.Visible         = false;
                formMain.lastPageButton.Visible = false;
            }
            else
            {
                formMain.nextButton.Visible     = true;
                formMain.previousButton.Visible = true;
                formMain.customPageBox.Visible  = true;
                formMain.label1.Visible         = true;
                formMain.lastPageButton.Visible = true;
            }
        }
        private void submitButton_Click(object sender, EventArgs e)
        {
            int numLoops = 1;

            try
            {
                if (requestTypeComboBox.SelectedItem.ToString().Equals("custom"))
                {
                    ThreadPool.SetMaxThreads(3, 3);
                    List <string> urls = new List <string>();
                    foreach (string query in customQueryList.Items)
                    {
                        urls.Add(query);
                    }
                    foreach (string url in urls)
                    {
                        if (url.IndexOf("usermbx/") > 0)
                        {
                            for (int i = 0; i < 8; i++)
                            {
                                string realUrl = url.Substring(0, url.IndexOf("usermbx/") + 7) + i + url.Substring(url.IndexOf("usermbx/") + 7);
                                ThreadPool.QueueUserWorkItem(delegate { submitRequest(realUrl); });
                            }
                        }
                        else
                        {
                            submitRequest(url);
                        }
                        mainForm.logToFile("END custom user request", frmMain.DEBUG_RESPONSE);
                    }
                }
                else if (urlBuilder["coreName"].Equals("usermbx"))
                {
                    numLoops = 8;
                }

                if (requestTypeComboBox.SelectedItem.ToString().Equals("atomic update"))
                {
                    if (numLoops > 1)
                    {
                        String requrl        = fullQueryText.Text;
                        int    indexOfInsert = requrl.IndexOf("usermbx/");
                        for (int x = 0; x < 8; x++)
                        {
                            requrl = requrl.Insert(indexOfInsert + 7, x + "");
                            try
                            {
                                int updatedRows = Int32.Parse(facetValueText.Text);
                                while (updatedRows == Int32.Parse(facetValueText.Text))
                                {
                                    XmlDocument doc    = solrQuery.submitHttpRequest(requrl);
                                    XMLParser   parser = new XMLParser(doc);
                                    updatedRows = parser.updatedRows;
                                }
                                //String temp = requrl;
                                //temp = temp.Replace("softCommit=false", "softCommit=true");
                                //solrQuery.submitHttpRequest(temp);
                            }
                            catch { MessageBox.Show("Atomic Update Failed"); break; }
                            requrl = fullQueryText.Text;
                        }
                        this.Close();
                        return;
                    }
                    String url = fullQueryText.Text;
                    try
                    {
                        int updatedRows = Int32.Parse(facetValueText.Text);
                        while (updatedRows == Int32.Parse(facetValueText.Text))
                        {
                            XmlDocument doc    = solrQuery.submitHttpRequest(url);
                            XMLParser   parser = new XMLParser(doc);
                            updatedRows = parser.updatedRows;
                        }
                        //String temp = url;
                        //temp = temp.Replace("softCommit=false", "softCommit=true");
                        //solrQuery.submitHttpRequest(temp);
                    }
                    catch { MessageBox.Show("Atomic Update Failed"); }
                    this.Close();
                    return;
                }

                if (requestTypeComboBox.SelectedItem.ToString().Equals("optimize"))
                {
                    if (numLoops > 1)
                    {
                        String requrl        = fullQueryText.Text;
                        int    indexOfInsert = requrl.IndexOf("usermbx/");
                        for (int x = 0; x < 8; x++)
                        {
                            requrl = requrl.Insert(indexOfInsert + 7, x + "");
                            try
                            {
                                solrQuery.submitHttpRequest(requrl);
                            }
                            catch { MessageBox.Show("Optimize Failed"); break; }
                            requrl = fullQueryText.Text;
                        }
                        this.Close();
                        return;
                    }
                    else
                    {
                        String url = fullQueryText.Text;
                        solrQuery.submitHttpRequest(url);
                        this.Close();
                        return;
                    }
                }

                if (requestTypeComboBox.SelectedItem.ToString().Equals("commit"))
                {
                    if (numLoops > 1)
                    {
                        String requrl        = fullQueryText.Text;
                        int    indexOfInsert = requrl.IndexOf("usermbx/");
                        for (int x = 0; x < 8; x++)
                        {
                            requrl = requrl.Insert(indexOfInsert + 7, x + "");
                            try
                            {
                                solrQuery.submitHttpRequest(requrl);
                            }
                            catch { MessageBox.Show("Commit Failed"); break; }
                            requrl = fullQueryText.Text;
                        }
                        this.Close();
                        return;
                    }
                    else
                    {
                        String url = fullQueryText.Text;
                        solrQuery.submitHttpRequest(url);
                        this.Close();
                        return;
                    }
                }

                if (!requestTypeComboBox.SelectedItem.ToString().Equals("custom"))
                {
                    for (int i = 0; i < numLoops; i++)
                    {
                        if (numLoops > 1)
                        {
                            urlBuilder["coreName"] = "usermbx" + i; //HARDCODE
                        }
                        createUrl("queryText", this.queryText.Text);
                        this.fullQueryText.Text = requestUrl;

                        mainForm.logToFile("START custom user request:", frmMain.DEBUG_RESPONSE);

                        if (submitFacetUpdateRequest())
                        {
                            continue;
                        }

                        ThreadPool.QueueUserWorkItem(delegate { submitRequest(requestUrl); });
                    }
                }
                this.Close();
            }
            catch (NullReferenceException) { };
        }