Housing &
Accessibility
Resources
(All Ages)
Affordable
Housing

Senior Housing
(Adults)
Residential Living
Support
(Youth)
Residential &
Inpatient Services

Emergency
Shelters

Home
Accessibility

Moving / Storage
Resources

Applications

PDFs

More Helpful Housing Links
Housing Icon

Housing & Accessibility Resources

Housing Icon
Affordable Housing Icon Affordable Housing (All-Ages) Affordable Housing Icon
Name Address Phone
Creekwood Apartments 1910 N Creekwood Park Cir Palmer, AK (907) 745-5926
Eagle Ridge 1775 Thuma St Palmer, Alaska (907) 746-2516
Forest Apartments 328 W. Cottonwood Ave. Palmer, AK (907) 745-3957
Hunter Creek Apartments 855 W Fern Ave Palmer, AK (907) 746-2005
Northridge Terrace 424 E Dogwood Ave Palmer, AK (907) 745-3484
Ridgecrest Park 201 E. Kalli Cir. Wasilla, AK (907) 376-9512
Senior Housing Icon Senior Housing Senior Housing Icon

Mat-Su Senior Services 1132 S Chugach St,
Palmer, AK 99645
Phone: (907) 745-5454
Palmer Colony Estates 920 S. Chugach Street 31 Units
Palmer Chugach Estates 1102 S. Chugach Street 24 Units


Wasilla Area Seniors 1301 S. Century Circle
Wasilla, AK 99654
Phone: (907) 206-8800
Houston Blueberry Pointe 11879 W. Mid-Valley Way 8 Units
Wasilla Alder View 1301 S. Century Circle 29 Units
Wasilla Eagle’s Nest 1301 S. Century Circle 26 Units
Wasilla Knik Manor 1301 S. Century Circle 9 Units
Wasilla Raven Tree 1301 S. Century Circle 26 Units
Wasilla Susitna Place 1301 S. Century Circle 24 Units
Wasilla Willow House 1301 S. Century Circle 40 Units


Valley Residential Services 1075 S. Check Street #102
Wasilla, AK 99654
Phone: (907) 357-0256
Houston Cranberry Ridge 11898 W. Mid-Valley Way 5 Units
Houston Mid-Valley Manor 11913 W. Mid-Valley Way 5 Units
Palmer Whispering Winds (Phases I & II) 507 E. Cope Industrial Way 84 Units
Wasilla Vista Rose I & II 1250 Lucille Street 78 Units

Manor Management of Alaska 2040 Muldoon Road
Anchorage, AK 99504
Phone: (800) 201-4922
Palmer Palmer Manor 327 E. Auklet Drive 4 Units
Sutton Sutton Annex 15838 N. Glenn Highway 5 Units
Sutton Sutton Manor 15816 N. Glenn Highway 5 Units

The Birches II Senior Apartments 4481 N Dresden Place
Garden City, ID 83714
Phone: (907) 745-5926
Wasilla The Birches II at Hailey Hills 235 E. Kalli Circle 28 Units

Primrose Retirement Communities 889 Elkhorn Drive
Wasilla, AK 99654
Phone: (907) 373-5500
Wasilla Primrose Retirement Community (Independent Living) 889 N. Elkhorn Drive 44 Units

Willow Area Seniors, Inc. 23960 Willow Haven Circle #7
Willow, AK 99688
Phone: (907) 495-5222
Willow Willow Creek Parkway Sr. Housing 25756 Willow Creek Parkway 6 Units
Houston Willow Haven Senior Housing 32186 Parks Highway 6 Units

Willow Pointe Apartments 855 W. Fern Ave.
Palmer, AK, 99645
Phone: (907) 746-1005
Palmer Willow Pointe 925 S. Chugach Way 24 Units

Chinook Villa Apartments 1200 S Century Cir #33
Wasilla, AK 99654
Phone: (907) 373-0590
Wasilla Chinook Villa 1200 S. Century Circle #33 32 Units

