private void Search_Click(object sender, RoutedEventArgs e)
        {
            // check the input
            if (String.IsNullOrEmpty(JobTitle.Text))
            {
                return;
            }
            if (String.IsNullOrEmpty(ZipCode.Text) || !Regex.IsMatch(ZipCode.Text, @"^\d{5}$"))
            {
                return;
            }

            // hide the input fields and the search button... to make more room for the suggest jobs results
            InputPanel.Visibility  = System.Windows.Visibility.Collapsed;
            ContactInfo.Visibility = System.Windows.Visibility.Collapsed;

            // calling to get a listing of job suggestions
            SimpleQuote.SimpleQuoteServiceSoapClient client = new SimpleQuote.SimpleQuoteServiceSoapClient();
            client.SuggestJobsCompleted += new EventHandler <SimpleQuote.SuggestJobsCompletedEventArgs>(getSuggestedJobsCallback);
            client.SuggestJobsAsync(JobTitle.Text);

            // getting the city/state info by zipcode.
            // Using a totally randon zipcode service I found in the internets
            // http://www.webservicex.net/uszip.asmx
            ZipcodeService.USZipSoapClient zipclient = new ZipcodeService.USZipSoapClient();
            zipclient.GetInfoByZIPCompleted += new EventHandler <ZipcodeService.GetInfoByZIPCompletedEventArgs>(getZipcodeCallback);
            zipclient.GetInfoByZIPAsync(ZipCode.Text);

            ShowLoadingScreen();
        }
        //
        // For when the user selects a job from the list
        //
        void suggestedJob_Click(object sender, RoutedEventArgs e)
        {
            m_selectedJob = ((Button)e.OriginalSource).Content.ToString();

            SimpleQuote.SimpleQuoteServiceSoapClient client = new SimpleQuote.SimpleQuoteServiceSoapClient();
            client.GetQuoteCompleted += new EventHandler <SimpleQuote.GetQuoteCompletedEventArgs>(client_GetQuoteCompleted);
            m_zipCodeLookupWait.WaitOne(); // wait for the location data
            client.GetQuoteAsync(m_selectedJob, m_city, m_state, m_country);

            SuggestJobList.Visibility = System.Windows.Visibility.Collapsed;
            LoadingPanel.Visibility   = System.Windows.Visibility.Visible;
        }
        //
        // For when the user selects a job from the list
        //
        void suggestedJob_Click(object sender, RoutedEventArgs e)
        {
            m_selectedJob = ((Button)e.OriginalSource).Content.ToString();

            SimpleQuote.SimpleQuoteServiceSoapClient client = new SimpleQuote.SimpleQuoteServiceSoapClient();
            client.GetQuoteCompleted += new EventHandler<SimpleQuote.GetQuoteCompletedEventArgs>(client_GetQuoteCompleted);
            m_zipCodeLookupWait.WaitOne(); // wait for the location data
            client.GetQuoteAsync(m_selectedJob, m_city, m_state, m_country);

            SuggestJobList.Visibility = System.Windows.Visibility.Collapsed;
            LoadingPanel.Visibility = System.Windows.Visibility.Visible;
        }
        private void Search_Click(object sender, RoutedEventArgs e)
        {
            // check the input
            if (String.IsNullOrEmpty(JobTitle.Text))
                return;
            if (String.IsNullOrEmpty(ZipCode.Text) || !Regex.IsMatch(ZipCode.Text,@"^\d{5}$"))
                return;

            // hide the input fields and the search button... to make more room for the suggest jobs results
            InputPanel.Visibility = System.Windows.Visibility.Collapsed;
            ContactInfo.Visibility = System.Windows.Visibility.Collapsed;

            // calling to get a listing of job suggestions
            SimpleQuote.SimpleQuoteServiceSoapClient client = new SimpleQuote.SimpleQuoteServiceSoapClient();
            client.SuggestJobsCompleted += new EventHandler<SimpleQuote.SuggestJobsCompletedEventArgs>(getSuggestedJobsCallback);
            client.SuggestJobsAsync(JobTitle.Text);

            // getting the city/state info by zipcode.
            // Using a totally randon zipcode service I found in the internets
            // http://www.webservicex.net/uszip.asmx
            ZipcodeService.USZipSoapClient zipclient = new ZipcodeService.USZipSoapClient();
            zipclient.GetInfoByZIPCompleted += new EventHandler<ZipcodeService.GetInfoByZIPCompletedEventArgs>(getZipcodeCallback);
            zipclient.GetInfoByZIPAsync(ZipCode.Text);

            ShowLoadingScreen();
        }