public function ScheduleSearchFreeTimes($candidate, $member, $search_time, $search_condition)
 {
     // $candidate : CbgrnScheduleSearchFreeTimesCandidateType class or that Array
     // $member    : base:memberType == CbgrnMemberType or that Array
     // $search_time : xsd:time == (interval seconds(s))
     // $serch_condition : ScheduleSearchConditionType == String(enum) {'and' or 'or'}
     $this->CheckAndSetHeader(__FUNCTION__);
     $reg_args["candidate"] = $this->getRegularArgs($candidate, __FUNCTION__, "CbgrnScheduleSearchFreeTimesCandidateType");
     $reg_args["member"] = $this->getRegularArgs($member, __FUNCTION__, "CbgrnMemberType");
     $h = $search_time / 3600;
     $m = $search_time % 3600 / 60;
     $s = $search_time % 60;
     $reg_args["search_time"] = sprintf("%02d:%02d:%02d", $h, $m, $s);
     $reg_args["search_condition"] = $search_condition;
     $this->encodeString($reg_args);
     $results = parent::ScheduleSearchFreeTimes($reg_args);
     $this->methodClose();
     $ret_val = array();
     if (isset($results->candidate)) {
         if (is_array($results->candidate)) {
             foreach ($results->candidate as $candidate) {
                 $ret_val[] = new CbgrnScheduleFreeTimeType($candidate);
             }
         } else {
             $ret_val[] = new CbgrnScheduleFreeTimeType($results->candidate);
         }
     } else {
         // no schedule found
     }
     return $this->decodeString($ret_val);
 }