}
        $bp = new Permissions($b);
        if (!$bp->canWrite()) {
            $badPermissions = true;
        }
    }
} else {
    $badPermissions = true;
}
if ($badPermissions) {
    echo t('Invalid Permissions');
    die;
}
switch ($_GET['mode']) {
    case 'addQuestion':
        $miniSurvey->addEditQuestion($_POST);
        break;
    case 'getQuestion':
        $miniSurvey->getQuestionInfo(intval($_GET['qsID']), intval($_GET['qID']));
        break;
    case 'delQuestion':
        $miniSurvey->deleteQuestion(intval($_GET['qsID']), intval($_GET['msqID']));
        break;
    case 'reorderQuestions':
        $miniSurvey->reorderQuestions(intval($_POST['qsID']), $_POST['qIDs']);
        break;
    case 'refreshSurvey':
    default:
        $showEdit = intval($_REQUEST['showEdit']) == 1 ? true : false;
        $miniSurvey->loadSurvey(intval($_GET['qsID']), $showEdit, intval($bID), explode(',', $_GET['hide']), 1, 1);
}
 /**
  * Form add or edit submit
  * (run after the duplicate method on first block edit of new page version).
  */
 public function save($data = [])
 {
     if (!$data || count($data) == 0) {
         $data = $_POST;
     }
     $data += ['qsID' => null, 'oldQsID' => null, 'questions' => []];
     $b = $this->getBlockObject();
     $c = $b->getBlockCollectionObject();
     $db = Database::connection();
     if (intval($this->bID) > 0) {
         $q = "select count(*) as total from {$this->btTable} where bID = " . intval($this->bID);
         $total = $db->getOne($q);
     } else {
         $total = 0;
     }
     if (isset($_POST['qsID']) && $_POST['qsID']) {
         $data['qsID'] = $_POST['qsID'];
     }
     if (!$data['qsID']) {
         $data['qsID'] = time();
     }
     if (!$data['oldQsID']) {
         $data['oldQsID'] = $data['qsID'];
     }
     $data['bID'] = intval($this->bID);
     if (!empty($data['redirectCID'])) {
         $data['redirect'] = 1;
     } else {
         $data['redirect'] = 0;
         $data['redirectCID'] = 0;
     }
     if (empty($data['addFilesToSet'])) {
         $data['addFilesToSet'] = 0;
     }
     if (!isset($data['surveyName'])) {
         $data['surveyName'] = '';
     }
     if (!isset($data['submitText'])) {
         $data['submitText'] = '';
     }
     if (!isset($data['notifyMeOnSubmission'])) {
         $data['notifyMeOnSubmission'] = 0;
     }
     if (!isset($data['thankyouMsg'])) {
         $data['thankyouMsg'] = '';
     }
     if (!isset($data['displayCaptcha'])) {
         $data['displayCaptcha'] = 0;
     }
     $v = [$data['qsID'], $data['surveyName'], $data['submitText'], intval($data['notifyMeOnSubmission']), $data['recipientEmail'], $data['thankyouMsg'], intval($data['displayCaptcha']), intval($data['redirectCID']), intval($data['addFilesToSet']), intval($this->bID)];
     //is it new?
     if (intval($total) == 0) {
         $q = "insert into {$this->btTable} (questionSetId, surveyName, submitText, notifyMeOnSubmission, recipientEmail, thankyouMsg, displayCaptcha, redirectCID, addFilesToSet, bID) values (?, ?, ?, ?, ?, ?, ?, ?, ?,?)";
     } else {
         $v[] = $data['qsID'];
         $q = "update {$this->btTable} set questionSetId = ?, surveyName=?, submitText=?, notifyMeOnSubmission=?, recipientEmail=?, thankyouMsg=?, displayCaptcha=?, redirectCID=?, addFilesToSet=? where bID = ? AND questionSetId= ?";
     }
     $rs = $db->query($q, $v);
     //Add Questions (for programmatically creating forms, such as during the site install)
     if (count($data['questions']) > 0) {
         $miniSurvey = new MiniSurvey();
         foreach ($data['questions'] as $questionData) {
             $miniSurvey->addEditQuestion($questionData, 0);
         }
     }
     $this->questionVersioning($data);
     return true;
 }