Please support our work!
DonateAdvertise
Newsletters | Tickets | Pet Memorials | Legal Notices | |
Search:
Vermont's Independent Voice
Seven Days
- News
- Arts+Culture
- Home+Design
- Food
- Cannabis
- Music
- On Screen
- Events
- Jobs
- Obituaries
- Classifieds
- Personals
Browse News
Browse Arts + Culture
Browse Food + Drink
Browse Cannabis
Browse Music
Browse On Screen
Browse Events
Browse Classifieds
Browse Personals
"); jQuery('.subnav_content').prependTo(jQuery('#NavigationHorizontal.nav-panels')); */ panellinks.each(function(fl) { var panel_id = 'SNAV_'+fl.id.split('_')[1]; var link_w = fl.getWidth(); var rightOffsetReset = -fl.cumulativeOffset()[0]-fl.getWidth(); new FloatingPanel(fl,panel_id,{ rightOffset:rightOffsetReset, topOffset:32, effects:"on", effectDuration:'0.25', closeDelay:'0', allowDefault:true, }); }); })();
Special Reports
- Aging in VT
- Our Towns
Pubs+More
- Québec Guide
- Kids VT
- Good Citizen
- Best of Vermont
- Audio
- Games
June 10, 2024Life Lines» Obituaries
St. Albans woman remembered for her big heart, kind soul and compassion
Published June 10, 2024 at 6:00 a.m.
- Courtesy
- Jodi Larkin
Sunrise: September 14, 1981
Sunset: May 25, 2024
JodiL. (Young) Larkin passed away on May 25, 2024. Her full obituary canbe found at www.healdfuneralhome.com.
') let lineHeight = jQuery('[line-height-check]').get(0).clientHeight; jQuery('[line-height-check]').remove() if (jQuery(element).prop('tagName').match(/HIDDEN/i) !== null) { jQuery(element).children('div').last().css({ marginBottom: `${lineHeight*2}px` }); } else { jQuery(element).css({ marginTop: `${lineHeight*2}px`, marginBottom: `${lineHeight}px` }); } // const insertionBlockClass = `fdn-paragraph-insertion-block`; const styleElementHook = `fdn-paragraph-insertion-styles`; jQuery(element).addClass(insertionBlockClass); if (jQuery(`[${styleElementHook}]`).length === 0) { jQuery('div.fdn-content-body, div #storyBody').append('
') const paragraphLineHeight = jQuery('[line-height-check]').get(0).clientHeight; jQuery('[line-height-check]').remove() const styleElement = jQuery(`
`); const styleText = ` div.fdn-content-body br+.${insertionBlockClass}:not([hidden]), div #storyBody br+.${insertionBlockClass}:not([hidden]) { margin-top: ${paragraphLineHeight*2}px; margin-bottom: ${paragraphLineHeight}px; } div.fdn-content-body br+.${insertionBlockClass}[hidden] > div:last-of-type, div #storyBody br+.${insertionBlockClass}[hidden] > div:last-of-type { margin-bottom: ${paragraphLineHeight*2}px; } ` styleElement.text(styleText); jQuery('head').append(styleElement); } // } } jQuery(element).insertBefore(this.paragraphEndNodes[index]); } else { console.warn('Foundation.ParagraphTool.insertElemenAt: invalid insertion index', index); } } this.insertElemenAtEnd = function (element) { if (this.paragraphEndNodes.length) { let lastNode = this.getNodeAtIndex(this.paragraphEndNodes.length -1); if (this.isDoubleBrParagraphBreak(lastNode) || this.isBrParagraphBreakBeforeBlockElement(lastNode)) { if (jQuery(element).get(0).tagName.match(/SCRIPT/i) !== null) { jQuery('
').insertAfter(this.paragraphEndNodes[index]); jQuery('
').insertAfter(this.paragraphEndNodes[index]); } else { jQuery('div.fdn-content-body, div #storyBody').append('
') let lineHeight = jQuery('[line-height-check]').get(0).clientHeight; jQuery('[line-height-check]').remove() if (jQuery(element).prop('tagName').match(/HIDDEN/i) !== null) { jQuery(element).children('div').last().css({ marginBottom: `${lineHeight*2}px` }); } else { jQuery(element).css({ marginTop: `${lineHeight*2}px`, marginBottom: `${lineHeight}px` }); } } } } this.bodyContainer.append(element); } this.getNodeAtIndex = function (index) { return this.paragraphEndNodes[index]; } }
`); } var paragraphCount = myParagraphTool.getParagraphEndNodeCount(); // No need to insert if there aren't enough paragaphs if (paragraphCount >= parseInt(item.requiredCountToDisplay)) { // Matches specific paragraph insertion indexes if (item.insertPoint.match(/^\d+$/) !== null) { var insertIndex = parseInt(item.insertPoint) - 1; // Insert within content if (insertIndex < paragraphCount) { myParagraphTool.insertElemenAtIndex(componentElement, insertIndex); } // Append to the end if the insert point is beyond the paragraph count else { myParagraphTool.insertElemenAtEnd(componentElement) } } // Matches for 1/2, 1/4, 2/3, 5/6, etc else if (item.insertPoint.match(/^[1223456]\/[23456]$/) !== null) { var fractionMatch = new RegExp(/^([123456])(?:\/)([23456]$)/); var fractionPart = parseInt(item.insertPoint.match(fractionMatch)[1]); var fractionWhole = parseInt(item.insertPoint.match(fractionMatch)[2]); var fractionValue = fractionPart / fractionWhole; var fractionIndex = Math.floor(myParagraphTool.paragraphEndNodes.length * fractionValue) - 1; myParagraphTool.insertElemenAtIndex(componentElement, fractionIndex); } // Matches for every Nth insertion point else if (item.insertPoint.match(/^\d*th$/i) !== null) { var intervalIndex = parseInt(item.insertPoint.match(/^(\d*)th$/i)[1]); var startingIndex = parseInt(item.startingPoint) - 1; var insertionMax = parseInt(item.maxInsertions) || 100; var insertionCount = 0; for (var i = startingIndex; i < myParagraphTool.paragraphEndNodes.length && insertionCount < insertionMax; i++) { if ((i - startingIndex) % intervalIndex === 0) { let currentNode = myParagraphTool.getNodeAtIndex(i); const clonedComponent = componentElement.clone(); myParagraphTool.insertElemenAtIndex(clonedComponent, i); insertionCount++; } } } } }); Foundation.Content['41102091'].setupInlineComponents = function () { return true; }; if (typeof callback === 'function') { callback(); } }, 200); } Foundation.Content['41102091'].previewInsertionPoints = function () { var myParagraphTool = Foundation.Content['41102091'].paragraphTool myParagraphTool.paragraphEndNodes.each((index, item) => { const insertionPointPlaceholder = jQuery(`
Insertion point ${index+1}
`) myParagraphTool.insertElemenAtIndex(insertionPointPlaceholder, index); }); return 'Paragraph insertion placeholders applied.'; }
Got something to say?Send a letter to the editorand we'll publish your feedback in print!
Tags: Obituaries
More Obituaries »
Trending
- Keith Monley, 1949-2024
- Brian Searles, 1947-2024
- Eric Smith, 1983-2024
Mark your family’s milestones in the newspaper and online with Seven Days:
births • graduations • weddings • anniversaries • obituaries
Submission Info
Comments
Subscribe to this thread:
By Email
With RSS
\r\n\r\n \r\n \r\n Note: Since you've already made live comments to day(s)ay, this and any additional comments in this timeframe will be reviewed by our staff before being made live. Thank you for your contribution!\r\n \r\n <\/div>":''; if (oid){ var params = { ajaxComponent: componentId, commentOid: oid }; jQuery.ajax({ url: url, data: (params), success: function (data) { if (!jQuery.trim(jQuery("#"+componentId+"_commentContent").html())){ jQuery("#"+componentId+"_commentContent").append(limitMsg+data).find(".brandNewComment").fadeIn("fast"); } else { jQuery("#"+componentId+"_commentContent").children("div.comment, div.brandNewComment, div.limitMsg").filter(":last").after(limitMsg+data).parent().find(".brandNewComment").fadeIn("fast"); } var t=setTimeout(function(){removeEdit(oid)},300000); var myTotal = parseInt(jQuery("#comments_total").text(), 10); myTotal++; updateCommentTotals(false,myTotal); } }); } } function doLikeComment(e){ e.preventDefault(); if (!this.clicked){ var oid = jQuery(this).attr("data-commentOid"); jQuery("#Comments #"+oid+"_likeLinks a").addClass("dimmed").css("opacity","0.4").each(function(){this.clicked = true;}); var myCurrentLikes = jQuery("#"+oid+"_rating_likes").html() || 0; var myCurrentDislikes = jQuery("#"+oid+"_rating_dislikes").html() || 0; var thisRating = jQuery(this).attr("rel"); if (thisRating == "Like"){ myCurrentLikes = parseFloat(myCurrentLikes)+1; } else { myCurrentDislikes = parseFloat(myCurrentDislikes)+1; } var myNewLine = '' + myCurrentLikes + ' like'; if (myCurrentLikes != 1) { myNewLine += 's'; } myNewLine += ', ' + '' + myCurrentDislikes + ' dislike'; if (myCurrentDislikes != 1) { myNewLine += "s"; } jQuery("#"+oid+"_rating_sub").html(myNewLine); jQuery("#"+oid+"_rating_sub").show(); var params = { oid: oid, rating: thisRating }; jQuery.ajax({ url: "/gyrobase/Tools/AjaxLike", type: "POST", data: (params), success: function (data) { jQuery("#"+oid+"_rating_sub").html(data); if (thisRating == "Like"){ jQuery("#Comments #"+oid+"_likeLinks a.dislike").removeClass("dimmed").css("opacity","1").each(function(){this.clicked = false;}); } else { jQuery("#Comments #"+oid+"_likeLinks a.like").removeClass("dimmed").css("opacity","1").each(function(){this.clicked = false;}); } } }); } } function reportComment(e){ e.preventDefault(); e.stopPropagation(); var oid = jQuery(this).attr("rel"); var elem = jQuery("#"+oid+"_report"); elem.click(function(e){e.stopPropagation();}) if (!elem.is(":visible")){ jQuery("#Comments .reportCommentContainer").hide(); if (elem.is(":empty")){ var params = { oid: oid, ajaxComponent: "ReportComment" }; jQuery.ajax({ url: "/gyrobase/Tools/ReportComment", data: (params), success: function (data) { elem.html(data); elem.fadeIn("fast"); } }); } else { elem.fadeIn("fast"); } } // attach close event handler to the html jQuery("html").one("click", function(){ jQuery("#Comments .reportCommentContainer:visible").hide(); }); } function closeReport(obj){ jQuery(obj).closest(".reportCommentContainer").fadeOut("fast"); } function submitReport(e){ var params = jQuery(e).closest("form").serialize()+"&ajaxComponent=ReportComment"; jQuery.ajax({ url: "/gyrobase/Tools/ReportComment", type: "POST", data: (params), success: function (data) { jQuery(e).closest(".reportCommentContainer").html(data); } }); } (function($) { var subscribed=false; function showFollowPanel(e){ e.preventDefault(); myPanel = $(this).parent().next(".togglePanel"); myPanel.fadeIn("fast"); } function doSubscribe(obj){ var myPanel = obj.parent().next(".togglePanel"); myPanel.fadeIn("fast"); if (!subscribed){ var myLink = obj.parent(); var myLoader = myPanel.children(".loading"); var myUpdater = myPanel.children(".ajaxUpdater"); var params = { object: myPanel.attr("data-toolsoid"), macro: myPanel.attr("data-toolsajaxmacro"), url: window.location }; $.ajax({ url: "/gyrobase/Macros/ToolsAjax", data: (params), type: "POST", dataType: "html", success: function (data) { subscribed = true; if (myUpdater){ myUpdater.html(data); myLoader.fadeOut("fast", function(){ myUpdater.fadeIn("fast", function(){ setTimeout(function(){ myPanel.fadeOut("fast"); }, 3000); }); }); } else { myPanel.fadeOut("fast"); } } }); } } function activateSubscribe(e){ e.preventDefault(); var myObj = $(this); var isAuthenticated = Foundation.SessionManager.sharedSessionManager().isAuthenticated(); if (!isAuthenticated){ new Foundation.Login.Dialog({ "feelingShy": false, "callback": function(){doSubscribe(myObj);} }); return false; } else { // Proceed doSubscribe(myObj); } } function deleteComment(e){ e.preventDefault(); var thisComment = $(this); var params = { macro: "deleteComment", comment: thisComment.attr("data-comment") }; $.ajax({ url: "/gyrobase/Macros/ToolsAjax", data: (params), type: "POST", dataType: "html", success: function (data) { thisComment.closest(".brandNewComment").fadeOut("fast", function(){ $(this).remove(); var myTotal = parseInt(jQuery("#comments_total").text(), 10); myTotal--; updateCommentTotals(false,myTotal); }); } }); } function editComment(e){ e.preventDefault(); var thisComment = $(this); var commentCont = thisComment.closest(".brandNewComment").find(".description"); var commentTemp = thisComment.closest(".brandNewComment").find(".commentTemp"); var commentText = commentTemp.html(); var toolbar = thisComment.closest(".brandNewComment").find(".commentToolbar"); commentCont.next(".commentEditCont").remove(); commentCont.after('
'); toolbar.fadeOut("fast"); commentCont.fadeOut("fast", function(){ commentCont.next(".commentEditCont").fadeIn("fast", function(){ $(".brandNewComment textarea.expandableBox").autoBoxResize(); $(".brandNewComment textarea.expandableBox").focus(); }); }); } function editCommentSave(e){ e.preventDefault(); var thisComment = $(this); var editCont = thisComment.closest(".commentEditCont"); var commentTemp = thisComment.closest(".brandNewComment").find(".commentTemp"); var newText = thisComment.prevAll("textarea").val(); var toolbar = thisComment.closest(".brandNewComment").find(".commentToolbar"); var params = { macro: "editComment", comment: thisComment.attr("data-comment"), commentText: newText }; $.ajax({ url: "/gyrobase/Macros/ToolsAjax", data: (params), type: "POST", success: function (data) { if (data.error){ $(".editErrorDisplay").html("
- "+data.error+"
").fadeIn("fast"); } else if (data.result){ editCont.fadeOut("fast", function(){ $(".editErrorDisplay").hide().html("
"); editCont.prev(".description").html($.trim(data.result)); commentTemp.html(newText); editCont.prev(".description").fadeIn("fast"); toolbar.fadeIn("fast"); }); } } }); } function editCommentCancel(e){ e.preventDefault(); var editCont = $(this).closest(".commentEditCont"); var toolbar = $(this).closest(".brandNewComment").find(".commentToolbar"); editCont.fadeOut("fast", function(){ $(".editErrorDisplay").hide().html("
"); editCont.prev(".description").fadeIn("fast"); toolbar.fadeIn("fast"); editCont.remove(); }); } $("#Comments").on('click', ".bottomOptionBar a#doSubscribe", activateSubscribe); $("#Comments").on('click', ".bottomOptionBar a.togglePanelClose", function(){$(this).parent().fadeOut("fast"); return false;}); $("#Comments").on('click', ".brandNewComment a.commentDeleteLink", deleteComment); $("#Comments").on('click', ".brandNewComment a.commentEditLink", editComment); $("#Comments").on('click', ".brandNewComment a.doneEditLink", editCommentSave); $("#Comments").on('click', ".brandNewComment a.cancelEditLink", editCommentCancel); })(jQuery); jQuery(document).ready(function($){ $("#Comments").on('click', '#showMoreComments,#showAllComments', getMoreComments); $("#Comments #sortSelect").change(getMoreComments); getMoreComments(); new Foundation.PostCommentComponent(componentId); var nc = Foundation.NotificationCenter.sharedNotificationCenter(); nc.observe("comment:added", function (e) { var comment = e.data; getComment(comment.get("oid"), comment.get("commentLimit")); // clear rating if (jQuery(".commentFormRating").length!=0){ jQuery(".commentFormRating input[name='reviewRating']").val(""); jQuery(".commentFormRating .goldStarContainer").css("left", zeroPos+"px"); } }); var subscribeCheckBox = $("#Comments_commentSubscribe"); subscribeCheckBox.prop("checked", getCookie("subscribeToThread") === "true" ? true : false); subscribeCheckBox.change(function (e) { var subscribeToThread = $(this).prop("checked"); setCookie("subscribeToThread", subscribeToThread ? "true" : "false", 30); }); var shareFacebookBox = $("#Comments_postCommentToFacebook"); shareFacebookBox.prop("checked", getCookie("shareOnFacebook") === "true" ? true : false); shareFacebookBox.change(function (e) { var shareOnFacebook = $(this).prop("checked"); setCookie("shareOnFacebook", shareOnFacebook ? "true" : "false", 30); }); $("#Comments").on('click', 'a.likeLink', doLikeComment); $("#Comments").on('click', 'a.reportCommentLink', reportComment); });
Life Lines
Obituaries
Jeff Crowe, 1971-2024
Obituaries
Brian Searles, 1947-2024
Obituaries
Keith Monley, 1949-2024
Obituaries
Jeffrey Michael Reid, 1948-2024
Submit Your AnnouncementAll Life Lines »
Latest in Obituaries
Jeff Crowe, 1971-2024
Business owner and accomplished drummer loved making custom tie-dyed tapestries and T-shirts for music festivals
- Jun 14, 2024
Brian Searles, 1947-2024
Former Vermont secretary of transportation lived a life of public service and had a lifelong love of music
- Jun 13, 2024
Keith Monley, 1949-2024
Vermont builder and copy editor’s later years were filled with hiking and letter writing
- Jun 13, 2024
- More »
Keep up with us SevenDays a week!
Sign up for our fun andinformative newsletters:
- Advertising Info•
- Submissions•
- Sponsorships•
- Company News•
- About Us•
- Contact Us
- This Week
- Digital Edition
- Last Week
- Theme Issues
- Archives
stuff to do
- Club Dates
- Art Shows
- Event Calendar
places to go
- Bars
- Cinemas
- Clubs
- Galleries
- Restaurants
- All Locations
News
- Vermont News Quiz
- From the Publisher
- Letters to the Editor
- Report: Aging in Vermont
- Report: Bernie Sanders
- Report: Coronavirus
- Report: Eldercare
- Report: Housing Crisis
- Report: Nonprofits
- Report: Opioid Crisis
- Report: Our Towns
- Report: Prisons
- Report: Waiting for Health Care
Arts+Culture
- Art Reviews
- Ask the Rev.
- Astrology
- Crossword
- Life Stories
- Magnificent 7
- Stuck In Vermont (videos)
- Theater
- Visual Art
- WTF
Food+Drink
- Dining on a Dime
- Food News
- Good To-Go
- Grilling the Chef
- Home on the Range
- Recipes
- Restaurant Reviews
Music
- Soundbites (music news)
- Album Reviews
On Screen
- Movie+TV Reviews
Guides
- Best of Vermont (Seven Daysies)
- Good Citizen Challenge
- Kids VT
- Nest Quarterly
- Québec Guide
- Vermont Restaurant Week
- Vermont Tech Jam
- What's Good
LifeLines
- Obituaries
- In Memoriam
- Births
- Weddings
Classifieds
- Art
- Legal Notices
- Buy This Stuff
- Classes
- Professional Services
- Music
- Housing
Personals
- Post Your Profile
- Newest Pics
- Ask the Rev.
- I Spy...
- Seven Days
- KidsVT
- 7 Nights
- What's Good
- Restaurant Week
- TechJam
All content© 2024Da Capo Publishing, Inc.255 So. Champlain St. Ste. 5,Burlington, VT 05401
Advertising Policy|Privacy Policy|Contact Us|About Us|Help
Website powered by Foundation