/**
  * Get results of the user's search of experiments with pagination
  * @return array|null
  */
 public static function get_expsearch_results_with_pagination($inputs, $limit, $offset)
 {
     $experiments = array();
     try {
         $filters = array();
         if (!empty($inputs["status-type"])) {
             if ($inputs["status-type"] != "ALL") {
                 $filters[\Airavata\Model\Experiment\ExperimentSearchFields::STATUS] = $inputs["status-type"];
             }
         }
         if (!empty($inputs["search-key"])) {
             switch ($inputs["search-key"]) {
                 case 'experiment-name':
                     $filters[\Airavata\Model\Experiment\ExperimentSearchFields::EXPERIMENT_NAME] = $inputs["search-value"];
                     break;
                 case 'experiment-description':
                     $filters[\Airavata\Model\Experiment\ExperimentSearchFields::EXPERIMENT_DESC] = $inputs["search-value"];
                     break;
                 case 'application':
                     $filters[\Airavata\Model\Experiment\ExperimentSearchFields::APPLICATION_ID] = $inputs["search-value"];
                     break;
                 case 'creation-time':
                     $filters[\Airavata\Model\Experiment\ExperimentSearchFields::FROM_DATE] = strtotime($inputs["from-date"]) * 1000;
                     $filters[\Airavata\Model\Experiment\ExperimentSearchFields::TO_DATE] = strtotime($inputs["to-date"]) * 1000;
                     break;
                 case '':
             }
         }
         $experiments = Airavata::searchExperiments(Session::get('authz-token'), Session::get('gateway_id'), Session::get('username'), $filters, $limit, $offset);
     } catch (InvalidRequestException $ire) {
         CommonUtilities::print_error_message('InvalidRequestException!<br><br>' . $ire->getMessage());
     } catch (AiravataClientException $ace) {
         CommonUtilities::print_error_message('AiravataClientException!<br><br>' . $ace->getMessage());
     } catch (AiravataSystemException $ase) {
         if ($ase->airavataErrorType == 2) {
             CommonUtilities::print_info_message('<p>You have not created any experiments yet, so no results will be returned!</p>
                             <p>Click <a href="create_experiment.php">here</a> to create an experiment, or
                             <a href="create_project.php">here</a> to create a new project.</p>');
         } else {
             CommonUtilities::print_error_message('There was a problem with Airavata. Please try again later or report a bug using the link in the Help menu.');
             //print_error_message('AiravataSystemException!<br><br>' . $ase->airavataErrorType . ': ' . $ase->getMessage());
         }
     } catch (TTransportException $tte) {
         CommonUtilities::print_error_message('TTransportException!<br><br>' . $tte->getMessage());
     }
     //get values of all experiments
     $expContainer = array();
     $expNum = 0;
     foreach ($experiments as $experiment) {
         $expValue = ExperimentUtilities::get_experiment_summary_values($experiment, true);
         $expContainer[$expNum]['experiment'] = $experiment;
         if ($expValue["experimentStatusString"] == "FAILED") {
             $expValue["editable"] = false;
         }
         $expContainer[$expNum]['expValue'] = $expValue;
         $expNum++;
     }
     return $expContainer;
 }