/**
  * Delete a check by check ID
  * @access  public
  * @param   $checkID
  * @return  true / false
  * @author  Cindy Qi Li
  */
 function Delete($checkID)
 {
     $checkID = intval($checkID);
     // delete all languages
     require_once AC_INCLUDE_PATH . 'classes/DAO/LanguageTextDAO.class.php';
     require_once AC_INCLUDE_PATH . 'classes/DAO/CheckPrerequisitesDAO.class.php';
     require_once AC_INCLUDE_PATH . 'classes/DAO/TestPassDAO.class.php';
     require_once AC_INCLUDE_PATH . 'classes/DAO/SubgroupChecksDAO.class.php';
     require_once AC_INCLUDE_PATH . 'classes/DAO/Techniques.class.php';
     require_once AC_INCLUDE_PATH . 'classes/DAO/CheckExamplesDAO.class.php';
     $langTextDAO = new LanguageTextDAO();
     $row = $this->getCheckByID($checkID);
     if ($row['note'] != '') {
         $langTextDAO->DeleteByVarAndTerm('_check', $row['note']);
     }
     if ($row['name'] != '') {
         $langTextDAO->DeleteByVarAndTerm('_check', $row['name']);
     }
     if ($row['err'] != '') {
         $langTextDAO->DeleteByVarAndTerm('_check', $row['err']);
     }
     if ($row['description'] != '') {
         $langTextDAO->DeleteByVarAndTerm('_check', $row['description']);
     }
     if ($row['search_str'] != '') {
         $langTextDAO->DeleteByVarAndTerm('_check', $row['search_str']);
     }
     if ($row['long_description'] != '') {
         $langTextDAO->DeleteByVarAndTerm('_check', $row['long_description']);
     }
     if ($row['rationale'] != '') {
         $langTextDAO->DeleteByVarAndTerm('_check', $row['rationale']);
     }
     if ($row['how_to_repair'] != '') {
         $langTextDAO->DeleteByVarAndTerm('_check', $row['how_to_repair']);
     }
     if ($row['repair_example'] != '') {
         $langTextDAO->DeleteByVarAndTerm('_check', $row['repair_example']);
     }
     if ($row['question'] != '') {
         $langTextDAO->DeleteByVarAndTerm('_check', $row['question']);
     }
     if ($row['decision_pass'] != '') {
         $langTextDAO->DeleteByVarAndTerm('_check', $row['decision_pass']);
     }
     if ($row['decision_fail'] != '') {
         $langTextDAO->DeleteByVarAndTerm('_check', $row['decision_fail']);
     }
     if ($row['test_procedure'] != '') {
         $langTextDAO->DeleteByVarAndTerm('_check', $row['test_procedure']);
     }
     if ($row['test_expected_result'] != '') {
         $langTextDAO->DeleteByVarAndTerm('_check', $row['test_expected_result']);
     }
     if ($row['test_failed_result'] != '') {
         $langTextDAO->DeleteByVarAndTerm('_check', $row['test_failed_result']);
     }
     $checkPrerequisitesDAO = new CheckPrerequisitesDAO();
     $checkPrerequisitesDAO->DeleteByCheckID($checkID);
     $testPassDAO = new TestPassDAO();
     $testPassDAO->DeleteByCheckID($checkID);
     $subgroupChecksDAO = new SubgroupChecksDAO();
     $subgroupChecksDAO->DeleteByCheckID($checkID);
     $techniques = new Techniques();
     $techniques->DeleteByCheckID($checkID);
     $checkExamplesDAO = new CheckExamplesDAO();
     $checkExamplesDAO->DeleteByCheckID($checkID);
     $sql = "DELETE FROM " . TABLE_PREFIX . "checks WHERE check_id=" . $checkID;
     return $this->execute($sql);
 }
$checkExamplesDAO = new CheckExamplesDAO();
// handle submit
if (isset($_POST['cancel'])) {
    header('Location: index.php');
    exit;
} else {
    if (isset($_POST['save_no_close']) || isset($_POST['save_and_close']) || $_POST['javascript_submit']) {
        $checksDAO = new ChecksDAO();
        if (!isset($check_id)) {
            $check_id = $checksDAO->Create($_SESSION['user_id'], $_POST['html_tag'], $_POST['confidence'], $_POST['note'], $_POST['name'], $_POST['err'], $_POST['description'], $_POST['search_str'], $_POST['long_description'], $_POST['rationale'], $_POST['how_to_repair'], $_POST['repair_example'], $_POST['question'], $_POST['decision_pass'], $_POST['decision_fail'], $_POST['test_procedure'], $_POST['test_expected_result'], $_POST['test_failed_result'], $_POST['open_to_public']);
        } else {
            $checksDAO->Update($check_id, $_SESSION['user_id'], $_POST['html_tag'], $_POST['confidence'], $_POST['note'], $_POST['name'], $_POST['err'], $_POST['description'], $_POST['search_str'], $_POST['long_description'], $_POST['rationale'], $_POST['how_to_repair'], $_POST['repair_example'], $_POST['question'], $_POST['decision_pass'], $_POST['decision_fail'], $_POST['test_procedure'], $_POST['test_expected_result'], $_POST['test_failed_result'], $_POST['open_to_public']);
        }
        if (!$msg->containsErrors()) {
            // re-create check examples
            $checkExamplesDAO->DeleteByCheckID($check_id);
            $pass_example_desc = trim($_POST['pass_example_desc']);
            $pass_example = trim($_POST['pass_example']);
            $fail_example_desc = trim($_POST['fail_example_desc']);
            $fail_example = trim($_POST['fail_example']);
            if ($pass_example_desc != '' || $pass_example != '') {
                $checkExamplesDAO->Create($check_id, AC_CHECK_EXAMPLE_PASS, $pass_example_desc, $pass_example);
            }
            if ($fail_example_desc != '' || $fail_example != '') {
                $checkExamplesDAO->Create($check_id, AC_CHECK_EXAMPLE_FAIL, $fail_example_desc, $fail_example);
            }
            $msg->addFeedback('ACTION_COMPLETED_SUCCESSFULLY');
            if (isset($_POST['save_and_close'])) {
                header('Location: index.php');
            } else {
                header('Location: ' . $_SERVER['PHP_SELF'] . '?id=' . $check_id);