/**
 * GMW get address field
 * @param  array  $gmw    the form being used
 * @param  false $id      deprecated
 * @param  string  $class additional classes for the input field
 * @return mix            HTML element
 * @since 1.0
 */
function gmw_get_search_form_address_field($gmw, $id = false, $class = '')
{
    $am = isset($gmw['search_form']['address_field']['mandatory']) ? 'mandatory' : '';
    $title = !empty($gmw['search_form']['address_field']['title']) ? $gmw['search_form']['address_field']['title'] : '';
    $value = !empty($_GET[$gmw['url_px'] . 'address']) ? esc_attr(sanitize_text_field(stripslashes(implode(' ', $_GET[$gmw['url_px'] . 'address'])))) : '';
    $placeholder = isset($gmw['search_form']['address_field']['within']) ? $title : '';
    $output = '<div id="gmw-address-field-wrapper-' . $gmw['ID'] . '" class="gmw-address-field-wrapper gmw-address-field-wrapper-' . $gmw['ID'] . ' ' . esc_attr($class) . '">';
    if (!isset($gmw['search_form']['address_field']['within']) && !empty($title)) {
        $output .= '<label class="gmw-field-label" for="gmw-address-' . $gmw['ID'] . '">' . esc_attr($title) . '</label>';
    }
    $output .= '<input type="text" name="' . esc_attr($gmw['url_px']) . 'address[]" id="gmw-address-' . $gmw['ID'] . '" autocomplete="off" 
    		class="gmw-address gmw-full-address gmw-address-' . $gmw['ID'] . ' ' . $class . ' ' . $am . '" 
    		value="' . $value . '" placeholder="' . esc_attr($placeholder) . '" />';
    if ($gmw['search_form']['locator_icon'] == 'within_address_field') {
        $lSubmit = isset($gmw['search_form']['locator_submit']) ? 'gmw-locator-submit' : '';
        $output .= '<div class="gmw-locator-btn-wrapper gmw-locator-btn-within-wrapper">';
        $output .= "<i id=\"{$gmw['ID']}\" class=\"fa fa-map-marker gmw-locator-btn-within gmw-locator-button gmw-locate-btn {$lSubmit}\"></i>";
        $output .= "<i id=\"gmw-locator-btn-loader-{$gmw['ID']}\" class=\"gmw-locator-btn-loader fa fa-refresh fa-spin\" alt=\"Locator image loader\" style=\"display:none;\"></i>";
        $output .= '</div>';
    }
    $output .= '</div>';
    if (isset($gmw['search_form']['address_field']['address_autocomplete'])) {
        GEO_my_WP::google_places_address_autocomplete(array('gmw-address-' . $gmw['ID']));
    }
    return apply_filters('gmw_search_form_address_field', $output, $gmw, false, $class);
}