/**
  * Build property form
  * @param	string	$a_mode
  * @param	int		$id
  * @return	object
  */
 function initForm($a_mode = "create", $id = NULL)
 {
     global $lng, $ilCtrl, $ilObjDataCache;
     include_once "Services/Form/classes/class.ilPropertyFormGUI.php";
     $form_gui = new ilPropertyFormGUI();
     $title = new ilTextInputGUI($lng->txt("title"), "title");
     $title->setRequired(true);
     $title->setSize(40);
     $title->setMaxLength(120);
     $form_gui->addItem($title);
     $desc = new ilTextAreaInputGUI($lng->txt("description"), "desc");
     $desc->setCols(70);
     $desc->setRows(15);
     $form_gui->addItem($desc);
     $file = new ilFileInputGUI($lng->txt("book_additional_info_file"), "file");
     $file->setALlowDeletion(true);
     $form_gui->addItem($file);
     $nr = new ilNumberInputGUI($lng->txt("booking_nr_of_items"), "items");
     $nr->setRequired(true);
     $nr->setSize(3);
     $nr->setMaxLength(3);
     $form_gui->addItem($nr);
     if ($this->pool_has_schedule) {
         $options = array();
         include_once 'Modules/BookingManager/classes/class.ilBookingSchedule.php';
         foreach (ilBookingSchedule::getList($ilObjDataCache->lookupObjId($this->ref_id)) as $schedule) {
             $options[$schedule["booking_schedule_id"]] = $schedule["title"];
         }
         $schedule = new ilSelectInputGUI($lng->txt("book_schedule"), "schedule");
         $schedule->setRequired(true);
         $schedule->setOptions($options);
         $form_gui->addItem($schedule);
     }
     $post = new ilFormSectionHeaderGUI();
     $post->setTitle($lng->txt("book_post_booking_information"));
     $form_gui->addItem($post);
     $pdesc = new ilTextAreaInputGUI($lng->txt("book_post_booking_text"), "post_text");
     $pdesc->setCols(70);
     $pdesc->setRows(15);
     $form_gui->addItem($pdesc);
     $pfile = new ilFileInputGUI($lng->txt("book_post_booking_file"), "post_file");
     $pfile->setALlowDeletion(true);
     $form_gui->addItem($pfile);
     if ($a_mode == "edit") {
         $form_gui->setTitle($lng->txt("book_edit_object"));
         $item = new ilHiddenInputGUI('object_id');
         $item->setValue($id);
         $form_gui->addItem($item);
         include_once 'Modules/BookingManager/classes/class.ilBookingObject.php';
         $obj = new ilBookingObject($id);
         $title->setValue($obj->getTitle());
         $desc->setValue($obj->getDescription());
         $nr->setValue($obj->getNrOfItems());
         $pdesc->setValue($obj->getPostText());
         $file->setValue($obj->getFile());
         $pfile->setValue($obj->getPostFile());
         if (isset($schedule)) {
             $schedule->setValue($obj->getScheduleId());
         }
         $form_gui->addCommandButton("update", $lng->txt("save"));
     } else {
         $form_gui->setTitle($lng->txt("book_add_object"));
         $form_gui->addCommandButton("save", $lng->txt("save"));
         $form_gui->addCommandButton("render", $lng->txt("cancel"));
     }
     $form_gui->setFormAction($ilCtrl->getFormAction($this));
     return $form_gui;
 }