function search()
 {
     ajx_current('empty');
     if (!can_manage_contacts(logged_user())) {
         flash_error(lang("no access permissions"));
         return;
     }
     $search_for = array_var($_POST, 'search_for', false);
     if ($search_for) {
         $search_results = SearchableObjects::searchByType($search_for, null, 'Companies', true, 50);
         $companies = $search_results[0];
         if ($companies && count($companies) > 0) {
             $result = array();
             foreach ($companies as $companyResult) {
                 $company = $companyResult['object'];
                 $result[] = array('name' => $company->getName(), 'id' => $company->getId(), 'phone' => $company->getPhoneNumber(), 'email' => $company->getEmail());
             }
             ajx_extra_data(array("results" => $result));
         }
     }
 }
 /**
  * Execute search
  *
  * @param void
  * @return null
  */
 function searchbytype()
 {
     $this->setTemplate('search');
     if (active_project() && !logged_user()->isProjectUser(active_project())) {
         flash_error(lang('no access permissions'));
         ajx_current("empty");
         return;
     }
     // if
     $page = array_var($_GET, 'page');
     $pageType = array_var($_GET, 'page_type');
     $search_for = array_var($_GET, 'search_for');
     $manager = array_var($_GET, 'manager');
     $objectManagers = array("ProjectWebpages", "ProjectMessages", "MailContents", "ProjectFiles", "ProjectFileRevisions", "ProjectMilestones", "ProjectTasks", "ProjectEvents");
     $objectTypes = array(lang('webpages'), lang('messages'), lang('emails'), lang('files'), lang('files'), lang('milestones'), lang('tasks'), lang('events'));
     $iconTypes = array('webpage', 'message', 'email', 'file', 'file', 'milestone', 'task', 'event');
     $search_results = array();
     $timeBegin = microtime(true);
     if (trim($search_for) == '') {
         $search_results = null;
         $pagination = null;
     } else {
         if (array_var($_GET, 'search_all_projects') != "true" && active_project() instanceof Project) {
             $projects = active_project()->getAllSubWorkspacesCSV(true);
         } else {
             $projects = null;
         }
         switch ($manager) {
             case 'Contacts':
             case 'Companies':
                 $search_results = $this->searchContacts($search_for, array(), 20, $page);
                 break;
             case 'Projects':
                 $search_results = $this->searchWorkspaces($search_for, array(), 20, $page);
                 break;
             case 'Users':
                 $search_results = $this->searchUsers($search_for, array(), 20, $page);
                 break;
             default:
                 $user_id = $manager == "MailContents" ? logged_user()->getId() : 0;
                 $results = SearchableObjects::searchByType($search_for, $projects, $manager, true, 20, $page, null, $user_id);
                 if (count($results[0]) > 0) {
                     $c = array_search($manager, $objectManagers);
                     $sr = array();
                     $pagination = $results[1];
                     $sr['result'] = $results[0];
                     $sr['pagination'] = $pagination;
                     $sr['type'] = $objectTypes[$c];
                     $sr['icontype'] = $iconTypes[$c];
                     $sr['manager'] = $manager;
                     $search_results[] = $sr;
                 }
                 break;
         }
     }
     // if
     $timeEnd = microtime(true);
     tpl_assign('search_string', $search_for);
     tpl_assign('search_results', $search_results);
     tpl_assign('time', $timeEnd - $timeBegin);
     tpl_assign('enable_pagination', true);
 }
 function search()
 {
     ajx_current('empty');
     if (!can_manage_contacts(logged_user())) {
         flash_error(lang("no access permissions"));
         return;
     }
     $search_for = array_var($_POST, 'search_for', false);
     if ($search_for) {
         /*if (active_project() instanceof Project) {
         			$projects = active_project()->getAllSubWorkspacesQuery(false);
         		} else {*/
         $projects = null;
         //}
         $search_results = SearchableObjects::searchByType($search_for, $projects, 'Contacts', true, 50);
         $contacts = $search_results[0];
         if ($contacts && count($contacts) > 0) {
             $result = array();
             foreach ($contacts as $contactResult) {
                 $contact = $contactResult['object'];
                 $result[] = array('name' => $contact->getFirstname() . ' ' . $contact->getLastname(), 'phone' => $contact->getWPhoneNumber(), 'email' => $contact->getEmail(), 'jobtitle' => $contact->getJobTitle(), 'company' => $contact->getCompany() instanceof Company ? array('id' => $contact->getCompany()->getId(), 'name' => $contact->getCompany()->getName(), 'phone' => $contact->getCompany()->getPhoneNumber(), 'email' => $contact->getCompany()->getEmail()) : array(), 'department' => $contact->getDepartment(), 'id' => $contact->getId());
             }
             ajx_extra_data(array("results" => $result));
         }
     }
 }