/**
  * Return the output for a form to launch a zip or xls download, it is then submitted
  * on load via Javascript
  *
  * @param str $type the type of download that needs to be launched
  * @param int $partid the Turnitin id of the assignment part
  * @param int $userid the Turnitin user id
  * @param str $buttonstring string for the submit button
  * @return output form
  */
 public static function output_download_launch_form($type, $userid, $partid, $submissionids = array(), $buttonstring = "Submit")
 {
     // Initialise Comms Object.
     $turnitincomms = new turnitintooltwo_comms();
     $turnitincall = $turnitincomms->initialise_api();
     // Construct LTI Form Launcher.
     $lti = new TiiLTI();
     $lti->setAssignmentId($partid);
     $lti->setUserId($userid);
     $lti->setRole("Instructor");
     $lti->setButtonText($buttonstring);
     if (!empty($submissionids)) {
         $lti->setSubmissionIds($submissionids);
     }
     switch ($type) {
         case "orig_zip":
             $ltifunction = "outputDownloadZipForm";
             break;
         case "pdf_zip":
             $ltifunction = "outputDownloadPDFZipForm";
             $lti->setFormTarget('');
             break;
         case "xls_inbox":
             $ltifunction = "outputDownloadXLSForm";
             break;
         case "origchecked_zip":
             $ltifunction = "outputDownloadZipForm";
             break;
         case "gmpdf_zip":
             $ltifunction = "outputDownloadGradeMarkZipForm";
             $lti->setFormTarget('');
             break;
     }
     // Read the LTI launch form in the output buffer.
     ob_start();
     $turnitincall->{$ltifunction}($lti);
     $launchdownload = ob_get_contents();
     ob_end_clean();
     return $launchdownload;
 }