Appliance Parts Pros.com Discount Appliance Parts – Since 1999

Say goodbye to time-consuming searches for the right appliance part, and welcome in a new era of shopping ease with our vast selection of high quality appliances parts. Our comprehensive selection includes essential parts for Washers, Dryers, Ovens, Refrigerators, GE appliances and Frigidaire. Not only can you find the exact replacement part you need from Whirlpool, Kenmore and more – but our quick 1-2 day shipping will have your appliance back on its feet in no time!

Our easy-to-navigate pictures and diagrams mean that you can confidently choose the correct parts that match your particular make and model. We understand how important it is to get it right the first time; so we provide detailed data to empower DIYers like yourself with confidence and accuracy when searching for the perfect appliance parts. The expert information and tips given by our customer service team combined with the right part at the right price makes fixing your own appliance easier than ever!

With millions of satisfied customers and award-winning customer service, we make it our priority to provide you with the parts you need to get your appliance up and running quickly. Our years in the industry have earned us a reputation for excellence, backed by our knowledgeable team of experts who are here to ensure you get the right part at the right price. Rest assured that we’ll do whatever it takes to get your appliance repaired in a timely manner.

Source

Find Local Foundation Repair Contractors, Companies, and Quotes

Get Foundation Quotes From Experts

The foundation of your home is exactly that – it is the base supporting your entire house. So, when the foundation develops issues, you must repair them immediately. If you have noticed signs of foundation issues in your home and you would like to get a quick, easy quote from your local professional, enter your zip code above and tell us a little about your project.

How To Identify Foundation Issues

When the foundation under your home begins to deteriorate, you’ll notice signs around your home. Telltale indicators of foundation issues include cracks in the walls, floors, and columns. You also might see misalignment in the doors and window frames, where the door doesn’t seem to line up with the frame, making it difficult to open the door.

In addition, you might notice bowing in your basement walls, where the walls seem to bend inward, or sagging crawl space floors. There might be water damage throughout lower portions of your home, especially in your basement, as water seeps through cracks in the foundation.

Outside your home, your chimney might lean to one side, and the front porch or stoop might seem as though it sits lower than normal.

If you’re not sure if your home has foundation issues or not, you can hire a structural engineer to assess it. They can determine if there are any problems and recommend the best solutions.

Common Causes Of Foundation Damage

Foundation problems can arise from various occurrences, but a few common causes are familiar to foundation repair companies.

For example, if you live in the southern portion of the United States (Texas and surrounding states), your home likely sits atop expansive clay soil. In dry seasons, the soil contracts, but in wet seasons, the soil expands. This contraction and expansion throughout the seasons cause the foundation to rise and fall, leading to damage.

Alternatively, your home’s foundation might sit on poorly compacted fill soil. Compacting the fill soil underneath a new foundation is essential, as loose soil will eventually settle, causing issues with the foundation.

Sometimes, the problems might stem from a plumbing leak hiding beneath the slab. When this happens, water seeps into the soil underneath your home, eventually compromising the foundation’s structural integrity if it goes unchecked.

Another common problem associated with foundation damage is tree roots beneath the foundation. If you have large trees surrounding your home, it’s possible for them to sap the water from the soil under your home, leaving the earth dry and shriveled. This can cause the foundation to settle unevenly, causing cracks and damage throughout your home.

How Much Does Foundation Repair Cost?

The cost of repairing a damaged foundation fluctuates drastically based on the severity of the issue. On average, homeowners should expect to pay anywhere from $2,010 and $7,717 to have professionals repair their foundations. However, this number may fluctuate based on how extensive the damage is.

For minor repairs, homeowners might pay as little as $500. However, more extensive repairs can cost up to $10,000, especially if the repair requires hydraulic piers.

The longer it takes to complete the repair, the more expensive the total will be. Many contractors specializing in foundation repair charge about $200 per hour (national average), although this varies based on geographical location and the cost of living in your area. Foundation issues often lead to settled floors, misaligned doors, cracked interior walls, and in severe cases, collapsed ceilings and burst pipes.

In some scenarios, the foundation damage may be irreversible, so repairs are unnecessary, as they cannot fix the damage.

What Happens If You Don’t Fix Foundation Issues?

While repairing major foundation issues may seem like a daunting task, failing to address the issues accordingly can exacerbate the problem and cause ripple effects throughout your entire home. You’ll likely notice various warning signs of foundation problems, including structural damage, plumbing problems, and water damage, among other issues.

Structural Damage

If left unchecked, foundation issues can lead to extensive structural damage. Doors and windows may develop gaps and not close properly, floors might dip or round, and walls might crack. The longer the problem persists, the more issues you’ll notice throughout your home.

Eventually, ceilings, upstairs walls, wooden cross beams, and attached garages may begin to display the effects of your home’s foundation issues. In severe cases, ceilings can collapse, and cracked walls will become the norm, making your home unsafe to stay in.

Plumbing Issues

Foundation issues pose a significant threat to plumbing throughout your home. This is especially true for pier and beam foundations, where pipes can become intertwined with the foundation and weave into the house.

With slab foundations, issues can lead to damaged plumbing as the slab shifts, potentially snapping pipes throughout your home. Pinpointing this issue can be tricky, especially when the problem lies beneath your home. Generally, you’ll need professional assistance to diagnose this issue.

The problem can even plague the pipes running through your walls and beneath floors, as shifting foundations can place stress in these areas by causing structural displacement throughout your home.

Water Damage

Cracks in your foundation and crumbled concrete throughout the slab make your home exceptionally vulnerable to water damage. Moisture can seep into your home via these cracks and crumbled spots, potentially causing significant water damage throughout your home.

