Select a charity to start
Search and click any partner in the sidebar,
"use strict";
/* -- PROXY CONFIGURATION ------------------------------------------------------
Set PROXY_URL to your Cloudflare Worker URL after deploying.
The API key lives in the Worker as a secret - never in this file.
--------------------------------------------------------------------------- */
var PROXY_URL = "https://api.myfaithwill.com/v1/messages";
var MON_PARTNERS=[{"id": "6188812838", "name": "10th Hour Productions", "email": "courtney@10thhourproductions.org", "url": "https://mycatholicwill.com/10thhour", "plt": "MCW", "domain": "https://10thhourproductions.org"}, {"id": "9864315250", "name": "A Hope Center", "email": "mckennatully@ahcfriends.org", "url": "https://www.mylegacywill.com/ahopecenter", "plt": "MLW", "domain": "https://ahcfriends.org"}, {"id": "6001395848", "name": "Abortion Survivors Network", "email": "melissa@abortionsurvivors.org", "url": "", "plt": "BOTH", "domain": "https://abortionsurvivors.org"}, {"id": "5001020411", "name": "ACTON Institute", "email": "kkaseska@acton.org", "url": "", "plt": "BOTH", "domain": "https://acton.org"}, {"id": "5706494372", "name": "Alliance to End Human Trafficking", "email": "janet@alliancetoendhumantrafficking.org", "url": "https://mycatholicwill.com/aeht", "plt": "MCW", "domain": "https://alliancetoendhumantrafficking.org"}, {"id": "11537151905", "name": "Alpha USA", "email": "christinachappell@alphausa.org", "url": "https://mycatholicwill.com/alphausa", "plt": "BOTH", "domain": "https://alphausa.org"}, {"id": "4644893798", "name": "American Life League (ALL)", "email": "aptack@all.org", "url": "", "plt": "BOTH", "domain": "https://all.org"}, {"id": "7316564111", "name": "American Parish Youth Center TOR", "email": "lweakland@franciscanstor.org", "url": "https://mycatholicwill.com/apyc", "plt": "MCW", "domain": "https://franciscanstor.org"}, {"id": "3188408749", "name": "Andrew Ministries", "email": "everett@andrew-ministries.com", "url": "https://mycatholicwill.com/andrewministries", "plt": "MCW", "domain": "https://andrew-ministries.com"}, {"id": "4348085672", "name": "Apostolate for Family Consecration", "email": "tom.lapkowicz@afc.org", "url": "https://mycatholicwill.com/afc", "plt": "MCW", "domain": "https://afc.org"}, {"id": "9486370410", "name": "Aquinas Communications (KCRD-FM, Iowa)", "email": "chrisehlers2x@gmail.com", "url": "https://mycatholicwill.com/kcrd", "plt": "MCW", "domain": ""}, {"id": "8591804224", "name": "Archdiocese of Baltimore", "email": "Garrett.Schiche@archbalt.org", "url": "https://mycatholicwill.com/archbalt", "plt": "MCW", "domain": "https://archbalt.org"}, {"id": "8840872470", "name": "Archdiocese of Galveston-Houston", "email": "rbean@archgh.org", "url": "https://mycatholicwill.com/archgh", "plt": "MCW", "domain": "https://archgh.org"}, {"id": "9583290672", "name": "Archdiocese of San Francisco", "email": "linharesr@sfarch.org", "url": "https://mycatholicwill.com/sfarchdiocese", "plt": "MCW", "domain": "https://sfarch.org"}, {"id": "3188394574", "name": "Augustine Institute", "email": "sam.coker@augustineinstitute.org", "url": "https://mycatholicwill.com/augustineinstitute", "plt": "MCW", "domain": "https://augustineinstitute.org"}, {"id": "6137954717", "name": "Ave Maria Parish (Ave Maria, FL)", "email": "Craig.K@avemariaparish.org", "url": "https://mycatholicwill.com/avemariaparish", "plt": "MCW", "domain": "https://avemariaparish.org"}, {"id": "5704051415", "name": "Ave Maria Radio", "email": "bkangas@avemariaradio.net", "url": "https://mycatholicwill.com/ave", "plt": "MCW", "domain": "https://avemariaradio.net"}, {"id": "3261291318", "name": "Avila Institute", "email": "avirnig@myavila.com", "url": "https://mycatholicwill.com/avila", "plt": "MCW", "domain": "https://myavila.com"}, {"id": "5576684274", "name": "Basilica of Sts. Peter & Paul, Chattanooga TN", "email": "admin@stspeterandpaulbasilica.com", "url": "https://mycatholicwill.com/stspeterandpaulbasilica", "plt": "MCW", "domain": "https://stspeterandpaulbasilica.com"}, {"id": "3254264266", "name": "Benedictine College", "email": "tandrews@benedictine.edu", "url": "https://mycatholicwill.com/benedictine", "plt": "MCW", "domain": "https://benedictine.edu"}, {"id": "3188401832", "name": "Brotherhood of Hope", "email": "susan.toth@brohope.net", "url": "https://mycatholicwill.com/brohope", "plt": "MCW", "domain": "https://brohope.net"}, {"id": "4706330623", "name": "Cabrini Mission Foundation", "email": "clabianco@cabrinifdnt.org", "url": "https://mycatholicwill.com/cabrinifoundation", "plt": "MCW", "domain": "https://cabrinifdnt.org"}, {"id": "5869143776", "name": "Camp Wojtyla", "email": "eferril@camp-w.com", "url": "https://mycatholicwill.com/campw", "plt": "MCW", "domain": "https://camp-w.com"}, {"id": "4328269734", "name": "Canons Regular of St. John Cantius", "email": "cconnelly@cantius.org", "url": "https://mycatholicwill.com/sjc", "plt": "MCW", "domain": "https://cantius.org"}, {"id": "4707403916", "name": "Canyon Heights Academy", "email": "jwaters@chamail.net", "url": "https://mycatholicwill.com/canyonheights", "plt": "MCW", "domain": "https://chamail.net"}, {"id": "4713072601", "name": "Cape May Marianists Retreat Center", "email": "afucci@capemaymarianists.org", "url": "https://mycatholicwill.com/capemaymarianists", "plt": "MCW", "domain": "https://capemaymarianists.org"}, {"id": "4528856946", "name": "Capuchin Friars - NJ & South", "email": "john@capuchinfriars.org", "url": "https://mycatholicwill.com/capuchinfriars", "plt": "MCW", "domain": "https://capuchinfriars.org"}, {"id": "4871510106", "name": "Cardinal Newman Society", "email": "acassandra@cardinalnewmansociety.org", "url": "https://mycatholicwill.com/cardinalnewman", "plt": "MCW", "domain": "https://cardinalnewmansociety.org"}, {"id": "5953902153", "name": "Caruso Catholic Center (USC)", "email": "ycardona@catholictrojan.org", "url": "https://mycatholicwill.com/catholictrojan", "plt": "MCW", "domain": "https://catholictrojan.org"}, {"id": "5164043240", "name": "Cathedral of Our Lady of Lourdes (Spokane)", "email": "cberry@dioceseofspokane.org", "url": "https://mycatholicwill.com/spokanecathedral", "plt": "MCW", "domain": "https://dioceseofspokane.org"}, {"id": "6647683741", "name": "Cathedral of Our Lady of Perpetual Help", "email": "beth@cathedralolph.org", "url": "https://mycatholicwill.com/cathedralolph", "plt": "MCW", "domain": "https://cathedralolph.org"}, {"id": "5623021473", "name": "Cathedral Ss. Peter & Paul, Philadelphia", "email": "wnouel@archphila.org", "url": "https://mycatholicwill.com/cathedralphila", "plt": "MCW", "domain": "https://archphila.org"}, {"id": "8714906581", "name": "Catholic Academy of Bridgeport", "email": "scecere@diobpt.org", "url": "https://www.mylegacywill.com/catholicacademybridgeport", "plt": "MLW", "domain": "https://diobpt.org"}, {"id": "4630187336", "name": "Catholic Answers", "email": "cvenditti@catholic.com", "url": "https://mycatholicwill.com/catholicanswers", "plt": "MCW", "domain": "https://catholic.com"}, {"id": "3486368309", "name": "Catholic Charities - Archdiocese of New York", "email": "emily.chau@catholiccharitiesny.org", "url": "https://mycatholicwill.com/ccny", "plt": "MCW", "domain": "https://catholiccharitiesny.org"}, {"id": "6541121760", "name": "Catholic Charities Long Island", "email": "henderson.maren@catholiccharities.cc", "url": "https://mycatholicwill.com/cclongisland", "plt": "MCW", "domain": "https://catholiccharities.cc"}, {"id": "6176045027", "name": "Catholic Charities of Archdiocese St. Louis", "email": "brentjackson@ccstl.org", "url": "https://mycatholicwill.com/ccstl", "plt": "MCW", "domain": "https://ccstl.org"}, {"id": "5196058454", "name": "Catholic Charities of Fort Worth", "email": "craines@ccdofw.org", "url": "https://mycatholicwill.com/ccfw", "plt": "MCW", "domain": "https://ccdofw.org"}, {"id": "3884766665", "name": "Catholic Development Foundation, Diocese of Fargo", "email": "steve.schons@fargodiocese.org", "url": "https://mycatholicwill.com/cdfnd", "plt": "MCW", "domain": "https://fargodiocese.org"}, {"id": "10064806451", "name": "Catholic Foundation of Oklahoma", "email": "msmith@cfook.org", "url": "https://mycatholicwill.com/cfook", "plt": "MCW", "domain": "https://cfook.org"}, {"id": "6465892953", "name": "Catholic Foundation Salina, Kansas", "email": "corrina.hudsonpillar@salinadiocese.org", "url": "https://mycatholicwill.com/givecfds", "plt": "MCW", "domain": "https://salinadiocese.org"}, {"id": "5822787309", "name": "Catholic Institute of Technology", "email": "mconover@catholic.tech", "url": "https://mycatholicwill.com/catholictech", "plt": "MCW", "domain": "https://catholic.tech"}, {"id": "4566428618", "name": "Catholic Leadership Institute", "email": "mmusilli@catholicleaders.org", "url": "https://mycatholicwill.com/cli", "plt": "MCW", "domain": "https://catholicleaders.org"}, {"id": "5281864014", "name": "Catholic Medical Association", "email": "carolyn@cathmed.org", "url": "https://mycatholicwill.com/cathmed", "plt": "MCW", "domain": "https://cathmed.org"}, {"id": "6569974850", "name": "Catholic Radio Network", "email": "ken@catholicradionetwork.com", "url": "https://mycatholicwill.com/catholicradionetwork", "plt": "MCW", "domain": "https://catholicradionetwork.com"}, {"id": "4822803040", "name": "Catholic Rural Life", "email": "kate@catholicrurallife.org", "url": "https://mycatholicwill.com/crl", "plt": "MCW", "domain": "https://catholicrurallife.org"}, {"id": "7134917533", "name": "Catholic Spirit Radio", "email": "jon@catholicspiritradio.org", "url": "https://mycatholicwill.com/catholicspiritradio", "plt": "MCW", "domain": "https://catholicspiritradio.org"}, {"id": "3188263734", "name": "CatholicPsych (Integrated Life Foundation)", "email": "foundation@catholicpsych.com", "url": "https://mycatholicwill.com/cathpsych", "plt": "MCW", "domain": "https://catholicpsych.com"}, {"id": "8411485259", "name": "Center for Christian Virtue", "email": "frankkennedy@ccv.org", "url": "https://www.mylegacywill.com/ccv", "plt": "MLW", "domain": "https://ccv.org"}, {"id": "9535596169", "name": "Central Association of the Miraculous Medal", "email": "cfitzwater@cammonline.org", "url": "https://mycatholicwill.com/miraculousmedal", "plt": "MCW", "domain": "https://cammonline.org"}, {"id": "4667456752", "name": "Champion Shrine", "email": "kdorner@championshrine.org", "url": "https://mycatholicwill.com/championshrine", "plt": "MCW", "domain": "https://championshrine.org"}, {"id": "4265778781", "name": "Chastity Project", "email": "brandy@chastity.com", "url": "https://mycatholicwill.com/chastity", "plt": "MCW", "domain": "https://chastity.com"}, {"id": "5963388468", "name": "Chesterton Academy", "email": "bmitchell@chestertonacademy.org", "url": "https://mycatholicwill.com/chestertonacademy", "plt": "MCW", "domain": "https://chestertonacademy.org"}, {"id": "7307605004", "name": "Chesterton Academy of The Holy Family", "email": "nathan.vandehey@cathf.com", "url": "https://mycatholicwill.com/cathf", "plt": "MCW", "domain": "https://cathf.com"}, {"id": "4179794360", "name": "Christ in the City", "email": "Patrick.meleney@christinthecity.org", "url": "https://mycatholicwill.com/christinthecity", "plt": "MCW", "domain": "https://christinthecity.org"}, {"id": "10075651642", "name": "Christendom College", "email": "jacob.stevens@christendom.edu", "url": "https://mycatholicwill.com/christendom", "plt": "MCW", "domain": "https://christendom.edu"}, {"id": "5336257840", "name": "Church of St Joseph (W. St. Paul, MN)", "email": "patrick.menke@churchofstjoseph.org", "url": "https://mycatholicwill.com/churchofstjoseph", "plt": "MCW", "domain": "https://churchofstjoseph.org"}, {"id": "5953854080", "name": "City on A Hill", "email": "macy@kansascityonahill.org", "url": "https://mycatholicwill.com/cityonahill", "plt": "MCW", "domain": "https://kansascityonahill.org"}, {"id": "9371414428", "name": "Cleveland Right To Life", "email": "jjones@clevelandrighttolife.org", "url": "https://www.mylegacywill.com/clevelandrighttolife", "plt": "MLW", "domain": "https://clevelandrighttolife.org"}, {"id": "6290289901", "name": "Coalition Life", "email": "maggie@coalitionlife.com", "url": "", "plt": "BOTH", "domain": "https://coalitionlife.com"}, {"id": "4706089159", "name": "College of St. Joseph the Worker", "email": "stephen@collegeofstjoseph.com", "url": "https://mycatholicwill.com/collegeofstjoseph", "plt": "MCW", "domain": "https://collegeofstjoseph.com"}, {"id": "5023582556", "name": "Coming Home Network", "email": "kenny@chnetwork.org", "url": "https://mycatholicwill.com/chnetwork", "plt": "MCW", "domain": "https://chnetwork.org"}, {"id": "8453754522", "name": "Connecticut Catholic Foundation", "email": "richard.braam@aohct.org", "url": "https://mycatholicwill.com/ctcatholicfoundation", "plt": "MCW", "domain": "https://aohct.org"}, {"id": "5921827917", "name": "Corpus Christi, Chambersburg PA", "email": "", "url": "https://mycatholicwill.com/cburgcatholic", "plt": "MCW", "domain": ""}, {"id": "4216743498", "name": "Couple to Couple League", "email": "katiez@fertilityu.com", "url": "https://mycatholicwill.com/ccli", "plt": "MCW", "domain": "https://fertilityu.com"}, {"id": "4180688299", "name": "Cross Catholic Outreach", "email": "pvahle@crosscatholic.org", "url": "https://mycatholicwill.com/cco", "plt": "MCW", "domain": "https://crosscatholic.org"}, {"id": "3188399021", "name": "Damascus", "email": "dan@damascus.net", "url": "https://mycatholicwill.com/damascus", "plt": "MCW", "domain": "https://damascus.net"}, {"id": "6111717713", "name": "Daughters of St. Paul", "email": "tdugas@paulinemedia.com", "url": "https://mycatholicwill.com/daughtersofstpaul", "plt": "MCW", "domain": "https://paulinemedia.com"}, {"id": "4828702075", "name": "Diocese of Jackson, MS", "email": "rebecca.harris@jacksondiocese.org", "url": "https://mycatholicwill.com/jacksondiocese", "plt": "MCW", "domain": "https://jacksondiocese.org"}, {"id": "4909872195", "name": "Diocese of Memphis", "email": "Allison.Thron@cc.cdom.org", "url": "https://mycatholicwill.com/cdom", "plt": "MCW", "domain": "https://cc.cdom.org"}, {"id": "4975218839", "name": "Diocese of New Ulm", "email": "mmckeown@dnu.org", "url": "https://mycatholicwill.com/dnu", "plt": "MCW", "domain": "https://dnu.org"}, {"id": "6963449364", "name": "Diocese of St. Cloud", "email": "anna.kampa@gw.stcdio.org", "url": "https://mycatholicwill.com/stcdio", "plt": "MCW", "domain": "https://gw.stcdio.org"}, {"id": "8699353540", "name": "Discalced Carmelites of Our Mother of Mercy", "email": "almoner@holyfacechapel.org", "url": "https://mycatholicwill.com/holyfacechapel", "plt": "MCW", "domain": "https://holyfacechapel.org"}, {"id": "4036751297", "name": "Discalced Hermits of OLMC", "email": "pmchermit@gmail.com", "url": "https://mycatholicwill.com/edcarm", "plt": "MCW", "domain": ""}, {"id": "10894475579", "name": "Dominican Sisters of Mary Immaculate Province, TX", "email": "srmariatheresaop@gmail.com", "url": "https://mycatholicwill.com/houstondominicans", "plt": "MCW", "domain": ""}, {"id": "4721975434", "name": "East Texas Catholic Foundation (Tyler Diocese)", "email": "agrush@etxcf.org", "url": "https://mycatholicwill.com/etxcf", "plt": "MCW", "domain": "https://etxcf.org"}, {"id": "7209174933", "name": "Edmundite Southern Missions", "email": "lynnt@edmunditemissions.org", "url": "https://www.mylegacywill.com/edmunditemissions", "plt": "MLW", "domain": "https://edmunditemissions.org"}, {"id": "6236115125", "name": "Elyria Catholic High School", "email": "distelhorst@elyriacatholic.com", "url": "https://mycatholicwill.com/elyriacatholic", "plt": "MCW", "domain": "https://elyriacatholic.com"}, {"id": "7680042493", "name": "Embrace Clinic", "email": "peggy@embraceccc.org", "url": "https://www.mylegacywill.com/embraceccc", "plt": "MLW", "domain": "https://embraceccc.org"}, {"id": "4681906025", "name": "Endow", "email": "annette.bergeon@endowgroups.org", "url": "https://mycatholicwill.com/endow", "plt": "MCW", "domain": "https://endowgroups.org"}, {"id": "3235961476", "name": "EWTN", "email": "rflood@ewtn.com", "url": "https://mycatholicwill.com/ewtn", "plt": "MCW", "domain": "https://ewtn.com", "discount": "20% off"}, {"id": "5462591517", "name": "Fairfield Carmelites", "email": "development@fairfieldcarmelites.org", "url": "https://mycatholicwill.com/fairfieldcarmelites", "plt": "MCW", "domain": "https://fairfieldcarmelites.org"}, {"id": "7219606331", "name": "First Choice PRC", "email": "cindy@firstchoiceprc.org", "url": "https://mylegacywill.com/firstchoiceprc", "plt": "MLW", "domain": "https://firstchoiceprc.org"}, {"id": "4575433620", "name": "FOCUS", "email": "chris.meyer@fmf.org", "url": "https://mycatholicwill.com/focus", "plt": "MCW", "domain": "https://fmf.org"}, {"id": "4031579960", "name": "Franciscan Friars of the Renewal", "email": "cfrgenalm@franciscanfriars.com", "url": "https://mycatholicwill.com/cfr", "plt": "MCW", "domain": "https://franciscanfriars.com"}, {"id": "6559513578", "name": "Franciscan Friars T.O.R.", "email": "lweakland@franciscanstor.org", "url": "https://mycatholicwill.com/franciscanstor", "plt": "MCW", "domain": "https://franciscanstor.org"}, {"id": "5679778447", "name": "Frassati Catholic High School", "email": "k.mccollum@frassaticatholic.org", "url": "https://mycatholicwill.com/frassaticatholic", "plt": "MCW", "domain": "https://frassaticatholic.org"}, {"id": "6246412906", "name": "Freedom Coaching Foundation Inc.", "email": "steve@freedom-coaching.net", "url": "https://mycatholicwill.com/freedomcoaching", "plt": "MCW", "domain": "https://freedom-coaching.net"}, {"id": "6466562292", "name": "Friends of Marian Friars Minor", "email": "friendsofmarianfriarsminor@gmail.com", "url": "https://mycatholicwill.com/marianfriarsminor", "plt": "MCW", "domain": ""}, {"id": "9901487262", "name": "Gabriel Media (K-yes Radio)", "email": "dbaker@givingdesign.com", "url": "https://mycatholicwill.com/kyesradio", "plt": "MCW", "domain": "https://givingdesign.com"}, {"id": "11121459826", "name": "Gabriel Media (Spirit 92.9)", "email": "dbaker@givingdesign.com", "url": "https://www.mylegacywill.com/spirit929", "plt": "MLW", "domain": "https://givingdesign.com"}, {"id": "5462599397", "name": "GK Chesterton Society", "email": "stacey@chesterton.org", "url": "https://mycatholicwill.com/chesterton", "plt": "MCW", "domain": "https://chesterton.org"}, {"id": "6919102750", "name": "Good Counsel Homes", "email": "carla_repollet@goodcounselhomes.org", "url": "", "plt": "BOTH", "domain": "https://goodcounselhomes.org"}, {"id": "5039715001", "name": "Gospa Missions", "email": "chris@gospa.org", "url": "https://mycatholicwill.com/gospa", "plt": "MCW", "domain": "https://gospa.org"}, {"id": "3952481304", "name": "Gregory the Great Academy", "email": "csmith@gregorythegreatacademy.com", "url": "https://mycatholicwill.com/gregorythegreat", "plt": "MCW", "domain": "https://gregorythegreatacademy.com"}, {"id": "4592838585", "name": "Guadalupe Shrine", "email": "ckabat@guadalupeshrine.org", "url": "https://mycatholicwill.com/guadalupe", "plt": "MCW", "domain": "https://guadalupeshrine.org"}, {"id": "5390318177", "name": "Heartbeat International", "email": "cboston@heartbeatinternational.org", "url": "", "plt": "BOTH", "domain": "https://heartbeatinternational.org"}, {"id": "3188307900", "name": "Heroic Media", "email": "kenzie.muckway@heroicmedia.org", "url": "https://mycatholicwill.com/heroic", "plt": "BOTH", "domain": "https://heroicmedia.org"}, {"id": "5419486058", "name": "Hildebrand Project", "email": "jcrosby@hildebrandlegacy.org", "url": "https://mycatholicwill.com/hildebrandproject", "plt": "MCW", "domain": "https://hildebrandlegacy.org"}, {"id": "10750179914", "name": "His Way At Work", "email": "ryanf@hwaw.com", "url": "https://mycatholicwill.com/hwaw", "plt": "MCW", "domain": "https://hwaw.com"}, {"id": "4643071381", "name": "Holy Cross College", "email": "mbrach@hcc-nd.edu", "url": "https://mycatholicwill.com/hccnd", "plt": "BOTH", "domain": "https://hcc-nd.edu"}, {"id": "5305372574", "name": "Holy Family Orlando (Parish)", "email": "csummers@holyfamilyorlando.org", "url": "https://mycatholicwill.com/holyfamilyorlando", "plt": "MCW", "domain": "https://holyfamilyorlando.org"}, {"id": "6066854483", "name": "Holy Family Radio, Grand Rapids", "email": "vince.gale@holyfamilyradio.net", "url": "https://mycatholicwill.com/holyfamilyradio", "plt": "MCW", "domain": "https://holyfamilyradio.net"}, {"id": "6332257981", "name": "Holy Spirit Preparatory School, Georgia", "email": "aviana@holyspiritprep.org", "url": "https://mycatholicwill.com/holyspiritprep", "plt": "MCW", "domain": "https://holyspiritprep.org"}, {"id": "4591599657", "name": "Ignatius Press", "email": "charles@ignatius.com", "url": "https://mycatholicwill.com/ignatius", "plt": "MCW", "domain": "https://ignatius.com"}, {"id": "8616799790", "name": "Institute for Priestly Formation", "email": "alohaus@priestlyformation.org", "url": "https://mycatholicwill.com/priestlyformation", "plt": "MCW", "domain": "https://priestlyformation.org"}, {"id": "7095959285", "name": "JMJ Pregnancy Center", "email": "bobperron@jmjpc.org", "url": "https://mylegacywill.com/jmjpc", "plt": "MLW", "domain": "https://jmjpc.org"}, {"id": "3523487512", "name": "John Paul II Newman Center Omaha", "email": "susan.gnann@jpiiomaha.org", "url": "https://mycatholicwill.com/jpiiomaha", "plt": "MCW", "domain": "https://jpiiomaha.org"}, {"id": "3188397860", "name": "Joyful Ever After", "email": "damon@joyfuleverafter.org", "url": "https://mycatholicwill.com/joyful", "plt": "MCW", "domain": "https://joyfuleverafter.org"}, {"id": "4812364944", "name": "JPII Life Center", "email": "Linda@jpiilifecenter.org", "url": "https://mylegacywill.com/jpiilifecenter", "plt": "MLW", "domain": "https://jpiilifecenter.org"}, {"id": "6902274948", "name": "Keep the Faith / Latin Mass Magazine", "email": "maryrosekateri@proton.me", "url": "", "plt": "BOTH", "domain": ""}, {"id": "6631643746", "name": "Laboure Society", "email": "tony.kuplic@labouresociety.org", "url": "https://mycatholicwill.com/labouresociety", "plt": "MCW", "domain": "https://labouresociety.org"}, {"id": "5343648717", "name": "Legatus", "email": "Lsacha@legatus.org", "url": "https://mycatholicwill.com/legatus", "plt": "MCW", "domain": "https://legatus.org"}, {"id": "10072152508", "name": "Life Center of Long Island", "email": "mmaglione@LifeCenterLI.Org", "url": "https://www.mylegacywill.com/lifecenterli", "plt": "MLW", "domain": "https://lifecenterli.org"}, {"id": "7305970676", "name": "Lifeline Pregnancy Care Center", "email": "Beth@lifelinepcc.org", "url": "https://www.mylegacywill.com/lifelinepcc", "plt": "MLW", "domain": "https://lifelinepcc.org"}, {"id": "6830390854", "name": "LifeSite News", "email": "tjackson@lifesitenews.com", "url": "https://www.mylegacywill.com/lifesitenews", "plt": "MLW", "domain": "https://lifesitenews.com"}, {"id": "9900233890", "name": "Literacy Advocates USA (Good News! Book Fair)", "email": "liz@goodnewsbookfair.com", "url": "https://mycatholicwill.com/goodnews", "plt": "MCW", "domain": "https://goodnewsbookfair.com", "discount": "20% off"}, {"id": "5007225937", "name": "Live Action", "email": "ashleybrady@liveaction.org", "url": "", "plt": "BOTH", "domain": "https://liveaction.org"}, {"id": "9371415518", "name": "Long Island Coalition for Life, Inc.", "email": "info@prolifeli.org", "url": "https://www.mylegacywill.com/prolifeli", "plt": "MLW", "domain": "https://prolifeli.org"}, {"id": "3364305416", "name": "Lumen Christi", "email": "tjunker@lumenchristi.org", "url": "https://mycatholicwill.com/lumenchristi", "plt": "MCW", "domain": "https://lumenchristi.org"}, {"id": "4997695090", "name": "Martin Saints Classical High School", "email": "ahazel@martinsaintsclassical.org", "url": "https://mycatholicwill.com/martinsaints", "plt": "MCW", "domain": "https://martinsaintsclassical.org"}, {"id": "5385086000", "name": "Mary, Mother of Mercy Parish (Glassboro, NJ)", "email": "paba@mary-mom.com", "url": "https://mycatholicwill.com/marymom", "plt": "MCW", "domain": "https://mary-mom.com"}, {"id": "4812363659", "name": "Maryknoll Fathers and Brothers", "email": "clynch@maryknoll.org", "url": "https://mycatholicwill.com/maryknollsociety", "plt": "MCW", "domain": "https://maryknoll.org"}, {"id": "11462768825", "name": "MaryTV", "email": "dnolan@marytv.tv", "url": "https://mycatholicwill.com/marytv", "plt": "MCW", "domain": "https://marytv.tv"}, {"id": "6631718928", "name": "Mass of the Ages Society", "email": "tony@latinmass.com", "url": "https://mycatholicwill.com/latinmass", "plt": "MCW", "domain": "https://latinmass.com"}, {"id": "3262487727", "name": "Mater Dei Radio", "email": "rolandom@materdeiradio.com", "url": "https://mycatholicwill.com/materdeiradio", "plt": "MCW", "domain": "https://materdeiradio.com"}, {"id": "9973587262", "name": "Monastery of the Holy Cross, Chicago", "email": "development@chicagomonk.org", "url": "https://mycatholicwill.com/chicagomonk", "plt": "MCW", "domain": "https://chicagomonk.org"}, {"id": "9042063229", "name": "Mountain Area Pregnancy Services (Ascend)", "email": "jporter@ascendwc.org", "url": "https://www.mylegacywill.com/mtnpregnancy", "plt": "MLW", "domain": "https://ascendwc.org"}, {"id": "7253561878", "name": "MyCatholicDoctor", "email": "kathleen@mycatholicdoctor.com", "url": "https://mycatholicwill.com/mycatholicdoctor", "plt": "MCW", "domain": "https://mycatholicdoctor.com"}, {"id": "4395607653", "name": "National Catholic Bioethics Center", "email": "ptran@ncbcenter.org", "url": "https://mycatholicwill.com/ncbcenter", "plt": "MCW", "domain": "https://ncbcenter.org"}, {"id": "5672844383", "name": "National Right to Life Committee", "email": "jrlester@nrlc.org", "url": "", "plt": "BOTH", "domain": "https://nrlc.org"}, {"id": "5915301860", "name": "National Shrine of Mary Mother of Church", "email": "awright@mothersshrine.com", "url": "https://mycatholicwill.com/mothersshrine", "plt": "MCW", "domain": "https://mothersshrine.com"}, {"id": "9355582474", "name": "Network of Life (Women's Choice Network)", "email": "amys@womenschoicenetwork.com", "url": "https://www.mylegacywill.com/networkoflife", "plt": "MLW", "domain": "https://womenschoicenetwork.com"}, {"id": "6186871490", "name": "Notre Dame High School, Chattanooga", "email": "andersonk@myndhs365.com", "url": "https://mycatholicwill.com/myndhs", "plt": "MCW", "domain": "https://myndhs365.com"}, {"id": "7081310015", "name": "Novitiate of the Fathers of Mercy", "email": "treas@fathersofmercy.com", "url": "https://mycatholicwill.com/fathersofmercy", "plt": "MCW", "domain": "https://fathersofmercy.com"}, {"id": "7262127265", "name": "Open Doors US", "email": "ryanb@opendoorsus.org", "url": "https://www.mylegacywill.com/opendoorsus", "plt": "MLW", "domain": "https://opendoorsus.org"}, {"id": "5425811767", "name": "Options For Women Cape", "email": "director@optionsforwomencape.com", "url": "https://www.mylegacywill.com/optionsforwomencape", "plt": "MLW", "domain": "https://optionsforwomencape.com"}, {"id": "6585077646", "name": "Opus Angelorum", "email": "frludwig@gmx.com", "url": "https://mycatholicwill.com/oa", "plt": "MCW", "domain": "https://gmx.com"}, {"id": "6902792953", "name": "Order of Friar Servants of Mary USA (Servites)", "email": "jamesfoerster@servitesusa.org", "url": "https://mycatholicwill.com/servitesusa", "plt": "MCW", "domain": "https://servitesusa.org"}, {"id": "3260913824", "name": "Our Lady of the Angels Monastery / Shrine of the Most Blessed Sacrament", "email": "kevin.keough@olamshrine.com", "url": "https://mycatholicwill.com/olam", "plt": "MCW", "domain": "https://olamshrine.com"}, {"id": "10685400775", "name": "Our Lady of the Rosary, Land O Lakes, FL", "email": "stewardship@ladyrosary.org", "url": "https://mycatholicwill.com/ladyrosary", "plt": "MCW", "domain": "https://ladyrosary.org"}, {"id": "3255745348", "name": "Our Lady of the Sacred Heart High School (Pittsburgh, PA)", "email": "ckarashin@olsh.org", "url": "https://mycatholicwill.com/olsh", "plt": "MCW", "domain": "https://olsh.org"}, {"id": "3230303699", "name": "Paradisus Dei", "email": "len.bertolini@paradisusdei.org", "url": "https://mycatholicwill.com/paradisus", "plt": "MCW", "domain": "https://paradisusdei.org"}, {"id": "7114885172", "name": "Parish Twinning Program of the Americas", "email": "kschecter@ptpausa.org", "url": "https://mycatholicwill.com/ptpa", "plt": "MCW", "domain": "https://ptpausa.org"}, {"id": "3268146797", "name": "Pentecost Today USA", "email": "alicia@pentecosttodayusa.org", "url": "https://mycatholicwill.com/nscpt", "plt": "MCW", "domain": "https://pentecosttodayusa.org"}, {"id": "3188311757", "name": "Pontifical University of the Holy Cross Foundation", "email": "ddinapoli@puhcf.org", "url": "https://mycatholicwill.com/puhcf", "plt": "MCW", "domain": "https://puhcf.org"}, {"id": "4812362896", "name": "Pope St. John XXIII National Seminary", "email": "kfolan@psjs.edu", "url": "https://mycatholicwill.com/psjs", "plt": "MCW", "domain": "https://psjs.edu"}, {"id": "7560102722", "name": "Population Research Institute", "email": "samantha@pop.org", "url": "https://mycatholicwill.com/pop", "plt": "MCW", "domain": "https://pop.org"}, {"id": "6646290506", "name": "Pregnancy Center West (Cincinnati OH)", "email": "linda@pc-west.org", "url": "", "plt": "BOTH", "domain": "https://pc-west.org"}, {"id": "6645424022", "name": "Pro-Life Wisconsin", "email": "Dan.M@ProLifeWI.org", "url": "", "plt": "BOTH", "domain": "https://prolifewi.org"}, {"id": "6769218978", "name": "ProLove / And Then There Were None", "email": "jessica@prolove.com", "url": "", "plt": "BOTH", "domain": "https://prolove.com"}, {"id": "10976300006", "name": "Real Presence Radio", "email": "Lynne@realpresenceradio.com", "url": "https://mycatholicwill.com/realpresenceradio", "plt": "MCW", "domain": "https://realpresenceradio.com"}, {"id": "6821191290", "name": "RED-C Radio", "email": "tj@redcradio.org", "url": "https://mycatholicwill.com/redcradio", "plt": "MCW", "domain": "https://redcradio.org"}, {"id": "8659829296", "name": "Regina Angelorum Academy", "email": "pboyden@reginaangelorumacademy.org", "url": "https://mycatholicwill.com/reginaangelorumacademy", "plt": "MCW", "domain": "https://reginaangelorumacademy.org"}, {"id": "3188303676", "name": "Renew the I DO", "email": "arlene@renewtheido.org", "url": "https://mycatholicwill.com/renew", "plt": "MCW", "domain": "https://renewtheido.org"}, {"id": "9371412826", "name": "Right To Life of Southwest Indiana", "email": "cfrancis@rtlswin.org", "url": "https://www.mylegacywill.com/rtlswin", "plt": "MLW", "domain": "https://rtlswin.org"}, {"id": "8713436316", "name": "Rosary College", "email": "msease@rosary.college", "url": "https://mycatholicwill.com/rosarycollege", "plt": "MCW", "domain": "https://rosary.college"}, {"id": "8462494680", "name": "Saint Mary Magdalene Parish, Willowick OH", "email": "frbreck@smmwillowick.org", "url": "https://mycatholicwill.com/smmwillowick", "plt": "MCW", "domain": "https://smmwillowick.org"}, {"id": "8331500176", "name": "Saint Paul VI Institute", "email": "angela.adkins-miller@saintpaulvi.com", "url": "https://mycatholicwill.com/saintpaulvi", "plt": "MCW", "domain": "https://saintpaulvi.com"}, {"id": "4598253774", "name": "Salesian Sisters of St. John Bosco (West)", "email": "directordma@salesiansisterswest.org", "url": "https://mycatholicwill.com/salesiansisters", "plt": "MCW", "domain": "https://salesiansisterswest.org"}, {"id": "10061612608", "name": "San Damiano College for the Trades", "email": "jgaston@dio.org", "url": "https://mycatholicwill.com/sandamianotrades", "plt": "MCW", "domain": "https://dio.org"}, {"id": "18244514438", "name": "Sanctuary of Lourdes, France", "email": "augustin@vadato.io", "url": "https://mycatholicwill.com/lourdesfrance", "plt": "MCW", "domain": "https://vadato.io"}, {"id": "4735325270", "name": "Schoenstatt Sisters of Mary", "email": "srcatherine@schsrsmary.org", "url": "https://mycatholicwill.com/schoenstatt", "plt": "MCW", "domain": "https://schsrsmary.org"}, {"id": "11642660216", "name": "Sensus Fidelium", "email": "steve@sensusfidelium.com", "url": "https://mycatholicwill.com/sensusfidelium", "plt": "MCW", "domain": "https://sensusfidelium.com"}, {"id": "4831220970", "name": "SENT Ventures", "email": "jan@sentventures.com", "url": "https://mycatholicwill.com/sentventures", "plt": "MCW", "domain": "https://sentventures.com"}, {"id": "11365152620", "name": "Shadow on the Water", "email": "mike@shadowonthewater.com", "url": "https://mycatholicwill.com/shadowonthewater", "plt": "MCW", "domain": "https://shadowonthewater.com", "discount": "20% off"}, {"id": "6303680305", "name": "Shalom World", "email": "tinamary@shalomworld.org", "url": "https://mycatholicwill.com/shalomworld", "plt": "MCW", "domain": "https://shalomworld.org"}, {"id": "9903703140", "name": "Shepherd's Canyon Retreat", "email": "kevin@shepherdscanyon.org", "url": "https://www.mylegacywill.com/shepherdscanyon", "plt": "MLW", "domain": "https://shepherdscanyon.org"}, {"id": "7553230932", "name": "Shrine of St. Joseph (Stirling, NJ)", "email": "cstpierre.stshrine@gmail.com", "url": "https://mycatholicwill.com/shrineofsaintjoseph", "plt": "MCW", "domain": ""}, {"id": "6111762492", "name": "Silverstream Priory", "email": "bookkeeper@cenacleosb.org", "url": "https://mycatholicwill.com/cenacleosb", "plt": "MCW", "domain": "https://cenacleosb.org"}, {"id": "3328168455", "name": "Sisters of Life", "email": "missionadvancementcoordinator@sistersoflife.org", "url": "https://mycatholicwill.com/sistersoflife", "plt": "MCW", "domain": "https://sistersoflife.org"}, {"id": "8878131936", "name": "Sisters of St. Francis of Philadelphia", "email": "shanley@osfphila.org", "url": "https://mycatholicwill.com/osfphila", "plt": "MCW", "domain": "https://osfphila.org"}, {"id": "5680921660", "name": "Sisters of St. Joseph, St. Augustine FL", "email": "pcroucher@ssjfl.org", "url": "https://mycatholicwill.com/ssjfl", "plt": "MCW", "domain": "https://ssjfl.org"}, {"id": "4681066894", "name": "SOAR!", "email": "emakowski@soar-usa.org", "url": "https://mycatholicwill.com/soar", "plt": "MCW", "domain": "https://soar-usa.org"}, {"id": "9371413937", "name": "Society of St Vincent de Paul, Dubuque", "email": "execdir@svdpdubuqueiowa.org", "url": "https://mycatholicwill.com/svdpdubuqueiowa", "plt": "MCW", "domain": "https://svdpdubuqueiowa.org"}, {"id": "6223662876", "name": "Sophia Institute Press / Crisis Magazine", "email": "cmckinney@sophiainstitute.com", "url": "https://mycatholicwill.com/sophiainstitute", "plt": "MCW", "domain": "https://sophiainstitute.com"}, {"id": "11632073410", "name": "Sound of Freedom Foundation", "email": "Stephen@Stephenlam.org", "url": "", "plt": "BOTH", "domain": "https://stephenlam.org"}, {"id": "9371413971", "name": "Southern Dominican Province USA", "email": "jshaw@opsouth.org", "url": "https://mycatholicwill.com/opsouth", "plt": "MCW", "domain": "https://opsouth.org"}, {"id": "5906790953", "name": "SPIRITUS Ministries", "email": "katherinefoord@spiritusministries.org", "url": "https://mycatholicwill.com/spiritusministries", "plt": "MCW", "domain": "https://spiritusministries.org"}, {"id": "7447170035", "name": "St Anthony of Padua Catholic Church, Woodlands TX", "email": "jcorona@ap.church", "url": "https://mycatholicwill.com/apchurch", "plt": "MCW", "domain": "https://ap.church"}, {"id": "6630322046", "name": "St Bernard Abbey & School", "email": "frpaschal@stbernardprep.com", "url": "https://mycatholicwill.com/stbernardabbey", "plt": "MCW", "domain": "https://stbernardprep.com"}, {"id": "6663842530", "name": "St Gertrude Church, Cincinnati", "email": "hramundo@stgertrude.org", "url": "https://mycatholicwill.com/stgertrude", "plt": "MCW", "domain": "https://stgertrude.org"}, {"id": "9362188490", "name": "St Mary's Catholic Center (College Station, TX)", "email": "tkohnert@aggiecatholic.org", "url": "https://mycatholicwill.com/aggiecatholic", "plt": "MCW", "domain": "https://aggiecatholic.org"}, {"id": "7883599371", "name": "St Mary's Ryken High School (MD)", "email": "michele.minicozzi@smrhs.org", "url": "https://mycatholicwill.com/smrhs", "plt": "MCW", "domain": "https://smrhs.org"}, {"id": "6176000311", "name": "St Marys Catholic Church (Hagerstown, MD)", "email": "cmoseley@saintmarysonline.org", "url": "https://mycatholicwill.com/saintmarysonline", "plt": "MCW", "domain": "https://saintmarysonline.org"}, {"id": "9432435222", "name": "St Vincent de Paul Regional Seminary, FL", "email": "hunter.ernde@svdp.edu", "url": "https://mycatholicwill.com/svdp", "plt": "MCW", "domain": "https://svdp.edu"}, {"id": "4711886773", "name": "St. Ambrose Academy, Pittsburgh", "email": "autley@saintambroseacademy.org", "url": "https://mycatholicwill.com/saintambroseacademy", "plt": "MCW", "domain": "https://saintambroseacademy.org"}, {"id": "4682020327", "name": "St. Benedict Center (MA)", "email": "brthomas@saintbenedict.com", "url": "https://mycatholicwill.com/saintbenedict", "plt": "MCW", "domain": "https://saintbenedict.com"}, {"id": "11341681607", "name": "St. Catherine of Siena Parish - Wake Forest", "email": "spender@scswf.org", "url": "https://mycatholicwill.com/scswf", "plt": "MCW", "domain": "https://scswf.org"}, {"id": "9342282475", "name": "St. Cecilia Church & School, Philadelphia", "email": "advancement@stceciliafc.com", "url": "https://mycatholicwill.com/stceciliafc", "plt": "MCW", "domain": "https://stceciliafc.com"}, {"id": "8409768380", "name": "St. Edward Church and School, Nashville TN", "email": "fatherbulso@stedward.org", "url": "https://mycatholicwill.com/stedward", "plt": "MCW", "domain": "https://stedward.org"}, {"id": "11174030936", "name": "St. Francis Xavier Parish, Gettysburg", "email": "frtmarcoe@hbgdiocese.org", "url": "https://mycatholicwill.com/stfxcc", "plt": "MCW", "domain": "https://hbgdiocese.org"}, {"id": "6137994031", "name": "St. John Henry Newman Institute", "email": "isabella@jhni.org", "url": "https://mycatholicwill.com/jhni", "plt": "MCW", "domain": "https://jhni.org"}, {"id": "4869402886", "name": "St. Joseph Academy (Milwaukee)", "email": "kschubring@sjamilwaukee.org", "url": "https://mycatholicwill.com/sjamilwaukee", "plt": "MCW", "domain": "https://sjamilwaukee.org"}, {"id": "5926316425", "name": "St. Joseph College Seminary", "email": "fakerblom@stjcs.org", "url": "https://mycatholicwill.com/stjcs", "plt": "MCW", "domain": "https://stjcs.org"}, {"id": "8462540523", "name": "St. Joseph Cotteville MO", "email": "mlennon@stjoecot.org", "url": "https://mycatholicwill.com/stjoecot", "plt": "MCW", "domain": "https://stjoecot.org"}, {"id": "10684891509", "name": "St. Joseph Parish (NJ)", "email": "jlamme@donovancatholic.org", "url": "https://mycatholicwill.com/stjosephtomsriver", "plt": "MCW", "domain": "https://donovancatholic.org"}, {"id": "18343269305", "name": "St. Joseph Parish and School, Stuart, FL", "email": "crincon@sjscf.org", "url": "https://mycatholicwill.com/sjcflorida", "plt": "MCW", "domain": "https://sjscf.org"}, {"id": "8169567850", "name": "St. Joseph Parish, Salem OR", "email": "jillwenger@stjosephsalem.org", "url": "https://mycatholicwill.com/stjosephchurch", "plt": "MCW", "domain": "https://stjosephsalem.org"}, {"id": "8169809915", "name": "St. Joseph Shrine, Detroit ICKSP", "email": "sjs.office@institute-christ-king.org", "url": "https://mycatholicwill.com/sjdetroit", "plt": "MCW", "domain": "https://institute-christ-king.org"}, {"id": "10898358064", "name": "St. Joseph, Immaculate Conception Millbrook, NY", "email": "fr.matthewmacdonald84@gmail.com", "url": "https://mycatholicwill.com/stjosephmillbrookny", "plt": "MCW", "domain": ""}, {"id": "5185263754", "name": "St. Martin's Academy (KS)", "email": "acyrus@saintmartinsacademy.org", "url": "https://mycatholicwill.com/saintmartins", "plt": "MCW", "domain": "https://saintmartinsacademy.org"}, {"id": "9259641705", "name": "St. Mary's Parish, Wappingers Falls NY", "email": "", "url": "https://mycatholicwill.com/stmarywappingers", "plt": "MCW", "domain": ""}, {"id": "9911952526", "name": "St. Michael the Archangel Parish, Auburn", "email": "seschenbach@stmichaelsauburn.com", "url": "https://mycatholicwill.com/stmichaelsauburn", "plt": "MCW", "domain": "https://stmichaelsauburn.com"}, {"id": "11918533231", "name": "St. Patrick Parish, Weaversville CA", "email": "saintpatricks96093@gmail.com", "url": "https://mycatholicwill.com/trinitycountycatholic", "plt": "MCW", "domain": "", "discount": "$50 off"}, {"id": "8563092537", "name": "St. Patrick's Seminary, California", "email": "anthony.giampietro@stpatricksseminary.org", "url": "https://mycatholicwill.com/stpsu", "plt": "MCW", "domain": "https://stpatricksseminary.org"}, {"id": "3188396188", "name": "St. Paul Center for Biblical Theology", "email": "IsaacSanford@stpaulcenter.com", "url": "https://mycatholicwill.com/stpaul", "plt": "MCW", "domain": "https://stpaulcenter.com"}, {"id": "4558943984", "name": "St. Paul Street Evangelization", "email": "andre@stpaulse.com", "url": "https://mycatholicwill.com/streetevangelization", "plt": "MCW", "domain": "https://stpaulse.com"}, {"id": "4481563945", "name": "St. Paul's Outreach", "email": "andrew.rydlund@spo.org", "url": "https://mycatholicwill.com/spo", "plt": "MCW", "domain": "https://spo.org"}, {"id": "3294904630", "name": "St. Peters Prep", "email": "KatsockA@spprep.org", "url": "https://mycatholicwill.com/spprep", "plt": "MCW", "domain": "https://spprep.org"}, {"id": "4612787535", "name": "St. Raymond Nonnatus Foundation", "email": "director.srnf@gmail.com", "url": "https://mycatholicwill.com/nonnatus", "plt": "MCW", "domain": ""}, {"id": "9955024485", "name": "St. Rose Parish & Holy Rosary Parish, Louisville KY", "email": "joachim.kenney@opeast.org", "url": "https://mycatholicwill.com/strosespringfield", "plt": "MCW", "domain": "https://opeast.org"}, {"id": "7007940678", "name": "St. Thomas Aquinas Catholic Center", "email": "mark.harrington@thomascenter.org", "url": "https://mycatholicwill.com/thomascenter", "plt": "MCW", "domain": "https://thomascenter.org"}, {"id": "11445432468", "name": "St. Thomas Aquinas Catholic Church, Student Center", "email": "devin@staparish.net", "url": "https://mycatholicwill.com/staparish", "plt": "MCW", "domain": "https://staparish.net"}, {"id": "11642686740", "name": "St. Vincent de Paul Society, Dayton", "email": "mnorris@stvincentdayton.org", "url": "https://mycatholicwill.com/stvincentdayton", "plt": "MCW", "domain": "https://stvincentdayton.org"}, {"id": "3341467068", "name": "St. Vincent de Paul, Contra Costa County", "email": "c.ramirez@svdp-cc.org", "url": "https://mycatholicwill.com/svdpcc", "plt": "MCW", "domain": "https://svdp-cc.org"}, {"id": "7885870620", "name": "Strake Jesuit (Houston)", "email": "cmatheny@strakejesuit.org", "url": "https://mycatholicwill.com/strakejesuit", "plt": "MCW", "domain": "https://strakejesuit.org"}, {"id": "4481596066", "name": "Students for Life", "email": "gmowrey@studentsforlife.org", "url": "https://mycatholicwill.com/studentsforlife", "plt": "BOTH", "domain": "https://studentsforlife.org"}, {"id": "6047697236", "name": "Susan B Anthony List", "email": "pwilliams@sbaprolife.org", "url": "", "plt": "BOTH", "domain": "https://sbaprolife.org"}, {"id": "5450589937", "name": "SVDP Parish / Sacred Heart School (Sedalia, MO)", "email": "shfoundation@gogremlins.com", "url": "https://mycatholicwill.com/svdpsedalia", "plt": "MCW", "domain": "https://gogremlins.com"}, {"id": "3188358433", "name": "Tepeyac Leadership", "email": "cpereyra@tepeyacleadership.org", "url": "https://mycatholicwill.com/tepeyac", "plt": "MCW", "domain": "https://tepeyacleadership.org"}, {"id": "6117039132", "name": "Texas Alliance for Life", "email": "Amy@texasallianceforlife.org", "url": "https://www.mylegacywill.com/texasallianceforlife", "plt": "MLW", "domain": "https://texasallianceforlife.org"}, {"id": "7355400075", "name": "The Alpha Center", "email": "kristenl@thealphacenter.org", "url": "https://www.mylegacywill.com/thealphacenter", "plt": "MLW", "domain": "https://thealphacenter.org"}, {"id": "5157993003", "name": "The Kolbe Center for the Study of Creation", "email": "howen@shentel.net", "url": "https://mycatholicwill.com/kolbecenter", "plt": "MCW", "domain": "https://shentel.net"}, {"id": "6568856618", "name": "The Rock Catholic Radio", "email": "mmeitin@am1260therock.com", "url": "https://mycatholicwill.com/therock", "plt": "MCW", "domain": "https://am1260therock.com"}, {"id": "4735271654", "name": "The Station of the Cross", "email": "zachk@thestationofthecross.com", "url": "https://mycatholicwill.com/thestationofthecross", "plt": "MCW", "domain": "https://thestationofthecross.com"}, {"id": "3188404263", "name": "Trinity Academy", "email": "elizabeth.mitchell@trinityacademy.net", "url": "https://mycatholicwill.com/trinityacademy", "plt": "MCW", "domain": "https://trinityacademy.net"}, {"id": "6873506831", "name": "Trinity Missions", "email": "jbutler@trinitymissions.org", "url": "https://mycatholicwill.com/trinitymissions", "plt": "MCW", "domain": "https://trinitymissions.org"}, {"id": "10781717175", "name": "Troops of St. George", "email": "brian.squibbs@tsghq.org", "url": "https://mycatholicwill.com/troopsofsaintgeorge", "plt": "MCW", "domain": "https://tsghq.org"}, {"id": "4490284989", "name": "Unbound", "email": "michael@unbound.org", "url": "https://mycatholicwill.com/unbound", "plt": "MCW", "domain": "https://unbound.org"}, {"id": "8565279850", "name": "United States Submarine Veterans Charitable Foundation", "email": "kenearls.ss@gmail.com", "url": "https://www.mylegacywill.com/ussvcf", "plt": "MLW", "domain": ""}, {"id": "6523304891", "name": "Universal Living Rosary Association", "email": "filomena@philomena.org", "url": "https://mycatholicwill.com/philomena", "plt": "MCW", "domain": "https://philomena.org"}, {"id": "5955065571", "name": "University of Mary", "email": "plkeeney@umary.edu", "url": "https://mycatholicwill.com/umary", "plt": "MCW", "domain": "https://umary.edu"}, {"id": "3299533052", "name": "University of St. Thomas - Houston", "email": "Kiernan.OConnor@stthom.edu", "url": "https://mycatholicwill.com/stthom", "plt": "MCW", "domain": "https://stthom.edu"}, {"id": "7315247504", "name": "Vagabond Missions", "email": "will@vagabondmissions.com", "url": "https://mycatholicwill.com/vagabondmissions", "plt": "MCW", "domain": "https://vagabondmissions.com"}, {"id": "9111929737", "name": "Vermont Catholic Community Foundation", "email": "melanie@vtcatholicfoundation.org", "url": "https://mycatholicwill.com/vccf", "plt": "MCW", "domain": "https://vtcatholicfoundation.org"}, {"id": "10892974032", "name": "Washington Jesuit Academy, DC", "email": "czerda@wjacademy.org", "url": "https://www.mylegacywill.com/wjacademy", "plt": "MLW", "domain": "https://wjacademy.org"}, {"id": "4436131841", "name": "Western Province Capuchin Order", "email": "gschmidt@capuchinswest.org", "url": "https://mycatholicwill.com/capuchins", "plt": "MCW", "domain": "https://capuchinswest.org"}, {"id": "5000309579", "name": "Women of Grace", "email": "iliberatore@womenofgrace.com", "url": "https://mycatholicwill.com/womenofgrace", "plt": "MCW", "domain": "https://womenofgrace.com"}, {"id": "7208782794", "name": "Word on Fire", "email": "codahowski@wordonfire.org", "url": "https://mycatholicwill.com/wordonfire", "plt": "MCW", "domain": "https://wordonfire.org"}, {"id": "6298248338", "name": "World Apostolate of Fatima USA", "email": "dcarollo@bluearmy.com", "url": "https://mycatholicwill.com/bluearmy", "plt": "MCW", "domain": "https://bluearmy.com"}, {"id": "3253694324", "name": "Worldwide Marriage Encounter", "email": "Joe.Sue.Talarico@wwme.org", "url": "https://mycatholicwill.com/wwme", "plt": "MCW", "domain": "https://wwme.org"}, {"id": "5574888472", "name": "WWCCR - Seattle", "email": "sharon@wwccr.org", "url": "https://mycatholicwill.com/wwccr", "plt": "MCW", "domain": "https://wwccr.org"}, {"id": "3563078433", "name": "Wyoming Catholic College", "email": "joseph.susanka@wyomingcatholic.edu", "url": "https://mycatholicwill.com/wyomingcatholic", "plt": "MCW", "domain": "https://wyomingcatholic.edu"}, {"id": "5673177710", "name": "Yakima Diocese", "email": "alma.casio@yakimadiocese.net", "url": "https://mycatholicwill.com/yakimadiocese", "plt": "MCW", "domain": "https://yakimadiocese.net"}, {"id": "3188419951", "name": "Young Catholic Professionals", "email": "claire.keupen@youngcatholicprofessionals.org", "url": "https://mycatholicwill.com/ycp", "plt": "MCW", "domain": "https://youngcatholicprofessionals.org"}, {"id": "4713591642", "name": "Youth Apostles", "email": "tyler.fabian@youthapostles.org", "url": "https://mycatholicwill.com/youthapostles", "plt": "MCW", "domain": "https://youthapostles.org"}, {"id": "5605296044", "name": "Zelie's Home", "email": "marybeth@zelieshome.org", "url": "", "plt": "BOTH", "domain": "https://zelieshome.org"}];
var PLATS={
mcw:{id:"mcw",name:"MyCatholicWill.com",short:"MyCatholicWill",url:"mycatholicwill.com",color:"#1B9A8A",
tagline:"Your Will. Free. Faithful.",
tone:"faith-centered, Catholic values, stewardship, eternal legacy, warm and pastoral",
core:"A free Catholic-friendly Will in minutes. Peace of mind for your family. A legacy of faith for those you love most.",
phrases:[
"Provide a legacy of faith for those you love most",
"The platform Catholics trust",
"Provide a legacy of faith",
"For those you love most",
"Peace of mind for your family",
"A Will that reflects your values"
]},
mlw:{id:"mlw",name:"MyLegacyWill.com",short:"MyLegacyWill",url:"mylegacywill.com",color:"#F59E0B",
tagline:"Your Will. Free. In minutes.",
tone:"warm, universal, family-focused, non-denominational, legacy-focused",
core:"A free, simple Will done in minutes. Secure your legacy. Provide for those you love most.",
phrases:[
"Provide a Legacy",
"Secure Your Legacy",
"For those you love most",
"Your legacy, your way",
"Peace of mind starts with a plan",
"Protect what matters most"
]}
};
var PURPOSES=[
{id:"general", label:"General Awareness", desc:"Evergreen, anytime"},
{id:"announce", label:"Partnership Announcement", desc:"Launching the partnership"},
{id:"legacy", label:"Legacy Giving", desc:"Bequest and planned gifts"},
{id:"legacy_may",label:"Leave a Legacy Month", desc:"May awareness campaign"},
{id:"will_month",label:"Make-A-Will Month", desc:"August -- national awareness month"},
{id:"year_end", label:"Year-End Giving", desc:"December -- year-end generosity"},
{id:"new_year", label:"New Year", desc:"January -- fresh start, new resolve"},
{id:"lent", label:"Lent and Easter", desc:"Lent through Easter, spring stewardship"},
{id:"all_souls", label:"All Souls / November", desc:"November -- honoring the faithful departed"},
{id:"custom", label:"Custom", desc:"Define your own"}
];
var AGROUPS=[
{g:"Email",open:true,items:[
{id:"em_ann", l:"Email", s:"Purpose-driven, with subject line"},
{id:"em_follow",l:"Follow-up Email", s:"Second touch, 1-2 weeks later"},
{id:"em_subj", l:"Subject Line Set", s:"6 lines + preview text"}
]},
{g:"Social Media",open:true,items:[
{id:"social", l:"Social Media Set", s:"3 variations: IG, FB, IG alt"}
]},
{g:"Broadcast",open:false,items:[
{id:"r30", l:"Radio Ad (30 sec)", s:"~70 words"},
{id:"r60", l:"Radio Ad (60 sec)", s:"~130 words"},
{id:"pod", l:"Podcast Host-Read", s:"60-90 sec, host to their audience"}
]},
{g:"Bulletin",open:false,items:[
{id:"bul_b", l:"Bulletin Blurb", s:"50-70 word drop-in"},
{id:"bul_full", l:"Full Bulletin", s:"150-200 words"}
]},
{g:"Church & Diocese",open:false,items:[
{id:"parish", l:"Parish Letter", s:"Pastor voice"},
{id:"homily", l:"Homily Note", s:"2-3 spoken sentences"},
{id:"diocmemo", l:"Diocesan Memo", s:"Official memo to parishes"}
]},
{g:"Stewardship",open:false,items:[
{id:"back", l:"Bequest Thank-You", s:"Warm acknowledgment"}
]}
];
var S={
panel:1,
partner:null,
brand:null,
brandLoading:false,
msgs:[],
purpose:"general",
customPurpose:"",
sel:new Set(["em_ann","em_follow","em_subj"]),
collapsed:new Set(["Broadcast","Bulletin","Church & Diocese","Stewardship"]),
gen:false,
prog:{done:0,total:0,cur:""},
res:{},
ctx:null,
discount:{enabled:false,type:"pct",value:""}
};
/* -- UTILS -- */
function $i(id){return document.getElementById(id);}
function gv(id){var e=$i(id);return e?e.value.trim():"";}
function esc(s){return String(s||"").replace(/&/g,"&").replace(//g,">").replace(/"/g,""");}
function pltsFor(p){if(!p)return["mcw"];if(p.plt==="MLW")return["mlw"];if(p.plt==="BOTH")return["mcw","mlw"];return["mcw"];}
function purl(pltId,partner){
var pt=partner||(S.ctx?S.ctx.partner:S.partner);
var p=PLATS[pltId];if(!pt)return p.url+"/partner";
var u=pt.url||"";
var slug=u.startsWith("http")?u.split("/").pop():(u||"partner");
return p.url+"/"+slug;
}
function cname(){return S.ctx?S.ctx.name:(S.partner?S.partner.name:"the charity");}
function purposeLabel(){
var id=S.ctx?S.ctx.purpose:S.purpose;
if(id==="custom")return S.ctx?S.ctx.customPurpose:(S.customPurpose||"Custom Campaign");
var pp=PURPOSES.filter(function(p){return p.id===id;})[0];
return pp?pp.label:"General Awareness";
}
/* -- API -- */
function callAPI(msgs,sys,maxT,tools){
if(PROXY_URL.indexOf("YOUR-ACCOUNT")!==-1){
return Promise.reject(new Error("Proxy not configured. Open the HTML file and replace YOUR-ACCOUNT in PROXY_URL with your Cloudflare Worker subdomain. See DEPLOY.md for instructions."));
}
var body={model:"claude-sonnet-4-5",max_tokens:maxT||1200,messages:msgs};
if(sys)body.system=sys;
if(tools)body.tools=tools;
return fetch(PROXY_URL,{
method:"POST",
headers:{"Content-Type":"application/json"},
body:JSON.stringify(body)
}).then(function(r){
if(!r.ok)return r.json().then(function(e){throw new Error(e.error&&e.error.message?e.error.message:"API error "+r.status);});
return r.json();
});
}
function apiText(d){var b=d.content||[];for(var i=0;iNo partners found
";return;}
var show=_filt.slice(0,150);
el.innerHTML=show.map(function(p){
var sel=S.partner&&S.partner.id===p.id;
var bc=p.plt==="MLW"?"b-mlw":p.plt==="BOTH"?"b-both":"b-mcw";
var urlDisplay=p.url&&p.url.startsWith("http")?p.url.replace(/https?:\/\//,""):p.url||"";
return ""
+""+esc(p.plt)+"
";
}).join("")
+(_filt.length>150?""+esc(p.name)+"
"
+(urlDisplay?""+esc(urlDisplay)+"
":"")
+"Showing 150 of "+_filt.length+" - type to narrow
":"");
}
function filterP(){
var q=gv("search").toLowerCase();
_filt=q?_all.filter(function(p){return p.name.toLowerCase().indexOf(q)!==-1||(p.url&&p.url.toLowerCase().indexOf(q)!==-1);}):_all.slice();
updateCount();renderList();
}
function pickPartner(id){
var p=_all.filter(function(x){return x.id===id;})[0];if(!p)return;
S.partner=p;S.brand=null;S.msgs=[];S.brandLoading=false;S.res={};S.ctx=null;
renderList();
setPanel(2);
startBrandLookup(p);
/* Auto-populate discount from partner data */
autoSetDiscount(p);
}
function autoSetDiscount(partner){
var disc=partner.discount||"";
var cb=document.getElementById("discount-cb");
var inputs=document.getElementById("discount-inputs");
var typeSel=document.getElementById("discount-type");
var valInp=document.getElementById("discount-val");
if(!cb)return;
if(!disc){
/* Free - hide discount section entirely */
S.discount={enabled:false,type:"pct",value:""};
cb.checked=false;
if(inputs)inputs.style.display="none";
var sec=document.getElementById("discount-section");
if(sec)sec.style.display="none";
return;
}
/* Has a discount - show and pre-populate */
var sec=document.getElementById("discount-section");
if(sec)sec.style.display="block";
/* Parse value: "20% off" -> pct=20, "$50 off" -> dollar=50, "$X" -> price=X */
var type="pct",val="";
var pctM=disc.match(/^(\d+)%/);
var dolM=disc.match(/^\$(\d+)\s+off/);
var priceM=disc.match(/^\$(\d+)$/);
if(pctM){type="pct";val=pctM[1];}
else if(dolM){type="dollar";val=dolM[1];}
else if(priceM){type="price";val=priceM[1];}
S.discount={enabled:true,type:type,value:val};
cb.checked=true;
if(inputs)inputs.style.display="block";
if(typeSel)typeSel.value=type;
if(valInp)valInp.value=val;
updateDiscount();
}
/* -- BRAND LOOKUP -- */
function startBrandLookup(partner){
S.brandLoading=true;
var bl=$i("brand-loading");if(bl)bl.classList.add("show");
var bc=$i("brand-chips");if(bc){bc.innerHTML="";}
var target=partner.domain||partner.name;
var isUrl=target&&(target.startsWith("http")||target.indexOf(".")!==-1);
var prompt=isUrl
?"Analyze this organization. Return ONLY valid JSON, no markdown. Fields: mission (1-2 sentences), tone (3-4 adjectives), tagline (string or null), keyThemes (array 3 strings max). URL: "+target
:"Search for this nonprofit: \""+target+"\". Return ONLY valid JSON. Fields: mission (1-2 sentences), tone (3-4 adjectives), tagline (string or null), keyThemes (array 3 strings max).";
var pid=partner.id;
callAPI([{role:"user",content:prompt}],
"Nonprofit brand analyst. Return only valid JSON. No other text.",
600,[{type:"web_search_20250305",name:"web_search"}]
).then(function(data){
if(!S.partner||S.partner.id!==pid)return;
var txt=apiText(data);var ex=null;
var m=txt.match(/\{[\s\S]*\}/);if(m){try{ex=JSON.parse(m[0]);}catch(e){}}
if(ex){S.brand=ex;if(ex.keyThemes)S.msgs=ex.keyThemes.slice(0,3);}
renderBrandChips();
}).catch(function(){}).finally(function(){
if(!S.partner||S.partner.id!==pid)return;
S.brandLoading=false;
var bl2=$i("brand-loading");if(bl2)bl2.classList.remove("show");
});
}
function renderBrandChips(){
var el=$i("brand-chips");if(!el)return;
var br=S.brand;if(!br){el.innerHTML="";return;}
var chips=[];
if(br.tone)chips.push(br.tone);
if(br.tagline)chips.push('"'+br.tagline+'"');
if(br.keyThemes)br.keyThemes.forEach(function(t){chips.push(t);});
el.innerHTML=chips.map(function(c){return ""+esc(c)+"";}).join("");
}
/* -- PANELS -- */
function setPanel(n){
S.panel=n;
var p1=$i("p1"),p2=$i("p2");
if(p1)p1.className="s-panel"+(n===1?" active":"");
if(p2)p2.className="s-panel"+(n===2||n===3?" active":"");
[1,2,3].forEach(function(i){
var nav=$i("nav"+i);if(nav)nav.className="sn"+(i===n?" active":i"
+"
";
document.body.appendChild(ov);
setTimeout(function(){var i=$i("custom-modal-inp");if(i)i.focus();},50);
}
function saveCustom(){
var inp=$i("custom-modal-inp");
var val=inp?inp.value.trim():"";
if(!val){if(inp)inp.focus();return;}
S.purpose="custom";S.customPurpose=val;
var sel=$i("purpose-sel");if(sel)sel.value="custom";
var ex=$i("custom-modal");if(ex)ex.remove();
updateGenBtn();
}
function cancelCustom(){
var ex=$i("custom-modal");if(ex)ex.remove();
var sel=$i("purpose-sel");
if(sel)sel.value=S.purpose==="custom"?"general":(S.purpose||"general");
if(S.purpose==="custom"){S.purpose="general";S.customPurpose="";}
}
/* -- DISCOUNT -- */
function togDiscount(on){
S.discount.enabled=on;
var inp=document.getElementById("discount-inputs");
if(inp)inp.style.display=on?"block":"none";
updateDiscount();
}
function updateDiscount(){
var prev=document.getElementById("discount-preview");
if(!prev)return;
if(!S.discount.enabled||!S.discount.value){prev.textContent="";return;}
var v=S.discount.value.trim();
if(S.discount.type==="pct")prev.textContent=v+"% off for supporters";
else if(S.discount.type==="dollar")prev.textContent="$"+v+" off for supporters";
else prev.textContent="$"+v+" for supporters";
}
/* -- ASSETS -- */
function renderAssets(){
var el=$i("asset-list");if(!el)return;
el.innerHTML=AGROUPS.map(function(grp){
var coll=S.collapsed.has(grp.g);
var gsel=grp.items.filter(function(a){return S.sel.has(a.id);}).length;
var gk=grp.g.replace(/[^a-z]/gi,"_");
return "Custom Campaign
"
+"Describe your campaign. Copy will be written to match this context.
"
+""
+""
+""
+""
+"
"
+"
";
}).join("");
updateGenBtn();
}
function togGrp(g){
S.collapsed.has(g)?S.collapsed.delete(g):S.collapsed.add(g);
var gk=g.replace(/[^a-z]/gi,"_");
var b=$i("agb_"+gk);if(b)b.style.display=S.collapsed.has(g)?"none":"flex";
var t=$i("agt_"+gk);if(t)t.textContent=S.collapsed.has(g)?"[+]":"[-]";
}
function togAsset(id){
S.sel.has(id)?S.sel.delete(id):S.sel.add(id);
var el=document.querySelector("[data-id='"+id+"']");
if(el){el.className="a-item"+(S.sel.has(id)?" sel":"");var cb=el.querySelector("input");if(cb)cb.checked=S.sel.has(id);}
updateGenBtn();
}
function updateGenBtn(){
var n=S.sel.size;
var plts=S.partner?pltsFor(S.partner):["mcw"];
var total=n*plts.length;
var btn=$i("gen-btn");
if(btn){btn.disabled=S.gen||n===0||!S.partner;btn.innerHTML=S.gen?" Generating...":"Generate "+total+" Piece"+(total!==1?"s":"");}
var info=$i("gen-info");
if(info&&S.partner)info.textContent=n+" asset"+(n!==1?"s":"")+" for "+S.partner.name;
}
/* -- SYSTEM PROMPT -- */
function buildSys(pltId,partner,brand,mission,discount){
var p=PLATS[pltId],nm=partner.name,pu=purl(pltId,partner);
var mis=mission||"";
var brCtx=brand?(
"\nCharity brand:"
+(brand.tone?" Tone: "+brand.tone+".":" ")
+(brand.keyThemes&&brand.keyThemes.length?" Themes: "+brand.keyThemes.join(", ")+".":" ")
+(brand.tagline?" Tagline: \""+brand.tagline+"\".":" ")
):"";
return "You are an expert nonprofit marketing copywriter for legacy giving and free Will programs.\n\n"
+"PLATFORM: "+p.name+" | TAGLINE: "+p.tagline+" | TONE: "+p.tone+"\n"
+"CORE VALUE: "+p.core+"\n\n"
+"CHARITY: "+nm+"\n"+(mis?"MISSION: "+mis+"\n":"")+brCtx
+"\nFREE WILL URL: "+pu+"\n\n"
+"CAMPAIGN: "+purposeLabel()+"\n"
+"SEASON RULES: Make-A-Will Month=AUGUST only. Leave a Legacy Month=MAY only. Year-End=DECEMBER only. New Year=JANUARY only. All Souls=NOVEMBER only. Lent and Easter=February through April. NEVER reference the wrong season for the selected campaign.\n\n"
+"DEFAULT LENGTH: SHORT AND PUNCHY. Emails 130-160 words. Social 2-3 sentences. Radio meets word count exactly. Bulletins 2-3 sentences.\n\n"
+"PLATFORM SIGNATURE PHRASES (weave in naturally where they fit, do not force all of them):\n"
+p.phrases.map(function(ph,i){return " "+(i+1)+". \""+ph+"\"";}).join("\n")+"\n\n"
+"RULES:\n"
+"1. "+pu+" is the ONLY CTA URL.\n"
+(discount?"2. The Will is available to "+nm+" supporters at a discount: "+discount+". Lead with the discount as the hook -- this is their exclusive benefit.\n":"2. Will is always FREE. Never say 'legally valid'. Say 'simple', 'easy', 'done in minutes'.\n")
+"3. Any bequest to "+nm+" is ALWAYS optional. Gently offered, never a condition.\n"
+"4. No EIN. No numbered legal steps.\n"
+"5. First line hooks immediately.\n"
+"6. Voice = tone of "+nm+" as extracted from their website. Match their personality.\n"
+"7. NEVER use em dashes. Use commas, periods, or line breaks.\n"
+"8. PS lines must strongly reinforce the CTA with the full URL.\n"
+"9. Subject lines: under 45 characters, punchy, no em dashes.\n"
+"10. Output ONLY the requested copy. No preamble.";
}
/* -- PROMPTS -- */
function buildPrompt(id,pltId,partner,brand){
var nm=partner.name,pu=purl(pltId,partner),pl=purposeLabel();
var base="Charity: "+nm+". Purpose: "+pl+". Free Will URL: "+pu+". ";
var map={
em_ann: base+"Write an email for this purpose and season: "+pl+". 130-150 words. SUBJECT: line first. The opening and framing must feel accurate for the actual season or occasion ("+pl+"). Do NOT mix up seasonal references. 2-3 paragraphs: hook on "+nm+"'s mission tied to the occasion, introduce free Will at "+pu+" as a natural step, gentle optional bequest. Strong CTA with URL. PS reinforces link.",
em_follow:base+"Write a follow-up email (1-2 weeks after first email). 110-130 words. SUBJECT: line first. Different angle from first email, tied to "+nm+"'s mission and the "+pl+" occasion. No invented stories or imaginary people. Remind: free Will at "+pu+". CTA. PS reinforces link.",
em_subj: base+"Write 6 punchy subject lines in two groups:\nGROUP 1 - FAMILY PROTECTION\nGROUP 2 - "+nm.toUpperCase()+" MISSION AND LEGACY\nRules: max 45 characters each, no em dashes. Format: SUBJECT: [line] / PREVIEW: [one short teaser under 90 characters]",
social: base+"Write 3 social media variations.\n\nVARIATION 1 - INSTAGRAM:\nBold 1-sentence hook on "+nm+"'s mission and the "+pl+" occasion. 1-2 sentences on free Will at "+pu+". CTA. 4-5 hashtags. 'Link in bio.'\n\nVARIATION 2 - FACEBOOK:\n2-3 warm sentences. "+nm+"'s mission for "+pl+", then free Will at "+pu+". 1-2 hashtags.\n\nVARIATION 3 - INSTAGRAM (alternate angle):\nDifferent hook. 2 sentences. CTA. 4-5 hashtags. 'Link in bio.'",
r30: base+"Write a 30-second radio read, exactly 70-75 words. FORMAT:\n[HOOK: 1 sentence emotional hook tied to "+nm+"'s mission]\n[BRIDGE: introduce the free Will offer -- simple, done in minutes]\n[CTA: visit "+pu+"]\n[CLOSE: reinforce the mission benefit]\n[REPEAT CTA: "+pu+" again]\nURL mentioned twice. No jargon. Conversational broadcast voice. Reads naturally aloud.",
r60: base+"Write a 60-second radio read, exactly 130-140 words. FORMAT:\n[OPEN: Emotional story or question tied to "+nm+"'s mission and "+pl+"]\n[BUILD: Why now -- connect the season or occasion to legacy planning]\n[OFFER: free Will at "+pu+" -- simple, takes about 15 minutes, no cost]\n[OPTIONAL GIFT: supporters can also leave a gift to "+nm+" in their Will -- always optional]\n[CTA: visit "+pu+" -- say it clearly]\n[CLOSE: reinforce benefit, restate mission]\n[REPEAT CTA: "+pu+" one more time]\nURL mentioned twice minimum. Conversational broadcast voice. Reads naturally aloud at moderate pace.",
pod: base+"Write a 60-90 second podcast host-read for "+nm+"'s own podcast. The HOST is speaking naturally to their regular audience. First-person, warm, sounds like something the host genuinely discovered and wants to share. FORMAT:\n[PERSONAL HOOK: something the host connects to personally about legacy planning or "+nm+"'s mission]\n[THE OFFER: their audience can now write a free Will in about 15 minutes at "+pu+"]\n[THE GIFT: they can optionally leave a gift to "+nm+" -- mention it feels good, never pushy]\n[CTA: go to "+pu+" -- say it conversationally]\n[CLOSE: warm sign-off reinforcing the benefit]\n[REPEAT URL: "+pu+" once more before ending]\nNot scripted-sounding. Natural pauses implied. URL mentioned at least twice.",
bul_b: base+"Write a bulletin blurb, 50-70 words. Plain warm prose for "+pl+". URL "+pu+" woven in naturally. No jargon.",
bul_full:base+"Write a full bulletin feature, 150-200 words for "+pl+". Headline (5-6 words). 2-3 paragraphs: relatable opening tied to "+nm+"'s mission, introduce free Will at "+pu+" as a helpful step, gentle optional legacy gift. CTA. No invented people.",
parish: base+"Write a pastor letter, max 150 words. Faith framing for "+pl+". Free Will at "+pu+", gentle bequest mention. Warm close and [Signature].",
homily: base+"Write 2-3 spoken pulpit sentences. Natural priestly voice. Faith-framed. URL "+pu+". Helpful, not advertising.",
diocmemo:base+"Write diocesan memo. TO: All Parishes / FROM: [Diocese] / RE: Free Will Program. Brief purpose, how parishes promote it, URL "+pu+".",
back: base+"Write bequest thank-you, 120-150 words. Warm and personal, tied to "+nm+"'s mission. Welcome to legacy community. Mention updating Will at "+pu+" if circumstances change. No hard ask."
};
return map[id]||(base+"Write copy for: "+id+". URL: "+pu+".");
}
/* -- GENERATE -- */
function doGen(){
if(!S.partner||S.sel.size===0)return;
var p=S.partner;var plts=pltsFor(p);
var mission=S.brand&&S.brand.mission?S.brand.mission:"";
var slug=p.url&&p.url.startsWith("http")?p.url.split("/").pop():(p.url||"partner");
S.ctx={
partner:JSON.parse(JSON.stringify(p)),
name:p.name,slug:slug,plts:plts.slice(),
purpose:S.purpose,customPurpose:S.customPurpose||"",
brand:S.brand?JSON.parse(JSON.stringify(S.brand)):null,
mission:mission,msgs:S.msgs.slice(),
discount:S.discount.enabled&&S.discount.value?{enabled:true,type:S.discount.type,value:S.discount.value}:{enabled:false}
};
var items=AGROUPS.flatMap(function(g){return g.items.filter(function(a){return S.sel.has(a.id);});});
S.res={};
items.forEach(function(a){S.res[a.id]={};plts.forEach(function(plt){S.res[a.id][plt]=null;});});
S.gen=true;
setPanel(3);
var sysByPlt={};
var discNote=S.ctx.discount&&S.ctx.discount.enabled?(
S.ctx.discount.type==="pct"?S.ctx.discount.value+"% off for supporters":
S.ctx.discount.type==="dollar"?"$"+S.ctx.discount.value+" off for supporters":
"available for $"+S.ctx.discount.value+" to supporters"
):"";
plts.forEach(function(plt){sysByPlt[plt]=buildSys(plt,S.ctx.partner,S.ctx.brand,S.ctx.mission,discNote);});
var tasks=[];
items.forEach(function(a){plts.forEach(function(plt){tasks.push({id:a.id,plt:plt,lbl:a.l+(plts.length>1?" ("+PLATS[plt].short+")":"")});});});
S.prog={done:0,total:tasks.length,cur:""};
updateProgUI();
var i=0;
function next(){
if(i>=tasks.length){S.gen=false;Object.keys(S.res).forEach(function(aid){renderCard(aid);});updateProgUI();return;}
var tk=tasks[i++];
S.prog.done=i-1;S.prog.cur=tk.lbl;updateProgUI();renderCard(tk.id);
callAPI([{role:"user",content:buildPrompt(tk.id,tk.plt,S.ctx.partner,S.ctx.brand)}],sysByPlt[tk.plt],1400)
.then(function(d){S.res[tk.id][tk.plt]=apiText(d)||"[No content]";})
.catch(function(e){S.res[tk.id][tk.plt]="[Error: "+(e.message||"unknown")+"]";})
.then(function(){S.prog.done=i;S.prog.cur="";renderCard(tk.id);updateProgUI();next();});
}
next();
}
function updateProgUI(){
var pct=S.prog.total>0?Math.round(S.prog.done/S.prog.total*100):0;
var pt=$i("prog-track"),pf=$i("prog-fill"),pl=$i("prog-label"),gb=$i("gen-btn");
if(pt)pt.style.display=S.gen?"block":"none";
if(pf)pf.style.width=pct+"%";
if(pl)pl.textContent=S.gen&&S.prog.total>0?S.prog.done+" of "+S.prog.total+(S.prog.cur?" - "+S.prog.cur:""):"";
if(gb){
var total=S.sel.size*(S.partner?pltsFor(S.partner).length:1);
gb.disabled=S.gen||S.sel.size===0||!S.partner;
gb.innerHTML=S.gen?" Generating...":"Generate "+total+" Piece"+(total!==1?"s":"");
}
var rs=$i("res-spin"),rc=$i("res-cur"),reb=$i("regen-btn"),dlb=$i("dl-all");
var done=Object.values(S.res).flatMap(function(r){return Object.values(r);}).filter(function(v){return v&&!v.startsWith("[Error");}).length;
if(rs)rs.style.display=S.gen?"inline-flex":"none";
if(rc)rc.textContent=S.prog.cur;
if(reb)reb.style.display=(!S.gen&&done>0)?"inline-flex":"none";
if(dlb)dlb.style.display=(!S.gen&&done>0)?"inline-flex":"none";
}
/* -- RESULTS -- */
function buildResults(){
var main=$i("main-area");if(!main)return;
if(!Object.keys(S.res).length){
main.innerHTML=""
+"
"
+""+grp.g+(gsel>0?" "+gsel+"":"")+"
"
+""+(coll?"[+]":"[-]")+""
+grp.items.map(function(a){
var sel=S.sel.has(a.id);
return "";
}).join("")
+"
Ready to generate
Select assets and click Generate.
";
h+="";
h+="";
AGROUPS.forEach(function(grp){
var items=grp.items.filter(function(a){return S.res.hasOwnProperty(a.id);});
if(!items.length)return;
h+="
";
main.innerHTML=h;
updateProgUI();
}
function buildCardHTML(a,plts){
var resObj=S.res[a.id]||{};
var h="";
h+="
";
});
h+=""+grp.g+"
";
items.forEach(function(a){h+=buildCardHTML(a,plts);});
h+="";
h+="
";
return h;
}
function renderCard(id){
var el=$i("card-"+id);if(!el)return;
var ctx=S.ctx,plts=ctx?ctx.plts:["mcw"],resObj=S.res[id]||{};
plts.forEach(function(pltId){
var bdy=$i("rcb-"+id+"-"+pltId);
var content=resObj[pltId];
if(!bdy)return;
if(content===null&&S.gen){
if(!bdy.classList.contains("gen-wait")){bdy.outerHTML="";
h+="
";
plts.forEach(function(pltId){
var content=resObj[pltId];
if(plts.length>1)h+=""+esc(a.l)+""+esc(a.s)+"
";
h+="";
h+="";
h+="";
h+="
"+esc(PLATS[pltId].short)+"
";
var bodyId="rcb-"+a.id+"-"+pltId;
if(content===null&&S.gen){
h+=" Generating...
";
} else if(content){
h+=""+esc(content)+"
";
h+="Click to edit
";
} else {
h+="Not generated
";
}
});
h+=" Generating...
";}
} else if(content){
bdy.outerHTML=""+esc(content)+"
Click to edit
";
}
});
}
/* -- MODIFY ALL -- */
function setModAll(t){var i=$i("mod-all-inp");if(i)i.value=t+" - apply to all pieces";}
function modifyAll(){
var txt=gv("mod-all-inp");if(!txt)return;
var ctx=S.ctx;if(!ctx)return;
var plts=ctx.plts,ids=Object.keys(S.res);
var btn=document.querySelector(".mod-bar .btn-solid");
if(btn){btn.disabled=true;btn.innerHTML="";}
var total=ids.length*plts.length,done=0;
function chk(){done++;if(done>=total&&btn){btn.disabled=false;btn.innerHTML="Apply";}}
ids.forEach(function(id){
plts.forEach(function(plt){
var bdy=$i("rcb-"+id+"-"+plt);
var content=bdy?bdy.textContent:(S.res[id]&&S.res[id][plt])||"";
if(!content||content.startsWith("[Error")){chk();return;}
callAPI([{role:"user",content:"Existing copy:\n\n"+content+"\n\nInstruction: "+txt+"\n\nOutput ONLY the revised copy."}],
buildSys(plt,ctx.partner,ctx.brand,ctx.mission),1400)
.then(function(d){var nw=apiText(d);if(nw){S.res[id][plt]=nw;if(bdy)bdy.textContent=nw;}})
.catch(function(){}).then(chk);
});
});
}
/* -- COPY -- */
function cpCard(id){
var ctx=S.ctx;if(!ctx)return;
var plts=ctx.plts,parts=[];
plts.forEach(function(plt){
var bdy=$i("rcb-"+id+"-"+plt);
var c=bdy?bdy.textContent||bdy.innerText||"":(S.res[id]&&S.res[id][plt])||"";
if(!c||c.startsWith("["))return;
parts.push(plts.length>1?"=== "+PLATS[plt].short+" ===\n"+c:c);
});
if(!parts.length){alert("Content not ready yet.");return;}
navigator.clipboard.writeText(parts.join("\n\n")).then(function(){
var b=$i("cpb-"+id);if(b){var o=b.textContent;b.textContent="Copied!";setTimeout(function(){b.textContent=o;},2000);}
}).catch(function(){
/* Try execCommand fallback */
try{
var ta=document.createElement("textarea");ta.value=parts.join("\n\n");
ta.style.cssText="position:fixed;top:-9999px;opacity:0";
document.body.appendChild(ta);ta.select();
var ok=document.execCommand("copy");
document.body.removeChild(ta);
if(ok){var b=$i("cpb-"+id);if(b){var o=b.textContent;b.textContent="Copied!";setTimeout(function(){b.textContent=o;},2000);}return;}
}catch(e2){}
/* Show text in modal */
showExportModal(parts.join("\n\n"),"Copy Content");
});
}
/* -- WORD DOWNLOAD -- */
function closeExportModal(){var e=document.getElementById("plain-export-modal");if(e)e.remove();}
function copyExportTA(){var t=document.getElementById("export-ta");if(t){t.select();try{document.execCommand("copy");}catch(e){}}}
function showExportModal(text,title){
var ex=document.getElementById("plain-export-modal");if(ex)ex.remove();
var ov=document.createElement("div");
ov.id="plain-export-modal";
ov.style.cssText="position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:2000;display:flex;align-items:center;justify-content:center;padding:20px";
var box=document.createElement("div");
box.style.cssText="background:#fff;border-radius:12px;width:100%;max-width:700px;max-height:80vh;display:flex;flex-direction:column;overflow:hidden";
var bar=document.createElement("div");bar.style.cssText="padding:14px 18px;border-bottom:1px solid #E5E7EB;display:flex;align-items:center;justify-content:space-between";
var ttl=document.createElement("div");ttl.style.cssText="font-size:14px;font-weight:600;color:#111";ttl.textContent=title||"Copy Content";
var btns=document.createElement("div");btns.style.cssText="display:flex;gap:8px";
var cb=document.createElement("button");cb.textContent="Copy All";
cb.style.cssText="padding:6px 14px;border:none;border-radius:7px;background:#1B9A8A;color:#fff;cursor:pointer;font-size:13px;font-weight:600;font-family:inherit";
cb.onclick=function(){copyExportTA();cb.textContent="Copied!";setTimeout(function(){cb.textContent="Copy All";},2000);};
var xb=document.createElement("button");xb.textContent="Close";
xb.style.cssText="padding:6px 12px;border:1px solid #E5E7EB;border-radius:7px;background:#fff;cursor:pointer;font-size:13px;font-family:inherit";
xb.onclick=closeExportModal;
btns.appendChild(cb);btns.appendChild(xb);bar.appendChild(ttl);bar.appendChild(btns);
var ta=document.createElement("textarea");ta.id="export-ta";ta.readOnly=true;
ta.style.cssText="flex:1;padding:14px;border:none;outline:none;font-size:12px;font-family:monospace;resize:none;line-height:1.6;color:#374151;min-height:300px";
ta.value=text;
box.appendChild(bar);box.appendChild(ta);ov.appendChild(box);
document.body.appendChild(ov);
setTimeout(function(){ta.select();},100);
}
function plainTextExport(assetIds){
var ctx=S.ctx;if(!ctx)return;
var plts=ctx.plts,nm=ctx.name;
var ids=assetIds||Object.keys(S.res);
var out=["============================================================",
nm+" x "+plts.map(function(p){return PLATS[p].short;}).join(" & ")+" -- Partner Copy",
"Purpose: "+purposeLabel(),
"============================================================",""];
AGROUPS.forEach(function(grp){
var items=grp.items.filter(function(a){return ids.indexOf(a.id)!==-1&&S.res.hasOwnProperty(a.id);});
if(!items.length)return;
out.push("--- "+grp.g.toUpperCase()+" ---","");
items.forEach(function(a){
out.push("[ "+a.l+" ]");
plts.forEach(function(plt){
if(plts.length>1)out.push("-- "+PLATS[plt].short+" --");
var bdy=document.getElementById("rcb-"+a.id+"-"+plt);
var c=bdy?bdy.textContent||bdy.innerText||"":(S.res[a.id]&&S.res[a.id][plt])||"";
if(c&&!c.startsWith("["))out.push(c);
});
out.push("");
});
});
showExportModal(out.join("\n"),nm+" -- Copy");
}
function makeDocx(assetIds){
/* Try all possible global names the docx UMD build might use */
var D=window.docx||window.Docx||window.DOCX||window.DocxModule;
/* Also check if it loaded under a different key */
if(!D){
for(var k in window){
if(k.toLowerCase().indexOf('docx')!==-1&&typeof window[k]==='object'&&window[k].Document){
D=window[k];break;
}
}
}
if(!D){
/* Library didn't load - fall back to plain text */
plainTextExport(assetIds);
return;
}
var ctx=S.ctx;if(!ctx)return;
var plts=ctx.plts,nm=ctx.name;
var ids=assetIds||Object.keys(S.res);
var ch=[];
ch.push(new D.Paragraph({children:[new D.TextRun({text:nm+" x "+plts.map(function(p){return PLATS[p].short;}).join(" & ")+" - Partner Copy",bold:true,size:28,font:"Arial"})],spacing:{after:120}}));
ch.push(new D.Paragraph({children:[new D.TextRun({text:"Purpose: "+purposeLabel(),size:20,font:"Arial",color:"555555"})],spacing:{after:400}}));
ids.forEach(function(id){
var meta=AGROUPS.flatMap(function(g){return g.items;}).filter(function(a){return a.id===id;})[0];
var lbl=meta?meta.l:id;
plts.forEach(function(plt){
var bdy=$i("rcb-"+id+"-"+plt);
var content=bdy?bdy.textContent||bdy.innerText||"":(S.res[id]&&S.res[id][plt])||"";
if(!content||content.startsWith("["))return;
var pltLbl=plts.length>1?" ("+PLATS[plt].short+")":"";
ch.push(new D.Paragraph({children:[new D.TextRun({text:lbl+pltLbl,bold:true,size:22,font:"Arial",color:"1B9A8A"})],spacing:{before:360,after:80},border:{bottom:{style:"single",size:4,color:"C8EAE5",space:4}}}));
content.split("\n").forEach(function(line){ch.push(new D.Paragraph({children:[new D.TextRun({text:line,size:20,font:"Arial"})],spacing:{after:70}}));});
ch.push(new D.Paragraph({children:[new D.TextRun({text:"",size:20})],spacing:{after:140}}));
});
});
var doc=new D.Document({creator:"Partner Copy Studio",title:nm,sections:[{properties:{page:{size:{width:12240,height:15840},margin:{top:1080,right:1080,bottom:1080,left:1080}}},children:ch}]});
var fname=nm.replace(/[^a-z0-9]/gi,"_").slice(0,30)+"_copy.docx";
var packer=D.Packer||(D.default&&D.default.Packer)||(D.docx&&D.docx.Packer);
if(!packer){
console.error("docx Packer not found. D keys:", Object.keys(D).slice(0,20));
plainTextExport(assetIds);
return;
}
(packer.toBuffer?packer.toBuffer(doc):packer.toBlob(doc)).then(function(r){
var blob=r instanceof Blob?r:new Blob([r],{type:"application/vnd.openxmlformats-officedocument.wordprocessingml.document"});
var url=URL.createObjectURL(blob);
var a=document.createElement("a");a.href=url;a.download=fname;document.body.appendChild(a);a.click();
setTimeout(function(){document.body.removeChild(a);URL.revokeObjectURL(url);},200);
}).catch(function(){plainTextExport(assetIds);});
}
/* -- REFRESH PARTNERS -- */
function refreshPartners(){
var btn=$i("refresh-btn");
if(btn){btn.disabled=true;btn.innerHTML=" Refreshing...";}
var prompt="Use the monday.com MCP tool to get ALL items from board ID 4903928508. "
+"Include columns: text4 (url), text67 (email), status_1__1 (platform), status (billing status). "
+"Return ONLY a raw JSON array, no markdown, no backticks. "
+"Each object: {id, name, url, email, plt, status}. "
+"Exclude items where status is CANCEL. Get all pages.";
fetch(PROXY_URL,{
method:"POST",
headers:{"Content-Type":"application/json"},
body:JSON.stringify({
model:"claude-sonnet-4-5",max_tokens:12000,
mcp_servers:[{type:"url",url:"https://mcp.monday.com/mcp",name:"monday"}],
system:"Data assistant. Return only a valid JSON array. No other text.",
messages:[{role:"user",content:prompt}]
})
}).then(function(r){return r.json();})
.then(function(data){
var txt="";(data.content||[]).forEach(function(b){if(b.type==="text")txt+=b.text;});
var partners=[],m=txt.match(/\[[\s\S]*\]/);
if(m){try{partners=JSON.parse(m[0]);}catch(e){}}
if(partners.length<10){showRefreshStatus("Could not parse list ("+partners.length+" found).","er");return;}
/* Normalise */
partners.forEach(function(p){
if(!p.plt)p.plt="MCW";
p.plt=p.plt.trim().toUpperCase().replace(/\+\s*/,"");
if(p.plt.indexOf("BOTH")!==-1)p.plt="BOTH";else if(p.plt==="MLW")p.plt="MLW";else p.plt="MCW";
var e=(p.email||"").split(/[;,]/)[0].trim().toLowerCase();
var skip=["gmail.com","yahoo.com","hotmail.com","outlook.com","proton.me","aol.com","icloud.com"];
p.domain="";if(e.indexOf("@")!==-1){var d=e.split("@")[1];if(skip.indexOf(d)===-1)p.domain="https://"+d;}
});
partners.sort(function(a,b){return a.name.localeCompare(b.name);});
var oldIds=new Set(_all.map(function(p){return p.id;}));
var newIds=new Set(partners.map(function(p){return p.id;}));
var added=partners.filter(function(p){return !oldIds.has(p.id);});
var removed=_all.filter(function(p){return !newIds.has(p.id);});
_all=partners;_filt=partners.slice();
var q=($i("search")||{value:""}).value.trim().toLowerCase();
if(q)_filt=_all.filter(function(p){return p.name.toLowerCase().indexOf(q)!==-1;});
renderList();
var msg=partners.length+" partners loaded.";
if(added.length)msg+=" Added: "+added.map(function(p){return p.name;}).join(", ")+".";
if(removed.length)msg+=" Removed: "+removed.map(function(p){return p.name;}).join(", ")+".";
if(!added.length&&!removed.length)msg+=" No changes.";
showRefreshStatus(msg,"ok");
var ct=$i("search-count");if(ct)ct.textContent=_all.length+" partners (refreshed)";
}).catch(function(e){showRefreshStatus("Refresh failed: "+e.message,"er");})
.finally(function(){var btn2=$i("refresh-btn");if(btn2){btn2.disabled=false;btn2.innerHTML="Refresh";}});
}
function showRefreshStatus(msg,cls){
var el=$i("refresh-status");if(!el)return;
el.textContent=msg;el.style.display="block";
el.style.background=cls==="ok"?"#ECFDF5":cls==="er"?"#FEF2F2":"#EFF9F7";
el.style.color=cls==="ok"?"#065F46":cls==="er"?"#991B1B":"#0D7A6B";
el.style.border="1px solid "+(cls==="ok"?"#A7F3D0":cls==="er"?"#FECACA":"#B2E4DC");
setTimeout(function(){if(el)el.style.display="none";},8000);
}
function showRefreshStatus(msg,cls){
var el=$i("refresh-status");if(!el)return;
el.textContent=msg;el.style.display="block";
el.style.background=cls==="ok"?"#ECFDF5":cls==="er"?"#FEF2F2":"#EFF9F7";
el.style.color=cls==="ok"?"#065F46":cls==="er"?"#991B1B":"#0D7A6B";
el.style.border="1px solid "+(cls==="ok"?"#A7F3D0":cls==="er"?"#FECACA":"#B2E4DC");
setTimeout(function(){if(el)el.style.display="none";},8000);
}
/* -- INIT -- */
initPartners();
/* -- INIT -- */
initPartners();
ls==="er"?"#FECACA":"#B2E4DC");
setTimeout(function(){if(el)el.style.display="none";},8000);
}
function showRefreshStatus(msg,cls){
var el=$i("refresh-status");if(!el)return;
el.textContent=msg;el.style.display="block";
el.style.background=cls==="ok"?"#ECFDF5":cls==="er"?"#FEF2F2":"#EFF9F7";
el.style.color=cls==="ok"?"#065F46":cls==="er"?"#991B1B":"#0D7A6B";
el.style.border="1px solid "+(cls==="ok"?"#A7F3D0":cls==="er"?"#FECACA":"#B2E4DC");
setTimeout(function(){if(el)el.style.display="none";},8000);
}
/* -- INIT -- */
initPartners();
/* -- INIT -- */
initPartners();