public static function renderTemplateAreaNoCaption($templateArea, $listingID)
 {
     // renders all the elements in a given template area on the listing pages
     // this time without the corresponding captions
     global $conn, $config, $lang;
     require_once $config['basepath'] . '/include/misc.inc.php';
     $misc = new misc();
     require_once $config['basepath'] . '/include/login.inc.php';
     $listingID = $misc->make_db_extra_safe($listingID);
     $templateArea = $misc->make_db_extra_safe($templateArea);
     $sql = "SELECT listingsdbelements_field_value, listingsformelements_field_type, listingsformelements_field_caption, listingsformelements_display_priv FROM " . $config['table_prefix'] . "listingsdbelements, " . $config['table_prefix'] . "listingsformelements WHERE ((" . $config['table_prefix'] . "listingsdbelements.listingsdb_id = {$listingID}) AND (listingsformelements_field_name = listingsdbelements_field_name) AND (listingsformelements_location = {$templateArea})) ORDER BY listingsformelements_rank ASC";
     $recordSet = $conn->Execute($sql);
     if ($recordSet === false) {
         $misc->log_error($sql);
     }
     $display = '';
     while (!$recordSet->EOF) {
         $field_value = $misc->make_db_unsafe($recordSet->fields['listingsdbelements_field_value']);
         $field_type = $misc->make_db_unsafe($recordSet->fields['listingsformelements_field_type']);
         $field_caption = $misc->make_db_unsafe($recordSet->fields['listingsformelements_field_caption']);
         $display_priv = $misc->make_db_unsafe($recordSet->fields['listingsformelements_display_priv']);
         $display_status = false;
         if ($display_priv == 1) {
             $display_status = login::loginCheck('Member', true);
         } elseif ($display_priv == 2) {
             $display_status = login::loginCheck('Agent', true);
         } elseif ($display_priv == 3) {
             $display_status = login::loginCheck('Admin', true);
         } else {
             $display_status = true;
         }
         if ($display_status === true) {
             if ($field_value != "") {
                 if ($field_type == "select-multiple" or $field_type == "option" or $field_type == "checkbox") {
                     // handle field types with multiple options
                     $feature_index_list = explode("||", $field_value);
                     sort($feature_index_list);
                     $list_count = count($feature_index_list);
                     $l = 1;
                     foreach ($feature_index_list as $feature_list_item) {
                         if ($l < $list_count) {
                             $display .= $feature_list_item;
                             $display .= $config['feature_list_separator'];
                             $l++;
                         } else {
                             $display .= $feature_list_item;
                         }
                     }
                     // end while
                 } elseif ($field_type == "price") {
                     $money_amount = $misc->international_num_format($field_value, $config['number_decimals_price_fields']);
                     $display .= "<strong>{$field_caption}</strong>: " . $misc->money_formats($money_amount);
                 } elseif ($field_type == "number") {
                     $display .= "<strong>{$field_caption}</strong>: " . $misc->international_num_format($field_value, $config['number_decimals_number_fields']);
                 } elseif ($field_type == "url") {
                     $display .= "<a href=\"{$field_value}\" onclick=\"window.open(this.href,'_blank','location=1,resizable=1,status=1,scrollbars=1,toolbar=1,menubar=1');return false\">{$field_value}</a>";
                 } elseif ($field_type == "email") {
                     $display .= "<a href=\"mailto:{$field_value}\">{$field_value}</a>";
                 } elseif ($field_type == "text" or $field_type == "textarea") {
                     if ($config['add_linefeeds'] === "1") {
                         $field_value = nl2br($field_value);
                         //replace returns with <br />
                     }
                     // end if
                     $display .= "{$field_value}";
                 } elseif ($field_type == "Date") {
                     if ($config['date_format'] == 1) {
                         $format = "m/d/Y";
                     } elseif ($config['date_format'] == 2) {
                         $format = "Y/d/m";
                     } elseif ($config['date_format'] == 3) {
                         $format = "d/m/Y";
                     }
                     $field_value = date($format, $field_value);
                     $display .= "{$field_value}";
                 } else {
                     $display .= "{$field_value}";
                 }
                 // end else
                 $display .= '<br />';
             } else {
                 if ($field_type == "price" && $config["zero_price"] == "1") {
                     $display .= $lang['call_for_price'] . '<br />';
                 }
                 // end if
             }
             // end else
         }
         $recordSet->MoveNext();
     }
     // end while
     return $display;
 }
 function searchbox_render($browse_caption, $browse_field_name, $pclass, $searchbox_type)
 {
     // builds a searchbox for any given item you want
     // to let users search by
     global $conn, $config, $lang;
     $display = '';
     require_once $config['basepath'] . '/include/misc.inc.php';
     $misc = new misc();
     $time = $misc->getmicrotime();
     $class_sql = '';
     if (!empty($_GET['pclass'])) {
         $pclass = $_GET['pclass'];
     }
     if (!empty($pclass)) {
         //$classes = array();
         //$classes = explode('|', $_GET['pclass']);
         foreach ($pclass as $class) {
             // Ignore non numberic values
             if (is_numeric($class)) {
                 if (!empty($class_sql)) {
                     $class_sql .= ' OR ';
                 }
                 $class_sql .= $config['table_prefix_no_lang'] . "classlistingsdb.class_id = {$class}";
             }
         }
         if (!empty($class_sql)) {
             $class_sql = ' AND (' . $class_sql . ')';
         }
     }
     //Lookup Field Type
     $sql_browse_field_name = $misc->make_db_safe($browse_field_name);
     $sql = "SELECT listingsformelements_field_type FROM " . $config['table_prefix'] . "listingsformelements WHERE listingsformelements_field_name = {$sql_browse_field_name}";
     $rsStepLookup = $conn->Execute($sql);
     if (!$rsStepLookup) {
         $misc->log_error($sql);
     }
     $field_type = $rsStepLookup->fields['listingsformelements_field_type'];
     unset($rsStepLookup);
     $sortby = '';
     $dateFormat = FALSE;
     if ($field_type == 'date') {
         $dateFormat = TRUE;
     }
     switch ($field_type) {
         case 'decimal':
             $sortby = 'ORDER BY listingsdbelements_field_value+0 ASC';
             break;
         case 'number':
             global $db_type;
             if ($db_type == 'mysql') {
                 $sortby = 'ORDER BY CAST(listingsdbelements_field_value as signed) ASC';
             } else {
                 $sortby = 'ORDER BY CAST(listingsdbelements_field_value as int4) ASC';
             }
             break;
         default:
             $sortby = 'ORDER BY listingsdbelements_field_value ASC';
             break;
     }
     if (!empty($class_sql)) {
         if ($config['configured_show_count'] == 1) {
             $sql = "SELECT listingsdbelements_field_value, count(listingsdbelements_field_value) AS num_type FROM " . $config['table_prefix'] . "listingsdbelements, " . $config['table_prefix'] . "listingsdb," . $config['table_prefix_no_lang'] . "classlistingsdb  WHERE listingsdbelements_field_name = '{$browse_field_name}' AND listingsdb_active = 'yes' AND listingsdbelements_field_value <> '' AND " . $config['table_prefix'] . "listingsdbelements.listingsdb_id = " . $config['table_prefix'] . "listingsdb.listingsdb_id AND " . $config['table_prefix'] . "listingsdb.listingsdb_id = " . $config['table_prefix_no_lang'] . "classlistingsdb.listingsdb_id {$class_sql}";
         } else {
             $sql = "SELECT listingsdbelements_field_value FROM " . $config['table_prefix'] . "listingsdbelements, " . $config['table_prefix'] . "listingsdb," . $config['table_prefix_no_lang'] . "classlistingsdb  WHERE listingsdbelements_field_name = '{$browse_field_name}' AND listingsdb_active = 'yes' AND listingsdbelements_field_value <> '' AND " . $config['table_prefix'] . "listingsdbelements.listingsdb_id = " . $config['table_prefix'] . "listingsdb.listingsdb_id AND " . $config['table_prefix'] . "listingsdb.listingsdb_id = " . $config['table_prefix_no_lang'] . "classlistingsdb.listingsdb_id {$class_sql}";
         }
     } else {
         if ($config['configured_show_count'] == 1) {
             $sql = "SELECT listingsdbelements_field_value, count(listingsdbelements_field_value) AS num_type FROM " . $config['table_prefix'] . "listingsdbelements, " . $config['table_prefix'] . "listingsdb WHERE listingsdbelements_field_name = '{$browse_field_name}' AND listingsdb_active = 'yes' AND listingsdbelements_field_value <> '' AND " . $config['table_prefix'] . "listingsdbelements.listingsdb_id = " . $config['table_prefix'] . "listingsdb.listingsdb_id ";
         } else {
             $sql = "SELECT listingsdbelements_field_value FROM " . $config['table_prefix'] . "listingsdbelements, " . $config['table_prefix'] . "listingsdb WHERE listingsdbelements_field_name = '{$browse_field_name}' AND listingsdb_active = 'yes' AND listingsdbelements_field_value <> '' AND " . $config['table_prefix'] . "listingsdbelements.listingsdb_id = " . $config['table_prefix'] . "listingsdb.listingsdb_id ";
         }
     }
     if ($config['use_expiration'] === "1") {
         $sql .= " AND listingsdb_expiration > " . $conn->DBDate(time());
     }
     $sql .= "GROUP BY " . $config['table_prefix'] . "listingsdbelements.listingsdbelements_field_value {$sortby} ";
     // echo $sql.'<br />';
     $recordSet = $conn->Execute($sql);
     if (!$recordSet) {
         $misc->log_error($sql);
     }
     //Get Date Format Settins
     if ($config['date_format'] == 1) {
         $format = "m/d/Y";
     } elseif ($config['date_format'] == 2) {
         $format = "Y/d/m";
     } elseif ($config['date_format'] == 3) {
         $format = "d/m/Y";
     }
     switch ($searchbox_type) {
         case 'ptext':
             $display .= '<tr><td class="searchpage_field_caption">' . $browse_caption . '</td>';
             $display .= '<td align="left"><input name="' . $browse_field_name . '[]" type="text"';
             if (isset($_GET[$browse_field_name]) && $_GET[$browse_field_name] != '') {
                 $f = htmlspecialchars($_GET[$browse_field_name], ENT_COMPAT, $config['charset']);
                 $display .= 'value="' . $f . '"';
             }
             $display .= ' />';
             $display .= '</td></tr>';
             break;
         case 'pulldown':
             $display .= '<tr><td class="searchpage_field_caption">' . $browse_caption . '</td>';
             $display .= '<td align="left"><select name="' . $browse_field_name . '"><option value="">' . $lang['all'] . '</option>';
             // if ($rental == "yes")
             while (!$recordSet->EOF) {
                 $field_output = $misc->make_db_unsafe($recordSet->fields['listingsdbelements_field_value']);
                 $selected = '';
                 if (isset($_GET[$browse_field_name]) && $_GET[$browse_field_name] == $field_output) {
                     $selected = 'selected="selected"';
                 }
                 $num_type = '';
                 if ($config['configured_show_count'] == 1) {
                     $num_type = $recordSet->fields['num_type'];
                     $num_type = "({$num_type})";
                 }
                 if ($dateFormat == TRUE) {
                     $display .= '<option value="' . $field_output . '" ' . $selected . '>' . date($format, $field_output) . ' ' . $num_type . '</option>';
                 } else {
                     if ($field_type == 'number') {
                         $field_display = $misc->international_num_format($field_output, $config['number_decimals_number_fields']);
                         $display .= '<option value="' . $field_output . '" ' . $selected . '>' . $field_display . ' ' . $num_type . '</option>';
                     } else {
                         $display .= '<option value="' . $field_output . '" ' . $selected . '>' . $field_output . ' ' . $num_type . '</option>';
                     }
                 }
                 $recordSet->MoveNext();
             }
             // end while
             $display .= '</select></td></tr>';
             break;
         case 'null_checkbox':
             $display .= '<tr><td class="searchpage_field_caption">' . $browse_caption . '</td>';
             $display .= '<td align="left">';
             $num_type = '';
             if ($config['configured_show_count'] == 1) {
                 $num_type = $recordSet->fields['num_type'];
                 $num_type = '(' . $num_type . ')';
             }
             $setvalue = '';
             if (isset($_GET[$browse_field_name . '-NULL']) && $_GET[$browse_field_name . '-NULL'] == 1) {
                 $setvalue = 'checked="checked"';
             }
             $display .= '<input type="checkbox" name="' . $browse_field_name . '-NULL" ' . $setvalue . ' value="1" />' . $browse_field_name . ' ' . $lang['null_search'] . ' ' . $num_type . '<br />';
             $display .= '</td></tr>';
             break;
         case 'notnull_checkbox':
             $display .= '<tr><td class="searchpage_field_caption">' . $browse_caption . '</td>';
             $display .= '<td align="left">';
             $num_type = '';
             if ($config['configured_show_count'] == 1) {
                 $num_type = $recordSet->fields['num_type'];
                 $num_type = "({$num_type})";
             }
             $setvalue = '';
             if (isset($_GET[$browse_field_name . '-NOTNULL']) && $_GET[$browse_field_name . '-NOTNULL'] == 1) {
                 $setvalue = 'checked="checked"';
             }
             $display .= '<input type="checkbox" name="' . $browse_field_name . '-NOTNULL" ' . $setvalue . ' value="1" />' . $browse_field_name . ' ' . $lang['notnull_search'] . ' ' . $num_type . '<br />';
             $display .= '</td></tr>';
             break;
         case 'select':
             $display .= '<tr><td class="searchpage_field_caption">' . $browse_caption . '</td>';
             $display .= '<td align="left"><select name="' . $browse_field_name . '[]" size="5" multiple="multiple">';
             $selected = '';
             if (isset($_GET[$browse_field_name]) && is_array($_GET[$browse_field_name])) {
                 if (in_array('', $_GET[$browse_field_name])) {
                     $selected = 'selected="selected"';
                 }
             }
             $display .= '<option value="" ' . $selected . '>' . $lang['all'] . '</option>';
             while (!$recordSet->EOF) {
                 $field_output = $misc->make_db_unsafe($recordSet->fields['listingsdbelements_field_value']);
                 $selected = '';
                 if (isset($_GET[$browse_field_name]) && is_array($_GET[$browse_field_name])) {
                     if (in_array($field_output, $_GET[$browse_field_name])) {
                         $selected = 'selected="selected"';
                     }
                 }
                 $num_type = '';
                 if ($config['configured_show_count'] == 1) {
                     $num_type = $recordSet->fields['num_type'];
                     $num_type = "({$num_type})";
                 }
                 if ($dateFormat == TRUE) {
                     $display .= '<option value="' . $field_output . '" ' . $selected . '>' . date($format, $field_output) . ' ' . $num_type . '</option>';
                 } else {
                     if ($field_type == 'number') {
                         $field_display = $misc->international_num_format($field_output, $config['number_decimals_number_fields']);
                         $display .= '<option value="' . $field_output . '" ' . $selected . '>' . $field_display . ' ' . $num_type . '</option>';
                     } else {
                         $display .= '<option value="' . $field_output . '" ' . $selected . '>' . $field_output . ' ' . $num_type . '</option>';
                     }
                 }
                 $recordSet->MoveNext();
             }
             // end while
             $display .= '</select></td></tr>';
             break;
         case 'select_or':
             $display .= '<tr><td class="searchpage_field_caption">' . $browse_caption . '</td>';
             $display .= '<td align="left"><select name="' . $browse_field_name . '_or[]" size="5" multiple="multiple">';
             $selected = '';
             if (isset($_GET[$browse_field_name]) && is_array($_GET[$browse_field_name])) {
                 if (in_array('', $_GET[$browse_field_name])) {
                     $selected = 'selected="selected"';
                 }
             }
             $display .= '<option value="" ' . $selected . '>' . $lang['all'] . '</option>';
             while (!$recordSet->EOF) {
                 $field_output = $misc->make_db_unsafe($recordSet->fields['listingsdbelements_field_value']);
                 $selected = '';
                 if (isset($_GET[$browse_field_name]) && is_array($_GET[$browse_field_name])) {
                     if (in_array($field_output, $_GET[$browse_field_name])) {
                         $selected = 'selected="selected"';
                     }
                 }
                 $num_type = '';
                 if ($config['configured_show_count'] == 1) {
                     $num_type = $recordSet->fields['num_type'];
                     $num_type = "({$num_type})";
                 }
                 if ($dateFormat == TRUE) {
                     $display .= '<option value="' . $field_output . '" ' . $selected . '>' . date($format, $field_output) . ' ' . $num_type . '</option>';
                 } else {
                     if ($field_type == 'number') {
                         $field_display = $misc->international_num_format($field_output, $config['number_decimals_number_fields']);
                         $display .= '<option value="' . $field_output . '" ' . $selected . '>' . $field_display . ' ' . $num_type . '</option>';
                     } else {
                         $display .= '<option value="' . $field_output . '" ' . $selected . '>' . $field_output . ' ' . $num_type . '</option>';
                     }
                 }
                 $recordSet->MoveNext();
             }
             // end while
             $display .= '</select></td></tr>';
             break;
         case 'checkbox':
             $display .= '<tr><td class="searchpage_field_caption">' . $browse_caption . '</td>';
             $display .= '<td align="left">';
             while (!$recordSet->EOF) {
                 $field_output = $misc->make_db_unsafe($recordSet->fields['listingsdbelements_field_value']);
                 $selected = '';
                 if (isset($_GET[$browse_field_name]) && is_array($_GET[$browse_field_name])) {
                     if (in_array($field_output, $_GET[$browse_field_name])) {
                         $selected = 'checked="checked"';
                     }
                 }
                 $num_type = '';
                 if ($config['configured_show_count'] == 1) {
                     $num_type = $recordSet->fields['num_type'];
                     $num_type = "({$num_type})";
                 }
                 if ($dateFormat == TRUE) {
                     $display .= '<input type="checkbox" name="' . $browse_field_name . '[]" value="' . $field_output . '" ' . $selected . ' />' . date($format, $field_output) . ' ' . $num_type . '';
                     $display .= $config['search_list_separator'];
                 } else {
                     if ($field_type == 'number') {
                         $field_display = $misc->international_num_format($field_output, $config['number_decimals_number_fields']);
                         $display .= '<input type="checkbox" name="' . $browse_field_name . '[]" value="' . $field_output . '" ' . $selected . ' />' . $field_display . ' ' . $num_type . '';
                         $display .= $config['search_list_separator'];
                     } else {
                         $display .= '<input type="checkbox" name="' . $browse_field_name . '[]" value="' . $field_output . '" ' . $selected . ' />' . $field_output . ' ' . $num_type . '';
                         $display .= $config['search_list_separator'];
                     }
                 }
                 $recordSet->MoveNext();
             }
             // end while
             $display .= '</td></tr>';
             break;
         case 'checkbox_or':
             $display .= '<tr><td class="searchpage_field_caption">' . $browse_caption . '</td>';
             $display .= '<td align="left">';
             while (!$recordSet->EOF) {
                 $field_output = $misc->make_db_unsafe($recordSet->fields['listingsdbelements_field_value']);
                 $selected = '';
                 if (isset($_GET[$browse_field_name]) && is_array($_GET[$browse_field_name])) {
                     if (in_array($field_output, $_GET[$browse_field_name])) {
                         $selected = 'checked="checked"';
                     }
                 }
                 $num_type = '';
                 if ($config['configured_show_count'] == 1) {
                     $num_type = $recordSet->fields['num_type'];
                     $num_type = "({$num_type})";
                 }
                 if ($dateFormat == TRUE) {
                     $display .= '<input type="checkbox" name="' . $browse_field_name . '_or[]" value="' . $field_output . '" ' . $selected . ' />' . date($format, $field_output) . ' ' . $num_type . '';
                     $display .= $config['search_list_separator'];
                 } else {
                     if ($field_type == 'number') {
                         $field_display = $misc->international_num_format($field_output, $config['number_decimals_number_fields']);
                         $display .= '<input type="checkbox" name="' . $browse_field_name . '_or[]" value="' . $field_output . '" ' . $selected . ' />' . $field_display . ' ' . $num_type . '';
                         $display .= $config['search_list_separator'];
                     } else {
                         $display .= '<input type="checkbox" name="' . $browse_field_name . '_or[]" value="' . $field_output . '" ' . $selected . ' />' . $field_output . ' ' . $num_type . '';
                         $display .= $config['search_list_separator'];
                     }
                 }
                 $recordSet->MoveNext();
             }
             // end while
             $display .= '</td></tr>';
             break;
         case 'option':
             $display .= '<tr><td class="searchpage_field_caption">' . $browse_caption . '</td>';
             $display .= '<td align="left">';
             while (!$recordSet->EOF) {
                 $field_output = $misc->make_db_unsafe($recordSet->fields['listingsdbelements_field_value']);
                 $selected = '';
                 if (isset($_GET[$browse_field_name]) && $_GET[$browse_field_name] == $field_output) {
                     $selected = 'checked="checked"';
                 }
                 $num_type = '';
                 if ($config['configured_show_count'] == 1) {
                     $num_type = $recordSet->fields['num_type'];
                     $num_type = "({$num_type})";
                 }
                 if ($dateFormat == TRUE) {
                     $display .= '<input type="radio" name="' . $browse_field_name . '" value="' . $field_output . '" ' . $selected . ' />' . date($format, $field_output) . ' ' . $num_type . '';
                     $display .= $config['search_list_separator'];
                 } else {
                     if ($field_type == 'number') {
                         $field_display = $misc->international_num_format($field_output, $config['number_decimals_number_fields']);
                         $display .= '<input type="radio" name="' . $browse_field_name . '" value="' . $field_output . '" ' . $selected . ' />' . $field_display . ' ' . $num_type . '';
                         $display .= $config['search_list_separator'];
                     } else {
                         $display .= '<input type="radio" name="' . $browse_field_name . '" value="' . $field_output . '" ' . $selected . ' />' . $field_output . ' ' . $num_type . '';
                         $display .= $config['search_list_separator'];
                     }
                 }
                 $recordSet->MoveNext();
             }
             // end while
             $display .= '</td></tr>';
             break;
         case 'optionlist':
             $display .= '<tr><td class="searchpage_field_caption">' . $browse_caption . '</td>';
             $display .= '<td align="left"><select name="' . $browse_field_name . '[]" multiple="multiple" size="6">';
             $r = $conn->execute("select listingsformelements_field_elements from " . $config['table_prefix'] . "listingsformelements where listingsformelements_field_name = '{$browse_field_name}'");
             $r = $r->fields['listingsformelements_field_elements'];
             $r = explode('||', $r);
             sort($r);
             foreach ($r as $f) {
                 $selected = '';
                 if (isset($_GET[$browse_field_name]) && is_array($_GET[$browse_field_name])) {
                     if (in_array($f, $_GET[$browse_field_name])) {
                         $selected = 'selected="selected"';
                     }
                 }
                 $f = htmlspecialchars($f, ENT_COMPAT, $config['charset']);
                 $display .= '<option value="' . $f . '" ' . $selected . '>' . $f . '</option>';
             }
             $display .= '</select></td></tr>';
             break;
         case 'optionlist_or':
             $display .= '<tr><td class="searchpage_field_caption">' . $browse_caption . '</td>';
             $display .= '<td align="left"><select name="' . $browse_field_name . '_or[]" multiple="multiple" size="6">';
             $r = $conn->execute("select listingsformelements_field_elements from " . $config['table_prefix'] . "listingsformelements where listingsformelements_field_name = '{$browse_field_name}'");
             $r = $r->fields['listingsformelements_field_elements'];
             $r = explode('||', $r);
             sort($r);
             foreach ($r as $f) {
                 $selected = '';
                 if (isset($_GET[$browse_field_name]) && is_array($_GET[$browse_field_name])) {
                     if (in_array($f, $_GET[$browse_field_name])) {
                         $selected = 'selected="selected"';
                     }
                 }
                 $f = htmlspecialchars($f, ENT_COMPAT, $config['charset']);
                 $display .= '<option value="' . $f . '" ' . $selected . '>' . $f . '</option>';
             }
             $display .= '</select></td></tr>';
             break;
         case 'fcheckbox':
             $display .= '<tr><td class="searchpage_field_caption">' . $browse_caption . '</td>';
             $display .= '<td align="left">';
             $r = $conn->Execute("select listingsformelements_field_elements from " . $config['table_prefix'] . "listingsformelements where listingsformelements_field_name = '{$browse_field_name}'");
             $r = $r->fields['listingsformelements_field_elements'];
             $r = explode('||', $r);
             sort($r);
             foreach ($r as $f) {
                 $selected = '';
                 if (isset($_GET[$browse_field_name]) && is_array($_GET[$browse_field_name])) {
                     if (in_array($f, $_GET[$browse_field_name])) {
                         $selected = 'checked="checked"';
                     }
                 }
                 $f = htmlspecialchars($f, ENT_COMPAT, $config['charset']);
                 $display .= '<input type="checkbox" name="' . $browse_field_name . '[]" value="' . $f . '" ' . $selected . ' />' . $f . '';
                 $display .= $config['search_list_separator'];
             }
             $display .= '</td></tr>';
             break;
         case 'fcheckbox_or':
             $display .= '<tr><td class="searchpage_field_caption">' . $browse_caption . '</td>';
             $display .= '<td align="left">';
             $r = $conn->Execute("select listingsformelements_field_elements from " . $config['table_prefix'] . "listingsformelements where listingsformelements_field_name = '{$browse_field_name}'");
             $r = $r->fields['listingsformelements_field_elements'];
             $r = explode('||', $r);
             sort($r);
             foreach ($r as $f) {
                 $selected = '';
                 if (isset($_GET[$browse_field_name]) && is_array($_GET[$browse_field_name])) {
                     if (in_array($f, $_GET[$browse_field_name])) {
                         $selected = 'checked="checked"';
                     }
                 }
                 $f = htmlspecialchars($f, ENT_COMPAT, $config['charset']);
                 $display .= '<input type="checkbox" name="' . $browse_field_name . '_or[]" value="' . $f . '" ' . $selected . ' />' . $f . '';
                 $display .= $config['search_list_separator'];
             }
             $display .= '</td></tr>';
             break;
         case 'fpulldown':
             $display .= '<tr><td class="searchpage_field_caption">' . $browse_caption . '</td>';
             $display .= '<td align="left">';
             $display .= '<select name="' . $browse_field_name . '"><option value="">' . $lang['all'] . '</option>';
             $r = $conn->Execute("select listingsformelements_field_elements from " . $config['table_prefix'] . "listingsformelements  where listingsformelements_field_name = '{$browse_field_name}'");
             $r = $r->fields['listingsformelements_field_elements'];
             $r = explode('||', $r);
             sort($r);
             foreach ($r as $f) {
                 $selected = '';
                 if (isset($_GET[$browse_field_name]) && $_GET[$browse_field_name] == $f) {
                     $selected = 'selected="selected"';
                 }
                 $f = htmlspecialchars($f, ENT_COMPAT, $config['charset']);
                 $display .= '<option value="' . $f . '" ' . $selected . '>' . $f . '</option>';
             }
             $display .= '</select></td></tr>';
             break;
         case 'daterange':
             static $js_added;
             $display = '';
             if (!$js_added) {
                 // add date
                 $display .= '<script type="text/javascript" src="' . $config['baseurl'] . '/dateformat.js"></script>' . "\r\n";
                 $js_added = true;
             }
             $display .= '<tr><td class="searchpage_field_caption">' . $browse_caption . '</td><td align="left">';
             $setvalue = '';
             if (isset($_GET[$browse_field_name . '-mindate']) && $_GET[$browse_field_name . '-mindate'] != '') {
                 $f = htmlspecialchars($_GET[$browse_field_name . '-mindate'], ENT_COMPAT, $config['charset']);
                 $setvalue = 'value="' . $f . '"';
             }
             $display .= $lang['from'] . ' <input type="text" name="' . $browse_field_name . '-mindate" ' . $setvalue . '  onFocus="javascript:vDateType=\'' . $config['date_format'] . '\'" onKeyUp="DateFormat(this,this.value,event,false,\'' . $config['date_format'] . '\')" onBlur="DateFormat(this,this.value,event,true,\'' . $config['date_format'] . '\')" /> (' . $config["date_format_long"] . ')<br />';
             $setvalue = '';
             if (isset($_GET[$browse_field_name . '-maxdate']) && $_GET[$browse_field_name . '-maxdate'] != '') {
                 $f = htmlspecialchars($_GET[$browse_field_name . '-maxdate'], ENT_COMPAT, $config['charset']);
                 $setvalue = 'value="' . $f . '"';
             }
             $display .= $lang['to'] . '<input type="text" name="' . $browse_field_name . '-maxdate" ' . $setvalue . '  onFocus="javascript:vDateType=\'' . $config['date_format'] . '\'" onKeyUp="DateFormat(this,this.value,event,false,\'' . $config['date_format'] . '\')" onBlur="DateFormat(this,this.value,event,true,\'' . $config['date_format'] . '\')" /> (' . $config["date_format_long"] . ')';
             $display .= '</td></tr>';
             break;
         case 'singledate':
             static $js_added;
             $display = '';
             if (!$js_added) {
                 // add date
                 $display .= '<script type="text/javascript" src="' . $config['baseurl'] . '/dateformat.js"></script>' . "\r\n";
                 $js_added = true;
             }
             $display .= '<tr><td class="searchpage_field_caption">' . $browse_caption . '</td><td align="left">';
             $setvalue = '';
             if (isset($_GET[$browse_field_name . '-date']) && $_GET[$browse_field_name . '-date'] != '') {
                 $f = htmlspecialchars($_GET[$browse_field_name . '-date'], ENT_COMPAT, $config['charset']);
                 $setvalue = 'value="' . $f . '"';
             }
             $display .= ' <input type="text" name="' . $browse_field_name . '-date" ' . $setvalue . ' onFocus="javascript:vDateType=\'' . $config['date_format'] . '\'" onKeyUp="DateFormat(this,this.value,event,false,\'' . $config['date_format'] . '\')" onBlur="DateFormat(this,this.value,event,true,\'' . $config['date_format'] . '\')" /> (' . $config["date_format_long"] . ')';
             $display .= '</td></tr>';
             break;
         case 'minmax':
             $display = '';
             $display .= '<tr><td class="searchpage_field_caption">' . $browse_caption . '</td><td align="left">';
             $sql = "SELECT listingsformelements_field_type, listingsformelements_search_step FROM " . $config['table_prefix'] . "listingsformelements WHERE listingsformelements_field_name = '{$browse_field_name}'";
             $rsStepLookup = $conn->Execute($sql);
             if (!$rsStepLookup) {
                 $misc->log_error($sql);
             }
             // Get max, min and step
             $step = $rsStepLookup->fields['listingsformelements_search_step'];
             $field_type = $rsStepLookup->fields['listingsformelements_field_type'];
             unset($rsStepLookup);
             //Manual Step Values
             if (strpos($step, '|') !== FALSE) {
                 $step_array = explode('|', $step);
                 if (!isset($step_array[0]) || !isset($step_array[1])) {
                     //Bad Step Array Fail
                     exit;
                 }
                 $min = intval($step_array[0]);
                 $max = intval($step_array[1]);
                 if (isset($step_array[2])) {
                     $step = intval($step_array[2]);
                 } else {
                     $step = 0;
                 }
             } else {
                 if (empty($class_sql)) {
                     $field_list = $config['table_prefix'] . "listingsdbelements, " . $config['table_prefix'] . "listingsdb WHERE\n\t\t\t\t\t\t\t" . $config['table_prefix'] . "listingsdbelements.listingsdb_id = " . $config['table_prefix'] . "listingsdb.listingsdb_id";
                 } else {
                     $field_list = $config['table_prefix'] . "listingsdbelements, " . $config['table_prefix'] . "listingsdb, " . $config['table_prefix_no_lang'] . "classlistingsdb\n\t\t\t\t\t\t\t WHERE " . $config['table_prefix'] . "listingsdbelements.listingsdb_id = " . $config['table_prefix'] . "listingsdb.listingsdb_id AND\n\t\t\t\t\t\t\t " . $config['table_prefix_no_lang'] . "classlistingsdb.listingsdb_id = " . $config['table_prefix'] . "listingsdb.listingsdb_id";
                 }
                 global $db_type;
                 if ($db_type == 'mysql') {
                     if ($field_type == 'decimal') {
                         $max = $conn->Execute("select max(listingsdbelements_field_value+0) as max  FROM {$field_list} AND listingsdbelements_field_name = '{$browse_field_name}'" . $class_sql);
                         $max = $max->fields['max'];
                         $min = $conn->Execute("select min(listingsdbelements_field_value+0) as min  FROM {$field_list} AND listingsdbelements_field_name = '{$browse_field_name}'" . $class_sql);
                         $min = $min->fields['min'];
                     } else {
                         $max = $conn->Execute("select max(CAST(listingsdbelements_field_value as signed)) as max  FROM {$field_list} AND listingsdbelements_field_name = '{$browse_field_name}'" . $class_sql);
                         $max = $max->fields['max'];
                         $min = $conn->Execute("select min(CAST(listingsdbelements_field_value as signed)) as min  FROM {$field_list} AND listingsdbelements_field_name = '{$browse_field_name}'" . $class_sql);
                         $min = $min->fields['min'];
                         if ($field_type == 'price') {
                             $min = substr_replace($min, '000', -3);
                         }
                     }
                 } else {
                     if ($field_type == 'decimal') {
                         $max = $conn->Execute("select max(listingsdbelements_field_value+0) as max  FROM {$field_list} AND listingsdbelements_field_name = '{$browse_field_name}'" . $class_sql);
                         $max = $max->fields['max'];
                         $min = $conn->Execute("select min(listingsdbelements_field_value+0) as min  FROM {$field_list} AND listingsdbelements_field_name = '{$browse_field_name}'" . $class_sql);
                         $min = $min->fields['min'];
                     } else {
                         $max = $conn->Execute("select max(CAST(listingsdbelements_field_value as int4)) as max  FROM {$field_list} AND listingsdbelements_field_name = '{$browse_field_name}'" . $class_sql);
                         $max = $max->fields['max'];
                         $min = $conn->Execute("select min(CAST(listingsdbelements_field_value as int4)) as min  FROM {$field_list} AND listingsdbelements_field_name = '{$browse_field_name}'" . $class_sql);
                         $min = $min->fields['min'];
                         if ($field_type == 'price') {
                             $min = substr_replace($min, '000', -3);
                         }
                     }
                 }
             }
             if ($step == 0) {
                 if ($max > $min) {
                     $step = ceil(($max - $min) / 10);
                 } else {
                     $step = ceil($max / 10);
                 }
             }
             if ($config["search_step_max"] >= '1') {
                 $step_val = ($max - $min) / $config["search_step_max"];
                 if ($step_val > $step) {
                     $step = $step_val;
                 }
             }
             $display .= '<select name="' . $browse_field_name . '-min">' . "\n";
             $options = '<option value="">' . $lang['all'] . '</option>' . "\n";
             if ($field_type == 'price') {
                 $i = $min;
                 while ($i < $max) {
                     $z = $misc->international_num_format($i, $config['number_decimals_price_fields']);
                     $z = $misc->money_formats($z);
                     $selected = '';
                     if (isset($_GET[$browse_field_name . '-min']) && $_GET[$browse_field_name . '-min'] == $i) {
                         $selected = 'selected="selected"';
                     }
                     $options .= '<option value="' . $i . '" ' . $selected . '>' . $z . '</option>';
                     $i += $step;
                 }
                 $z = $misc->international_num_format($max, $config['number_decimals_price_fields']);
                 $z = $misc->money_formats($z);
                 $selected = '';
                 if (isset($_GET[$browse_field_name . '-min']) && $_GET[$browse_field_name . '-min'] == $i) {
                     $selected = 'selected="selected"';
                 }
                 $options .= '<option value="' . $max . '" ' . $selected . '>' . $z . '</option>';
             } else {
                 $i = $min;
                 while ($i < $max) {
                     $selected = '';
                     if (isset($_GET[$browse_field_name . '-min']) && $_GET[$browse_field_name . '-min'] == $i) {
                         $selected = 'selected="selected"';
                     }
                     $options .= '<option ' . $selected . '>' . $i . '</option>';
                     $i += $step;
                 }
                 $selected = '';
                 if (isset($_GET[$browse_field_name . '-min']) && $_GET[$browse_field_name . '-min'] == $max) {
                     $selected = 'selected="selected"';
                 }
                 $options .= '<option ' . $selected . '>' . $max . '</option>';
             }
             $options .= '</select>';
             $display .= $options . ' ' . $lang['to'] . '<br />';
             $options = '<option value="">' . $lang['all'] . '</option>' . "\n";
             if ($field_type == 'price') {
                 $i = $min;
                 while ($i < $max) {
                     $z = $misc->international_num_format($i, $config['number_decimals_price_fields']);
                     $z = $misc->money_formats($z);
                     $selected = '';
                     if (isset($_GET[$browse_field_name . '-max']) && $_GET[$browse_field_name . '-max'] == $i) {
                         $selected = 'selected="selected"';
                     }
                     $options .= '<option value="' . $i . '" ' . $selected . '>' . $z . '</option>';
                     $i += $step;
                 }
                 $z = $misc->international_num_format($max, $config['number_decimals_price_fields']);
                 $z = $misc->money_formats($z);
                 $selected = '';
                 if (isset($_GET[$browse_field_name . '-max']) && $_GET[$browse_field_name . '-max'] == $i) {
                     $selected = 'selected="selected"';
                 }
                 $options .= '<option value="' . $max . '" ' . $selected . '>' . $z . '</option>';
             } else {
                 $i = $min;
                 while ($i < $max) {
                     $selected = '';
                     if (isset($_GET[$browse_field_name . '-max']) && $_GET[$browse_field_name . '-max'] == $i) {
                         $selected = 'selected="selected"';
                     }
                     $options .= '<option ' . $selected . '>' . $i . '</option>';
                     $i += $step;
                 }
                 $selected = '';
                 if (isset($_GET[$browse_field_name . '-max']) && $_GET[$browse_field_name . '-max'] == $max) {
                     $selected = 'selected="selected"';
                 }
                 $options .= '<option ' . $selected . '>' . $max . '</option>';
             }
             $options .= '</select>';
             $display .= '<select name="' . $browse_field_name . '-max">' . $options . '</td></tr>';
             break;
     }
     // End switch ($searchbox_type)
     $time2 = $misc->getmicrotime();
     $render_time = sprintf('%.3f', $time2 - $time);
     $display .= "\r\n" . '<!--Search Box ' . $browse_field_name . ' Render Time ' . $render_time . ' -->' . "\r\n";
     return $display;
 }
 function renderSingleListingItem($userID, $name, $display_type = 'both')
 {
     // Display_type - Sets what should be returned.
     // both - Displays both the caption and the formated value
     // value - Displays just the formated value
     // rawvalue - Displays just the raw value
     // caption - Displays only the captions
     global $conn, $config;
     require_once $config['basepath'] . '/include/misc.inc.php';
     $misc = new misc();
     $display = '';
     $formDB = user::determine_user_formtype($userID);
     $userID = $misc->make_db_safe($userID);
     $name = $misc->make_db_safe($name);
     $sql = "SELECT userdbelements_field_value, " . $formDB . "_id, " . $formDB . "_field_type,\n\t\t\t" . $formDB . "_field_caption FROM " . $config['table_prefix'] . "userdbelements, " . $config['table_prefix'] . $formDB . " WHERE ((userdb_id = {$userID}) AND\n\t\t\t(" . $formDB . "_field_name = userdbelements_field_name) AND (userdbelements_field_name = {$name}))";
     $recordSet = $conn->Execute($sql);
     if ($recordSet === false) {
         $misc->log_error($sql);
     }
     while (!$recordSet->EOF) {
         $field_value = $misc->make_db_unsafe($recordSet->fields['userdbelements_field_value']);
         $field_type = $misc->make_db_unsafe($recordSet->fields[$formDB . '_field_type']);
         $form_elements_id = $misc->make_db_unsafe($recordSet->fields[$formDB . '_id']);
         if (!isset($_SESSION["users_lang"])) {
             // Hold empty string for translation fields, as we are workgin with teh default lang
             $field_caption = $misc->make_db_unsafe($recordSet->fields[$formDB . '_field_caption']);
         } else {
             $lang_sql = "SELECT " . $formDB . "_field_caption FROM " . $config['lang_table_prefix'] . $formDB . " WHERE " . $formDB . "_id = {$form_elements_id}";
             $lang_recordSet = $conn->Execute($lang_sql);
             if ($lang_recordSet === false) {
                 $misc->log_error($lang_sql);
             }
             $field_caption = $misc->make_db_unsafe($lang_recordSet->fields[$formDB . '_field_caption']);
         }
         if ($field_value != "") {
             if ($display_type === 'both' || $display_type === 'caption') {
                 $display .= '<span class="field_caption">' . $field_caption . '</span>';
             }
             if ($display_type == 'both') {
                 $display .= ':&nbsp;';
             }
             if ($display_type === 'both' || $display_type === 'value') {
                 if ($field_type == "select-multiple" or $field_type == "option" or $field_type == "checkbox") {
                     // handle field types with multiple options
                     // $display .= "<br /><b>$field_caption</b>";
                     $feature_index_list = explode("||", $field_value);
                     sort($feature_index_list);
                     foreach ($feature_index_list as $feature_list_item) {
                         $display .= "<br />{$feature_list_item}";
                     }
                     // end while
                 } elseif ($field_type == "price") {
                     $money_amount = $misc->international_num_format($field_value, $config['number_decimals_price_fields']);
                     $display .= $misc->money_formats($money_amount);
                 } elseif ($field_type == "number") {
                     $display .= $misc->international_num_format($field_value, $config['number_decimals_number_fields']);
                 } elseif ($field_type == "url") {
                     $display .= "<a href=\"{$field_value}\" onclick=\"window.open(this.href,'_blank','location=1,resizable=1,status=1,scrollbars=1,toolbar=1,menubar=1');return false\">{$field_value}</a>";
                 } elseif ($field_type == "email") {
                     $display .= "<a href=\"mailto:{$field_value}\">{$field_value}</a>";
                 } elseif ($field_type == "text" or $field_type == "textarea") {
                     if ($config['add_linefeeds'] === "1") {
                         $field_value = nl2br($field_value);
                         //replace returns with <br />
                     }
                     // end if
                     $display .= $field_value;
                 } elseif ($field_type == "date") {
                     if ($config['date_format'] == 1) {
                         $format = "m/d/Y";
                     } elseif ($config['date_format'] == 2) {
                         $format = "Y/d/m";
                     } elseif ($config['date_format'] == 3) {
                         $format = "d/m/Y";
                     }
                     $field_value = date($format, "{$field_value}");
                     $display .= $field_value;
                 } else {
                     $display .= $field_value;
                 }
                 // end else
             }
             if ($display_type === 'rawvalue') {
                 $display .= $field_value;
             }
         }
         // end if ($field_value != "")
         $recordSet->MoveNext();
     }
     // end while
     return $display;
 }