If you have a basement, water can seep through the basement walls, causing damage to flooring, furniture, walls, and other structures throughout the space. The longer the moisture remains a problem, the higher the likelihood of mold and mildew growth in your basement. Certain types of mold and mildew can cause cold-like symptoms, including nasal stuffiness, coughing, asthma, eye and throat irritation, and similar respiratory complications.

Source

Wooden Fences


Make sure you are not offline.’, password: ‘Incorrect name/password combination’, tryAgain: ‘Try again’ }, NavigationAreaParams: { ShowBackToHomeOnInnerPages: true, NavbarSize: 4, NavbarLiveHomePage: ‘https://www.taterbuiltfences.com/’, BlockContainerSelector: ‘.dmBody’, NavbarSelector: ‘#dmNav:has(a)’, SubNavbarSelector: ‘#subnav_main’ }, hasCustomCode: true, planID: ‘753’, customTemplateId: ‘null’, siteTemplateId: ‘null’, productId: ‘DM_DIRECT’, disableTracking: false, pageType: ‘FROM_SCRATCH’, isRuntimeServer: true, isInEditor: false, }; window.Parameters.LayoutID = {}; window.Parameters.LayoutID[window._currentDevice] = 6; window.Parameters.LayoutVariationID = {}; window.Parameters.LayoutVariationID[window._currentDevice] = 5; ]]]]]]>]]]]>]]> > 0 } ]]]]]]>]]]]>]]> { setTimeout(() => { storedRuntimeCssLink.disabled = false; storedGlobalCssLink.disabled = false; if (storedPageCssLink) { storedPageCssLink.disabled = false; } cssLinks = null; }, 0); }); } } function loadCSS(link) { try { var urlParams = new URLSearchParams(window.location.search); var noCSS = !!urlParams.get(“nocss”); var cssTimeout = urlParams.get(“cssTimeout”) || 0; if (noCSS) { return; } if (link.href.includes(“d-css-runtime”)) { cssLinks.runtime = link; checkCss(); } else if (link.id === “siteGlobalCss”) { cssLinks.global = link; checkCss(); } else if(link.id.includes(“CssLink”)) { cssLinks.page = link; checkCss(); } else { requestIdleCallback(function () { window.setTimeout(function () { loadCssLink(link); }, parseInt(cssTimeout, 10)); }); } } catch (e) { throw e } } window.loadCSS = window.loadCSS || loadCSS; })(); ]]]]]]>]]]]>]]> { setTimeout(() => { storedRuntimeCssLink.disabled = false; storedGlobalCssLink.disabled = false; if (storedPageCssLink) { storedPageCssLink.disabled = false; } cssLinks = null; }, 0); }); } } function loadCSS(link) { try { var urlParams = new URLSearchParams(window.location.search); var noCSS = !!urlParams.get(“nocss”); var cssTimeout = urlParams.get(“cssTimeout”) || 0; if (noCSS) { return; } if (link.href.includes(“d-css-runtime”)) { cssLinks.runtime = link; checkCss(); } else if (link.id === “siteGlobalCss”) { cssLinks.global = link; checkCss(); } else if(link.id.includes(“CssLink”)) { cssLinks.page = link; checkCss(); } else { requestIdleCallback(function () { window.setTimeout(function () { loadCssLink(link); }, parseInt(cssTimeout, 10)); }); } } catch (e) { throw e } } window.loadCSS = window.loadCSS || loadCSS; })(); ]]]]]]>]]]]>]]> Wooden Fences | Wood Fence Repair | Lewistown, PA 1){ $(element).find(‘.multipleYextError’).addClass(‘hasError’); return; }else if(data.config.type === ‘none’){ $(element).find(‘.editorOnlyInfo’).addClass(‘inEditor’); } } } /* refresh yext script */ window.refreshYext = function(){ loadYext(true); } //function for Omniture tracking window._trackConvWidgetClickEvent = function(eventName) { if(typeof(HAF)===”object”){ HAF.OmTracking.onCMClick(eventName) } return; } /* draw yext map */ var drawMap = function(yextData){ var zoom = data.config.mapZoom; var yData = yextData.entities[0].attributes; var addressQuery = yData[‘address1’] + ” ” + yData[‘address2’] + ” ” + yData[‘city’] + ” ” + yData[‘state’] + ” ” + yData[‘zip’]; dmAPI.drawMap({addressQuery: addressQuery, zoom: zoom, container: $(element).find(‘.yextMap’)}); } var formatPhoneBeforeRender = function(num,cb) { if (!cb) cb = function(){return} if(data.config.formatPhone){ var s2 = (“”+num).replace(/D/g, ”); var m = s2.match(/^(d{3})(d{3})(d{4})$/); var formatted = (!m) ? null : “(” + m[1] + “) ” + m[2] + “-” + m[3]; cb(formatted); return formatted; } else { cb(num); return num; } } var displayTextdList = function(type,yextData,firstOnly) { var list = “”; if(yextData.entities[0].attributes[type]) { var yextAtt = yextData.entities[0].attributes[type] } else { var yextAtt = false } if(yextAtt && Array.isArray(yextAtt)) { for (var i=0; i< yextAtt.length; i++) { if (yextAtt[i] === 'Android Pay') { list += '

  • Google Pay’; } else { list += ‘
  • ‘ + yextAtt[i] + ”; } } $(element).find(‘#’ + type + ‘List’).html(list); } else if (yextAtt) { var yextAtt = yextAtt.split(“, “); for (var i=0; i< yextAtt.length; i++) { list += '
  • ‘ + yextAtt[i] + ”; } $(element).find(‘#’ + type + ‘List’).html(list); } else if (data.inEditor) { $(element).html(emptyListPlaceHolder); } else { $(element).css(‘display’,’none’); } } var displaySpecialties = function(yextData){ var list = “”; if(yextData.entities[0].attributes[“specialties”]) { var yextAtt = yextData.entities[0].attributes[“specialties”] } else if (yextData.entities[0].attributes[“specialities”]) { var yextAtt = yextData.entities[0].attributes[“specialities”] } else { var yextAtt = false } if(yextAtt && Array.isArray(yextAtt)) { for (var i=0; i< yextAtt.length; i++) { list += '
  • ‘ + yextAtt[i] + ”; } $(element).find(‘#specialtiesList’).html(list); } else if (yextAtt) { var yextAtt = yextAtt.split(“, “); for (var i=0; i< yextAtt.length; i++) { list += '
  • ‘ + yextAtt[i] + ”; } $(element).find(‘#specialtiesList’).html(list); } else if (data.inEditor) { $(element).html(emptyListPlaceHolder); } else { $(element).css(‘display’,’none’); } } var displayHours = function(type,yextData) { var list = “”; if(yextData.entities[0].attributes[type]) { var yextAtt = yextData.entities[0].attributes[type] } else { var yextAtt = false } if(yextAtt && Array.isArray(yextAtt)) { for(var i=0;i < yextAtt.length;i++) { var indexEndDay = yextAtt[i].lastIndexOf('day ') + 3; var leftSide = yextAtt[i].substr(0,indexEndDay).replace("Monday","Mon").replace("Tuesday","Tue").replace("Wednesday","Wed").replace("Thursday","Thu").replace("Friday","Fri").replace("Saturday","Sat").replace("Sunday","Sun"); var rightSide = yextAtt[i].substr(indexEndDay + 1) list += '' + leftSide + '' + rightSide + ''; } $(element).find('#hoursSmall').html(list); } else if(yextAtt) { var yextAtt = yextAtt.split(", "); for(var i=0;i < yextAtt.length;i++) { if((/s/.test(yextAtt[i])) === false){ yextAtt[i] = yextAtt[i] + ' - ' + yextAtt[i+1] yextAtt.splice(i+1, 1) } if (yextAtt[i].includes('day') === false ){ var leftSide = ' '; var rightSide = yextAtt[i] }else { var indexEndDay = yextAtt[i].lastIndexOf('day ') + 3; var leftSide = yextAtt[i].substr(0,indexEndDay).replace("Monday","Mon").replace("Tuesday","Tue").replace("Wednesday","Wed").replace("Thursday","Thu").replace("Friday","Fri").replace("Saturday","Sat").replace("Sunday","Sun"); var rightSide = yextAtt[i].substr(indexEndDay + 1) } list += '' + leftSide + '' + rightSide + ''; } $(element).find('#hoursSmall').html(list); } else if (data.inEditor) { $(element).html(emptyListPlaceHolder); } else { $(element).css('display','none'); } } var displayOpenHours = function(type, yextData){ if(yextData.entities[0].attributes['timezone']){ var zone = yextData.entities[0].attributes['timezone'] } else { var zone = false } if(zone){ var time = new Date().toLocaleString("en-US", {timeZone: zone}); var today = new Date(time ); var thirtyMins = 30 * 60 * 1000 var days = ['sunday','monday','tuesday','wednesday','thursday','friday','saturday']; var daysShort = ['Sun','Mon','Tues','Wed','Thurs','Fri','Sat']; var day = days[today.getDay()]; var hour = today.getHours(); var min = today.getMinutes(); var dd = ("0" + today.getDate()).slice(-2); var mm = ("0" + (today.getMonth() + 1)).slice(-2) var yyyy = today.getFullYear(); var todayDate = yyyy + '-' + mm + '-' + dd var mm = mm - 1 const tomorrow = new Date(today) tomorrow.setDate(tomorrow.getDate() + 1) var mmTmw = ("0" + (tomorrow.getMonth() + 1)).slice(-2) var ddTmw = ("0" + tomorrow.getDate()).slice(-2) var yyyyTmw = tomorrow.getFullYear(); var nextDay = days[tomorrow.getDay()] var tommorrow = yyyyTmw + '-' + mmTmw + '-' + ddTmw var mmTmw = mmTmw - 1 } if(yextData.entities[0].attributes[type + '-' + day]) { var yextAtt = yextData.entities[0].attributes[type + '-' + day] if (yextAtt === "Closed"){ yextAtt = false } } else { var yextAtt = false } //check if day is closed if(yextData.entities[0].attributes[type + '.' + day + '.isClosed'] === true) { var closed = true } //collects business holiday hours if(yextData.entities[0].attributes[type + '.holidayHours']){ var holidayHours = yextData.entities[0].attributes[type + '.holidayHours'] } else{ var holidayHours = false } //gets next days start time if(yextData.entities[0].attributes[type + '.' + nextDay + '.isClosed'] === true){ var tomorrowOpen = false } else { var tomorrowOpen = true var tmrwStart = yextData.entities[0].attributes[type + '-' + nextDay].split(" - ")[0] } //checks if holiday hours change if(holidayHours) { for(var i=0;i < holidayHours.length;i++){ if(holidayHours[i].date === todayDate && holidayHours[i].openIntervals){ yextAtt = holidayHours[i].hoursFormatted } } } //split hours if(yextAtt && yextAtt.includes(",")){ yextAtt = yextAtt.split(", ") for(var i=0;i < yextAtt.length;i++){ var end = yextAtt[i].split(' - ')[1] var start = yextAtt[i].split(' - ')[0] if (i+1 != yextAtt.length){ var nextStart = yextAtt[i + 1].split(' - ')[0] } if(start.includes("pm") && start.split(/s+|:/)[0] != "12"){ var startDate = new Date(yyyy, mm, dd, parseInt(start.split(/s+|:/)[0]) + 12, parseInt(start.split(/s+|:/)[1])) } else { var startDate = new Date(yyyy, mm, dd, parseInt(start.split(/s+|:/)[0]), parseInt(start.split(/s+|:/)[1])) } if(nextStart.includes("pm") && nextStart.split(/s+|:/)[0] != "12"){ var nextStartDate = new Date(yyyy, mm, dd, parseInt(nextStart.split(/s+|:/)[0]) + 12, parseInt(nextStart.split(/s+|:/)[1])) } else { var nextStartDate = new Date(yyyy, mm, dd, parseInt(nextStart), parseInt(nextStart.split(/s+|:/)[1])) } if(end.includes("pm") && end.split(/s+|:/)[0] != "12"){ var endDate = new Date(yyyy, mm, dd, parseInt(end.split(/s+|:/)[0]) + 12, parseInt(end.split(/s+|:/)[1])) } else { var endDate = new Date(yyyy, mm, dd, parseInt(end.split(/s+|:/)[0]), parseInt(end.split(/s+|:/)[1])) } if (end.includes("am") && (endDate < startDate)){ endDate = new Date(yyyyTmw, mmTmw, ddTmw, parseInt(end.split(/s+|:/)[0]), parseInt(end.split(/s+|:/)[1])) } if(today startDate && today endDate && (i+1 != yextAtt.length) && today endDate && i+1 === yextAtt.length){ var closed = true } } } if(yextAtt || closed) { if(typeof yextAtt === "string"){ var start = yextAtt.split(" - ")[0] var end = yextAtt.split(" - ")[1] if(start.includes("pm") && start.split(/s+|:/)[0] != "12"){ var startDate = new Date(yyyy, mm, dd, parseInt(start.split(/s+|:/)[0]) + 12, parseInt(start.split(/s+|:/)[1])) } else { var startDate = new Date(yyyy, mm, dd, parseInt(start.split(/s+|:/)[0]), parseInt(start.split(/s+|:/)[1])) } if(end.includes("pm") && end.split(/s+|:/)[0] != "12"){ var endDate = new Date(yyyy, mm, dd, parseInt(end.split(/s+|:/)[0]) + 12, parseInt(end.split(/s+|:/)[1])) } else if (end.includes("am") && end.split(/s+|:/)[0] === "12") { var endDate = new Date(yyyy, mm, dd, parseInt(end.split(/s+|:/)[0]) - 12, parseInt(end.split(/s+|:/)[1])) } else { var endDate = new Date(yyyy, mm, dd, parseInt(end.split(/s+|:/)[0]), parseInt(end.split(/s+|:/)[1])) } if (end.includes("am") && (endDate endDate){ var closed = true //opened 24 hours } else if(start === '12:00 am' && end === '11:59 pm'){ var status = "Open " var cssClass = "allDayStatus" var busHours = ' 24 hours ' //opened } else if(today < startDate){ var closed = true //check if closing soon } else if (endDate - today < thirtyMins && endDate - today < 0 === false ){ var status = "Closing Soon " var cssClass = "soonStatus" var busHours = ' • ' + end } else { var status = "Open " var cssClass = "openedStatus" var busHours = '• Closes ' + end } } if(closed){ // closed & opening today if((today < startDate)){ var status = "Closed " var cssClass = "closedStatus" var busHours = ' Opens ' + start //closed & open tomorrow } else if(closed && tomorrowOpen === true){ var status = "Closed " var cssClass = "closedStatus" var busHours = ' • Opens ' + tmrwStart //closed and not open tomorrow } else if(closed && tomorrowOpen != true){ var offset = days.indexOf(day) + 1 for( var i=0; i < days.length; i++) { var dayIndex = (i + offset) % days.length; if(yextData.entities[0].attributes[type + '.' + days[dayIndex] + '.openIntervals']){ tmrwStart = daysShort[dayIndex] + " " + yextData.entities[0].attributes[type + '-' + days[dayIndex]].split(" - ")[0] break } } var status = "Closed " var cssClass = "closedStatus" var busHours = ' • Opens ' + tmrwStart } } } // checks if holiday if(holidayHours) { for(var i=0;i < holidayHours.length;i++){ if(holidayHours[i].date === todayDate && holidayHours[i].isClosed === true && tomorrowOpen === false){ var offset = days.indexOf(day) + 1 for( var i=0; i < days.length; i++) { var dayIndex = (i + offset) % days.length; if(yextData.entities[0].attributes[type + '.' + days[dayIndex] + '.openIntervals']){ tmrwStart = daysShort[dayIndex] + " " + yextData.entities[0].attributes[type + '-' + days[dayIndex]].split(" - ")[0] break } } var status = "Closed " var cssClass = "closedStatus" var busHours = ' • Opens ' + tmrwStart } else if(holidayHours[i].date === todayDate && holidayHours[i].isClosed === true && tomorrowOpen === true){ var status = "Closed " var cssClass = "closedStatus" var busHours = ' • Opens ' + tmrwStart } } } if(cssClass){ var hoursWidgets = document.getElementsByClassName('status') for( var i=0; i < hoursWidgets.length; i++) { hoursWidgets[i].classList.add(cssClass); } } if(status){ var hoursWidgets = document.getElementsByClassName('status') for( var i=0; i < hoursWidgets.length; i++) { hoursWidgets[i].innerText = status; } } if(cssClass === 'allDayStatus'){ var hoursWidgets = $(element).find('.openHours') for( var i=0; i 1){ var hoursWidgets = document.getElementsByClassName('openHours') for( var i=0; i < hoursWidgets.length; i++) { var openHoursLength = hoursWidgets[i].childNodes.length var oldHours = hoursWidgets[i] oldHours.removeChild(oldHours.childNodes[openHoursLength - 1]) } } var hoursWidgets = document.getElementsByClassName('openHours') for( var i=0; i < hoursWidgets.length; i++) { hoursWidgets[i].append(busHours) } } var displayHolidayHoursList = function(type,yextData) { var list = ""; if(yextData.entities[0].attributes["hours.holidayHours"]) { var yextAtt = yextData.entities[0].attributes["hours.holidayHours"] } else if(yextData.entities[0].attributes["holidayHours"]) { var yextAtt = yextData.entities[0].attributes["holidayHours"] } else { var yextAtt = false } if(yextAtt) { for (var i=0; i -1) { // write to dom list += '
  • ‘ + yextAtt[i].dateFormatted + ‘ – ‘ + yextAtt[i].hoursFormatted + ”; } } $(element).find(‘#’ + type + ‘List’).html(list); } else if (data.inEditor) { // if in editor display place holder $(element).html(emptyListPlaceHolder); } else { // if empty, hide element on runtime $(element).css(‘display’,’none’); } } var displayServiceArea = function(type,yextData,firstOnly) { var list = “”; if(yextData.entities[0].attributes[type]) { var yextAtt = yextData.entities[0].attributes[type] } else { var yextAtt = false } if (firstOnly) { list = ‘
  • ‘ + yextAtt[0] + ”; $(element).find(‘#’ + type + ‘List’).html(list); } else if (yextAtt && Array.isArray(yextAtt)) { for (var i=0; i< yextAtt.length; i++) { list += '
  • ‘ + yextAtt[i] + ”; } $(element).find(‘#’ + type + ‘List’).html(list); } else if (yextAtt) { var yextAtt = yextData.entities[0].attributes[type + “.places”] for (var i=0; i< yextAtt.length; i++) { list += '
  • ‘ + yextAtt[i] + ”; } $(element).find(‘#’ + type + ‘List’).html(list); } else if (data.inEditor) { $(element).html(emptyListPlaceHolder); } else { $(element).css(‘display’,’none’); } } var displayPhoneList = function(type,yextData) { var list = “”; var locData = yextData.entities[0].attributes; if(locData.phone) { list += ‘
  • Main: ‘ + formatPhoneBeforeRender(locData.phone) + ”; } if(locData.localPhone) { list += ‘
  • Local: ‘ + formatPhoneBeforeRender(locData.localPhone) + ”; } if(locData.alternatePhone) { list += ‘
  • Alternate: ‘ + formatPhoneBeforeRender(locData.alternatePhone) + ”; } if(locData.tollFreePhone) { list += ‘
  • Toll Free: ‘ + formatPhoneBeforeRender(locData.tollFreePhone) + ”; } if(locData.mobilePhone) { list += ‘
  • Mobile: ‘ + formatPhoneBeforeRender(locData.mobilePhone) + ”; } if(locData.faxPhone) { list += ‘
  • Fax: ‘ + formatPhoneBeforeRender(locData.faxPhone) + ”; } if(locData.ttyPhone) { list += ‘
  • TTY: ‘ + formatPhoneBeforeRender(locData.ttyPhone) + ”; } if(list.length > 0) { $(element).find(‘#’ + type + ‘List’).html(list); } else if (data.inEditor) { $(element).html(emptyListPlaceHolder); } else { $(element).css(‘display’,’none’); } emitYextPhoneRenderEvent(formatPhoneBeforeRender(locData.phone)); } var getNumDaysBetween = function(d1, d2) { var diff = d1.getTime() – d2.getTime(); return diff / (1000 * 60 * 60 * 24); }; var orderPaymentsList = function(listData) { if(listData.indexOf(‘Discover’) >= 0) { listData.splice(listData.indexOf(“Discover”), 1); listData.unshift(‘Discover’); } if(listData.indexOf(‘American Express’) >= 0) { listData.splice(listData.indexOf(“American Express”), 1); listData.unshift(‘American Express’); } if(listData.indexOf(‘MasterCard’) >= 0) { listData.splice(listData.indexOf(“MasterCard”), 1); listData.unshift(‘MasterCard’); } if(listData.indexOf(‘Visa’) >= 0) { listData.splice(listData.indexOf(“Visa”), 1); listData.unshift(‘Visa’); } return listData } var displayImageList = function(type,yextData) { var list = “”; var listData = orderPaymentsList(_yextData.entities[0].attributes[type]); for (var i=0; i< listData.length; i++) { list += '' + listData[i] + '‘ } if(list.length > 0) { $(element).find(‘#paymentOptionsImages’).html(list) } else if (data.inEditor) { $(element).html(emptyListPlaceHolder); } else { $(element).css(‘display’,’none’); } } var displaySocialIcons = function(type,yextData) { var list = “”; if(yextData.entities[0].attributes.facebookPageUrl) { list += ‘ ‘ } if(yextData.entities[0].attributes.twitterHandle) { list += ‘ ‘ } if(yextData.entities[0].attributes.instagramHandle) { list += ‘ ‘ } if(list.length > 0) { $(element).find(‘#socialIcons’).html(list); } else if (data.inEditor) { $(element).html(emptyListPlaceHolder); } else { $(element).css(‘display’,’none’); } } var getImageUrl = function(name,style) { var cdnPath = ‘https://cdn.websites.hibu.com/-resellers-preview/_cc_icons/’; if(!style) { style = ‘_d.svg’ } if (name === “ZELLE”){ name = “Zelle” } var imageUrl=”; switch (name) { case ‘Visa’: imageUrl = cdnPath + name.replace(/[W_]+/g,”).toLowerCase() + style; break; case ‘MasterCard’: imageUrl = cdnPath + name.replace(/[W_]+/g,”).toLowerCase() + style; break; case ‘Discover’: imageUrl = cdnPath + name.replace(/[W_]+/g,”).toLowerCase() + style; break; case ‘American Express’: imageUrl = cdnPath + name.replace(/[W_]+/g,”).toLowerCase() + style; break; case ‘Android Pay’: imageUrl = cdnPath + name.replace(/[W_]+/g,”).toLowerCase() + style; break; case ‘Apple Pay’: imageUrl = cdnPath + name.replace(/[W_]+/g,”).toLowerCase() + style; break; case ‘Bitcoin’: imageUrl = cdnPath + name.replace(/[W_]+/g,”).toLowerCase() + style; break; case ‘Cash’: imageUrl = cdnPath + name.replace(/[W_]+/g,”).toLowerCase() + style; break; case ‘Check’: imageUrl = cdnPath + name.replace(/[W_]+/g,”).toLowerCase() + style; break; case ‘Diners Club’: imageUrl = cdnPath + name.replace(/[W_]+/g,”).toLowerCase() + style; break; case ‘Discover’: imageUrl = cdnPath + name.replace(/[W_]+/g,”).toLowerCase() + style; break; case ‘Financing’: imageUrl = cdnPath + name.replace(/[W_]+/g,”).toLowerCase() + style; break; case ‘Invoice’: imageUrl = cdnPath + name.replace(/[W_]+/g,”).toLowerCase() + style; break; case ‘PayPal’: imageUrl = cdnPath + name.replace(/[W_]+/g,”).toLowerCase() + style; break; case ‘Samsung Pay’: imageUrl = cdnPath + name.replace(/[W_]+/g,”).toLowerCase() + style; break; case “Traveler’s Check”: imageUrl = cdnPath + name.replace(/[W_]+/g,”).toLowerCase() + style; break; case “Zelle”: imageUrl = cdnPath + name.replace(/[W_]+/g,”).toLowerCase() + style; break } return imageUrl } function emitYextPhoneRenderEvent(phone) { var yextPhoneRenderEvent = new CustomEvent(‘YextPhoneChangeEvent’, { detail: phone, bubbles: true, cancelable: true }); document.dispatchEvent(yextPhoneRenderEvent); } var initYextElements = function(yextData,widgetType){ if (widgetType === ‘address’ && data.config.drawMap) { drawMap(yextData); } else if (widgetType === ‘paymentOptions’ && data.config.showPaymentsAs === ‘paymentIcons’) { displayImageList(widgetType,yextData); } else if (widgetType === ‘phone’ && data.config.phoneShowAs === ‘list’) { displayPhoneList(widgetType,yextData); // check for any list type } else if(widgetType === ‘phone’ && data.config.phoneShowAs === ‘button’) { var phFormatted = formatPhoneBeforeRender(yextData.entities[0].attributes[data.config.phoneType],function(phone) { $(element).find(“.dmButtonLink”).html(” + phone + ”); emitYextPhoneRenderEvent(phone); }); } else if(widgetType === ‘phone’ && data.config.phoneShowAs === ‘text’) { var phFormatted = formatPhoneBeforeRender(yextData.entities[0].attributes[data.config.phoneType],function(phone) { $(element).find(‘.yextPhoneText’).html(” + phone + ”); emitYextPhoneRenderEvent(phone); }); } else if (widgetType === ‘services’ || widgetType === ‘googleAttributesFormatted’ || widgetType === ‘languages’ || widgetType === ‘paymentOptions’ || widgetType === ‘keywords’ || widgetType === ‘products’ || widgetType === ‘associations’ || widgetType === ‘brands’) { setTimeout(function() { displayTextdList(widgetType,yextData) },1); } else if(widgetType === ‘specialties’) { setTimeout(function() { displaySpecialties(yextData) },1) }else if (widgetType ===’serviceArea’) { setTimeout(function() { displayServiceArea(widgetType,yextData,data.config.showServiceAreaFirst) },1) } else if (widgetType ===’hours’ && data.config.hoursShowAs === ‘list’ && data.config.isList == false) { setTimeout(function() { displayHours(widgetType,yextData) },1) } else if (widgetType ===’hours’ && data.config.hoursShowAs === ‘openHours’) { setTimeout(function() { displayOpenHours(widgetType,yextData) },1) } else if (widgetType === ‘social’) { displaySocialIcons(widgetType,yextData); } else if (widgetType === ‘holidayHours’) { setTimeout(function() { displayHolidayHoursList(widgetType,yextData) },1); } else if (widgetType === ‘hours’) { //hide hours list if toggle enabled if(data.config.hideHoursList === true) { $(element).find(‘.yextHours’).css(‘display’,’none’); } } else if (widgetType === ‘description’ || widgetType === ‘yearEstablished’ || widgetType === ’email’ || widgetType === ‘name’) { // check hideIfEmpty(widgetType,yextData) } //remove error if script not entered correctly. $(element).find(‘.wrongScriptError’).removeClass(‘hasError’); } function hideIfEmpty(type,yextData) { if(!yextData.entities[0].attributes[type]) { if(data.inEditor) { $(element).html(emptyListPlaceHolder); } else { $(element).css(‘display’,’none’); } } } // TODO CHANGE TO EVENT CALL BACK var startIntervalToWaitAndLoadWidgets = function(widgetType) { //start interval for this specific widget var intervalCheckYextLoaded = setInterval(function(){ if (window._yextData) { clearInterval(intervalCheckYextLoaded); initYextElements(window._yextData,widgetType); } },50) } /* initialization */ if(data.inEditor){ window.refreshYext && window.refreshYext(); $(document).ready(function(){ if(!window.yextInitialized){ $(element).find(‘.missingYextWidget’).addClass(‘show’); } else { $(element).find(‘.missingYextWidget’).removeClass(‘show’); } }); } else { dmAPI.runOnReady(‘yext’ , function(){ loadYext(); }); // Before navigating with Ajax, we set the yext initialized to be false so it will be initialized again after the ajax navigation dmAPI.runBeforeAjaxNavigation(‘yext’, function(){ window.yextInitialized = false; }); } }; ]]]]]]>]]]]>]]>
  • ‘+getSvg(‘facebook’)+’ ‘); case ‘Tumblr’: href = ‘http://tumblr.com/share/link?url=’+link+’&name=’+encodedTitle; return ( ‘ ‘+getSvg(‘tumblr’)+’ ‘); case ‘LinkedIn’: href = ‘http://www.linkedin.com/shareArticle?mini=true&url=’+link+’&title=’+encodedTitle; statsEventName = ‘CM_SHARE_LINKEDIN’; return ( ‘ ‘+getSvg(‘linkedIn’)+’ ‘); case ‘Twitter’: href = ‘https://twitter.com/intent/tweet?text=’+link; statsEventName = ‘CM_SHARE_TWITTER’; return ( ‘ ‘+getSvg(‘twitter’)+’ ‘); case ‘Reddit’: href = ‘http://www.reddit.com/submit?url=’+link+’&title=’+encodedTitle+’&text=’+encodedTitle; return ( ‘ ‘+getSvg(‘reddit’)+’ ‘); /* case ‘GooglePlus’: href = ‘https://plus.google.com/share?url=’+link; statsEventName = ‘CM_SHARE_GOOGLE_PLUS’; return ( ‘ ‘+getSvg(‘gPlus’)+’ ‘); */ case ‘Pinterest’: href = ‘http://pinterest.com/pin/create/button/?url=’+link+’&description=’+encodedTitle; return ( ‘ ‘+getSvg(‘pinterest’)+’ ‘); default: return ”; } } // // Helpers // // check display type function isMobile() { return data.device === ‘mobile’; } function getItemAction(item, elem) { var statsEventName=”; switch(item.Action) { case ‘Link’: if(!item.Link) item.Link = { target: ‘target=”_blank’, href: ‘http://www.google.com’ } // default link var target = item.Link.target? item.Link.target : ”; var statsEventName = ‘CM_LINK_CLICK’; return ”+elem+”; case ‘Call’: statsEventName = ‘CM_CLICK_TO_CALL’; return ”+elem+”; case ‘Sms’: statsEventName = ‘CM_CLICK_TO_SMS’; return ”+elem+”; case ‘Email’: statsEventName = ‘CM_CLICK_TO_EMAIL’; return ”+elem+”; case ‘Map’: statsEventName = ‘CM_DIRECTION’; return ”+elem+”; case ‘Mess’: statsEventName = ‘CM_FB_MESSAGE’; return ”+elem+”; case ‘Share’: return ”+elem+”; default: return ”; } } // returns new default icon only if icon is default (identified by path data in default svg MUST CHANGE FOR DIFFERENT DEFAUTL) function getItemIcon(item) { // icon is default if(item.CustomIcon) { return ”+item.Icon+”; } else { switch(item.Action) { case ‘Link’: return getSvg(‘link’); case ‘Call’: return getSvg(‘phone’); case ‘Sms’: return getSvg(‘sms’); case ‘Email’: return getSvg(‘envelope’); case ‘Mess’: return getSvg(‘messenger’); case ‘Map’: return getSvg(‘map’); case ‘Share’: return getSvg(‘share’); } } } window._trackConvWidgetClickEvent = function(eventName) { if(typeof(HAF)===”object”){ HAF.OmTracking.onCMClick(eventName) } return; } function dudaicon(icon){ return ”+icon+” } function getSvg(name) { const type = name? name : data.config.DeskMain; switch(type) { case ‘vEllipsis’: return ‘More’; case ‘map’: return ” case ‘hEllipsis’: return ‘More’; case ‘plus’: return ‘More’; case ‘bars’: return ‘More’; case ‘envelope’: return ‘Email’; case ‘shareenvelope’: return ‘Email’; case ‘phone’: return ‘Phone’; case ‘close’: return ‘Close’; case ‘facebook’: return ‘Facebook’; case ‘messenger’: return ‘Facebook Messenger’ case ‘tumblr’: return ‘Tumblr’; case ‘linkedIn’: return ‘LinkedIn’; case ‘twitter’: return ‘Twitter’; case ‘reddit’: return ‘Reddit’; case ‘pinterest’: return ‘Pinterest’; case ‘share’: return ‘Share’; case ‘sms’: return ‘SMS Text’; case ‘link’: return ”; default: return ”; } } }; ]]]]]]>]]]]>]]>


    Source

    Water Restoration

    WATER DAMAGE
    IN THE HOME

    Water damage in the home is often caused by a small problem that worsens over time. Issues such as a leaky pipe, roof damage, or even condensation can lead to extensive damage to your home if not noticed or not addressed.

    Source

    The 10 Best Repair Services in Alabaster, AL (with Free

    In some states, a handyman can provide plumbing services, but it may be in your best interest to call a plumber, particularly for issues more major than unclogging a drain or attaching a new sink. Hiring a plumber is important because mishandling your water and gas lines has the potential to do great damage to your home, your family’s health, or even the safety of your neighborhood. A handyman is not legally required to have any training or licensing in plumbing matters, while a licensed plumber has undergone years of education and on-the-job training. In some cases, homeowners insurance won’t cover damage caused by plumbing repair done by an unlicensed handyman.

    According to the U.S. Department of Labor, most plumbers learn their trade through a four- or five-year apprenticeship with 2,000 hours of paid on-the-job training. They also receive classroom education including “safety, local plumbing codes and regulations, and blueprint reading. They also study mathematics, applied physics, and chemistry. After completing an apprenticeship program, plumbers … are considered to be journey workers, qualifying them to perform duties on their own,” according to the DOL. Licensed plumbers should do continuing education to keep abreast of safety and technology changes. Poor plumbing can lead to sewage backups, a flooded home or even natural gas leaks, so it’s best to leave it in the hands of a specialized professional.

    Source

    Here’s Exactly What You Can Expect to Pay a Handyman


    How Much It Costs to Hire a Handyman

    Photo: istockphoto.com

    When you own a home, it seems as if there’s always something that needs to be repaired or replaced. While you may have the skills to handle small projects on your own, there may be some repairs or renovations that you’d be more comfortable leaving to the experts. In those instances, you may want to hire a handyman (or handywoman) to, say, paint your bedroom, clean out your gutters, or install a new kitchen faucet. To help you figure out a budget and determine whether you’re getting a fair deal, read on to learn the going rate for some common handyman services.

    Typical Hourly Rates for a Handyman

    A handyman is skilled to perform a variety of minor home repairs as well as renovations and construction. Costs will depend on the market and the complexity of the job, and can be charged as a flat fee or an hourly rate.

    Typical hourly handyman rates are between $60 and $70 for independent workers and around $125 per hour for a handyman who works for a company. An experienced handyman will know how much time it usually takes to do a particular type of job and will charge accordingly.

    • A small job usually takes less than two hours and uses only simple hand tools to complete. This might run you $75 to $150.
    • A medium job will be a little more complex and will likely require power tools. It may take between two and four hours, running $150 to $300.
    • A large job, as you might guess, will be the most involved and will take anywhere from four hours to a few days to finish, plus it may demand special equipment. Expect a large job to fall somewhere between $300 and $1,000.

    Note: If the handyman has to purchase parts or materials for your project, he/she may also charge a markup.

    Average Costs for Common Handyman Jobs

    As mentioned, the type of project you hire out will be the biggest determinant of the total cost, no matter whether you’re working with someone who goes by an hourly or a flat rate. To help you budget appropriately, here’s how a few common tasks stack up, from quick, inexpensive jobs to pricier projects.

    1. Cost to Hang a Heavy Piece of Art: $60 to $125

    Hanging a heavy piece of art requires miscellaneous hardware and screws (if a hanger was not already attached to the frame). Your handyman will also probably use a stud finder, tape measure, and level—basic tools that he most likely already has on hand. Expect the project to take between one and one-and-a-half hours, depending on the overall size and placement of the art.

    How Much It Costs to Hire a Handyman to Clean the GuttersHow Much It Costs to Hire a Handyman to Clean the Gutters

    Photo: istockphoto.com

    2. Cost to Clean Gutters: $100 to $150

    Not comfortable climbing a ladder to reach your house’s gutters and downspouts? While this is a relatively unskilled job, a typical gutter cleaning will take between 90 minutes and two-and-a-half hours to clear leaves and debris from approximately 120 linear feet of gutter. If you have a lot of trees on your property, get more bang for your buck by having the handyman install a gutter guard while he’s up there to keep the gutters clear and cut down on the number of times you need to call in a pro to clean.

    3. Cost to Hook Up a Washer and Dryer: $100 to $150

    The weight of these appliances is often challenging for homeowners. Assuming that the gas or electric hookups are already in place, the job will take between one and two-and-a-half hours. Expect the higher end of the price range if the washer and dryer set needs to be moved to the basement, water supply hoses or dryer vent pipe needs to be purchased, or an exterior vent hole needs to be drilled.

    4. Cost to Replace a Bathroom Faucet: $60 to $150

    A straightforward removal of an old faucet and installation of a new one (already purchased) might take 60 to 90 minutes to complete. The higher estimates would apply to jobs that require additional labor to install shut-off valves or replace the P-trap.

    5. Cost to Replace Caulking Around a Shower: $100 to $280

    While the cost of materials is low, this job can be labor-intensive depending on the type of and condition of the existing caulk. After all, before a handyman can even load a caulk gun, he needs to take care of the old, crumbling caulk lines, which often involves completely removing the old sealant, cleaning up any soap scum and mildew, and preparing the surface for new caulk.

    How Much It Costs to Hire a Handyman to Repair DrywallHow Much It Costs to Hire a Handyman to Repair Drywall

    Photo: istockphoto.com

    6. Cost to Repair Drywall: $275 to $780

    Here, too, prices vary significantly depending on the extent of the damage. A minor repair or patch may be done with a flat rate, but most repairs would be done at an hourly rate of $60 to $90 per hour. This could take a couple of days, as drying time is required between coats of mud, sanding, and touch-up paint. Figure that a 4-foot by 8-foot sheet of drywall, including labor, runs around $45.

    7. Cost to Paint a 12-foot by 12-foot Room: $400 to $1,000

    If you’re experiencing sticker shock at this price estimate, remember that painting is a labor-intensive job (even for experienced painters) because of the significant amount of prep work involved. Covering floors and furniture with drop cloths, cleaning the walls, repairing cracks, taping around windows and doors, priming, painting baseboards and other trim, and cutting in along the ceiling all take time. Textured walls, dark colors, or decorative finishes are usually more expensive, adding another $2 to $4 per square foot.

     

    How Much It Costs to Hire a HandymanHow Much It Costs to Hire a Handyman

    Photo: istockphoto.com

    So, Why Hire a Handyman?

    While there are plenty of projects around the house you can probably do yourself, hiring a good handyman has the potential to save you both time and money—not to mention the hassle of a project that isn’t wholly in your comfort zone.

    For starters, instead of spending a few hours searching for specialists for every paint, caulk, or drywall project that arises, with just one round of research, you can find a worker skilled in a variety of services. Even better, if you’re satisfied with his work, he can come back to help out again and again. Plus, your search may turn up more professionals available immediately to take on repairs or even more ambitious projects. With a jack-of-all-trades standing by, you can stick to your timeline for repairs and small renovations—no need to wait months for a contractor to fit you into his schedule behind larger (and perhaps more lucrative) jobs.

    Not only will a competent handyman help you keep your house in good repair, but you may also find that paying someone else to do the work turns out to be an efficient use of money. A handyman will often have the tools needed for the job, saving you the cost of renting power tools, and he may also offer a discounted or bundled rate when you hire him for several projects at once.

     

    The content is paid advertising created in partnership with Puls. Its facts and opinions are those of BobVila.com.

    Source