function create_congregation_search_table()
{
    global $wpdb;
    $table_name = $wpdb->prefix . get_congregation_search_table_name();
    $log_table_name = $wpdb->prefix . get_congregation_search_table_name() . '_Log';
    $query_table_name = $wpdb->prefix . get_congregation_search_table_name() . '_Q_History';
    // check to see if the table has already been created
    if ($wpdb->get_var("SHOW TABLES LIKE '{$table_name}'") != $table_name) {
        $charset_collate = $wpdb->get_charset_collate();
        $sql = "CREATE TABLE {$table_name} ( \n\t\t\tPIN int NOT NULL,\n\t\t\tChurch_Name varchar(75) NOT NULL,\n\t\t\tEIN varchar(15),\n\t\t\tYearbook_Address_Line_1 varchar(50),\n\t\t\tYearbook_Address_Line_2 varchar(50),\n\t\t\tYearbook_Zip varchar(10),\n\t\t\tYearbook_City varchar(50),\n\t\t\tYearbook_State varchar(2),\n\t\t\tMailing_Address_Line_1 varchar(50),\n\t\t\tMailing_Address_Line_2 varchar(50),\n\t\t\tMailing_Zip varchar(10),\n\t\t\tMailing_City varchar(50),\n\t\t\tMailing_State varchar(2),\n\t\t\tCounty varchar(50),\n\t\t\tCountry varchar(50),\n\t\t\tPhone varchar(20),\n\t\t\tFax varchar(20),\n\t\t\tEmail_Address varchar(75),\n\t\t\tWeb_Address varchar(100),\n\t\t\tRegion varchar(50),\n\t\t\tDistrict varchar(50),\n\t\t\tYearbook_Code varchar(1),\n\t\t\tMinister_Email varchar(100),\n\t\t\tCode int,\n\t\t\tDate_Updated datetime DEFAULT '0000-00-00 00:00:00' NOT NULL,\n\t\t\tDoNotAutoUpdate tinyint(1),\n\t\t\tLatitude decimal(9,6),\n\t\t\tLongitude decimal(9,6),\n\t\t\tGeocode_Confidence varchar(25),\n\t\t\tGoogle_Maps_Link varchar(255),\n\t\t\tPRIMARY KEY  (PIN),\n\t\t\tKEY EIN (EIN)\n\t\t) ENGINE=MyISAM  {$charset_collate} ;";
        require_once ABSPATH . 'wp-admin/includes/upgrade.php';
        dbDelta($sql);
        $sql_log_table = "CREATE TABLE {$log_table_name} (\n\t\t\tLogID mediumint(9) NOT NULL AUTO_INCREMENT,\n\t\t\tLogDate datetime DEFAULT '0000-00-00 00:00:00' NOT NULL,\n\t\t\tEntryType varchar(15),\n\t\t\tMessage varchar(255),\n\t\t\tPRIMARY KEY  (LogID),\n\t\t\tKEY LogDate (LogDate) \n\t\t) ENGINE=MyISAM  {$charset_collate} ;";
        dbDelta($sql_log_table);
        $sql_query_table = "CREATE TABLE {$query_table_name} (\n\t\t  QID int NOT NULL AUTO_INCREMENT,\n\t\t  Query VARCHAR(80) NOT NULL,\n\t\t  Latitude DECIMAL(9,6) NULL,\n\t\t  Longitude DECIMAL(9,6) NULL,\n\t\t  HitCount INT NULL,\n\t\t  LastUpdated DATETIME NULL,\n\t\t  PRIMARY KEY  (QID),\n\t\t  KEY Query (Query)\n\t\t  ) ENGINE=MyISAM  {$charset_collate} ;";
        dbDelta($sql_query_table);
        // run update service to input initial data.
        begin_congregation_update();
    }
}
function begin_manual_congregation_update()
{
    // start the update
    // will return an array [0]=>true|false of success and [1]=>status message to display.
    $UpdateResult = begin_congregation_update();
    $ResultResponse = '';
    if ($UpdateResult != null) {
        $ResultResponse['result'] = $UpdateResult[0];
        $ResultResponse['message'] = $UpdateResult[1];
    } else {
        $ResultResponse['result'] = false;
        $ResultResponse['message'] = 'Unknown error occured when attempting to update congregations. Check the log file for details.';
    }
    echo json_encode($ResultResponse);
    die;
}
function CongregationUpdateScheduling()
{
    begin_congregation_update();
}