Alaska Housing Finance Corporation 1201 Lucille St #104
Wasilla, AK 99687
Phone: (907) 373-3568
Wasilla Williwaw Manor 1301 S. Century Circle 32 Units
Residential Living Support Icon Residential Living Support (Adults) Residential Living Support Icon

Assisted Living Homes


Group Homes (DD)


Adult Mental Health Inpatient & Residential (Statewide)


Adult SUD Residential & Inpatient Services (Statewide)

Residential & Inpatient Services Icon Residential & Inpatient Services (Youth) Residential & Inpatient Services Icon

Mental Health Residential & Inpatient Care (Statewide)

Substance Recovery Treatment

Youth Shelters (Mat-Su)

Emergency Shelters Icon Emergency Shelters Emergency Shelters Icon
Home Accessibility Icon Home Accessibility Home Accessibility Icon

Home Mobility Vendors serving Mat-Su:

Moving/Storage Resources Icon Moving/Storage Resources Moving/Storage Resources Icon

Free Moving Truck

Storage (Palmer)

Storage (Wasilla)

Storage (Knik-Goose Bay)

Storage (Meadow Lakes)

Storage (Big Lake)

Storage (Talkeetna)

Applications Icon Applications Applications Icon
PDFs Icon PDFs PDFs Icon
`; printWindow.document.write(htmlContent); printWindow.document.close(); printWindow.focus(); setTimeout(() => { printWindow.print(); printWindow.close(); }, 250); } async function prepareSectionContentForPrinting(sectionContent) { // Clone the content to manipulate it without affecting the original DOM const clonedContent = sectionContent.cloneNode(true); // Find the content header within the section const contentHeader = clonedContent.querySelector('.content-header'); let headerHtml = ''; if (contentHeader) { // Capture the HTML of the content header to include at the top headerHtml = contentHeader.outerHTML; } // Aggregate details from modal containers to include in the print const containers = clonedContent.querySelectorAll('.modal-container'); let aggregatedContent = headerHtml; // Start with the header content for (const container of containers) { let containerDetails = gatherDetails(container); if (containerDetails.length > 58) { // Check if actual data exists aggregatedContent += containerDetails; } } // Replace "More Info" link text with the actual URL const moreInfoLinks = clonedContent.querySelectorAll('a[target="_blank"]'); moreInfoLinks.forEach(link => { if (link.textContent.trim() === 'More Info') { link.textContent = link.href; } }); // Remove elements that should not be printed const selectorsToRemove = ['.app', '.pdf', '.link', '.socialMedia', '.documents']; selectorsToRemove.forEach(selector => { const elements = clonedContent.querySelectorAll(selector); elements.forEach(elem => elem.remove()); }); // Handle map elements const mapElements = clonedContent.querySelectorAll('#map'); for (const mapElement of mapElements) { const mapImage = await captureMapImage(mapElement); const imgElement = document.createElement('img'); imgElement.src = mapImage; imgElement.style.width = '100%'; // Ensure the image fits the container mapElement.parentElement.replaceChild(imgElement, mapElement); } return `
${aggregatedContent}
`; } // Function to clear modal content and reset print button state function resetModal() { const printButton = modalContent.querySelector('.print-button-modal'); if (printButton) { printButton.removeEventListener('click', printModalContent); modalContent.removeChild(printButton); } modalDynamicContent.innerHTML = ''; } function setupPrintButtons() { // Set up print buttons for each content section document.querySelectorAll('.tab-content').forEach(content => addPrintButton(content)); // Set up print button for the modal addPrintButtonToModal(); } function gatherDetails(container) { let detailsHtml = `

${container.dataset.title || 'Untitled'}

`; if (container.dataset.imageUrl) { detailsHtml += `Image of ${container.dataset.title}`; } if (container.dataset.description) { detailsHtml += `

${container.dataset.description}

`; } if (container.dataset.phone) { detailsHtml += `

Phone: ${container.dataset.phone}

`; } if (container.dataset.weblink) { detailsHtml += `

Website: ${container.dataset.weblink}

`; } if (container.dataset.address1 || container.dataset.address2) { detailsHtml += `

Address: ${container.dataset.address1} ${container.dataset.address2 ? container.dataset.address2 : ''}

