function tutorial2()
 {
     global $appointments;
     //load the file
     if (!class_exists('Pointer_Tutorial')) {
         require_once $appointments->plugin_dir . '/includes/external/pointer-tutorials.php';
     }
     //create our tutorial, with default redirect prefs
     $tutorial = new Pointer_Tutorial('app_tutorial2', true, false);
     //add our textdomain that matches the current plugin
     $tutorial->set_textdomain = 'appointments';
     //add the capability a user must have to view the tutorial
     $tutorial->set_capability = App_Roles::get_capability('manage_options', App_Roles::CTX_TUTORIAL);
     $tutorial->add_icon($appointments->plugin_url . '/images/large-greyscale.png');
     $appointments_page = admin_url('admin.php?page=appointments');
     $tutorial->add_step($appointments_page, 'toplevel_page_appointments', '.info-button', __('Appointment List', 'appointments'), array('content' => '<p>' . esc_js(__('Appointment records are grouped by their statuses. You can see these groupings by clicking the Info icon.', 'appointments')) . '</p>', 'position' => array('edge' => 'right', 'align' => 'center')));
     $tutorial->add_step($appointments_page, 'toplevel_page_appointments', '.add-new-h2', __('Entering a Manual Appointment', 'appointments'), array('content' => '<p>' . esc_js(__('When you received appointments from your clients, they will be added to this page automatically. But you can always add a new appointment manually. Please click ADD NEW link and then click Next.', 'appointments')) . '</p>', 'position' => array('edge' => 'left', 'align' => 'top')));
     $tutorial->add_step($appointments_page, 'toplevel_page_appointments', 'select[name="status"]', __('Entering Data for the New Appointment', 'appointments'), array('content' => '<p>' . esc_js(__('As you can see, you can enter all parameters here. Enter some random values and select status as PENDING, for this example. Then click Next', 'appointments')) . '</p>', 'position' => array('edge' => 'right', 'align' => 'center')));
     $tutorial->add_step($appointments_page, 'toplevel_page_appointments', 'input[name="resend"]', __('Sending Confirmation emails Manually', 'appointments'), array('content' => '<p>' . esc_js(__('If you require payment, confirmation email is automatically sent after a Paypal payment. However if you are confirming appointments manually, you should check this checkbox for a confirmation email to be sent. You can also use this option for resending the confirmation email, e.g. after rescheduling an appointment.', 'appointments')) . '</p>', 'position' => array('edge' => 'right', 'align' => 'center')));
     $tutorial->add_step($appointments_page, 'toplevel_page_appointments', '.save', __('Entering Data for the New Appointment', 'appointments'), array('content' => '<p>' . esc_js(__('Save and then click Next.', 'appointments')) . '</p>', 'position' => array('edge' => 'right', 'align' => 'center')));
     $tutorial->add_step($appointments_page, 'toplevel_page_appointments', '.error', __('Entering Data for the New Appointment', 'appointments'), array('content' => '<p>' . esc_js(__('The result is shown here. Normally you should get a success message. Otherwise it means that you have a javascript problem on admin side.', 'appointments')) . '</p>', 'position' => array('edge' => 'left', 'align' => 'center')));
     $tutorial->add_step($appointments_page, 'toplevel_page_appointments', '.info-button', __('Save New Appointment', 'appointments'), array('content' => '<p>' . esc_js(__('As we added this appointment as "Pending" we will see it under Pending appointments. Click Pending appointments and then click Next.', 'appointments')) . '</p>', 'position' => array('edge' => 'left', 'align' => 'center')));
     $tutorial->add_step($appointments_page . '&type=pending', 'toplevel_page_appointments', '.info-button', __('Editing an Appointment', 'appointments'), array('content' => '<p>' . esc_js(__('You can edit any appointment record. Just hover on the record and then click See Details and Edit', 'appointments')) . '</p>', 'position' => array('edge' => 'left', 'align' => 'center')));
     $tutorial->add_step($appointments_page . '&type=pending', 'toplevel_page_appointments', '.cancel', _x('Cancel', 'Drop current action', 'appointments'), array('content' => '<p>' . esc_js(__('It is always possible to Cancel. Please note that these records are NOT saved until you click the Save button. Thanks for using Appointments+', 'appointments')) . '</p>', 'position' => array('edge' => 'left', 'align' => 'center')));
     if (isset($_GET["tutorial"]) && 'restart2' == $_GET["tutorial"]) {
         $tutorial->restart();
     }
     //start the tutorial
     $tutorial->initialize();
     return $tutorial;
 }
 function tutorial()
 {
     //load the file
     require_once EAB_PLUGIN_DIR . 'lib/pointers-tutorial/pointer-tutorials.php';
     //create our tutorial, with default redirect prefs
     $tutorial = new Pointer_Tutorial('eab_tutorial', true, false);
     //add our textdomain that matches the current plugin
     $tutorial->set_textdomain = Eab_EventsHub::TEXT_DOMAIN;
     //add the capability a user must have to view the tutorial
     $tutorial->set_capability = 'manage_options';
     $tutorial->hide_step = true;
     /*
     $tutorial->add_step(admin_url('edit.php?post_type=incsub_event&page=eab_settings'), 'incsub_event_page_eab_settings', '#incsub_event-slug', __('Event Slug', Eab_EventsHub::TEXT_DOMAIN), array(
         'content'  => '<p>' . esc_js( __('Change the root slug for events', Eab_EventsHub::TEXT_DOMAIN) ) . '</p>',
         'position' => array( 'edge' => 'left', 'align' => 'center' ),
     ));
     
     $tutorial->add_step(admin_url('edit.php?post_type=incsub_event&page=eab_settings'), 'incsub_event_page_eab_settings', '#incsub_event-accept_payments', __('Accept Payments?', Eab_EventsHub::TEXT_DOMAIN), array(
         'content'  => '<p>' . esc_js( __('Check this to accept payments for your events', Eab_EventsHub::TEXT_DOMAIN) ) . '</p>',
         'position' => array( 'edge' => 'left', 'align' => 'center' ),
     ));
     
     $tutorial->add_step(admin_url('edit.php?post_type=incsub_event&page=eab_settings'), 'incsub_event_page_eab_settings', '#incsub_event-display_attendees', __('Display RSVP\'s?', Eab_EventsHub::TEXT_DOMAIN), array(
         'content'  => '<p>' . esc_js( __('Check this to display RSVP\'s in the event details', Eab_EventsHub::TEXT_DOMAIN) ) . '</p>',
         'position' => array( 'edge' => 'left', 'align' => 'center' ),
     ));
     
     $tutorial->add_step(admin_url('edit.php?post_type=incsub_event&page=eab_settings'), 'incsub_event_page_eab_settings', '#incsub_event-currency', __('Currency', Eab_EventsHub::TEXT_DOMAIN), array(
         'content'  => '<p>' . esc_js(__('Which currency will you be accepting payment in? See ', Eab_EventsHub::TEXT_DOMAIN)) . '<a href="https://cms.paypal.com/us/cgi-bin/?cmd=_render-content&content_ID=developer/e_howto_api_nvp_currency_codes" target="_blank">Accepted PayPal Currency Codes</a></p>',
         'position' => array( 'edge' => 'left', 'align' => 'center' ),
     ));
     
     $tutorial->add_step(admin_url('edit.php?post_type=incsub_event&page=eab_settings'), 'incsub_event_page_eab_settings', '#incsub_event-paypal_email', __('PayPal E-Mail', Eab_EventsHub::TEXT_DOMAIN), array(
         'content'  => '<p>' . esc_js(__('PayPal e-mail address payments should be made to', Eab_EventsHub::TEXT_DOMAIN)) . '</p>',
         'position' => array( 'edge' => 'left', 'align' => 'center' ),
     ));
     */
     $tutorial->add_step(admin_url('post-new.php?post_type=incsub_event'), 'post-new.php', '#title', __('Event title', Eab_EventsHub::TEXT_DOMAIN), array('content' => '<p>' . __("What's happening?", Eab_EventsHub::TEXT_DOMAIN) . '</p>', 'position' => array('edge' => 'top', 'align' => 'center'), 'post_type' => 'incsub_event'));
     if (defined('AGM_PLUGIN_URL')) {
         $tutorial->add_step(admin_url('post-new.php?post_type=incsub_event'), 'post-new.php', '#incsub_event_venue_label', __('Event location', Eab_EventsHub::TEXT_DOMAIN), array('content' => '<p>' . __("Where? Enter the address or insert a map by clicking the globe icon", Eab_EventsHub::TEXT_DOMAIN) . '</p>', 'position' => array('edge' => 'right', 'align' => 'left'), 'post_type' => 'incsub_event'));
     } else {
         $tutorial->add_step(admin_url('post-new.php?post_type=incsub_event'), 'post-new.php', '#incsub_event_venue_label', __('Event location', Eab_EventsHub::TEXT_DOMAIN), array('content' => '<p>' . __("Where? Enter the address", Eab_EventsHub::TEXT_DOMAIN) . '</p>', 'position' => array('edge' => 'right', 'align' => 'left'), 'post_type' => 'incsub_event'));
     }
     $tutorial->add_step(admin_url('post-new.php?post_type=incsub_event'), 'post-new.php', '#incsub_event_times_label', __('Event time and dates', Eab_EventsHub::TEXT_DOMAIN), array('content' => '<p>' . __("When? YYYY-mm-dd HH:mm", Eab_EventsHub::TEXT_DOMAIN) . '</p>', 'position' => array('edge' => 'right', 'align' => 'left'), 'post_type' => 'incsub_event'));
     $tutorial->add_step(admin_url('post-new.php?post_type=incsub_event'), 'post-new.php', '#incsub_event_status_label', __('Event status', Eab_EventsHub::TEXT_DOMAIN), array('content' => '<p>' . __("Is this event still open to RSVP?", Eab_EventsHub::TEXT_DOMAIN) . '</p>', 'position' => array('edge' => 'right', 'align' => 'left'), 'post_type' => 'incsub_event'));
     $tutorial->add_step(admin_url('post-new.php?post_type=incsub_event'), 'post-new.php', '#incsub_event_paid_label', __('Event type', Eab_EventsHub::TEXT_DOMAIN), array('content' => '<p>' . __("Is this a paid event? Select 'Yes' and enter how much do you plan to charge in the text box that will appear", Eab_EventsHub::TEXT_DOMAIN) . '</p>', 'position' => array('edge' => 'right', 'align' => 'left'), 'post_type' => 'incsub_event'));
     $tutorial->add_step(admin_url('post-new.php?post_type=incsub_event'), 'post-new.php', '#wp-content-editor-container', __('Event Details', Eab_EventsHub::TEXT_DOMAIN), array('content' => '<p>' . __("More about the event", Eab_EventsHub::TEXT_DOMAIN) . '</p>', 'position' => array('edge' => 'bottom', 'align' => 'center'), 'post_type' => 'incsub_event'));
     $tutorial->add_step(admin_url('post-new.php?post_type=incsub_event'), 'post-new.php', '#incsub-event-bookings', __("Event RSVPs", Eab_EventsHub::TEXT_DOMAIN), array('content' => '<p>' . __("See who is attending, who may be attend and who is not after you publish the event", Eab_EventsHub::TEXT_DOMAIN) . '</p>', 'position' => array('edge' => 'bottom', 'align' => 'center'), 'post_type' => 'incsub_event'));
     $tutorial->add_step(admin_url('post-new.php?post_type=incsub_event'), 'post-new.php', '#publish', __('Publish', Eab_EventsHub::TEXT_DOMAIN), array('content' => '<p>' . __("Now it's time to publish the event", Eab_EventsHub::TEXT_DOMAIN) . '</p>', 'position' => array('edge' => 'right', 'align' => 'center'), 'post_type' => 'incsub_event'));
     //start the tutorial
     $tutorial->initialize();
     // $tutorial->restart(6);
     return $tutorial;
 }