function wpdev_booking_activate()
 {
     update_bk_option('booking_activation_process', 'On');
     //update_bk_option( 'booking_version_num',WP_BK_VERSION_NUM);             //FixIn:5.4.2
     $version = get_bk_version();
     $is_demo = wpdev_bk_is_this_demo();
     load_bk_Translation();
     // set execution time to 15 minutes, its not worked if we have SAFE MODE ON at PHP
     if (function_exists('set_time_limit')) {
         if (!in_array(ini_get('safe_mode'), array('1', 'On'))) {
             set_time_limit(900);
         }
     }
     add_bk_option('booking_admin_cal_count', $is_demo ? '3' : '2');
     add_bk_option('booking_skin', '/css/skins/traditional.css');
     add_bk_option('bookings_num_per_page', '10');
     add_bk_option('booking_sort_order', '');
     add_bk_option('booking_default_toolbar_tab', 'filter');
     add_bk_option('bookings_listing_default_view_mode', 'vm_calendar');
     //,'vm_listing');
     if ($version == 'free') {
         add_bk_option('booking_view_days_num', '90');
     } else {
         add_bk_option('booking_view_days_num', '30');
     }
     // Month view for several resources
     //add_bk_option( 'booking_sort_order_direction', 'ASC');
     add_bk_option('booking_max_monthes_in_calendar', '1y');
     add_bk_option('booking_client_cal_count', '1');
     add_bk_option('booking_start_day_weeek', '0');
     add_bk_option('booking_title_after_reservation', sprintf(__('Thank you for your online booking. %s We will send confirmation of your booking as soon as possible.', 'wpdev-booking'), ''));
     add_bk_option('booking_title_after_reservation_time', '7000');
     add_bk_option('booking_type_of_thank_you_message', 'message');
     add_bk_option('booking_thank_you_page_URL', '/thank-you');
     add_bk_option('booking_is_use_autofill_4_logged_user', $is_demo ? 'On' : 'Off');
     add_bk_option('booking_date_format', get_option('date_format'));
     add_bk_option('booking_date_view_type', 'short');
     // short / wide
     add_bk_option('booking_is_delete_if_deactive', $is_demo ? 'On' : 'Off');
     // check
     add_bk_option('booking_dif_colors_approval_pending', 'On');
     add_bk_option('booking_is_use_hints_at_admin_panel', 'On');
     add_bk_option('booking_is_not_load_bs_script_in_client', 'Off');
     add_bk_option('booking_is_not_load_bs_script_in_admin', 'Off');
     add_bk_option('booking_is_load_js_css_on_specific_pages', 'Off');
     add_bk_option('booking_pages_for_load_js_css', '');
     // Set the type of days selections based on the previous saved data ....
     $booking_type_of_day_selections = 'multiple';
     //'single';
     if (get_bk_option('booking_multiple_day_selections') == 'On') {
         $booking_type_of_day_selections = 'multiple';
     }
     if (get_bk_option('booking_range_selection_is_active') == 'On') {
         $booking_type_of_day_selections = 'range';
     }
     if ($is_demo) {
         $booking_type_of_day_selections = 'multiple';
     }
     add_bk_option('booking_type_of_day_selections', $booking_type_of_day_selections);
     add_bk_option('booking_form_is_using_bs_css', 'On');
     add_bk_option('booking_form_format_type', 'vertical');
     add_bk_option('booking_form_field_active1', 'On');
     add_bk_option('booking_form_field_required1', 'On');
     add_bk_option('booking_form_field_label1', 'First Name');
     add_bk_option('booking_form_field_active2', 'On');
     add_bk_option('booking_form_field_required2', 'On');
     add_bk_option('booking_form_field_label2', 'Last Name');
     add_bk_option('booking_form_field_active3', 'On');
     add_bk_option('booking_form_field_required3', 'On');
     add_bk_option('booking_form_field_label3', 'Email');
     add_bk_option('booking_form_field_active4', 'On');
     add_bk_option('booking_form_field_required4', 'Off');
     add_bk_option('booking_form_field_label4', 'Phone');
     add_bk_option('booking_form_field_active5', 'On');
     add_bk_option('booking_form_field_required5', 'Off');
     add_bk_option('booking_form_field_label5', 'Details');
     add_bk_option('booking_form_field_active6', 'Off');
     add_bk_option('booking_form_field_required6', 'Off');
     add_bk_option('booking_form_field_label6', 'Visitors');
     add_bk_option('booking_form_field_values6', "1\n2\n3\n4");
     add_bk_option('booking_is_days_always_available', 'Off');
     add_bk_option('booking_check_on_server_if_dates_free', 'Off');
     add_bk_option('booking_unavailable_days_num_from_today', '0');
     add_bk_option('booking_unavailable_day0', 'Off');
     add_bk_option('booking_unavailable_day1', 'Off');
     add_bk_option('booking_unavailable_day2', 'Off');
     add_bk_option('booking_unavailable_day3', 'Off');
     add_bk_option('booking_unavailable_day4', 'Off');
     add_bk_option('booking_unavailable_day5', 'Off');
     add_bk_option('booking_unavailable_day6', 'Off');
     if ($is_demo) {
         add_bk_option('booking_user_role_booking', 'subscriber');
         add_bk_option('booking_user_role_addbooking', 'subscriber');
         add_bk_option('booking_user_role_resources', 'subscriber');
         add_bk_option('booking_user_role_settings', 'subscriber');
     } else {
         add_bk_option('booking_user_role_booking', 'editor');
         add_bk_option('booking_user_role_addbooking', 'editor');
         add_bk_option('booking_user_role_resources', 'editor');
         add_bk_option('booking_user_role_settings', 'administrator');
     }
     $blg_title = get_option('blogname');
     $blg_title = str_replace('"', '', $blg_title);
     $blg_title = str_replace("'", '', $blg_title);
     add_bk_option('booking_email_reservation_adress', htmlspecialchars('"Booking system" <' . get_option('admin_email') . '>'));
     add_bk_option('booking_email_reservation_from_adress', '[visitoremail]');
     //htmlspecialchars('"Booking system" <' .get_option('admin_email').'>'));
     add_bk_option('booking_email_reservation_subject', __('New booking', 'wpdev-booking'));
     add_bk_option('booking_email_reservation_content', htmlspecialchars(sprintf(__('You need to approve a new booking %s for: %s Person detail information:%s Currently a new booking is waiting for approval. Please visit the moderation panel%sThank you, %s', 'wpdev-booking'), '[bookingtype]', '[dates]<br/><br/>', '<br/> [content]<br/><br/>', ' [moderatelink]<br/><br/>', $blg_title . '<br/>[siteurl]')));
     add_bk_option('booking_email_newbookingbyperson_adress', htmlspecialchars('"Booking system" <' . get_option('admin_email') . '>'));
     add_bk_option('booking_email_newbookingbyperson_subject', __('New booking', 'wpdev-booking'));
     if ($this->wpdev_bk_personal !== false) {
         add_bk_option('booking_email_newbookingbyperson_content', htmlspecialchars(sprintf(__('Your reservation %s for: %s is processing now! We will send confirmation by email. %sYou can edit this booking at this page: %s  Thank you, %s', 'wpdev-booking'), '[bookingtype]', '[dates]', '<br/><br/>[content]<br/><br/>', '[visitorbookingediturl]<br/><br/>', $blg_title . '<br/>[siteurl]')));
     } else {
         add_bk_option('booking_email_newbookingbyperson_content', htmlspecialchars(sprintf(__('Your reservation %s for: %s is processing now! We will send confirmation by email. %s Thank you, %s', 'wpdev-booking'), '[bookingtype]', '[dates]', '<br/><br/>[content]<br/><br/>', $blg_title . '<br/>[siteurl]')));
     }
     add_bk_option('booking_is_email_newbookingbyperson_adress', 'Off');
     add_bk_option('booking_email_approval_adress', htmlspecialchars('"Booking system" <' . get_option('admin_email') . '>'));
     add_bk_option('booking_email_approval_subject', __('Your booking has been approved', 'wpdev-booking'));
     if ($this->wpdev_bk_personal !== false) {
         add_bk_option('booking_email_approval_content', htmlspecialchars(sprintf(__('Your reservation %s for: %s has been approved.%sYou can edit the booking on this page: %s Thank you, %s', 'wpdev-booking'), '[bookingtype]', '[dates]', '<br/><br/>[content]<br/><br/>', '[visitorbookingediturl]<br/><br/>', $blg_title . '<br/>[siteurl]')));
     } else {
         add_bk_option('booking_email_approval_content', htmlspecialchars(sprintf(__('Your booking %s for: %s has been approved.%sThank you, %s', 'wpdev-booking'), '[bookingtype]', '[dates]', '<br/><br/>[content]<br/><br/>', $blg_title . '<br/>[siteurl]')));
     }
     add_bk_option('booking_email_deny_adress', htmlspecialchars('"Booking system" <' . get_option('admin_email') . '>'));
     add_bk_option('booking_email_deny_subject', __('Your booking has been declined', 'wpdev-booking'));
     add_bk_option('booking_email_deny_content', htmlspecialchars(sprintf(__('Your booking %s for: %s has been  canceled. %sThank you, %s', 'wpdev-booking'), '[bookingtype]', '[dates]', '<br/>[denyreason]<br/><br/>[content]<br/><br/>', $blg_title . '<br/>[siteurl]')));
     add_bk_option('booking_is_email_reservation_adress', 'On');
     add_bk_option('booking_is_email_approval_adress', 'On');
     add_bk_option('booking_is_email_deny_adress', 'On');
     add_bk_option('booking_is_email_approval_send_copy_to_admin', 'Off');
     add_bk_option('booking_is_email_deny_send_copy_to_admin', 'Off');
     add_bk_option('booking_widget_title', __('Booking form', 'wpdev-booking'));
     add_bk_option('booking_widget_show', 'booking_form');
     add_bk_option('booking_widget_type', '1');
     add_bk_option('booking_widget_calendar_count', '1');
     add_bk_option('booking_widget_last_field', '');
     add_bk_option('booking_wpdev_copyright_adminpanel', 'On');
     add_bk_option('booking_is_show_powered_by_notice', 'On');
     add_bk_option('booking_is_use_captcha', 'Off');
     add_bk_option('booking_is_show_legend', 'Off');
     add_bk_option('booking_legend_is_show_item_available', 'On');
     add_bk_option('booking_legend_text_for_item_available', __('Available', 'wpdev-booking'));
     add_bk_option('booking_legend_is_show_item_pending', 'On');
     add_bk_option('booking_legend_text_for_item_pending', __('Pending', 'wpdev-booking'));
     add_bk_option('booking_legend_is_show_item_approved', 'On');
     add_bk_option('booking_legend_text_for_item_approved', __('Booked', 'wpdev-booking'));
     if (class_exists('wpdev_bk_biz_s')) {
         add_bk_option('booking_legend_is_show_item_partially', 'On');
         add_bk_option('booking_legend_text_for_item_partially', __('Partially booked', 'wpdev-booking'));
     }
     // Create here tables which is needed for using plugin
     global $wpdb;
     $charset_collate = '';
     //if ( $wpdb->has_cap( 'collation' ) ) {
     if (!empty($wpdb->charset)) {
         $charset_collate = "DEFAULT CHARACTER SET {$wpdb->charset}";
     }
     if (!empty($wpdb->collate)) {
         $charset_collate .= " COLLATE {$wpdb->collate}";
     }
     //}
     $wp_queries = array();
     if (!wpbc_is_table_exists('booking')) {
         // Cehck if tables not exist yet
         $simple_sql = "CREATE TABLE {$wpdb->prefix}booking (\n                     booking_id bigint(20) unsigned NOT NULL auto_increment,\n                     form text ,\n                     booking_type bigint(10) NOT NULL default 1,\n                     PRIMARY KEY  (booking_id)\n                    ) {$charset_collate};";
         $wpdb->query($simple_sql);
     } elseif (wpbc_is_field_in_table_exists('booking', 'form') == 0) {
         $wp_queries[] = "ALTER TABLE {$wpdb->prefix}booking ADD form TEXT AFTER booking_id";
     }
     if (wpbc_is_field_in_table_exists('booking', 'modification_date') == 0) {
         $wp_queries[] = "ALTER TABLE {$wpdb->prefix}booking ADD modification_date datetime AFTER booking_id";
     }
     if (wpbc_is_field_in_table_exists('booking', 'sort_date') == 0) {
         $wp_queries[] = "ALTER TABLE {$wpdb->prefix}booking ADD sort_date datetime AFTER booking_id";
     }
     if (wpbc_is_field_in_table_exists('booking', 'status') == 0) {
         $wp_queries[] = "ALTER TABLE {$wpdb->prefix}booking ADD status varchar(200) NOT NULL default '' AFTER booking_id";
     }
     if (wpbc_is_field_in_table_exists('booking', 'is_new') == 0) {
         $wp_queries[] = "ALTER TABLE {$wpdb->prefix}booking ADD is_new bigint(10) NOT NULL default 1 AFTER booking_id";
     }
     // Version: 5.2 - Google ID of the booking for Sync functionality
     if (wpbc_is_field_in_table_exists('booking', 'sync_gid') == 0) {
         $wp_queries[] = "ALTER TABLE {$wpdb->prefix}booking ADD sync_gid varchar(200) NOT NULL default '' AFTER booking_id";
     }
     if (!wpbc_is_table_exists('bookingdates')) {
         // Cehck if tables not exist yet
         $simple_sql = "CREATE TABLE {$wpdb->prefix}bookingdates (\n                     booking_id bigint(20) unsigned NOT NULL,\n                     booking_date datetime NOT NULL default '0000-00-00 00:00:00',\n                     approved bigint(20) unsigned NOT NULL default 0\n                    ) {$charset_collate}";
         $wpdb->query($simple_sql);
         if ($this->wpdev_bk_personal == false) {
             $wp_queries[] = "INSERT INTO {$wpdb->prefix}booking ( form, modification_date ) VALUES (\n                     'text^name1^Jony~text^secondname1^Smith~text^email1^example-free@wpbookingcalendar.com~text^phone1^8(038)458-77-77~textarea^details1^Reserve a room with sea view', NOW() );";
         }
     }
     if (!class_exists('wpdev_bk_biz_l')) {
         if (wpbc_is_index_in_table_exists('bookingdates', 'booking_id_dates') == 0) {
             $simple_sql = "CREATE UNIQUE INDEX booking_id_dates ON {$wpdb->prefix}bookingdates (booking_id, booking_date);";
             $wpdb->query($simple_sql);
         }
     } else {
         if (wpbc_is_index_in_table_exists('bookingdates', 'booking_id_dates') != 0) {
             $simple_sql = "DROP INDEX booking_id_dates ON  {$wpdb->prefix}bookingdates ;";
             $wpdb->query($simple_sql);
         }
     }
     if (count($wp_queries) > 0) {
         foreach ($wp_queries as $wp_q) {
             $wpdb->query($wp_q);
         }
         if ($this->wpdev_bk_personal == false) {
             $temp_id = $wpdb->insert_id;
             $wp_queries_sub = "INSERT INTO {$wpdb->prefix}bookingdates (\n                         booking_id,\n                         booking_date\n                        ) VALUES\n                        ( " . $temp_id . ", CURDATE()+ INTERVAL 2 day ),\n                        ( " . $temp_id . ", CURDATE()+ INTERVAL 3 day ),\n                        ( " . $temp_id . ", CURDATE()+ INTERVAL 4 day );";
             $wpdb->query($wp_queries_sub);
         }
     }
     // if( $this->wpdev_bk_personal !== false )  $this->wpdev_bk_personal->pro_activate();
     make_bk_action('wpdev_booking_activation');
     update_bk_option('booking_version_num', WP_BK_VERSION_NUM);
     //FixIn:5.4.2
     // Examples in demos
     if ($is_demo) {
         $this->createExamples4Demo();
     }
     /**
             // Fill Development server by initial bookings
             if (  $_SERVER['HTTP_HOST'] === 'dev'  ) {  
                 for ($i = 0; $i < 5; $i++) {
                     //if (!class_exists('wpdev_bk_personal')) 
                     $this->createExamples4Demo( array(1,2,3,4,5,6,7,8,9,10,11,12) ); 
                 }
             }
             $this->setDefaultInitialValues();/**/
     $this->reindex_booking_db();
     update_bk_option('booking_activation_process', 'Off');
 }
/**
 * Ceck  if user accidentially update Booking Calendar Paid version  to Free
 * 
 * @return true|false
 */
function wpbc_is_updated_paid_to_free()
{
    if (wpbc_is_table_exists('bookingtypes') && !class_exists('wpdev_bk_personal')) {
        return true;
    } else {
        return false;
    }
}