Staff - Raisinville Elementary School (2024)

School Links


'; } else { tabTpl += ' '; } tabTpl += "

"; tabTpl = $(tabTpl).unbind("touchstart").on("touchstart", function() { $('#siteAlertModal').trigger('loadPopup'); }); $(this).prepend(tabTpl); setTimeout(function(){ $('#siteAlertModal').find(".modalTab").show({"effect": "fade", "duration": 100, complete: function() {$(this).css("display", "flex")}}); }, args.duration); } else { //remove the modalTab $(this).find(".modalTab").hide().remove(); //unhide the modal-dialog $(this).find(".modal-dialog").show({"effect": "fade", "duration": 300}); //remove the tabbedClass $(this).removeClass("schoolIcon"); //remove the directional positions $(this).css({"top": "0", "bottom": "0", "left": "0", "right": "0"}); } $(this).toggleClass("tabbed"); } var tabArgs = args.closed; tabArgs["duration"] = args.animation.duration; $('#siteAlertModal').unbind("tab").on("tab", "", tabArgs, tabifyPopup); } else { $('#siteAlertModal .modal-content').css("background-color", styles.body['background-color']); function framePopup(event, args) { var dWidth = $('#siteAlertModal .modal-body').outerWidth(); var dHeight = Math.ceil($('#siteAlertModal .modal-body').outerHeight() /10) * 10; if(!$(this).hasClass("framed")) { var directions = {}; cs2.alerts.popup.current.scaleFactor = Math.sqrt((args.width/dWidth) * (args.height/dHeight)); switch(args.location) { case 'top left': directions["bottom"] = "calc(100% - " + (parseInt(args.height)+1) + "px)"; directions["left"] = "0"; break; case 'top': directions["bottom"] = "calc(100% - " + (parseInt(args.height)+1) + "px)"; directions["left"] = "calc(50% - " + ((parseInt(args.width)/2)+1) + "px)"; break; case 'top right': directions["bottom"] = "calc(100% - " + (parseInt(args.height)+1) + "px)"; directions["left"] = "calc(100% - " + (parseInt(args.width)+1) + "px)"; break; case 'left': directions["right"] = "calc(100% - " + (parseInt(args.width)+1) + "px)"; directions["top"] = "calc(50% - " + ((parseInt(args.height)/2)+1) + "px)"; break; case 'right': directions["left"] = "calc(100% - " + (parseInt(args.width)+1) + "px)"; directions["top"] = "calc(50% - " + ((parseInt(args.height)/2)+1) + "px)"; break; case 'bottom left': directions["top"] = "calc(100% - " + (parseInt(args.height)+1) + "px)"; directions["left"] = "0"; break; case 'bottom': directions["top"] = "calc(100% - " + (parseInt(args.height)+1) + "px)"; directions["left"] = "calc(50% - " + ((parseInt(args.width)/2)+1) + "px)"; break; case 'bottom right': directions["top"] = "calc(100% - " + (parseInt(args.height)+1) + "px)"; directions["left"] = "calc(100% - " + (parseInt(args.width)+1) + "px)"; break; } //directions holds the directional (top, bottom, left, right) positions to apply as key-value => style-name:style-value $.each(directions, (index, dir) => { $(this).css(index, dir); }); //add the framed class $(this).addClass("framed"); //create and add the frame to before the modal var frameTpl = '