Example #4
0
function init_map2()
{
    // Need access to common path information, javascript variable, and current connection
    global $config, $lang, $conn, $jscript;
    // Get access to database functions
    require_once $config['basepath'] . '/include/misc.inc.php';
    $misc = new misc();
    $listingID = 6;
    // Set standard map control arrays
    $map_type_[1] = 'NORMAL_MAP';
    $map_type_[2] = 'SATELLITE_MAP';
    $map_type_[3] = 'HYBRID_MAP';
    $map_control_[1] = 'none';
    $map_control_[2] = 'LargeMapControl';
    $map_control_[3] = 'SmallMapControl';
    $map_control_[4] = 'SmallZoomControl';
    $map_anchor[1] = 'TOP_LEFT';
    $map_anchor[2] = 'TOP_RIGHT';
    $map_anchor[3] = 'BOTTOM_LEFT';
    $map_anchor[4] = 'BOTTOM_RIGHT';
    $type_control_[1] = 'none';
    $type_control_[2] = 'MapTypeControl';
    $scale_control_[1] = 'none';
    $scale_control_[2] = 'ScaleControl';
    $overview_control_[1] = 'none';
    $overview_control_[2] = 'OverviewMapControl';
    // Set addon vars from database
    $sql = 'SELECT * FROM ' . $config['table_prefix_no_lang'] . 'addon_googlemap';
    $recordSet = $conn->Execute($sql);
    if ($recordSet === false) {
        $misc->log_error($sql);
    }
    $api_version = $misc->make_db_unsafe($recordSet->fields['api_version']);
    $api_key = $misc->make_db_unsafe($recordSet->fields['api_key']);
    $popup = $misc->make_db_unsafe($recordSet->fields['popup']);
    $search_dist = $misc->make_db_unsafe($recordSet->fields['search_dist']);
    $initial_zoom_level = '13';
    $map_type = $misc->make_db_unsafe($recordSet->fields['map_type']);
    $map_height = $misc->make_db_unsafe($recordSet->fields['map_height']);
    $map_width = $misc->make_db_unsafe($recordSet->fields['map_width']);
    $info_bubble_template = $misc->make_db_unsafe($recordSet->fields['info_bubble_template']);
    $icon_image = $misc->make_db_unsafe($recordSet->fields['icon_image']);
    $icon_image_other = $misc->make_db_unsafe($recordSet->fields['icon_image_other']);
    $icon_shadow = $misc->make_db_unsafe($recordSet->fields['icon_shadow']);
    $icon_iconSize_x = $misc->make_db_unsafe($recordSet->fields['icon_iconSize_x']);
    $icon_iconSize_y = $misc->make_db_unsafe($recordSet->fields['icon_iconSize_y']);
    $icon_shadowSize_x = $misc->make_db_unsafe($recordSet->fields['icon_shadowSize_x']);
    $icon_shadowSize_y = $misc->make_db_unsafe($recordSet->fields['icon_shadowSize_y']);
    $icon_iconAnchor_x = $misc->make_db_unsafe($recordSet->fields['icon_iconAnchor_x']);
    $icon_iconAnchor_y = $misc->make_db_unsafe($recordSet->fields['icon_iconAnchor_y']);
    $icon_infoWindowAnchor_x = $misc->make_db_unsafe($recordSet->fields['icon_infoWindowAnchor_x']);
    $icon_infoWindowAnchor_y = $misc->make_db_unsafe($recordSet->fields['icon_infoWindowAnchor_y']);
    $map_control_type = $misc->make_db_unsafe($recordSet->fields['map_control_type']);
    $map_control_anchor = $misc->make_db_unsafe($recordSet->fields['map_control_anchor']);
    $map_control_padding_x = $misc->make_db_unsafe($recordSet->fields['map_control_padding_x']);
    $map_control_padding_y = $misc->make_db_unsafe($recordSet->fields['map_control_padding_y']);
    $type_control = $misc->make_db_unsafe($recordSet->fields['type_control']);
    $type_control_anchor = $misc->make_db_unsafe($recordSet->fields['type_control_anchor']);
    $type_padding_x = $misc->make_db_unsafe($recordSet->fields['type_padding_x']);
    $type_padding_y = $misc->make_db_unsafe($recordSet->fields['type_padding_y']);
    $scale_control = $misc->make_db_unsafe($recordSet->fields['scale_control']);
    $scale_control_anchor = $misc->make_db_unsafe($recordSet->fields['scale_control_anchor']);
    $scale_padding_x = $misc->make_db_unsafe($recordSet->fields['scale_padding_x']);
    $scale_padding_y = $misc->make_db_unsafe($recordSet->fields['scale_padding_y']);
    $overview_control = $misc->make_db_unsafe($recordSet->fields['overview_control']);
    $overview_control_anchor = $misc->make_db_unsafe($recordSet->fields['overview_control_anchor']);
    $overview_padding_x = $misc->make_db_unsafe($recordSet->fields['overview_padding_x']);
    $overview_padding_y = $misc->make_db_unsafe($recordSet->fields['overview_padding_y']);
    // grab latitude of current listing
    $sql = "SELECT listingsdbelements_field_value FROM " . $config['table_prefix'] . "listingsdbelements WHERE (listingsdb_id = {$listingID} AND listingsdbelements_field_name = 'latitude')";
    $recordSet = $conn->Execute($sql);
    if ($recordSet === false) {
        $misc->log_error($ssql);
    }
    $latitude = $misc->make_db_unsafe($recordSet->fields['listingsdbelements_field_value']);
    // grab longitude of current listing
    $sql = "SELECT listingsdbelements_field_value FROM " . $config['table_prefix'] . "listingsdbelements WHERE (listingsdb_id = {$listingID} AND listingsdbelements_field_name = 'longitude')";
    $recordSet = $conn->Execute($sql);
    if ($recordSet === false) {
        $misc->log_error($sql);
    }
    $longitude = $misc->make_db_unsafe($recordSet->fields['listingsdbelements_field_value']);
    $lat_dist = $search_dist / 69.0;
    $long_dist = $search_dist / abs(cos($latitude) * 69.17);
    // select all active listings whose latitude is within the search distance of the current listing's latitude
    $listingsdb = $config['table_prefix'] . "listingsdb";
    $listingsdbelements = $config['table_prefix'] . "listingsdbelements";
    $sql = "SELECT " . $listingsdbelements . ".* FROM {$listingsdbelements}, {$listingsdb} WHERE " . $listingsdb . ".listingsdb_id = " . $listingsdbelements . ".listingsdb_id AND " . $listingsdb . ".listingsdb_active = 'yes' AND (" . $listingsdbelements . ".listingsdbelements_field_name = 'latitude' AND ABS(" . $listingsdbelements . ".listingsdbelements_field_value - {$latitude}) < {$lat_dist})";
    // don't select expired listings if we're filtering expired listings.
    if ($config['use_expiration'] == 1) {
        $sql .= " AND (" . $listingsdb . ".listingsdb_expiration > " . $conn->DBDate(time()) . ")";
    }
    $recordSet = $conn->Execute($sql);
    if ($recordSet === false) {
        $misc->log_error($sql);
    }
    // If there are any properties within dist of listing latitude
    if ($recordSet != false) {
        $count = 0;
        // Loop through the entire set of properties found
        while (!$recordSet->EOF()) {
            $pid = $misc->make_db_unsafe($recordSet->fields['listingsdb_id']);
            // If the current property is the current listing, handle it separately
            // in order to center map on it.
            if ($pid == $listingID) {
                // Get the listing's thumbnail image.
                $irec = $conn->Execute("SELECT listingsimages_thumb_file_name FROM " . $config['table_prefix'] . "listingsimages WHERE listingsdb_id = {$pid} AND listingsimages_rank = 1");
                $fn = $misc->make_db_unsafe($irec->fields['listingsimages_thumb_file_name']);
                $ilink = $config['baseurl'] . "/images/listing_photos/" . $fn;
                // Gather the listing elements fields that will be used to generate
                // the html for the pop-up bubble
                $pinfo = $conn->Execute("SELECT listingsdbelements_field_name, listingsdbelements_field_value FROM " . $config['table_prefix'] . "listingsdbelements WHERE listingsdbelements_field_name IN ('address','city','state','zip','price') AND listingsdb_id = {$pid}");
                // Take the field information from the result set.
                // This is kind of kludgy - need to try to find either a better way
                //  of doing this, or use individual db calls to get fields.
                // Need to determine whether db calls are faster than php.
                while (!$pinfo->EOF()) {
                    switch ($pinfo->fields['listingsdbelements_field_name']) {
                        case 'address':
                            $address = $misc->make_db_unsafe($pinfo->fields['listingsdbelements_field_value']);
                            break;
                        case 'city':
                            $city = $misc->make_db_unsafe($pinfo->fields['listingsdbelements_field_value']);
                            break;
                        case 'state':
                            $state = $misc->make_db_unsafe($pinfo->fields['listingsdbelements_field_value']);
                            break;
                        case 'zip':
                            $zip = $misc->make_db_unsafe($pinfo->fields['listingsdbelements_field_value']);
                            break;
                        case 'price':
                            $price = $misc->money_formats($misc->international_num_format($misc->make_db_unsafe($pinfo->fields['listingsdbelements_field_value']), $config['number_decimals_price_fields']));
                            break;
                    }
                    // switch
                    $pinfo->MoveNext();
                }
                // while
                // Grab the listing title for the pop-up bubble
                $pinfo2 = $conn->Execute("SELECT listingsdb_title FROM " . $config['table_prefix'] . "listingsdb WHERE listingsdb_id = {$pid}");
                $title = $misc->make_db_unsafe($pinfo2->fields['listingsdb_title']);
                // Generate the html for the Google Map pop-up information bubble for this property.
                // *** Change this to code that pulls the html from a template file. ***
                $link = '<a href="' . $config['baseurl'] . '/index.php?action=listingview&listingID=' . $pid . '">';
                $gmhtml = "'" . '<table><tr><td align="center"><b>' . $link . $title . ' </a></b></td></tr><tr><td>';
                $gmhtml .= $link . '<img src="' . $ilink . '" altd="no image"></img></a>';
                $gmhtml .= '</td><td><b>Listing Price: ' . $price . '<br><br>Property Address:</b><br>' . $address . '<br>' . $city . ', ' . $state . ' ' . $zip . '</td></tr></table>' . "'";
                // Save the coordinates and html for the center point on the map
                $centerpoint['latitude'] = $latitude;
                $centerpoint['longitude'] = $longitude;
                $centerpoint['html'] = $gmhtml;
            } else {
                // Get the coordinates of this data point
                $py = $misc->make_db_unsafe($recordSet->fields['listingsdbelements_field_value']);
                $prec = $conn->Execute("SELECT * FROM " . $config['table_prefix'] . "listingsdbelements WHERE listingsdbelements_field_name = 'longitude' AND listingsdb_id = {$pid}");
                $px = $misc->make_db_unsafe($prec->fields['listingsdbelements_field_value']);
                // Add this property if its longitude is less than the search distance from
                //  the current listing's.
                if (abs($px - $longitude) < $long_dist) {
                    // Get the listing's thumbnail image.
                    $irec = $conn->Execute("SELECT listingsimages_thumb_file_name FROM " . $config['table_prefix'] . "listingsimages WHERE listingsdb_id = {$pid} AND listingsimages_rank = 1");
                    $fn = $misc->make_db_unsafe($irec->fields['listingsimages_thumb_file_name']);
                    $ilink = $config['baseurl'] . "/images/listing_photos/" . $fn;
                    // Gather the listing elements fields that will be used to generate
                    // the html for the pop-up bubble
                    $pinfo = $conn->Execute("SELECT listingsdbelements_field_name, listingsdbelements_field_value FROM " . $config['table_prefix'] . "listingsdbelements WHERE listingsdbelements_field_name IN ('address','city','state','zip','price') AND listingsdb_id = {$pid}");
                    // Take the field information from the result set.
                    // This is kind of kludgy - need to try to find either a better way
                    //  of doing this, or use individual db calls to get fields.
                    // Need to determine whether db calls are faster than php.
                    while (!$pinfo->EOF()) {
                        switch ($pinfo->fields['listingsdbelements_field_name']) {
                            case 'address':
                                $address = $misc->make_db_unsafe($pinfo->fields['listingsdbelements_field_value']);
                                break;
                            case 'city':
                                $city = $misc->make_db_unsafe($pinfo->fields['listingsdbelements_field_value']);
                                break;
                            case 'state':
                                $state = $misc->make_db_unsafe($pinfo->fields['listingsdbelements_field_value']);
                                break;
                            case 'zip':
                                $zip = $misc->make_db_unsafe($pinfo->fields['listingsdbelements_field_value']);
                                break;
                            case 'price':
                                $price = $misc->money_formats($misc->international_num_format($misc->make_db_unsafe($pinfo->fields['listingsdbelements_field_value']), $config['number_decimals_price_fields']));
                                break;
                        }
                        //switch
                        $pinfo->MoveNext();
                    }
                    // while
                    // Grab the listing title for the pop-up bubble
                    $pinfo2 = $conn->Execute("SELECT listingsdb_title FROM " . $config['table_prefix'] . "listingsdb WHERE listingsdb_id = {$pid}");
                    $title = $misc->make_db_unsafe($pinfo2->fields['listingsdb_title']);
                    // Generate the html for the Google Map pop-up information bubble for this property.
                    // *** Change this to code that pulls the html from a template file. ***
                    $link = '<a href="' . $config['baseurl'] . '/index.php?action=listingview&listingID=' . $pid . '">';
                    $gmhtml = "'" . '<table cellpadding="5"><tr><td align="center"><b>' . $link . $title . ' </a></b></td></tr>';
                    $gmhtml .= '<tr><td><div class="thumbnail">' . $link . '<img src="' . $ilink . '" alt="no image"></img></a></div></td>';
                    $gmhtml .= '<td><b>Listing Price: ' . $price . '<br><br>Property Address:</b><br>' . $address . '<br>' . $city . ', ' . $state . ' ' . $zip . '</td></tr></table>' . "'";
                    // Save the coordinates and html for this data point in an array
                    $otherpoint[$count]['latitude'] = $py;
                    $otherpoint[$count]['longitude'] = $px;
                    $otherpoint[$count++]['html'] = $gmhtml;
                }
                // if
            }
            // else
            $recordSet->MoveNext();
        }
        // while
    }
    // end If there are any properties within dist of listing latitude
    // Generate the javascript for the map page.
    // This all goes in the header block
    $gscript .= '<style type="text/css">' . "\n";
    $gscript .= '	v\\:* {' . "\n";
    $gscript .= '		behavior:url(#default#VML);' . "\n";
    $gscript .= '	}' . "\n";
    $gscript .= '</style>' . "\n";
    // Set the script source and api key
    //  Note that we use v=2 even if the api_version is set to 1.  The
    //	Google API documentation states that backward compatibility should
    //	be maintained in v2, but using v=1 may break at any time.  Setting
    //	api_version to 1 will use the old GMap class and associated methods.
    $gscript .= '<script src="http://maps.google.com/maps?file=api&v=2&key=' . $api_key . '" type="text/javascript"></script>' . "\n";
    $gscript .= '<script type="text/javascript">' . "\n";
    // Set the basic map properties
    $gscript .= '//<![CDATA[' . "\n" . "\n";
    $gscript .= 'function onLoad() {' . "\n";
    $gscript .= '	// The Basics' . "\n";
    $gscript .= '	//' . "\n";
    $gscript .= '	// Taken more or less from the google API examples and modified to fit' . "\n";
    $gscript .= '	var icon = new GIcon();' . "\n";
    $gscript .= '	icon.image = "' . $config["baseurl"] . '/' . $icon_image_other . '";' . "\n";
    $gscript .= '	icon.shadow = "' . $config["baseurl"] . '/' . $icon_shadow . '";' . "\n";
    $gscript .= '	icon.iconSize = new GSize(' . $icon_iconSize_x . ', ' . $icon_iconSize_y . ');' . "\n";
    $gscript .= '	icon.shadowSize = new GSize(' . $icon_shadowSize_x . ', ' . $icon_shadowSize_y . ');' . "\n";
    $gscript .= '	icon.iconAnchor = new GPoint(' . $icon_iconAnchor_x . ', ' . $icon_iconAnchor_y . ');' . "\n";
    $gscript .= '	icon.infoWindowAnchor = new GPoint(' . $icon_infoWindowAnchor_x . ', ' . $icon_infoWindowAnchor_y . ');' . "\n";
    $gscript .= '	var cicon = new GIcon();' . "\n";
    $gscript .= '	cicon.image = "' . $config["baseurl"] . '/' . $icon_image . '";' . "\n";
    $gscript .= '	cicon.shadow = "' . $config["baseurl"] . '/' . $icon_shadow . '";' . "\n";
    $gscript .= '	cicon.iconSize = new GSize(' . $icon_iconSize_x . ', ' . $icon_iconSize_y . ');' . "\n";
    $gscript .= '	cicon.shadowSize = new GSize(' . $icon_shadowSize_x . ', ' . $icon_shadowSize_y . ');' . "\n";
    $gscript .= '	cicon.iconAnchor = new GPoint(' . $icon_iconAnchor_x . ', ' . $icon_iconAnchor_y . ');' . "\n";
    $gscript .= '	cicon.infoWindowAnchor = new GPoint(' . $icon_infoWindowAnchor_x . ', ' . $icon_infoWindowAnchor_y . ');' . "\n";
    if ($api_version == 1) {
        $gscript .= '	var map = new GMap(document.getElementById("map"));' . "\n";
        $gscript .= '	map.setMapType(G_' . $map_type_[$map_type] . ');' . "\n";
        $gscript .= '	map.centerAndZoom(new GPoint(' . $centerpoint['longitude'] . ',' . $centerpoint['latitude'] . '),' . $initial_zoom_level . ');' . "\n";
    } else {
        $gscript .= '	var map = new GMap2(document.getElementById("map"));' . "\n";
        $gscript .= '	map.setCenter(new GLatLng(' . $centerpoint['latitude'] . ',' . $centerpoint['longitude'] . '),' . $initial_zoom_level . ', G_' . $map_type_[$map_type] . ');' . "\n";
    }
    if ($map_control_[$map_control_type] != 'none') {
        if ($api_version == 1) {
            $gscript .= '	map.addControl(new G' . $map_control_[$map_control_type] . '());' . "\n";
        } else {
            $gscript .= '	map.addControl(new G' . $map_control_[$map_control_type] . '(), new GControlPosition(G_ANCHOR_' . $map_anchor[$map_control_anchor] . ', new GSize(' . $map_control_padding_x . ', ' . $map_control_padding_y . ')));' . "\n";
        }
    }
    if ($type_control_[$type_control] != 'none') {
        if ($api_version == 1) {
            $gscript .= '	map.addControl(new G' . $type_control_[$type_control] . '());' . "\n";
        } else {
            $gscript .= '	map.addControl(new G' . $type_control_[$type_control] . '(), new GControlPosition(G_ANCHOR_' . $map_anchor[$type_control_anchor] . ', new GSize(' . $type_padding_x . ', ' . $type_padding_y . ')));' . "\n";
        }
    }
    if ($scale_control_[$scale_control] != 'none') {
        if ($api_version == 1) {
            $gscript .= '	map.addControl(new G' . $scale_control_[$scale_control] . '());' . "\n";
        } else {
            $gscript .= '	map.addControl(new G' . $scale_control_[$scale_control] . '(), new GControlPosition(G_ANCHOR_' . $map_anchor[$scale_control_anchor] . ', new GSize(' . $scale_padding_x . ', ' . $scale_padding_y . ')));' . "\n";
        }
    }
    if ($overview_control_[$overview_control] != 'none') {
        if ($api_version == 1) {
        } else {
            $gscript .= '	map.addControl(new G' . $overview_control_[$overview_control] . '(), new GControlPosition(G_ANCHOR_' . $map_anchor[$overview_control_anchor] . ', new GSize(' . $overview_padding_x . ', ' . $overview_padding_y . ')));' . "\n";
        }
    }
    $gscript .= "\n";
    $gscript .= '	// Add the current listing to the map and center the map on that location.' . "\n";
    if ($api_version == 1) {
        $gscript .= '	var cpoint = new GPoint(' . $centerpoint['longitude'] . ',' . $centerpoint['latitude'] . ');' . "\n";
    } else {
        $gscript .= '	var cpoint = new GLatLng(' . $centerpoint['latitude'] . ',' . $centerpoint['longitude'] . ');' . "\n";
    }
    $gscript .= '	var cmarker = new GMarker(cpoint, cicon);' . "\n";
    $gscript .= '	GEvent.addListener(cmarker,' . "'click'" . ', function() {' . "\n";
    $gscript .= '		cmarker.openInfoWindowHtml(' . $centerpoint['html'] . ');' . "\n";
    $gscript .= '		});' . "\n";
    $gscript .= '	map.addOverlay(cmarker);' . "\n" . "\n";
    $gscript .= ' 	// Add other properties to the map' . "\n";
    // Loop through the array and add all the other properties found within
    //  our set distance.
    for ($i = 0; $i < $count; $i++) {
        $gscript .= "\n";
        if ($api_version == 1) {
            $gscript .= '	var point' . $i . ' = new GPoint(' . $otherpoint[$i]['longitude'] . ',' . $otherpoint[$i]['latitude'] . ');' . "\n";
        } else {
            $gscript .= '	var point' . $i . ' = new GLatLng(' . $otherpoint[$i]['latitude'] . ',' . $otherpoint[$i]['longitude'] . ');' . "\n";
        }
        $gscript .= '	var marker' . $i . ' = new GMarker(point' . $i . ', icon);' . "\n";
        $gscript .= '	GEvent.addListener(marker' . $i . ',' . "'click'" . ', function() {' . "\n";
        $gscript .= '	     	marker' . $i . '.openInfoWindowHtml(' . $otherpoint[$i]['html'] . ');' . "\n";
        $gscript .= '	        });' . "\n";
        $gscript .= '	map.addOverlay(marker' . $i . ');' . "\n";
    }
    // End the map javascript
    $gscript .= '	}' . "\n" . '//]]>' . "\n" . '</script>' . "\n";
    if ($popup == 1) {
        $display = "<html>\n<head>\n";
        $display .= $gscript;
        $display .= "</head>";
        if ($api_version == 1) {
            $display .= '<body onload="onLoad()">';
        } else {
            $display .= '<body onload="onLoad()" onunload="GUnload()">';
        }
        $display .= '<div id="map" style="width: ' . $map_width . '; height: ' . $map_height . '"></div></body>';
        $display .= "</body>";
    } else {
        // This is the code that allows the map to be shown in the main browser window, instead
        //  of in a pop-up.
        $jscript = $gscript;
        $display = '';
        if ($api_version == 1) {
            $display .= '<body onload="onLoad()">';
        } else {
            $display .= '<body onload="onLoad()" onunload="GUnload()">';
        }
        $display .= '<div id="map" style="width: ' . $map_width . '; height: ' . $map_height . '"></div></body>';
    }
    return $display;
}