public static function generateDropdown($type, $selection = null, $name = null, $raw = false)
 {
     //base html
     $html = '';
     //grab db
     $db = \Cobalt\Container::fetch('db');
     //generate query based on type
     $query = $db->getQuery(true);
     switch ($type) {
         case "company":
             $query->select('id,name FROM #__companies AS c where c.published > 0');
             break;
         case "stage":
             $query->select('id,name FROM #__stages');
             break;
         case "source":
             $query->select('id,name FROM #__sources');
             break;
         case "deal_status":
             $query->select('id,name FROM #__deal_status');
             break;
         case "people_status":
             $query->select('id,name FROM #__people_status');
             break;
         case "deal":
             $query->select('d.id,d.name');
             $query->from("#__deals AS d");
             $query->where("d.published > 0");
             $query->leftJoin('#__users AS users ON users.id = d.owner_id');
             /** ---------------------------------------------------------------
              * Filter data using member role permissions
              */
             $member_id = UsersHelper::getUserId();
             $member_role = UsersHelper::getRole();
             $team_id = UsersHelper::getTeamId();
             if ($member_role != 'exec') {
                 //manager filter
                 if ($member_role == 'manager') {
                     $query->where('users.team_id = ' . $team_id);
                 } else {
                     //basic user filter
                     $query->where(array('d.owner_id = ' . $member_id));
                 }
             }
             break;
     }
     //run query and grab results
     if ($query != "") {
         $db->setQuery($query);
         $row = $db->loadAssocList();
     }
     if ($type == 'owner') {
         $me = array(array('label' => TextHelper::_('COBALT_ME'), 'value' => UsersHelper::getLoggedInUser()->id));
         $users = UsersHelper::getUsers(null, true);
         $row = array_merge($me, $users);
     }
     if (!isset($row)) {
         $row = array();
     } elseif (!is_array($row) && !(count($row) > 0)) {
         $row = array();
     }
     if ($raw) {
         return $row;
     }
     //determine which kind of dropdown we are generating
     $selected = $selection == null ? "selected='selected'" : '';
     switch ($type) {
         case "company":
             $name = $name ? $name : "name=company_id";
             $html = '
                 <select class="inputbox form-control" ' . $name . ' id="company_id">';
             $html .= "<option value='0' " . $selected . ">" . TextHelper::_('COBALT_DROPDOWN_COMPANY_SELECT_COMPANY_OPTION_LABEL');
             foreach ($row as $company => $info) {
                 $selected = $info['id'] == $selection ? "selected='selected'" : '';
                 $html .= '<option value="' . $info['id'] . '" ' . $selected . ' >' . $info['name'] . '</option>';
             }
             $html .= '</select>';
             break;
         case "stage":
             $name = $name ? $name : "name=stage_id";
             $html = '
                  <select class="inputbox form-control" ' . $name . ' id="stage_id">';
             $html .= "<option value='0' " . $selected . ">" . TextHelper::_('COBALT_DROPDOWN_STAGE_SELECT_STAGE_OPTION_LABEL');
             foreach ($row as $stage => $info) {
                 $selected = $info['id'] == $selection ? "selected='selected'" : '';
                 $html .= '<option value="' . $info['id'] . '" ' . $selected . ' ' . $name . ' >' . $info['name'] . '</option>';
             }
             $html .= '</select>';
             break;
         case "source":
             $name = $name ? $name : "name=source_id";
             $html = '<select class="inputbox form-control" ' . $name . ' id="source_id">';
             $html .= "<option value='0' " . $selected . ">" . TextHelper::_('COBALT_DROPDOWN_SOURCE_SELECT_SOURCE_OPTION_LABEL');
             if (count($row) > 0) {
                 foreach ($row as $source => $info) {
                     $selected = $info['id'] == $selection ? "selected='selected'" : '';
                     $html .= '<option value="' . $info['id'] . '" ' . $selected . ' ' . $name . ' >' . $info['name'] . '</option>';
                 }
             }
             $html .= '</select>';
             break;
         case "probability":
             $name = $name ? $name : "name=probability";
             $html = '
                 <select class="inputbox form-control" ' . $name . ' id="probability_id">';
             $html .= "<option value='0' " . $selected . ">" . TextHelper::_('COBALT_DROPDOWN_PROBABILITY_SELECT_PROBABILITY_OPTION_LABEL');
             for ($i = 5; $i <= 95; $i += 5) {
                 $selected = $i == $selection ? "selected='selected'" : '';
                 $html .= '<option value="' . $i . '" ' . $selected . ' ' . $name . ' >' . $i . '%</option>';
             }
             $html .= '</select>';
             break;
         case "deal_status":
             $name = $name ? $name : "name=status_id";
             $html = '
                 <select class="inputbox form-control" ' . $name . ' id="status_id">';
             $html .= "<option value='0' " . $selected . ">" . TextHelper::_('COBALT_DROPDOWN_DEAL_STATUS_SELECT_STATUS_OPTION_LABEL');
             foreach ($row as $status => $info) {
                 $selected = $info['id'] == $selection ? "selected='selected'" : '';
                 $html .= '<option value="' . $info['id'] . '" ' . $selected . ' ' . $name . ' >' . $info['name'] . '</option>';
             }
             $html .= '</select>';
             break;
         case "people_status":
             $name = $name ? $name : "name=status_id";
             $html = '
                 <select class="inputbox form-control" ' . $name . ' id="status_id">';
             $html .= "<option value='0' " . $selected . ">" . TextHelper::_('COBALT_DROPDOWN_PEOPLE_STATUS_SELECT_STATUS_OPTION_LABEL');
             foreach ($row as $status => $info) {
                 $selected = $info['id'] == $selection ? "selected='selected'" : '';
                 $html .= '<option value="' . $info['id'] . '" ' . $selected . ' ' . $name . ' >' . $info['name'] . '</option>';
             }
             $html .= '</select>';
             break;
         case "deal":
             $name = $name ? $name : "name=deal_id";
             $html = '
                 <select class="inputbox form-control" ' . $name . ' id="deal_id">';
             $html .= "<option value='0' " . $selected . ">" . TextHelper::_('COBALT_DROPDOWN_DEAL_SELECT_DEAL_OPTION_LABEL');
             foreach ($row as $deal => $info) {
                 $selected = $info['id'] == $selection ? "selected='selected'" : '';
                 $html .= '<option value="' . $info['id'] . '" ' . $selected . ' ' . $name . ' >' . $info['name'] . '</option>';
             }
             $html .= '</select>';
             break;
         case "owner":
             $name = $name ? $name : "name=owner_id";
             $html = '
                 <select class="inputbox form-control" ' . $name . ' id="owner_id">';
             $html .= "<option value=\"0\" " . $selected . ">" . TextHelper::_('COBALT_DROPDOWN_OWNER_SELECT_OWNER_OPTION_LABEL');
             foreach ($row as $i => $info) {
                 $selected = $info['value'] == $selection ? "selected='selected'" : '';
                 $html .= '<option value="' . $info['value'] . '" ' . $selected . ' ' . $name . ' >' . $info['label'] . '</option>';
             }
             $html .= '</select>';
             break;
         default:
             $model = DropdownHelper::getModelFromType($type);
             $html = '<ul>';
             $html .= '<li><a href="javascript:void(0)" onclick="saveAjax(\'' . $type . '\',\'' . $model . '\',\'Lead\')">' . TextHelper::_('COBALT_PERSON_LEAD') . '</a></li>';
             $html .= '<li><a href="javascript:void(0)" onclick="saveAjax(\'' . $type . '\',\'' . $model . '\',\'Contact\')">' . TextHelper::_('COBALT_PEOPLE_CONTACT') . '</a></li>';
             $html .= "</ul>";
             break;
     }
     return $html;
 }