"; if(args.location.includes("bottom") || args.location == "right") { frameTpl = $(frameTpl).unbind("touchstart").on("touchstart", function() { $('#siteAlertModal').trigger('loadPopup'); }); $(this).prepend(frameTpl); if (args.location == "right") { $(this).css({ "display": "flex", "margin-right" : "-1px", "flex-direction" : "row" }); $(this).find(".modal-dialog").css({"height": "100%"}); $(this).find(".modalFrame").css({"width": "30px", "height": "100%", "writing-mode": "vertical-lr", "transform" : "rotate(180deg)", "margin-right": "-1px"}); $(this).find(".modalFrame .modalFrameOption").css({"padding": "10px 0", "transform": "rotate(90deg)"}); $(this).find(".modalFrame .modalFrameTitle").css({"padding-left": "10px"}); } else { $(this).css({ "display": "flex", "flex-direction" : "column", "margin-bottom" : "-1px", "flex-direction" : "column", "margin-left": (args.location.includes("left")) ? "-1px" : 0, "margin-right" : (args.location.includes("right")) ? "-1px" : 0 }); $(this).find(".modal-anim-container").css({"height": "89%"}); $(this).find(".modalFrame").css({"width": "100%", "height": "30px", "writing-mode": "horizontal-tb", "transform" : "rotate(0deg)", "margin-bottom": "-1px"}); $(this).find(".modalFrame .modalFrameOption").css({"padding": "0 10px", "transform": "rotate(0deg)"}); $(this).find(".modalFrame .modalFrameTitle").css({"padding-top": "10px"}); } } else { $(this).append(frameTpl); if(args.location == "left") { $(this).css({ "display": "flex", "flex-direction" : "row", "margin-left": "-1px" }); $(this).find(".modal-dialog").css({"height": "100%"}); $(this).find(".modalFrame").css({"width": "30px", "height": "100%", "writing-mode": "vertical-lr", "margin-left": "-1px"}); $(this).find(".modalFrame .modalFrameOption").css({"padding": "10px 0", "transform": "rotate(90deg)"}); $(this).find(".modalFrame .modalFrameTitle").css({"padding-left": "10px"}); } else { $(this).css({ "display": "flex", "flex-direction" : "column", "margin-top": "-1px", "margin-left": (args.location.includes("left")) ? "-1px" : 0, "margin-right" : (args.location.includes("right")) ? "-1px" : 0 }); $(this).find(".modal-anim-container").css({"height": "89%"}); $(this).find(".modalFrame").css({"width": "100%", "height": "30px", "writing-mode": "horizontal-tb", "transform" : "rotate(0deg)", "margin-top": "-1px"}); $(this).find(".modalFrame .modalFrameOption").css({"padding": "0 10px", "transform": "rotate(0deg)"}); $(this).find(".modalFrame .modalFrameTitle").css({"padding-top": "10px"}); } } //set the defined width and height $(this).css({"width": args.width+"px", "height": args.height+"px"}); //scale all elements in the content down by cs2.alerts.popup.current.scaleFactor cs2.alerts.popup.current.scaleFactor("down"); setTimeout(function(){ $('#siteAlertModal').find(".modalFrame").show("slide", {"direction" : "up"}, args.duration, function() {$(this).css("display", "flex")}); }, args.duration); } else { //remove the modalFrame $(this).find(".modalFrame").hide().remove(); //remove the tabbedClass $(this).removeClass("framed"); //remove the directional positions $(this).css({"top": "0", "bottom": "0", "left": "0", "right": "0", "width": "100%", "height": "100%"}); cs2.alerts.popup.current.scaleFactor("up"); } } var frameArgs = args.closed; frameArgs["duration"] = args.animation.duration; frameArgs["title"] = args.title; $('#siteAlertModal').unbind("frame").on("frame", "", frameArgs, framePopup); }}cs2.alerts.popup.current.scaleFactor = function(dir){ if(dir == "down") { $.each($('#siteAlertModal .modal-body *:not(img)'), (index, el) => { $(el).css({ "font-size" : (parseFloat($(el).css("font-size")) % 1 == 0) ? "calc("+ $(el).css("font-size")+" / "+cs2.alerts.popup.current.scaleFactor+")" : "inherit", "padding" : "calc(" + $(el).css("padding")+" / "+cs2.alerts.popup.current.scaleFactor+")", "margin" : "calc(" + $(el).css("margin")+" / "+cs2.alerts.popup.current.scaleFactor+")" }); }); //images $.each($('#siteAlertModal .modal-body img'), (index, el) => { $(el).css({ "width": "calc("+$(el).css("width")+ " / "+cs2.alerts.popup.current.scaleFactor+")", "height" : "calc("+$(el).css("height")+ " / "+cs2.alerts.popup.current.scaleFactor+")", }); }); } else { $.each($('#siteAlertModal .modal-body *:not(img)'), (index, el) => { $(el).css({ "font-size" : (parseFloat($(el).css("font-size")) % 1 != 0) ? "calc("+$(el).css("font-size")+" * "+cs2.alerts.popup.current.scaleFactor+")" : "inherit", "padding" : "calc(" + $(el).css("padding")+" * "+cs2.alerts.popup.current.scaleFactor+")", "margin" : "calc(" + $(el).css("margin")+" * "+cs2.alerts.popup.current.scaleFactor+")" }); }); //images $.each($('#siteAlertModal .modal-body img'), (index, el) => { $(el).css({ "width": "calc("+$(el).css("width")+ " / "+cs2.alerts.popup.current.scaleFactor+")", "height" : "calc("+$(el).css("height")+ " / "+cs2.alerts.popup.current.scaleFactor+")", }); }); }}cs2.alerts.popup.current.frameCollapse = function(){ event.stopPropagation(); sender = $(event.currentTarget); var modal = sender.parents("#siteAlertModal"); var args = modal.find(".modal-dialog:first").data("popup"); if($(modal).hasClass('minimized')) { $(modal).removeClass("minimized"); if(args.closed.location.includes("bottom")) { $(modal).css("top", "calc(100% - " + (parseInt(args.closed.height)+1) + "px)"); } else if(args.closed.location.includes("top")) { $(modal).css("top", "0px"); } else if(args.closed.location == "left") { $(modal).css("left", "0px"); } else if(args.closed.location == "right") { $(modal).css("left", "calc(100% - " + (parseInt(args.closed.width)+1) + "px)"); } $(modal).find(".modalFrame").unbind("click"); return; } //perform this based on the location var frameTabSize = ( args.closed.location == "bottom left" || args.closed.location == "bottom" || args.closed.location == "bottom right" || args.closed.location == "top left" || args.closed.location == "top" || args.closed.location == "top right") ? args.closed.height : args.closed.width; if(args.closed.location.includes("bottom")) { $(modal).css("top", "calc(100% - 30px)"); } else if(args.closed.location.includes("top")) { $(modal).css("top", "-" + (frameTabSize-30) + "px"); } else if(args.closed.location == "left") { $(modal).css("right", "-" + (frameTabSize-30) + "px"); $(modal).css("left", "-" + (frameTabSize-30) + "px"); } else if(args.closed.location == "right") { $(modal).css("left", "calc(100% - 30px)"); } $(modal).addClass("minimized"); $(modal).find(".modalFrame").css("cursor", "pointer"); $(modal).find(".modalFrame").unbind("click").on("click", cs2.alerts.popup.current.frameCollapse);}cs2.alerts.popup.current.LoadPopup = function(args){ //Load in Popup Data and Styles cs2.alerts.popup.current.PopupData(args); //Show the Popup var effect = (args.animation.effect == "fade" && args.animation.animParams.direction != "center") ? "drop" : args.animation.effect; var isMobile = screen.width <= 780 || (Math.round(window.devicePixelRatio * 100) >= 200); var isTablet = (screen.width > 780 && screen.width <= 992) || (Math.round(window.devicePixelRatio * 100) >= 150 && Math.round(window.devicePixelRatio * 100) < 200); $('#siteAlertModal').unbind("loadPopup").on("loadPopup", function(event) { event.stopPropagation(); $(this).addClass("in"); $('body').addClass("modal-open"); if(!isMobile && !isTablet && ($(this).hasClass("tabbed") || $(this).hasClass("framed"))) { var loadArgs = args.closed; loadArgs["duration"] = args.animation.duration; loadArgs["title"] = args.title; $(this).trigger(args.closed.state, loadArgs); } else { if(isMobile || isTablet) { if((args.hasOwnProperty("mobile") && args.mobile.hasOwnProperty("display") && args.mobile.display.toLowerCase() == "modern") || $('#siteAlertModal').hasClass("modern-mobile")) { $('#siteAlertModal').addClass("modern-mobile"); $('#siteAlertModal .mobile-popup-tool').css("display", "block"); $('#siteAlertModal .modal-dialog').addClass("modal-fullscreen"); $('#siteAlertModal .modal-body p, #siteAlertModal .modal-body table *').css("font-size", (ind, value) => { var factor = (isTablet) ? 1.15 : 1.25; return parseFloat(value)*factor; }); $('#siteAlertModal .nextPopupBtn, #siteAlertModal .prevPopupBtn').css({ "display": "none", }); $('#siteAlertModal .modal-header').css({ "border-top-left-radius" : 0, "border-top-right-radius" : 0 }); $('#siteAlertModal .modal-footer').css({ "border-bottom-left-radius" : 0, "border-bottom-right-radius" : 0, "display" : "none" }); $('#siteAlertModal .modal-carousel').css({ "width": "100vw", "height" : "inherit", "display" : "inline-block" }); $('#siteAlertModal .popupPagination').css({ "height" : "5%", "display" : ($(this).is(":visible") ? "flex" : "none"), "align-items" : "center" }); $('#siteAlertModal .popupPagination .popupPoint a').css({ "height" : "17px", "width" : "17px", "font-size" : "17px" }); $('#siteAlertModal .modal-content').css("height", "inherit"); $('#siteAlertModal .modal-carousel-wrapper').css({ "width": "100%", "height" : "inherit" }); $('#siteAlertModal .modal-transition-section').css({ "display" : "inline-flex", "height" : "inherit" }); $('#siteAlertModal .modal-anim-container').css({ "height" : "inherit" }); $('#siteAlertModal .modal-body').css({ "height": "inherit" }); $('#siteAlertModal .modal-dialog').css( { "width" : "100vw", "height" : "inherit" }); var enabledButtons = 0; enabledButtons += args.styles.footer.buttons['close'] ? 1 : 0; enabledButtons += args.styles.footer.buttons['custom'].enabled ? 1 : 0; enabledButtons += args.styles.footer.buttons['sub'] ? 1 : 0; $('#siteAlertModal .mobile-popup-buttons').css({ "display" : (enabledButtons > 0) ? "block" : "none" }); $('#siteAlertModal').css({ "height" : "100%", "overflow": "clip" }); $('#siteAlertModal .modal-anim-container').show(); //remove close buttons $('#siteAlertModal button.close').hide(); $(this).show("blind", {"direction" : "down"}, args.animation.duration).promise().done(()=>{ $('#siteAlertModal #popupStart').focus(); }); } else { var multi = $('#siteAlertModal').hasClass("multi"); if(multi) { $('#siteAlertModal .modal-transition-section').css({ "display" : "inline-flex", "height" : "inherit" }); $('#siteAlertModal .modal-dialog').css({ "width" : "100vw" }); $('#siteAlertModal .modal-carousel').css({ "height" : "87vh", }); $('#siteAlertModal .modal-anim-container').css({ "height" : "90vh" }); $('#siteAlertModal').css({ "height" : "100vh" }); $('#siteAlertModal .modal-carousel-wrapper').css({ "width": "100%", "height" : "inherit" }); $('#siteAlertModal .nextPopupBtn, #siteAlertModal .prevPopupBtn').css({ "display": "none", }); } //remove mobile-popup buttons for legacy view $('#siteAlertModal .mobile-popup-tool').hide(); $(this).show('fade', {}, args.animation.duration).promise().done( () => { $('#siteAlertModal .close').focus(); }); } } else { $('#siteAlertModal .mobile-popup-tool').css("display", "none"); var multi = $('#siteAlertModal').hasClass("multi"); if(multi) { $('#siteAlertModal .modal-carousel').css("width", "600px"); } //implement effects here if(args.index == 1) { $(this).show("fade", {}, "slow"); var target = ""; if(effect == "puff") { args.animation.animParams["percent"] = 250; target = ".modal-dialog"; $(this).find(target).hide(); $(this).find(".modal-anim-container").css({"width": "min-content", "height": "min-content", "margin": "0 auto"}).show(); } else if(effect == "fold") { args.animation.animParams["size"] = (args.animation.animParams.horizFirst ? 15 : 50); target = ".modal-dialog"; $(this).find(target).hide(); $(this).find(".modal-anim-container").css({"width": "min-content", "height": "min-content", "margin": "0 auto"}).show(); } else { target = ".modal-anim-container"; $(this).find(target).hide(); } $(this).promise().done(function() { $('#siteAlertModal '+target).show(effect, args.animation.animParams, args.animation.duration); }); } } } }); $('#siteAlertModal').unbind("unloadPopup").on("unloadPopup", function() { event.stopPropagation(); $('body').removeClass("modal-open"); var unloadType = event.type; var key = event.keyCode; //check what the closed state is and adjust accordingly if(isMobile || isTablet || args.closed.state == "hide") { if(isMobile) { $(this).hide("blind", {"direction" : "down"}, args.animation.duration).promise().done(() => { if(unloadType == "keydown") { $("#topPagerBar .skipToMainContent a").focus(); } }); } else { var target = ""; if(effect == "puff") { target = ".modal-dialog"; } else if (effect == "fold") { target = ".modal-dialog"; } else { target = ".modal-anim-container"; } $(this).find(target).hide(effect, args.animation.animParams, args.animation.duration).promise().done(() => { if(unloadType == "keydown") { $("#topPagerBar .skipToMainContent a").focus(); } }); $(this).find(target).promise().done(function() { $('#siteAlertModal').hide("fade", {}, "fast"); $('#siteAlertModal').css({ "transform" : "translateY(0px)" }); cs2.alerts.popup.current.pagination.slide(0); if(unloadType == "keydown") { $("#topPagerBar .skipToMainContent a").focus(); } }); } } else { //will trigger either the tab or frame if(!$(this).hasClass("tabbed") && !$(this).hasClass("frame")) { $(this).trigger(args.closed.state, args.closed).promise().done(() => { if(unloadType == "keydown") { $("#topPagerBar .skipToMainContent a").focus(); } }); } } }); $('#siteAlertModal').click(function(ev) { if(ev.target != this) return; $('#siteAlertModal').trigger("unloadPopup"); }); $('#siteAlertModal').trigger("loadPopup");}cs2.alerts.popup.deployPopup = function(popupID){ var selectedPopup = cs2.alerts.popup.allPopups[popupID]; $('#siteAlertModal .prevPopupBtn').hide(); $('#siteAlertModal .nextPopupBtn').hide(); $('#siteAlertModal .popupPagination').hide(); selectedPopup.meta.index = 1; cs2.alerts.popup.current.LoadPopup(selectedPopup.meta);}cs2.alerts.popup.current.ClickHoverPopup = function(args){ //Establish that this popup will appear when the defined selector is clicked/hovered $(document).on(args.trigger.mode, args.trigger.selector, function(){ if(!$('#siteAlertModal').hasClass("closed")) { cs2.alerts.popup.current.LoadPopup(args); if(args.trigger.selector == "body" || args.trigger.selector == "document") { $('#siteAlertModal').addClass("closed"); } } });}cs2.alerts.popup.current.ScrollPopup = function(args){ //Establish that this popup will appear when the page has been scrolled the defined amount $(document).on("scroll", "", function(e){ var scrollVal = $(window).scrollTop(); var pageHeight = $('body').height(); var screenHeight = screen.height; //need to get the scroll position as a percentage. //the scroll position is found with the formula: 100*((screenHeight/2)+scrollVal)/pageHeight var scrollPos = 100*((screenHeight/2)+scrollVal)/pageHeight; //if there is (no cookie set OR the alert is sticky) AND the modal does not have the closed class AND we are in a good scroll position to show the alert if((typeof $.cookie(args.cookie.tag) == "undefined" || args.trigger.sticky) && !$('#siteAlertModal').hasClass("closed") && scrollPos >= args.trigger.size) { cs2.alerts.popup.current.LoadPopup(args); //add the closed class to prevent it from opening again after scrolling past the point $('#siteAlertModal').addClass("closed"); if(args.trigger.sticky) { var expiryDate = new Date(e.getTime() + popup.cookie.duration*60000); $.cookie(popup.cookie.tag, 1, { "expires" : expiryDate}) } } else if(scrollPos < args.trigger.size) { //remove the closed class so it can open when scrolling through it again. $('#siteAlertModal').removeClass("closed"); } });}cs2.alerts.popup.current.Banner = function(args){ /* Create The Banner */ var banner = '\

