}
    }
</script>';
// to correct #4029 Random and number of attempt menu empty added window.onload=advanced_parameters;
$htmlHeadXtra[] = '<script>
function setFocus(){
    $("#exercise_title").focus();
}
$(document).ready(function () {
    setFocus();
});
window.onload = advanced_parameters;
</script>';
// INIT EXERCISE
$objExercise = new Exercise();
$objExercise->setCategoriesGrouping(false);
$course_id = api_get_course_int_id();
//INIT FORM
if (isset($_GET['exerciseId'])) {
    $form = new FormValidator('exercise_admin', 'post', api_get_self() . '?' . api_get_cidreq() . '&exerciseId=' . intval($_GET['exerciseId']));
    $objExercise->read($_GET['exerciseId']);
    $form->addElement('hidden', 'edit', 'true');
} else {
    $form = new FormValidator('exercise_admin', 'post', api_get_self() . '?' . api_get_cidreq());
    $form->addElement('hidden', 'edit', 'false');
}
$objExercise->createForm($form);
// VALIDATE FORM
if ($form->validate()) {
    $objExercise->processCreation($form);
    if ($form->getSubmitValue('edit') == 'true') {
function get_action_icon_for_question($in_action, $from_exercice, $in_questionid, $in_questiontype, $in_questionname, $in_selected_course, $in_courseCategoryId, $in_exerciseLevel, $in_answerType, $in_session_id, $in_exercice_id)
{
    $res = "";
    $getParams = "&selected_course={$in_selected_course}&courseCategoryId={$in_courseCategoryId}&exerciseId={$in_exercice_id}&exerciseLevel={$in_exerciseLevel}&answerType={$in_answerType}&session_id={$in_session_id}";
    switch ($in_action) {
        case "delete":
            $res = "<a href='" . api_get_self() . "?" . api_get_cidreq() . "&delete={$in_questionid}{$getParams}' onclick='return confirm_your_choice()'>";
            $res .= Display::return_icon("delete.gif", get_lang('Delete'));
            $res .= "</a>";
            break;
        case "edit":
            $res = get_a_tag_for_question(1, $from_exercice, $in_questionid, $in_questiontype, Display::return_icon("edit.gif", get_lang('Modify')));
            break;
        case "add":
            // add if question is not already in test
            $myObjEx = new Exercise();
            $myObjEx->setCategoriesGrouping(false);
            $myObjEx->read($from_exercice);
            if (!$myObjEx->isInList($in_questionid)) {
                $res = "<a href='" . api_get_self() . "?" . api_get_cidreq() . "&recup={$in_questionid}&fromExercise={$from_exercice}{$getParams}'>";
                $res .= Display::return_icon("view_more_stats.gif", get_lang('InsertALinkToThisQuestionInTheExercise'));
                $res .= "</a>";
            } else {
                $res = "-";
            }
            unset($myObjEx);
            break;
        case "clone":
            $res = "<a href='" . api_get_self() . "?" . api_get_cidreq() . "&amp;copy_question={$in_questionid}&course_id={$in_selected_course}&fromExercise={$from_exercice}{$getParams}'>";
            $res .= Display::return_icon('cd.gif', get_lang('ReUseACopyInCurrentTest'));
            $res .= "</a>";
            break;
        default:
            $res = $in_action;
            break;
    }
    return $res;
}
 /**
  * Copies an exercise (duplicate all questions and answers)
  */
 public function copy_exercise()
 {
     $original_exercise = $this;
     $exercise_obj = new Exercise();
     $exercise_obj->setCategoriesGrouping(false);
     $exercise_obj->read($this->id);
     // force the creation of a new exercise
     $exercise_obj->updateTitle($exercise_obj->selectTitle() . ' - ' . get_lang('Copy'));
     //Hides the new exercise
     $exercise_obj->updateStatus(false);
     $exercise_obj->updateId(0);
     $exercise_obj->save();
     $exercise_obj->save_exercise_list_order($this->course['real_id'], api_get_session_id());
     $new_exercise_id = $exercise_obj->selectId();
     if ($new_exercise_id) {
         $original_exercise->copy_exercise_categories($exercise_obj);
         $question_list = $exercise_obj->getQuestionListWithMediasUncompressed();
         if (!empty($question_list)) {
             //Question creation
             foreach ($question_list as $old_question_id) {
                 $old_question_obj = Question::read($old_question_id);
                 $new_id = $old_question_obj->duplicate();
                 if ($new_id) {
                     $new_question_obj = Question::read($new_id);
                     if (isset($new_question_obj) && $new_question_obj) {
                         $new_question_obj->addToList($new_exercise_id);
                         // This should be moved to the duplicate function
                         $new_answer_obj = new Answer($old_question_id);
                         //$new_answer_obj->read();
                         $new_answer_obj->duplicate($new_id);
                     }
                 }
             }
         }
     }
 }