91³Ô¹ÏÍø

Watch CBS News

Stockton community ambassadors' attire draws mixed reactions

Friend or foe? That was the question swirling around social media after some comments were left on the Downtown Stockton Alliance Facebook page regarding the community ambassador program.

"We try to point [the unhoused] in the right direction so that they can get some help," Downtown Stockton Alliance Executive Director Michael Huber said.

Some of those comments said, "Why do they look militant?" and "They look more like cops than ambassadors."

Huber says the program is a non-law enforcement initiative, with 80% of the job working with the unhoused and connecting them with resources, while the rest of the day consists of helping the community with whatever they need, like providing safety escorts or even jump-starting your car.

Huber says their vests with all those pockets have a purpose.

"For safety, they carry a pepper spray if they do have to go into the encampments because sometimes they deal with behavioral health issues," Huber continued. "That's why we started using the vest because it was a lot less cumbersome than a belt and a bag."

These vests say "Ambassador" on the back and a patch on the front that says "Community Ambassador Program." The vests carry necessary equipment like information booklets and Narcan.

While some online say their attire looks intimidating, people who have worked with them personally say otherwise.

"They look a lot like ambassadors," Laurie Ramirez shared. "They're in cars that say 'ambassador' on it and they're real good."

"They wear the vest, they have regular pants and stuff, and they don't look like police," Samantha Ramirez added. "They look just right to be like that."

Ambassadors themselves say they are only here to help.

"We get to meet a lot of businesses and build relationships with the businesses, aside from helping the homeless people," community ambassador Raheem Brown explained. "One of the big things that I really love about the program is the churches that come in, donate the food and the showers and wash their clothes up and stuff like that to make them feel better to want to go do better."

Huber says if change is needed or wanted by the community, the Downtown Stockton Alliance is flexible and they'd be willing to make adjustments to their attire.

The community ambassadors are available every day for 22 hours.

View CBS News In
CBS News App Open
Chrome Safari Continue
const link = doc.createElement('link'); link.rel = 'stylesheet'; link.href = '/fly/fly/bundles/cbsnewscontent/css/cmp-banner.min.css?v=296763317a51cab90faa73f1bb146d5c'; doc.head.appendChild(link); doc.body.innerHTML = CONSENT_MESSAGE; } else { el.insertAdjacentHTML('afterend', CONSENT_MESSAGE); } }); } function hidePrivacyMessage() { // Remove from the main document document.querySelectorAll(`.${CONSENT_MESSAGE_CLASS}`).forEach(el => el.remove()); // Remove from inside any iframes document.querySelectorAll('iframe').forEach(iframe => { const doc = iframe.contentDocument || iframe.contentWindow.document; doc.querySelectorAll(`.${CONSENT_MESSAGE_CLASS}`).forEach(el => el.remove()); }); } function activateGatedScripts() { // Handle both new format (cmp-gated-script) and old OneTrust/Ketch format (optanon-category-4) const gatedScripts = Array.from(document.querySelectorAll('script.cmp-gated-script, script.optanon-category-4')); // Activate scripts sequentially with a small delay to avoid timing issues let delay = 0; gatedScripts.forEach(function(placeholder, index) { setTimeout(function() { // Skip if already processed if (placeholder.hasAttribute('data-cmp-processed')) { return; } placeholder.setAttribute('data-cmp-processed', 'true'); const newScript = document.createElement('script'); newScript.type = 'text/javascript'; // Try new format first (data-cmp-src), then fall back to old format (data-src) const src = placeholder.getAttribute('data-cmp-src') || placeholder.getAttribute('data-src'); if (src) { newScript.src = src; } else if (placeholder.textContent) { // Inline script - just copy the content newScript.textContent = placeholder.textContent; } // Handle new format attributes (data-cmp-attrs) - for both inline and external scripts const attrs = placeholder.getAttribute('data-cmp-attrs'); if (attrs) { const tempDiv = document.createElement('div'); tempDiv.innerHTML = '
<\/div>'; const tempAttrs = tempDiv.firstChild.attributes; for (let i = 0; i < tempAttrs.length; i++) { // For external scripts, allow defer/async. For inline scripts, skip them (not valid) if (src || (tempAttrs[i].name !== 'async' && tempAttrs[i].name !== 'defer')) { newScript.setAttribute(tempAttrs[i].name, tempAttrs[i].value); } } } // Copy other attributes from old OneTrust format for (let i = 0; i < placeholder.attributes.length; i++) { const attr = placeholder.attributes[i]; // Skip attributes we've already handled or don't want to copy if (!['class', 'data-src', 'data-type', 'data-cmp-src', 'data-cmp-attrs', 'data-cmp-processed', 'type', 'async', 'defer', 'src'].includes(attr.name)) { newScript.setAttribute(attr.name, attr.value); } } placeholder.parentNode.replaceChild(newScript, placeholder); // If external script, manually trigger window.onload handlers after it loads // This handles widgets that use window.onload for initialization if (src) { newScript.addEventListener('load', function() { // If page already loaded and script set a new onload handler, trigger it if (document.readyState === 'complete' && window.onload) { const originalOnload = window.onload; window.onload = null; // Clear temporarily to prevent loops originalOnload(); // Execute the handler } }); } }, delay); delay += 500; // 500ms delay between each script to allow full loading }); } cbsoptanon.onScriptsReady(function(cmp) { cmp.ot.targetingAllowed(function(allowed) { if (!allowed) { showPrivacyMessage(); } else { activateGatedScripts(); } }); cmp.ot.awaitInitialConsent(function(consent_model) { cmp.ot.addOnConsentChangedHandler(function() { cmp.ot.targetingAllowed(function(allowed) { if (allowed) { hidePrivacyMessage(); activateGatedScripts(); } else { showPrivacyMessage(); } }); }); }); });