WARM's Impact

The following statistics are from a program evaluation of WARM, conducted by Karen Dash Consulting. After receiving WARM services, homeowners reported:

96%

69%

feel safer in their home

experienced fewer falls

63%

experienced fewer flare-ups of

chronic health conditions

44%

had fewer respiratory

illnesses

The mission of Wilmington Area Rebuilding Ministry, Inc. (WARM) is to make people safer in their own homes by mobilizing volunteers to complete urgent repairs and accessibility upgrades. WARM serves low-income homeowners in Brunswick, New Hanover, Pender and Onslow Counties, many of whom are elderly and/or disabled.

Our work makes homes safer and lowers the risk of:

Falls, fires, and other home accidents

Illness due to in-home environmental hazards

Home displacement due to life-threatening safety hazards and debilitating injuries

2021 Volunteer Hours 
2021 Rebuilds Served
 
function isWindowed() { return location.search.match(/(\?|&)?0\.windowed=true(&.*)?$/); } function showMascot() { var header = document.querySelector("#iconstage > header"); var splash = document.querySelector("#iconstage .splash-container"); var spinner = document.getElementById("spinner-container"); if (splash) { splash.className = splash.className.replace("hidden", ");; } if (header) { header.className = header.className.replace("hidden", "); } if (spinner) { spinner.className += "hidden"; } if (!isWindowed()) { showMascot(); } Aura.PreloadLayout = (function (config) { function buildParams(o) { return Object.keys(o).reduce(function (r, k) { r.push(encodeURIComponent(k) + '=' +encodeURIComponent(o[k])); return r; }, []).join('&'); } function prefetchAuraActions(actions, callback) { var buildToken = function(key) { if (!key) { return null; } var cookies = "; " + document.cookie + ";"; key = "; " + key + "="; var begin = cookies.indexOf(key); if (begin === -1) { return undefined; } var end = cookies.indexOf(";", begin + key.length); var value = cookies.substring(begin + key.length, end); if (!value) { throw new Error("Unable to read the Aura token from the response."); } return value; }; var ctx = config.context; var contextToSend = { mode : ctx.mode, fwuid : ctx.fwuid, loaded : ctx.loaded, app : ctx.app }; if (ctx.m) { contextToSend["m"] = 1; } var payload = { "aura.token": config.eikoocnekot ? buildToken(config.eikoocnekot) : config.token, "aura.context": JSON.stringify(contextToSend), message: SON.stringify({ actions: actions }) }; function onPrefetchError(e) { callback(e, this); } var params = buildParams(payload); var xhr = new XMLHttpRequest(); xhr.open("POST", config.host + "/aura?preloadActions"); xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); xhr.addEventListener('error', onPrefetchError); xhr.addEventListener('timeout', onPrefetchError); xhr.addEventListener('load', function (e) { if (this.status === 200) { callback(null, this); } else { onPrefetchError.call(this, e); } });xhr.send(params); function hookAfterDefsReady(callback) { if (Aura.afterAppDefsReady) { callback(); } else { Aura.afterAppDefsReady = Aura.afterAppDefsReady || []; Aura.afterAppDefsReady.push(callback); } } function preloadActionMap(actions, actionsToPreload) { var map = {}; if(actions){ for (var i=0;i 1) { return appSegmentMatcher[1]; } return null; } function skipPreload() { var authority = location.protocol + "//" + location.hostname + (location.port ? ":" + location.port : ""); var exp = new RegExp(authority + "(?:/[^/]+)?/(one/one.app|lightning)(?:\\?|$)"); var referrer = document.referrer || ""; // check for (1) same authority and (2) one.app with optional site prefix return exp.test(referrer);} var key = 'appContextId'; var appIdOrName = getAppFromUrl(); if (!appIdOrName) { try { appIdOrName = window.sessionStorage.getItem(key) || window.localStorage.getItem(key); } catch (e) { appIdOrName = null; } } else { try { window.sessionStorage.setItem(key, appIdOrName); } catch(e) { } } if( skipPreload() ) { delete Aura.PreloadLayout; } else { var action = { escriptor:"serviceComponent://ui.global.components.one.one.controller.OneController/ACTION$getCurrentApp", params:{} }; if (appIdOrName) { // only set appContextId param if it has a value, otherwise the gvp gets hosed (W-4158012) // It is critical to keep the params consistent with how they are sent in oneHelper.js's getCurrentApp logic. // Any changes to logic should be reflected both here and in oneHelper.js action.params = { appContextIdOrName: appIdOrName }; } Aura.PreloadLayout.preload([action]); } var appCssLoadingCount = 0;function onLoadStyleSheets(event) { if(event){ var element = event.target; element.removeEventListener("load",onLoadStyleSheets); element.removeEventListener("error",onLoadStyleSheetsError); } window.Aura.bootstrap.appCssLoading = (--appCssLoadingCount) > 0; if (!window.Aura.bootstrap.appCssLoading) { if (typeof window.Aura.bootstrap.appCssLoadedCallback === "function") { window.Aura.bootstrap.appCssLoadedCallback(); window.Aura.bootstrap.appCssLoadedCallback = undefined;} }} function onLoadStyleSheetsError(event) { window.Aura.bootstrap.hasCssLoadError = true; onLoadStyleSheets(event);} var auraCss = document.getElementsByClassName("auraCss"); var current;window.Aura.bootstrap.appCssLoading = auraCss.length > 0;for (var c=0,length=auraCss.length;c 1) { var value = lookup[match[1]]; if(value) { return value; }}} // get hard coded fallback value if(parts.length > 1) { var val = declaration.substring(declaration.indexOf(",") + 1); var fallback = val.substring(0, val.length-1); // if the fallback is another variable, resolve the value recursively if (fallback.indexOf("var(") != -1) { return extractValue(fallback, lookup);}return fallback;}} function replaceBlobUrlSubresources(css) { var anchor = document.createElement("a"); return css.replace(/\b(url\s*\(\s*['"]?)([^)"']+)(['"]?\))/g, function (match, left, url, right) { anchor.href = url; return left + anchor.href + right; }); } while ( (result = VAR_PATTERN.exec(css)) ) { output.push(css.substring(startIndex, result.index)); startIndex = result.index; var endIndex = startIndex + findVarEnd(css.substring(startIndex)); var declaration = css.substring(startIndex, endIndex); var value = extractValue(declaration, varLookup); if(value) { output.push(value); } else { output.push(declaration);}startIndex = endIndex; } if(startIndex === 0) {return replaceBlobUrlSubresources(css); } output.push(css.substring(startIndex)); return replaceBlobUrlSubresources(output.join(""));} function injectStyles(linkEl,css){ var cssEl; if(auraConfig.applyCssVarPolyfillViaBlob) { var blob=new Blob([css],{type:"text/css"}); cssEl=document.createElement("link"); cssEl.addEventListener("load",onLoadStyleSheets); cssEl.addEventListener("error",onLoadStyleSheetsError); cssEl.setAttribute("rel","stylesheet"); cssEl.setAttribute("href",URL.createObjectURL(blob)); linkEl.parentElement.insertBefore(cssEl,linkEl);}else{ cssEl=document.createElement("style"); cssEl.textContent=css; linkEl.parentElement.insertBefore(cssEl,linkEl); onLoadStyleSheets(); }} function rewriteAndInjectCss(linkEl, source, varLookup) { var css = rewriteCssVars(source, varLookup); injectStyles(linkEl, css);} function loadViaAjax(linkEl, cssVariables) { var url = linkEl.getAttribute("data-href"); var xhr = new XMLHttpRequest(); xhr.addEventListener("error", onLoadStyleSheetsError); xhr.addEventListener("load", function (e) { if (this.status === 200) { rewriteAndInjectCss(linkEl, xhr.responseText, cssVariables); } else { onLoadStyleSheets(e);} }); xhr.open("GET", url); xhr.send();