/**
  * 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);
 }
include_once AC_INCLUDE_PATH . 'classes/DAO/GuidelineGroupsDAO.class.php';
include_once AC_INCLUDE_PATH . 'classes/DAO/GuidelineSubgroupsDAO.class.php';
include_once AC_INCLUDE_PATH . 'classes/DAO/SubgroupChecksDAO.class.php';
include_once AC_INCLUDE_PATH . 'classes/DAO/ChecksDAO.class.php';
include_once AC_INCLUDE_PATH . 'classes/DAO/UsersDAO.class.php';
global $_current_user;
if (isset($_GET["id"])) {
    $gid = intval($_GET["id"]);
}
if ($gid == 0) {
    unset($gid);
}
$guidelinesDAO = new GuidelinesDAO();
$guidelineGroupsDAO = new GuidelineGroupsDAO();
$guidelineSubgroupsDAO = new GuidelineSubgroupsDAO();
$subgroupChecksDAO = new SubgroupChecksDAO();
// handle submits
if (isset($_POST['cancel'])) {
    $msg->addFeedback('CANCELLED');
    header('Location: index.php');
    exit;
} else {
    if (isset($_POST['save_no_close']) || isset($_POST['save_and_close']) || $_POST['javascript_submit']) {
        if (isset($gid)) {
            $guidelinesDAO->update($gid, $_POST['user_id'], $_POST['title'], $_POST['abbr'], $_POST['long_name'], $_POST['published_date'], $_POST['earlid'], '', $_POST['status'], $_POST['open_to_public']);
        } else {
            $gid = $guidelinesDAO->Create($_SESSION['user_id'], $_POST['title'], $_POST['abbr'], $_POST['long_name'], $_POST['published_date'], $_POST['earlid'], '', $_POST['status'], $_POST['open_to_public']);
            if (intval($gid) == 0) {
                unset($gid);
            }
        }
 /**
  * Add checks into guideline
  * @access  public
  * @param   $guidelineID : guideline id
  *          $cids : array of check ids to be added into guideline
  * @return  true : if successful
  *          false : if unsuccessful
  * @author  Cindy Qi Li
  */
 public function addChecks($guidelineID, $cids)
 {
     require_once AC_INCLUDE_PATH . 'classes/DAO/GuidelineGroupsDAO.class.php';
     require_once AC_INCLUDE_PATH . 'classes/DAO/GuidelineSubgroupsDAO.class.php';
     require_once AC_INCLUDE_PATH . 'classes/DAO/SubgroupChecksDAO.class.php';
     $guidelineID = intval($guidelineID);
     if ($guidelineID == 0) {
         $msg->addError('MISSING_GID');
         return false;
     }
     $guidelineGroupsDAO = new GuidelineGroupsDAO();
     $groups = $guidelineGroupsDAO->getUnnamedGroupsByGuidelineID($guidelineID);
     if (is_array($groups)) {
         $group_id = $groups[0]['group_id'];
     } else {
         $group_id = $guidelineGroupsDAO->Create($guidelineID, '', '', '');
     }
     if ($group_id) {
         $guidelineSubgroupsDAO = new GuidelineSubgroupsDAO();
         $subgroups = $guidelineSubgroupsDAO->getUnnamedSubgroupByGroupID($group_id);
         if (is_array($subgroups)) {
             $subgroup_id = $subgroups[0]['subgroup_id'];
         } else {
             $subgroup_id = $guidelineSubgroupsDAO->Create($group_id, '', '');
         }
         if ($subgroup_id) {
             $subgroupChecksDAO = new SubgroupChecksDAO();
             if (is_array($cids)) {
                 foreach ($cids as $cid) {
                     $cid = intval($cid);
                     if ($cid > 0) {
                         $subgroupChecksDAO->Create($subgroup_id, $cid);
                     }
                 }
             }
         } else {
             return false;
         }
     } else {
         return false;
     }
     return true;
 }
 /**
  * Add checks into guideline subgroup
  * @access  public
  * @param   $groupID : subgroup id
  *          $cids : array of check ids to be added into group
  * @return  true : if successful
  *          false : if unsuccessful
  * @author  Cindy Qi Li
  */
 public function addChecks($subgroupID, $cids)
 {
     global $msg;
     require_once AC_INCLUDE_PATH . 'classes/DAO/SubgroupChecksDAO.class.php';
     $subgroupID = intval($subgroupID);
     if ($subgroupID == 0) {
         $msg->addError('MISSING_GID');
         return false;
     }
     $subgroupChecksDAO = new SubgroupChecksDAO();
     if (is_array($cids)) {
         foreach ($cids as $cid) {
             $cid = intval($cid);
             if ($cid > 0) {
                 $subgroupChecksDAO->Create($subgroupID, $cid);
             }
         }
     }
     return true;
 }