/// <summary>
        /// Event handler in the case that the JSON submit button is clicked.
        /// Sends a JSON request to the Global Email API, recieves the response,
        /// and formats the response onto the application
        /// </summary>
        /// <param name="sender">button that was clicked</param>
        /// <param name="e">event args</param>
        private void Btn_submitJSON_Click(object sender, EventArgs e)
        {
            out_rawOutput.Text = string.Empty;

            Stopwatch watch = new Stopwatch();

            watch.Start();
            ClearOutput();
            btn_submitJSON.Enabled = false;
            btn_submitREST.Enabled = false;

            String finalURL = serviceURL + serviceURI;

            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(new Uri(finalURL));

            request.Method = "POST";
            request.Accept = "application/json";
            request.Headers.Add(HttpRequestHeader.AcceptEncoding, "gzip,deflate");
            request.AutomaticDecompression = DecompressionMethods.GZip;
            Byte[] data = UTF8Encoding.UTF8.GetBytes(jsonRequest.Text);
            Stream reqStream;

            try
            {
                reqStream = request.GetRequestStream();
                reqStream.Write(data, 0, data.Length);
                if (!reqStream.Equals(null))
                {
                    reqStream.Close();
                }
            }
            catch (Exception exception)
            {
                MessageBox.Show("Error: " + exception.Message);
            }

            HttpWebResponse response = (HttpWebResponse)request.GetResponse();

            Stream       outStream = CopyAndClose(response.GetResponseStream());
            StreamReader reader    = new StreamReader(outStream);
            String       rawData   = reader.ReadToEnd();

            outStream.Position = 0;

            System.Runtime.Serialization.Json.DataContractJsonSerializer jsonSerializer = new System.Runtime.Serialization.Json.DataContractJsonSerializer(typeof(GEmailResponse));
            GEmailResponse outputData = (GEmailResponse)jsonSerializer.ReadObject(outStream);

            watch.Stop();
            try
            {
                //Return output elements to their corresponding text boxes
                out_version.Text           += outputData.Version + " (";
                out_version.Text           += finalURL + ")";
                out_transRef.Text           = outputData.TransmissionReference;
                out_transResults.Text       = outputData.TransmissionResults;
                out_recID.Text              = outputData.Records[0].RecordID;
                out_results.Text            = outputData.Records[0].Results;
                out_emailAddress.Text       = outputData.Records[0].EmailAddress;
                out_mailboxName.Text        = outputData.Records[0].MailboxName;
                out_domainName.Text         = outputData.Records[0].DomainName;
                out_topLevelDomain.Text     = outputData.Records[0].TopLevelDomain;
                out_topLevelDomainName.Text = outputData.Records[0].TopLevelDomainName;
                out_dateChecked.Text        = outputData.Records[0].DateChecked;

                TimeSpan ts = watch.Elapsed;
                out_transResults.Text = String.Format("{0:00}.{1:00}", ts.Seconds, ts.Milliseconds / 10) + " second(s) elapsed";
                rawData            = rawData.Replace("{", "{" + Environment.NewLine + "\t");
                rawData            = rawData.Replace("}", Environment.NewLine + "}");
                rawData            = rawData.Replace("\",", "\"," + Environment.NewLine + "\t");
                out_rawOutput.Text = rawData;
            }
            catch (Exception ex)
            {
                if (outputData.TransmissionResults == "GE04")
                {
                    MessageBox.Show("CustomerID is empty.\n Please enter a valid Customer ID or contact a Melissa Data sales rep for more info.");
                }
                else if (outputData.TransmissionResults == "GE05")
                {
                    MessageBox.Show("CustomerID is invalid.\n Please enter a valid Customer ID or contact a Melissa Data sales rep for more info.");
                }
                else if (outputData.TransmissionResults == "GE06")
                {
                    MessageBox.Show("CustomerID is disable for this service.\n Please contact your Sales Rep for more info.");
                }
                else
                {
                    Debug.WriteLine("Something bad happened with request: " + ex);
                }
            }
            btn_submitJSON.Enabled = true;
            btn_submitREST.Enabled = true;
        }
        /// <summary>
        /// Event handler in the case that the REST submit button is clicked.
        /// Sends a REST request to the Global Email API, recieves the response,
        /// and formats the response onto the application
        /// </summary>
        /// <param name="sender"> button that was clicked</param>
        /// <param name="e">event arguments</param>
        private void Btn_submitREST_Click(object sender, EventArgs e)
        {
            out_rawOutput.Text = string.Empty;

            Stopwatch watch = new Stopwatch();

            btn_submitREST.Enabled = false;
            btn_submitJSON.Enabled = false;
            watch.Start();
            ClearOutput();

            //Create the request and response objects
            HttpWebRequest  request  = (HttpWebRequest)WebRequest.Create(GenerateRESTRequest());
            HttpWebResponse response = (HttpWebResponse)request.GetResponse();

            Stream       outStream = CopyAndClose(response.GetResponseStream());
            StreamReader reader    = new StreamReader(outStream);
            String       rawData   = reader.ReadToEnd();

            outStream.Position = 0;
            System.Runtime.Serialization.Json.DataContractJsonSerializer jsonSerializer = new System.Runtime.Serialization.Json.DataContractJsonSerializer(typeof(GEmailResponse));
            GEmailResponse outputData = (GEmailResponse)jsonSerializer.ReadObject(outStream);

            watch.Stop();

            //Write responses out to their specified txt boxes
            try
            {
                out_version.Text            = outputData.Version;
                out_transRef.Text           = outputData.TransmissionReference;
                out_transResults.Text       = outputData.TransmissionResults;
                out_recID.Text              = outputData.Records[0].RecordID;
                out_results.Text            = outputData.Records[0].Results;
                out_emailAddress.Text       = outputData.Records[0].EmailAddress;
                out_mailboxName.Text        = outputData.Records[0].MailboxName;
                out_domainName.Text         = outputData.Records[0].DomainName;
                out_topLevelDomain.Text     = outputData.Records[0].TopLevelDomain;
                out_topLevelDomainName.Text = outputData.Records[0].TopLevelDomainName;
                out_dateChecked.Text        = outputData.Records[0].DateChecked;

                //Output raw data
                rawData            = rawData.Replace("{", "{" + Environment.NewLine + "\t");
                rawData            = rawData.Replace("}", Environment.NewLine + "}");
                rawData            = rawData.Replace("\",", "\"," + Environment.NewLine + "\t");
                out_rawOutput.Text = rawData;

                //Timer
                TimeSpan ts = watch.Elapsed;
                out_transResults.Text = String.Format("{0:00}.{1:00}", ts.Seconds, ts.Milliseconds / 10) + " second(s) elapsed";
            }
            catch (Exception ex)
            {
                if (outputData.TransmissionResults == "GE04")
                {
                    MessageBox.Show("CustomerID is empty.\n Please enter a valid Customer ID or contact a Melissa Data sales rep for more info.");
                }
                else if (outputData.TransmissionResults == "GE05")
                {
                    MessageBox.Show("CustomerID is invalid.\n Please enter a valid Customer ID or contact a Melissa Data sales rep for more info.");
                }
                else if (outputData.TransmissionResults == "GE06")
                {
                    MessageBox.Show("CustomerID is disable for this service.\n Please contact your Sales Rep for more info.");
                }
                else
                {
                    Debug.WriteLine("An error has occured in rest request: " + ex);
                }
            }
            btn_submitREST.Enabled = true;
            btn_submitJSON.Enabled = true;
        }