\ '; banner = banner.replace(/\{bannerTitle\}/g, args.title); banner = banner.replace(/\{bannerContent\}/g, args.content); banner = banner.replace(/\{bannerCategory\}/g, args.category.name); $('body').append(banner); var styles = args.banner.styles; $('.SiteAlertBanner-'+args.id).css({"background-color" : styles['background-color'], "transition": "all 0.3s linear", "width": "100vw", "z-index": "8999", "position" : "fixed"}); if(args.banner.location == "top") { $('.SiteAlertBanner-'+args.id).css({ "top" : "0px", "bottom" : "auto" }); } else { $('.SiteAlertBanner-'+args.id).css({ "bottom" : "0px", "top" : "auto" }); } $('.SiteAlertBanner-'+args.id+' .banner-content').css({ "padding":"10px 20px"}); $('.SiteAlertBanner-'+args.id+' .banner-title').css({ "color" : styles.title['color'], "font-size" : styles.title['size'], "text-align" : styles.title["justification"], "font-style" : styles.title["italic"] ? "italic" : "normal", "font-weight" : styles.title["bold"] ? "bold" : "normal", "text-decoration" : styles.title["underline"] ? "underline" : "none", "text-decoration-color" : styles.title["color"] }); $('.SiteAlertBanner-'+args.id+' .banner-body').css({"color" : "#FFFFFF"}); $('.SiteAlertBanner-'+args.id+' .banner-header small').css({ "color" : colorcompliancy.getCCHex(styles['background-color'], false), "font-size" : "1.3rem" }); $('.SiteAlertBanner-'+args.id+' .banner-category').css({ "color" : colorcompliancy.getCCHex(styles['background-color'], false), "font-style" : "italic" }); if(args.banner.dismissable == "dismiss" || $(window).width() <= 750) { if(args.banner.dismissType == "collapse") { $('.SiteAlertBanner-'+args.id+' .banner-dismiss').css({ "display" : "flex", "position" : "absolute", "right" : "0", "bottom" : (args.banner.location == "top" ? "auto" : "100%"), "top" : (args.banner.location == "top" ? "100%" : "auto"), "border-top-left-radius" : (args.banner.location == "top" ? "0" : "5px"), "border-top-right-radius" : (args.banner.location == "top" ? "0" : "5px"), "border-bottom-left-radius" : (args.banner.location == "top" ? "5px" : "0"), "border-bottom-right-radius" : (args.banner.location == "top" ? "5px" : "0"), "background-color" : styles['background-color'] }); $('.SiteAlertBanner-'+args.id+' .banner-dismiss a').css({ 'padding' : "10px", 'font-size' : "1.5rem", 'color' : styles['title-color'] }); } else { $('.SiteAlertBanner-'+args.id+' .banner-dismiss').css({ "display" : "flex", "position" : "absolute", "right" : "0", "top" : (args.banner.location == "top" ? "65%" : "-35%"), "border-radius" : "50%", "background-color" : styles['background-color'] }); $('.SiteAlertBanner-'+args.id+' .banner-dismiss a').css({ 'padding' : "5px", 'color' : styles['title-color'] }); } $('.SiteAlertBanner-'+args.id+' .banner-dismiss').on("click", function(e) { //toggle the Banner if(args.banner.dismissType == "collapse") { if($('.SiteAlertBanner-'+args.id).hasClass("closed")) { if(args.banner.location == "top") { $('.SiteAlertBanner-'+args.id).css("top", 0); } else { $('.SiteAlertBanner-'+args.id).css("bottom", 0); } } else { if(args.banner.location == "top") { $('.SiteAlertBanner-'+args.id).css("top", -1*parseInt($('.SiteAlertBanner-'+args.id).height()) + "px"); } else { $('.SiteAlertBanner-'+args.id).css("bottom", -1*parseInt($('.SiteAlertBanner-'+args.id).height()) + "px"); } } $('.SiteAlertBanner-'+args.id).toggleClass("closed"); $('.SiteAlertBanner-'+args.id+' .banner-dismiss i').toggleClass("fa-caret-up fa-caret-down"); } else { $('.SiteAlertBanner-'+args.id).hide("fade", {}, "fast"); } }); } //mobile styles if($(window).width() <= 750) { $('.SiteAlertBanner-'+args.id+' .banner-body').css({ "font-size" : "14px" }); $('.SiteAlertBanner-'+args.id+' .banner-header').css({ "font-size" : "20px" }); } var direction = (args.banner.location == "top" ? "up" : "down"); //$('.SiteAlertBanner').show("drop", {"direction" : direction}, "fast"); $('.SiteAlertBanner-'+args.id).show();} var siteNotice = false; function dropSiteNotice(){ new Ajax.Request('/supressMessages.cfm?supress=false'); Effect.BlindDown('siteNoticeBoxHolder', { duration: 0.5 }) $('pagerBarToolAlertButton').addClassName('buttonOn'); } function liftSiteNotice(){ new Ajax.Request('/supressMessages.cfm?supress=true'); Effect.BlindUp('siteNoticeBoxHolder', { duration: 0.25 }) $('pagerBarToolAlertButton').removeClassName('buttonOn'); } function toggleSiteNotice(){ if ($('pagerBarToolAlertButton').hasClassName('buttonOn')){ liftSiteNotice(); }else{ dropSiteNotice(); } } const clamp = (val, min, max) => Math.min(Math.max(val, min), max); var e=new Date; $.get("/ajax/notifications/getAlertMessage.cfm?json=1&school_id="+currentSchool.id+"&gcdid="+currentPageGCDID+"&now="+e.format("Y-m-d H:i:s"),function(data){ //popups contains all of the popups popups = data; //Set the current Popups if(popups.count > 0) { var isPage = (currentPageAction == "page" && parseInt(currentPageDataID) != 0); var isPortal = (currentPageAction == "Portal" && parseInt(currentPortalID) != 0); var isModule = SystemModules.indexOf(currentPageAction) != -1; var hasAllPages = false; var hasAllPortals = false; var hasTopBanner = false; var hasBottomBanner = false; var fOrT = false; var hasGlobal = false; var hasDW = false; $.each(popups.popups, (index, popup) => { cs2.alerts.popup.allPopups[popup.id] = popup; //we only want the enabled popups that are in the correct time frame //if the popup is not in the date range, then continue. We only want current popups /* popup is current if: * (current timestamp is greater than popup start date AND current timestamp is less than popup end date) OR * current timestamp is greater than popup start date AND popup has no end date */ var noEndCond = (popup.end != "" || (popup.end === "" && dateFormat.compare(new Date(), popup.start, true) === 1)); if(!noEndCond) { return; } //betweenCond is true if today is between the start and end date var startBetween = dateFormat.compare(new Date(), popup.start, true) === 1; var endBetween = dateFormat.compare(new Date(), popup.end, true) === -1; var betweenCond = ((startBetween && popup.end === "") || (startBetween && endBetween)); if(!betweenCond) { return; } //also if the popup is a load or scroll and we're on the correct page if(popup.meta.type == "banner" && (!hasTopBanner || !hasBottomBanner) && ((popup.meta.banner.location == "top" && !hasTopBanner) || (popup.meta.banner.location == "bottom" && !hasBottomBanner)) && popup.meta.enabled) { //add a banner immediately if(popup.meta.banner.location == "top") { hasTopBanner = true; } else { hasBottomBanner = true; } cs2.alerts.popup.current.banners.push(popup.meta); return; } // popup is enabled && today is past the start date && (popup never ends || popup does end and today is before the end date) AND if( popup.meta.enabled && (e > new Date(popup.meta.start)) && (popup.meta.end == "" || (popup.meta.end != "" && e < new Date(popup.meta.end))) && ( //district wide popup (popup.meta.trigger.districtwide) || //popup has a click or hover trigger OR (popup.meta.trigger.mode == "click" || popup.meta.trigger.mode == "mouseover") || ( //popup has a load or scroll trigger AND (popup.meta.trigger.mode == "load" || popup.meta.trigger.mode == "scroll") && ( //we are on a page && (the popup loads on this page OR the popup loads on all pages) OR (isPage && (popup.meta.trigger.pages.indexOf(parseInt(currentPageDataID)) != -1 || popup.meta.trigger.pages.indexOf("all") != -1)) || //we are on a portal && (the popup loads on this portal OR the popup loads on all portals) OR (isPortal && (popup.meta.trigger.portals.indexOf(parseInt(currentPortalID)) != -1 || popup.meta.trigger.portals.indexOf("all") != -1)) || //we are on a Module && the popup is allowed to open on Module (isModule && popup.meta.trigger.modules) || //we are on the homepage && the popup is allowed to open on the Homepage (cs2.page.homepage && popup.meta.trigger.pages.indexOf("homepage") != -1) || //we are on a GCD and on the homepage (currentPageGCDID > 0 && parseInt(currentPageDataID) == 0 && popup.meta.trigger.pages.indexOf("homepage") != -1 && (currentPageAction == "departments" || currentPageAction == "classes")) || //the popup is global (popup.meta.trigger.global) ) ) ) ) { //the popup is districtwide if(popup.meta.trigger.districtwide && !hasDW) { cs2.alerts.popup.current.popups = []; cs2.alerts.popup.current.popups.push(popup.meta); $('#siteAlertModal .prevPopupBtn').hide(); $('#siteAlertModal .nextPopupBtn').hide(); $('#siteAlertModal .popupPagination').hide(); hasDW = true; } //the popup is global if(popup.meta.trigger.global && !hasGlobal && !hasDW) { //remove all the current popups cs2.alerts.popup.current.popups = []; cs2.alerts.popup.current.popups.push(popup.meta); $('#siteAlertModal .prevPopupBtn').hide(); $('#siteAlertModal .nextPopupBtn').hide(); $('#siteAlertModal .popupPagination').hide(); hasGlobal = true; } if( //the popup is not sticky && there is no cookie set AND (!popup.meta.trigger.sticky && $.cookie(popup.meta.cookie.tag) != "1" ) && //(there isn't another popup that shows on all pages && we are on a page) | (we are not on a page && we are not on a portal) AND ((!hasAllPages && isPage)) && //the popup shows on all pages (popup.meta.trigger.pages.indexOf("all") != -1) && //There is no global popups !hasGlobal && //There is no district wide popups !hasDW ) { //if we are on a page and the popup has all pages set hasAllPages = true; //remove all other load popups $.each(cs2.alerts.popup.current.popups, (index, currentPopup) => { if(currentPopup.trigger.mode == "load") { cs2.alerts.popup.current.popups.splice(index, 1); } }); cs2.alerts.popup.current.popups.push(popup.meta); return false; } if( //popup is not sticky && there is no cookie set AND (!popup.meta.trigger.sticky && $.cookie(popup.meta.cookie.tag) != "1") && //(there isn't another popup that showss on all portals) || (we are not on a page && we are not on a portal) AND ((!hasAllPortals && isPortal)) && //the popup shows on all portals (popup.meta.trigger.portals.indexOf("all") != -1) && //There is no global popups !hasGlobal && //There is no district wide popups !hasDW ) { //if we are on a page and the popup has all pages set hasAllPortals = true; //remove all other load popups $.each(cs2.alerts.popup.current, (index, currentPopup) => { if(currentPopup.trigger.mode == "load") { cs2.alerts.popup.current.splice(index, 1); } }); cs2.alerts.popup.current.push(popup.meta); return false; } //Modules if( !popup.meta.trigger.sticky && $.cookie(popup.meta.cookie.tag) != -1 && isModule && !hasGlobal && !hasDW) { $.each(cs2.alerts.popup.current, (index, currentPopup) => { if(currentPopup.trigger.mode == "load") { cs2.alerts.popup.current.splice(index, 1); } }); cs2.alerts.popup.current.push(popup.meta); return false; } if( //(there is not a popup that shows on all pages && this is a page) || (there is not a popup that shows on all portals && this is a portal) AND ((!hasAllPages && isPage) || (!hasAllPortals && isPortal)) && //the popup is framed || the popup is tabbed popup.meta.closed.state == "framed" || popup.meta.closed.state == "tabbed" && //There is no global popups !hasGlobal && //There is no district wide popups !hasDW ) { //This popup is set to framed or tabbed //remove all other popups that have been added $.each(cs2.alerts.popup.current, (index, currentPopup) => { cs2.alerts.popup.current.splice(index, 1); }); fOrT = true; } if(!fOrT && popup.meta.trigger.mode != "load" || (popup.meta.trigger.mode == "load" && ((isPage && !hasAllPages) || (isPortal && !hasAllPortals) || (!isPage && !isPortal)) && (currentPageGCDID != "0" && currentPageGCDID == popup.gcdID)) && //There is no global popups !hasGlobal && //There is no district wide popups !hasDW ) { cs2.alerts.popup.current.popups.push(popup.meta); } } }); if(cs2.alerts.popup.current.popups.length > 0) { var multiLoad = false; var loadCount = 0; $.each(cs2.alerts.popup.current.popups, (index, popup) => { loadCount += (popup.trigger.mode == "load") ? 1 : 0; if(loadCount > 1) { multiLoad = true; $('#siteAlertModal .modal-carousel .modal-transition-section').data("transition", 0); } }); if(multiLoad && loadCount > 1) { //many popups, load up the controls $('#siteAlertModal').addClass("multi"); $('#siteAlertModal .prevPopupBtn').show(); $('#siteAlertModal .nextPopupBtn').show(); $('#siteAlertModal .popupPagination').show(); $('#siteAlertModal .modal-carousel .modal-carousel-wrapper').css("overflow", "clip"); } else { $('#siteAlertModal .prevPopupBtn').hide(); $('#siteAlertModal .nextPopupBtn').hide(); $('#siteAlertModal .popupPagination').hide(); $('#siteAlertModal .modal-carousel .modal-carousel-wrapper').css("overflow", "initial"); } /* BEGIN Swipe Functionality - Mobile */ var mousestart; var swipeDistance; var mode = 0; $('#siteAlertModal .modal-transition-section').unbind("touchstart").on("touchstart", (ev) => { /* set the start of the event */ mode = ($(ev.target).hasClass('modal-header') || $(ev.target).parents('.modal-header').length > 0) ? 1 : 0; mousestart = (mode == 1) ? ev.originalEvent.targetTouches[0].pageY : (ev.originalEvent.targetTouches[0].pageX); }); $('#siteAlertModal .modal-transition-section').unbind("touchmove").on("touchmove", (move) => { if(mode == 1) { var currentMatrix = new WebKitCSSMatrix($('#siteAlertModal').css("transform")); var currentTranslation = currentMatrix.m42; swipeDistance = (move.originalEvent.targetTouches[0].pageY - currentTranslation)/2; $('#siteAlertModal').css({ '-webkit-transform' : 'translateY('+clamp((currentTranslation+swipeDistance), 0, SWIPE_THRESHOLD+10)+'px)', '-moz-transform' : 'translateY('+clamp((currentTranslation+swipeDistance), 0, SWIPE_THRESHOLD+10)+'px)', '-ms-transform' : 'translateY('+clamp((currentTranslation+swipeDistance), 0, SWIPE_THRESHOLD+10)+'px)', '-o-transform' : 'translateY('+clamp((currentTranslation+swipeDistance), 0, SWIPE_THRESHOLD+10)+'px)', 'transform' : 'translateY('+clamp((currentTranslation+swipeDistance), 0, SWIPE_THRESHOLD+10)+'px)' }); } else if(mode == 0 && multiLoad && loadCount > 1) { var currentMatrix = new WebKitCSSMatrix($('#siteAlertModal .modal-carousel .modal-transition-section').css("transform")); var currentTranslation = currentMatrix.m41; swipeDistance = ((move.originalEvent.changedTouches[0].pageX - (mousestart - ($('#siteAlertModal .modal-dialog').width() * (1-cs2.alerts.popup.current.pagination.page))))); $('#siteAlertModal .modal-carousel .modal-transition-section').css({ '-webkit-transform' : 'translateX('+clamp(swipeDistance, (currentTranslation + ($('#siteAlertModal .modal-dialog').width() * (1-cs2.alerts.popup.current.pagination.total)) - SWIPE_THRESHOLD-10), SWIPE_THRESHOLD-10)+'px)', '-moz-transform' : 'translateX('+clamp(swipeDistance, (currentTranslation + ($('#siteAlertModal .modal-dialog').width() * (1-cs2.alerts.popup.current.pagination.total)) - SWIPE_THRESHOLD-10), SWIPE_THRESHOLD-10)+'px)', '-ms-transform' : 'translateX('+clamp(swipeDistance, (currentTranslation + ($('#siteAlertModal .modal-dialog').width() * (1-cs2.alerts.popup.current.pagination.total)) - SWIPE_THRESHOLD-10), SWIPE_THRESHOLD-10)+'px)', '-o-transform' : 'translateX('+clamp(swipeDistance, (currentTranslation + ($('#siteAlertModal .modal-dialog').width() * (1-cs2.alerts.popup.current.pagination.total)) - SWIPE_THRESHOLD-10), SWIPE_THRESHOLD-10)+'px)', 'transform' : 'translateX('+clamp(swipeDistance, (currentTranslation + ($('#siteAlertModal .modal-dialog').width() * (1-cs2.alerts.popup.current.pagination.total)) - SWIPE_THRESHOLD-10), SWIPE_THRESHOLD-10)+'px)' }); } }); $('#siteAlertModal .modal-transition-section').unbind("touchend").on("touchend", (up) => { swipeDistance = (mode == 1) ? up.originalEvent.changedTouches[0].pageY - mousestart : (up.originalEvent.changedTouches[0].pageX - mousestart); //if we swipe more than the defined threshold, then perform a full swipe if(Math.abs(swipeDistance) > SWIPE_THRESHOLD) { //mode 1 is a swipe down from the modal-header if(mode == 1) { $('#siteAlertModal').trigger('unloadPopup'); } //mode 0 is a swipe left and right on the modal-body else if(mode == 0 && multiLoad && loadCount > 1) { if(mousestart < up.originalEvent.changedTouches[0].pageX) { cs2.alerts.popup.current.pagination.slide("prev"); } else if(mousestart > up.originalEvent.changedTouches[0].pageX) { cs2.alerts.popup.current.pagination.slide("next"); } } } else { if(mode == 1) { $('#siteAlertModal').css({ "transform" : "translateY(0px)" }); } else { cs2.alerts.popup.current.pagination.slide(cs2.alerts.popup.current.pagination.page); } } }); /* END Swipe Functionality - Mobile */ /* BEGIN Swipe Functionality - Desktop */ var mousestart; var swipeDistance; $('#siteAlertModal .modal-carousel .modal-transition-section').unbind("mousedown").on("mousedown", (ev) => { /* set the start of the event */ mousestart = ev.pageX; var tmpMouseX = mousestart; var translationBeforeAction = $(this).data("transition"); $(this).unbind("mouseup").on("mouseup", (up) => { swipeDistance = up.pageX - mousestart; //if we swipe more than the defined threshold, then perform a full swipe if(Math.abs(swipeDistance) > SWIPE_THRESHOLD) { if(mousestart < up.pageX && (cs2.alerts.popup.current.pagination.page > 1)) { cs2.alerts.popup.current.pagination.slide("prev"); } else if(mousestart > up.pageX && (cs2.alerts.popup.current.pagination.page < cs2.alerts.popup.current.pagination.total)) { cs2.alerts.popup.current.pagination.slide("next"); } } }); }); /* END Swipe Functionality - Desktop*/ $.each(cs2.alerts.popup.current.popups, (index, popup) => { if(multiLoad) { popup.closed.state = "hide"; } switch(popup.trigger.mode) { case 'load': ++cs2.alerts.popup.current.pagination.total; popup.index = cs2.alerts.popup.current.pagination.total; if(multiLoad && cs2.alerts.popup.current.pagination.total > 1) { //many popups, load up the controls $('#siteAlertModal .prevPopupBtn').show(); $('#siteAlertModal .nextPopupBtn').show(); $('#siteAlertModal .popupPagination').show(); //add a pagination bubble var tmpPoint = $('#siteAlertModal .popupPagination .popupPoint:first').clone(); tmpPoint.find("a:first").removeClass("active"); tmpPoint.data("index", cs2.alerts.popup.current.pagination.total).attr("data-index", cs2.alerts.popup.current.pagination.total); tmpPoint.attr("onclick", "cs2.alerts.popup.current.pagination.slide("+cs2.alerts.popup.current.pagination.total+")"); $('#siteAlertModal .popupPagination .popupPaginationPoints').append(tmpPoint); //add the modal-dialog var tmpDialog = $('#siteAlertModal .modal-carousel .modal-transition-section .modal-dialog:first').clone(); tmpDialog.data("index", cs2.alerts.popup.current.pagination.total).attr("data-index", cs2.alerts.popup.current.pagination.total); $('#siteAlertModal .modal-carousel .modal-transition-section').append(tmpDialog); } if(popup.trigger.sticky || $.cookie(popup.cookie.tag) != "1" || popup.trigger.districtwide) { //cookie does not exist - show the alert and set the cookie var delay = (popup.trigger.hasOwnProperty("delay") && popup.trigger.delay > 0) ? popup.trigger.delay : 1500; $(window).load(function() { setTimeout(function() { cs2.alerts.popup.current.LoadPopup(popup); }, delay); }); if(!popup.trigger.sticky || !popup.trigger.districtwide) { //popup.cookie.duration holds the number of minutes until the alert is received again. //need to convert to milliseconds and add those to the current datetime milliseconds //then back to a JSON Date Object var expiryDate = new Date(e.getTime() + popup.cookie.duration*60000); $.cookie(popup.cookie.tag, 1, { "expires" : expiryDate}) } } break; case 'mouseover': case 'click': ++cs2.alerts.popup.current.pagination.total; popup.index = cs2.alerts.popup.current.pagination.total; cs2.alerts.popup.current.ClickHoverPopup(popup); break; case 'scroll': ++cs2.alerts.popup.current.pagination.total; popup.index = cs2.alerts.popup.current.pagination.total; cs2.alerts.popup.current.ScrollPopup(popup); break; } }); } if(cs2.alerts.popup.current.banners.length > 0) { $.each(cs2.alerts.popup.current.banners, (index, banner) => { cs2.alerts.popup.current.Banner(banner); }); } } }); /* Setup Accessibility */ $(document).on("focusin", (foc) => { var focusedTarget = foc.target; if($(focusedTarget).parents("#siteAlertModal").length == 0) { $('#siteAlertModal').trigger("unloadPopup"); $(document).unbind("focusin"); } }); /* End Accessibility*/

Staff

Raisinville Elementary School

AV

Volpi, AMy
Send Email
Position: Support Staff
Departments: Support Staff

AH

Hall, Abigayle
Send Email
Position: Behavior Specialist
Departments: Support Staff

AA

Anteau, Alexa
Send Email
Position: Support Staff
Departments: ISD

AF

Francis, Amanda
Send Email
Position: Behavior Specialist
Departments: Support Staff

AC

Cooley, Amber
Send Email
Position: ISD
Departments: (None)

AP

Pabin, Amy
Send Email
Position: Teacher
Departments: RES

AS

Schnell, Amy
Send Email
Position: Teacher
Departments: RES

AK

Kadrovach, April
Send Email
Position: Support Staff
Departments: Support Staff

AC

Ciacelli, Ashley
Send Email
Position: Teacher
Departments: Teacher

AK

King, Ashley
Send Email
Position: Teacher
Departments: Teacher

BW

Welch, Bettina
Send Email
Position: Support Staff
Departments: Support Staff

BB

Brewer, Blaire
Send Email
Position: Assistant - Non Instructional
Departments: Assistant

CJ

Jones, Caitlin
Send Email
Position: Teacher
Departments: Teacher

CL

Lienemann, Caitlin
Send Email
Position: Teacher
Departments: Teacher

CS

Scherer, Carlee
Send Email
Position: Support Staff
Departments: (None)

CL

Lynch, Carolyne
Send Email
Position: Support Staff
Departments: (None)

CE

Estes, Charles
Send Email
Position: Custodian
Departments: (None)

CG

Garling, Chelsea
Send Email
Position: Secretary
Departments: (None)

CI

Iffland, Chelsea
Send Email
Position: Support Staff
Departments: ISD

CB

Brown, Cynthia
Send Email
Position: Teacher
Departments: (None)

DK

Kraemer, Dana
Send Email
Position: Instructional Assistant
Departments: Assistant

DM

Miller, Danielle
Send Email
Position: Teacher
Departments: Teacher

DP

Pocs, Darren
Send Email
Position: Restorative Practice Coordinator
Departments: Support Staff

DK

Kimble, Dawn
Send Email
Position: Teacher
Departments: RES

DW

Wohlgamuth, Drake
Send Email
Position: Dean of Students
Departments: Support Staff

EH

Hill, Elise
Send Email
Position: Support Staff
Departments: RES

ED

Dec, Elizabeth
Send Email
Position: Teacher
Departments: Teacher

FS

Souva, Felicia
Send Email
Position: Support Staff
Departments: (None)

HL

Love, Hayley
Send Email
Position: Teacher
Departments: (None)

HL

Love, Hayley
Send Email
Position: Teacher
Departments: (None)

IC

Cooke, Ian
Send Email
Position: Teacher
Departments: RES

JN

Norman, Jasmine
Send Email
Position: Support Staff
Departments: Support Staff

JH

Hutchison, Jason
Send Email
Position: Teacher
Departments: RES

JS

Sayles, Jennifer
Send Email
Position: Teacher
Departments: (None)

JZ

Ziegler, Jerred
Send Email
Position: Teacher
Departments: RES

JN

Nadeau, Jessica
Send Email
Position: Social Worker
Departments: ISD

JS

Scheuer, Jordan
Send Email
Position: Teacher
Departments: Teacher

JS

Scheuer, Jordan
Send Email
Position: Teacher
Departments: Teacher

KD

Davis, Karen
Send Email
Position: Support Staff
Departments: RES

KB

Bundon, Karly
Send Email
Position: Support Staff
Departments: Assistant

KG

Gilbert, Katelyn
Send Email
Position: Teacher
Departments: Teacher

KS

Skidmore-Baltrip, Kellie
Send Email
Position: Teacher
Departments: RES

KD

Davis, Kelly
Send Email
Position: Support Staff
Departments: RES

KS

Sulfaro, Kendra
Send Email
Position: Teacher
Departments: RES

KW

Wessels, Kevin
Send Email
Position: Custodian
Departments: (None)

KT

Taormina, Kim
Send Email
Position: Teacher
Departments: Support Staff

LL

Laverty, Leona
Send Email
Position: Health Liaison
Departments: Support Staff

LB

Bonk, Lisa
Send Email
Position: Instructional Assistant
Departments: Assistant

LC

Calabrese, Lisa
Send Email
Position: Support Staff
Departments: RES

LH

Hammond, Lisa
Send Email
Position: Support Staff
Departments: Support Staff

LH

Henderson, Lisa
Send Email
Position: Support Staff
Departments: Support Staff

LH

Huisman, Lori
Send Email
Position: Support Staff
Departments: Support Staff

LG

Gramlich, Lynne
Send Email
Position: Support Staff
Departments: Support Staff

MM

McCracken, Melissa
Send Email
Position: Secretary
Departments: Support Staff

MS

Sims, Michele
Send Email
Position: Teacher
Departments: RES

MG

Geftos, Michelle Geftos
Send Email
Position: Support Staff
Departments: Support Staff

MG

Gulotta, Monica
Send Email
Position: Assistant - Non Instructional
Departments: Assistant

NM

Miller, Naomi
Send Email
Position: Teacher
Departments: RES

NM

McClain, Nina
Send Email
Position: Support Staff
Departments: Support Staff

OI

Ignagni, Olivia
Send Email
Position: Academic Tutor
Departments: Support Staff

PM

McClain, Patricia
Send Email
Position: Teacher
Departments: RES

PS

Stefanski-Adkins, Patricia
Send Email
Position: Teacher
Departments: RES

PM

Miller, Peggy
Send Email
Position: Support Staff
Departments: RES

RW

Wilson, Renae
Send Email
Position: Teacher
Departments: RES

SB

Buhl, Sara
Send Email
Position: Occupational Therapist
Departments: ISD

SS

Slovik, Sarah
Send Email
Position: Student Services Provider / Social Worker
Departments: Support Staff

SH

Hoppert, Scott
Send Email
Position: Principal
Departments: Administration

SD

Dippman, Shawna
Send Email
Position: Support Staff
Departments: ISD

SG

Goins, Stacey
Send Email
Position: Teacher
Departments: RES

SB

Bell, Stephanie
Send Email
Position: Teacher
Departments: RES

SI

Iacoangeli, Stephanie
Send Email
Position: Teacher
Departments: RES

TC

Cross, Teresa
Send Email
Position: Support Staff
Departments: Support Staff

TG

Gratowski, Teresa
Send Email
Position: Teacher
Departments: RES

TS

Shepard, Tina
Send Email
Position: Teacher
Departments: (None)

TW

Wilson, Traci
Send Email
Position: Teacher
Departments: RES

TO

Ott, Trina
Send Email
Position: Teacher
Departments: RES

For technical questions and comments regarding this website, including accessibility concerns, please contact the Webmaster.

Back to Top

Staff - Raisinville Elementary School (2024)

References

Top Articles
Latest Posts
Article information

Author: Dr. Pierre Goyette

Last Updated:

Views: 5653

Rating: 5 / 5 (70 voted)

Reviews: 85% of readers found this page helpful

Author information

Name: Dr. Pierre Goyette

Birthday: 1998-01-29

Address: Apt. 611 3357 Yong Plain, West Audra, IL 70053

Phone: +5819954278378

Job: Construction Director

Hobby: Embroidery, Creative writing, Shopping, Driving, Stand-up comedy, Coffee roasting, Scrapbooking

Introduction: My name is Dr. Pierre Goyette, I am a enchanting, powerful, jolly, rich, graceful, colorful, zany person who loves writing and wants to share my knowledge and understanding with you.