`; } if (container.dataset.email) { detailsHtml += `

Email: ${container.dataset.email}

`; } // Exclude social media links if (container.dataset.socialMedia) { detailsHtml += ``; } detailsHtml += '
'; return detailsHtml; } function getPrintStyles(isModal) { return ` body { font-family: 'Arial', sans-serif; line-height: 1.6; margin: 1.25rem; color: #333; background-color: #fff; } img { width: auto; max-width: 12.313rem; margin-top: 0.625rem; display: block; } h3 { font-size: 1.125rem; color: #0056b3; margin-bottom: 0.625rem; } p { margin: 0.313rem 0 0.625rem; font-size: 0.875rem; color: #424242; } strong { color: #000; font-weight: bold; } a { color: #0066cc; text-decoration: underline; } a:hover { text-decoration: none; } .document-container { border: 0.063rem solid #ddd; padding: 0.938rem; margin-bottom: 1.25rem; background-color: #f9f9f9; border-radius: 0.rem; } .content-header { font-size: 1.2rem; display: flex; justify-content: center; align-items: center; margin-top: -1.25rem; margin-bottom: 0.625rem; padding: 0.5rem 1rem; background: linear-gradient(to right, #333, #ddd); border-radius: 0.625rem; box-shadow: none; max-width: 100%; border: 0.188rem solid #0056b3; color: #000; height: auto; } .content-header img { max-height: 3rem; max-width: 2rem; margin: 0 1rem; filter: none; } .content-header svg { display: block; width: auto; max-height: 4rem; } text { fill: #000; font-size: 1.6rem; font-weight: bold; } @media print { .no-print, .no-print * { display: none !important; } .document-container { background-color: #fff; } } `; } // Populate sections with dynamic content from data attributes function populateSection(sectionId, dataType, sectionTitle) { const section = document.getElementById(sectionId); if (!section) { console.error(`Section with ID '${sectionId}' not found.`); return; } const containers = document.querySelectorAll('.tab-content .modal-container'); let htmlContent = `

${sectionTitle} by Resource

`; let isEmpty = true; containers.forEach(container => { const items = []; for (let i = 1; i <= 6; i++) { const link = container.dataset[`${dataType}${i}Link`]; const icon = container.dataset[`${dataType}${i}Icon`]; const description = container.dataset[`${dataType}${i}Description`]; if (link && icon && description) { items.push(``); isEmpty = false; } } if (items.length > 0) { htmlContent += `

${container.dataset.title || 'Untitled'}

    ${items.join('')}
`; } }); if (isEmpty) { htmlContent += `

No ${sectionTitle.toLowerCase()} available.

`; } section.innerHTML = htmlContent; } // Setup modal interactions function setupModal() { document.querySelectorAll('.modal-container').forEach(item => { item.addEventListener('click', function() { populateModal(this); modal.style.display = 'block'; }); }); function populateModal(element) { const { title, description, imageUrl, weblink, phone, address1, address2, email, socialMedia } = element.dataset; modalDynamicContent.innerHTML = ` ${imageUrl ? `${title} Image` : ''}

${title}

${description}

${weblink ? `More Info` : ''} ${phone ? `

Phone: ${phone}

` : ''} ${email ? `

Email: ${email}

` : ''} ${socialMedia ? `` : ''} ${address1 || address2 ? `

Address: ${address1} ${address2 ? ', ' + address2 : ''}

` : ''} `; addDynamicContent(element); // Call the function to append dynamic content addPrintButtonToModal(); // Add the print button to the modal if (address1 || address2) { if (!document.getElementById('map')) { let mapContainer = document.createElement('div'); mapContainer.id = 'map'; mapContainer.style.height = '15.625rem'; modalDynamicContent.appendChild(mapContainer); } setTimeout(() => { initMap(`${address1} ${address2}`); }, 10); mapStatus.style.display = 'block'; } else { mapStatus.style.display = 'none'; } modal.style.display = 'block'; } function addDynamicContent(element) { const contentTypes = ['app', 'pdf', 'link']; const typeHeaders = { 'app': 'Applications:
', 'pdf': 'PDFs:
', 'link': 'Other Helpful Links:
' }; contentTypes.forEach(type => { let items = []; for (let i = 1; i <= 6; i++) { const link = element.dataset[`${type}${i}Link`]; const icon = element.dataset[`${type}${i}Icon`]; const description = element.dataset[`${type}${i}Description`]; if (link && icon && description) { items.push( `` ); } } if (items.length > 0) { modalDynamicContent.innerHTML += `

${typeHeaders[type]}

` + items.join(''); } }); } function initMap(address) { let mapContainer = document.getElementById('map'); let statusElement = document.getElementById('mapStatus'); mapContainer.style.width = '100%'; statusElement.innerHTML = 'Searching...'; const map = L.map('map').setView([0, 0], 13); L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', { attribution: 'Map data © OpenStreetMap contributors' }).addTo(map); const addressVariations = (address) => { let variants = [address]; const baseAddress = address.replace(/(Unit|Apt|Suite|Floor|#)\s*\d+\b/, '').trim(); const directions = { 'North': ['N.'], 'South': ['S.'], 'East': ['E.'], 'West': ['W.'] }; const suffixes = { 'Street': ['St.', 'St'], 'Road': ['Rd.', 'Rd'], 'Drive': ['Dr.', 'Dr'], 'Lane': ['Ln.', 'Ln'], 'Boulevard': ['Blvd.', 'Blvd'], 'Avenue': ['Ave.', 'Ave'], 'Court': ['Ct.', 'Ct'], 'Circle': ['Cir.', 'Cir'] }; function createVariants(base, dict) { let results = [base]; for (let key in dict) { dict[key].forEach(abbr => { results = results.concat(results.map(v => v.replace(new RegExp(`\\b${key}\\b`, 'g'), abbr))); }); } return [...new Set(results)]; } variants = createVariants(baseAddress, directions); variants = createVariants(variants[0], suffixes); variants = variants.concat(variants.map(v => v.replace(/\./g, ''))); return variants; }; const tryGeocode = (address, variantIndex = 0, variants = []) => { if (variantIndex === 0) { variants = addressVariations(address); } if (variantIndex < variants.length) { let currentAddress = variants[variantIndex]; fetch(`https://nominatim.openstreetmap.org/search?format=json&q=${encodeURIComponent(currentAddress)}`) .then(response => { if (!response.ok) { alert('Network issue or query limit reached, please try again later.'); } return response.json(); }) .then(data => { if (data.length > 0) { const latLng = new L.LatLng(data[0].lat, data[0].lon); map.setView(latLng, 13); L.marker(latLng).addTo(map).bindPopup(currentAddress); statusElement.innerHTML = 'Successfully Mapped: ' + currentAddress; } else { if (variantIndex + 1 < variants.length) { statusElement.innerHTML = 'Searching...'; tryGeocode(address, variantIndex + 1, variants); } else { const furtherReducedAddress = reduceAddressMore(currentAddress); if (furtherReducedAddress) { tryGeocode(furtherReducedAddress, 0, []); } else { statusElement.innerHTML = 'Unable to find the location based on the address provided.'; } } } }) .catch(error => { alert('Error fetching geocode data: ' + error.message); }); } }; function reduceAddressMore(address) { let reduced = address.replace(/\b(North|South|East|West)\b/, '').trim(); reduced = reduced.replace(/^\d+\s+/, '').trim(); if (reduced.match(/,/)) { reduced = reduced.substring(reduced.lastIndexOf(',') + 1).trim(); } return reduced || null; } tryGeocode(address); setTimeout(() => { map.invalidateSize(); }, 100); } closeBtn.onclick = () => { modal.style.display = 'none'; }; window.onclick = event => { if (event.target === modal) modal.style.display = 'none'; }; } initializeTabs(); populateSection('contentApplications', 'app', 'Applications'); populateSection('contentPDFs', 'pdf', 'PDFs'); populateSection('contentHelpfulLinks', 'link', 'Useful Links'); setupModal(); setupPrintButtons(); });