findStartingStep = function findStartingStep(startStepNum, savedSkippedSteps, cb) {
      var step, target;

      currStepNum = startStepNum || 0;
      skippedSteps = savedSkippedSteps || {};
      step = getCurrStep();
      target = utils.getStepTarget(step);

      if (target) {
        // First step had an existing target.
        cb(currStepNum);
        return;
      }

      if (!target) {
        // Previous target doesn't exist either. The user may have just
        // clicked on a link that wasn't part of the tour. Another possibility is that
        // the user clicked on the correct link, but the target is just missing for
        // whatever reason. In either case, we should just advance until we find a step
        // that has a target on the page or end the tour if we can't find such a step.
        utils.invokeEventCallbacks('error');

        //this step was skipped, since its target does not exist
        skippedSteps[currStepNum] = true;

        if (getOption('skipIfNoElement')) {
          goToStepWithTarget(1, cb);
          return;
        } else {
          currStepNum = -1;
          cb(currStepNum);
        }
      }
    }
Find the first step to show for a tour. (What is the first step with a
target on the page?)