├── .github ├── screenshot.png └── charity-navigator.png ├── ext ├── icons │ ├── icon128.png │ ├── icon16.png │ ├── icon19.png │ └── icon48.png ├── src │ ├── bg │ │ ├── background.html │ │ └── background.js │ └── inject │ │ └── inject.js ├── manifest.json └── _locales │ └── en │ └── messages.json ├── readme.md ├── CODE_OF_CONDUCT.md └── not-found.md /.github/screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tmcw/identify-hate/HEAD/.github/screenshot.png -------------------------------------------------------------------------------- /ext/icons/icon128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tmcw/identify-hate/HEAD/ext/icons/icon128.png -------------------------------------------------------------------------------- /ext/icons/icon16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tmcw/identify-hate/HEAD/ext/icons/icon16.png -------------------------------------------------------------------------------- /ext/icons/icon19.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tmcw/identify-hate/HEAD/ext/icons/icon19.png -------------------------------------------------------------------------------- /ext/icons/icon48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tmcw/identify-hate/HEAD/ext/icons/icon48.png -------------------------------------------------------------------------------- /.github/charity-navigator.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tmcw/identify-hate/HEAD/.github/charity-navigator.png -------------------------------------------------------------------------------- /ext/src/bg/background.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /ext/src/bg/background.js: -------------------------------------------------------------------------------- 1 | // if you checked "fancy-settings" in extensionizr.com, uncomment this lines 2 | 3 | // var settings = new Store("settings", { 4 | // "sample_setting": "This is how you use Store.js to remember values" 5 | // }); 6 | 7 | 8 | //example of using a message handler from the inject scripts 9 | chrome.extension.onMessage.addListener( 10 | function(request, sender, sendResponse) { 11 | chrome.pageAction.show(sender.tab.id); 12 | sendResponse(); 13 | }); -------------------------------------------------------------------------------- /ext/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Identify hate groups on GuideStar", 3 | "version": "0.5.0", 4 | "manifest_version": 2, 5 | "description": "Shows SPLC-identified hate groups on GuideStar & CharityNavigator pages. Not affiliated with GuideStar, CharityNavigator, or SPLC.", 6 | "homepage_url": "https://www.washingtonpost.com/news/morning-mix/wp/2017/06/26/after-conservative-backlash-charity-tracker-guidestar-removes-hate-group-labels/", 7 | "icons": { 8 | "16": "icons/icon16.png", 9 | "48": "icons/icon48.png", 10 | "128": "icons/icon128.png" 11 | }, 12 | "default_locale": "en", 13 | "background": { 14 | "page": "src/bg/background.html", 15 | "persistent": true 16 | }, 17 | "page_action": { 18 | "default_icon": "icons/icon19.png", 19 | "default_title": "Identify hate groups on GuideStar & CharityNavigator" 20 | }, 21 | "permissions": [ 22 | "https://www.guidestar.org/*", 23 | "https://www.charitynavigator.org/*" 24 | ], 25 | "content_scripts": [ 26 | { 27 | "matches": [ 28 | "https://www.guidestar.org/*", 29 | "https://www.charitynavigator.org/*" 30 | ], 31 | "js": [ 32 | "src/inject/inject.js" 33 | ] 34 | } 35 | ] 36 | } 37 | -------------------------------------------------------------------------------- /readme.md: -------------------------------------------------------------------------------- 1 | # identify hate 2 | 3 |

4 | 5 |

6 | 7 | [GuideStar](http://guidestar.org/) added [SPLC information](https://www.splcenter.org/) 8 | identifying nonprofits run by [hate groups](https://www.splcenter.org/fighting-hate/extremist-files). 9 | They [were pressured to remove that information](https://www.washingtonpost.com/news/morning-mix/wp/2017/06/26/after-conservative-backlash-charity-tracker-guidestar-removes-hate-group-labels/). 10 | This extension adds that information back. 11 | 12 |

13 | 14 |

15 | 16 | It also adds the same information to [CharityNavigator](https://www.charitynavigator.org/). 17 | 18 | ## Help out 19 | 20 | * I'd really appreciate any help associating any of the [not found](not-found.md) 21 | organizations with GuideStar pages 22 | * Would also love help proofing the data that exists in [inject.js](ext/src/inject/inject.js), 23 | to make sure all the matches are accurate. 24 | 25 | ## Like this project? 26 | 27 | [Donate to the Southern Poverty Law Center!](https://donate.splcenter.org/page.aspx?pid=463) 28 | 29 | ## Disclaimers 30 | 31 | * This project is not associated with or endorsed by the SPLC or GuideStar 32 | * Information is not guaranteed to be accurate: matches are made between 33 | the two sites based on name, date of formation, place, and staff listings. 34 | -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | # Contributor Covenant Code of Conduct 2 | 3 | ## Our Pledge 4 | 5 | In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation. 6 | 7 | ## Our Standards 8 | 9 | Examples of behavior that contributes to creating a positive environment include: 10 | 11 | * Using welcoming and inclusive language 12 | * Being respectful of differing viewpoints and experiences 13 | * Gracefully accepting constructive criticism 14 | * Focusing on what is best for the community 15 | * Showing empathy towards other community members 16 | 17 | Examples of unacceptable behavior by participants include: 18 | 19 | * The use of sexualized language or imagery and unwelcome sexual attention or advances 20 | * Trolling, insulting/derogatory comments, and personal or political attacks 21 | * Public or private harassment 22 | * Publishing others' private information, such as a physical or electronic address, without explicit permission 23 | * Other conduct which could reasonably be considered inappropriate in a professional setting 24 | 25 | ## Our Responsibilities 26 | 27 | Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior. 28 | 29 | Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful. 30 | 31 | ## Scope 32 | 33 | This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers. 34 | 35 | ## Enforcement 36 | 37 | Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at tom@macwright.org. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately. 38 | 39 | Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership. 40 | 41 | ## Attribution 42 | 43 | This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version] 44 | 45 | [homepage]: http://contributor-covenant.org 46 | [version]: http://contributor-covenant.org/version/1/4/ 47 | -------------------------------------------------------------------------------- /not-found.md: -------------------------------------------------------------------------------- 1 | I can't find these groups that are on SPLC's list on GuideStar. They may 2 | simply not have nonprofit status or nonprofit organizations, but I also 3 | may have missed them. 4 | 5 | * America's Promise Ministries https://www.splcenter.org/fighting-hate/extremist-files/group/americas-promise-ministries 6 | * American Freedom Party https://www.splcenter.org/fighting-hate/extremist-files/group/american-freedom-party 7 | * Aryan Brotherhood https://www.splcenter.org/fighting-hate/extremist-files/group/aryan-brotherhood 8 | * Aryan Brotherhood of Texas https://www.splcenter.org/fighting-hate/extremist-files/group/aryan-brotherhood-texas 9 | * Aryan Nations https://www.splcenter.org/fighting-hate/extremist-files/group/aryan-nations 10 | * The Barnes Review https://www.splcenter.org/fighting-hate/extremist-files/group/barnes-review 11 | * Blood & Honour https://www.splcenter.org/fighting-hate/extremist-files/group/blood-honour 12 | * Brotherhood of Klans https://www.splcenter.org/fighting-hate/extremist-files/group/brotherhood-klans 13 | * CHURCH OF THE NATIONAL KNIGHTS OF THE KU KLUX KLAN https://www.splcenter.org/fighting-hate/extremist-files/group/church-national-knights-ku-klux-klan 14 | * https://www.splcenter.org/fighting-hate/extremist-files/group/conseil-de-recherche-sur-la-famille 15 | * https://www.splcenter.org/fighting-hate/extremist-files/group/consejo-de-investigaci%C3%B3n-familiar 16 | * https://www.splcenter.org/fighting-hate/extremist-files/group/conselho-de-pesquisa-familiar 17 | * https://www.splcenter.org/fighting-hate/extremist-files/group/creativity-movement 18 | * https://www.splcenter.org/fighting-hate/extremist-files/group/creativity-movement-0 19 | * https://www.splcenter.org/fighting-hate/extremist-files/group/euro 20 | * https://www.splcenter.org/fighting-hate/extremist-files/group/fundamentalist-church-jesus-christ-latter-day-saints 21 | * https://www.splcenter.org/fighting-hate/extremist-files/group/imperial-klans-america 22 | * https://www.splcenter.org/fighting-hate/extremist-files/group/institute-historical-review 23 | * https://www.splcenter.org/fighting-hate/extremist-files/group/jewish-defense-league 24 | * https://www.splcenter.org/fighting-hate/extremist-files/group/keystone-united 25 | * https://www.splcenter.org/fighting-hate/extremist-files/group/kingdom-identity-ministries 26 | * https://www.splcenter.org/fighting-hate/extremist-files/group/knights-ku-klux-klan 27 | * https://www.splcenter.org/fighting-hate/extremist-files/group/league-south 28 | * https://www.splcenter.org/fighting-hate/extremist-files/group/nation-islam - multiple related organizations 29 | * https://www.splcenter.org/fighting-hate/extremist-files/group/national-alliance 30 | * https://www.splcenter.org/fighting-hate/extremist-files/group/national-coalition-immigration-reform 31 | * https://www.splcenter.org/fighting-hate/extremist-files/group/national-socialist-movement 32 | * https://www.splcenter.org/fighting-hate/extremist-files/group/national-vanguard 33 | * https://www.splcenter.org/fighting-hate/extremist-files/group/new-black-panther-party 34 | * https://www.splcenter.org/fighting-hate/extremist-files/group/nuwaubian-nation-moors 35 | * https://www.splcenter.org/fighting-hate/extremist-files/group/oath-keepers 36 | * https://www.splcenter.org/fighting-hate/extremist-files/group/occidental-quarterly 37 | * https://www.splcenter.org/fighting-hate/extremist-files/group/social-contract-press 38 | * https://www.splcenter.org/fighting-hate/extremist-files/group/stormfront 39 | * https://www.splcenter.org/fighting-hate/extremist-files/group/traditionalist-worker-party 40 | * https://www.splcenter.org/fighting-hate/extremist-files/group/vinlanders-social-club 41 | * https://www.splcenter.org/fighting-hate/extremist-files/group/westboro-baptist-church 42 | * https://www.splcenter.org/fighting-hate/extremist-files/group/white-lives-matter 43 | * https://www.splcenter.org/fighting-hate/extremist-files/group/white-revolution 44 | * https://www.splcenter.org/fighting-hate/extremist-files/group/worldnetdaily 45 | -------------------------------------------------------------------------------- /ext/_locales/en/messages.json: -------------------------------------------------------------------------------- 1 | { 2 | "l10nTabName": { 3 | "message":"Localization" 4 | ,"description":"name of the localization tab" 5 | } 6 | ,"l10nHeader": { 7 | "message":"It does localization too! (this whole tab is, actually)" 8 | ,"description":"Header text for the localization section" 9 | } 10 | ,"l10nIntro": { 11 | "message":"'L10n' refers to 'Localization' - 'L' an 'n' are obvious, and 10 comes from the number of letters between those two. It is the process/whatever of displaying something in the language of choice. It uses 'I18n', 'Internationalization', which refers to the tools / framework supporting L10n. I.e., something is internationalized if it has I18n support, and can be localized. Something is localized for you if it is in your language / dialect." 12 | ,"description":"introduce the basic idea." 13 | } 14 | ,"l10nProd": { 15 | "message":"You are planning to allow localization, right? You have no idea who will be using your extension! You have no idea who will be translating it! At least support the basics, it's not hard, and having the framework in place will let you transition much more easily later on." 16 | ,"description":"drive the point home. It's good for you." 17 | } 18 | ,"l10nFirstParagraph": { 19 | "message":"When the options page loads, elements decorated with data-l10n will automatically be localized!" 20 | ,"description":"inform that elements will be localized on load" 21 | } 22 | ,"l10nSecondParagraph": { 23 | "message":"If you need more complex localization, you can also define data-l10n-args. This should contain $containerType$ filled with $dataType$, which will be passed into Chrome's i18n API as $functionArgs$. In fact, this paragraph does just that, and wraps the args in mono-space font. Easy!" 24 | ,"description":"introduce the data-l10n-args attribute. End on a lame note." 25 | ,"placeholders": { 26 | "containerType": { 27 | "content":"$1" 28 | ,"example":"'array', 'list', or something similar" 29 | ,"description":"type of the args container" 30 | } 31 | ,"dataType": { 32 | "content":"$2" 33 | ,"example":"string" 34 | ,"description":"type of data in each array index" 35 | } 36 | ,"functionArgs": { 37 | "content":"$3" 38 | ,"example":"arguments" 39 | ,"description":"whatever you call what you pass into a function/method. args, params, etc." 40 | } 41 | } 42 | } 43 | ,"l10nThirdParagraph": { 44 | "message":"Message contents are passed right into innerHTML without processing - include any tags (or even scripts) that you feel like. If you have an input field, the placeholder will be set instead, and buttons will have the value attribute set." 45 | ,"description":"inform that we handle placeholders, buttons, and direct HTML input" 46 | } 47 | ,"l10nButtonsBefore": { 48 | "message":"Different types of buttons are handled as well. <button> elements have their html set:" 49 | } 50 | ,"l10nButton": { 51 | "message":"in a button" 52 | } 53 | ,"l10nButtonsBetween": { 54 | "message":"while <input type='submit'> and <input type='button'> get their 'value' set (note: no HTML):" 55 | } 56 | ,"l10nSubmit": { 57 | "message":"a submit value" 58 | } 59 | ,"l10nButtonsAfter": { 60 | "message":"Awesome, no?" 61 | } 62 | ,"l10nExtras": { 63 | "message":"You can even set data-l10n on things like the <title> tag, which lets you have translatable page titles, or fieldset <legend> tags, or anywhere else - the default Boil.localize() behavior will check every tag in the document, not just the body." 64 | ,"description":"inform about places which may not be obvious, like , etc" 65 | } 66 | } 67 | -------------------------------------------------------------------------------- /ext/src/inject/inject.js: -------------------------------------------------------------------------------- 1 | chrome.extension.sendMessage({}, function(response) { 2 | // A list of all identified hate groups that match with GuideStar charities 3 | var hateGroupIdx = { 4 | "26-0772227": { 5 | name: "ACT FOR AMERICA INC", 6 | splcUrl: "https://www.splcenter.org/fighting-hate/extremist-files/group/act-america" 7 | }, 8 | "54-1660459": { 9 | name: "ALLIANCE DEFENDING FREEDOM", 10 | splcUrl: "https://www.splcenter.org/fighting-hate/extremist-files/group/alliance-defending-freedom" 11 | }, 12 | "42-1542666": { 13 | name: "American Border Patrol", 14 | splcUrl: "https://www.splcenter.org/fighting-hate/extremist-files/group/american-border-patrolamerican-patrol" 15 | }, 16 | "47-0886878": { 17 | name: "American College of Pediatricians", 18 | splcUrl: "https://www.splcenter.org/fighting-hate/intelligence-report/2017/active-hate-groups-2016" 19 | }, 20 | "64-0607275": { 21 | name: "AMERICAN FAMILY ASSOCIATION INC", 22 | splcUrl: "https://www.splcenter.org/fighting-hate/extremist-files/group/american-family-association" 23 | }, 24 | "27-2518993": { 25 | name: "AMERICAN FREEDOM DEFENSE INITIATIVE", 26 | splcUrl: "https://www.splcenter.org/fighting-hate/intelligence-report/2017/active-hate-groups-2016" 27 | }, 28 | "52-1304849": { 29 | name: "American Immigration Control Foundation Inc", 30 | splcUrl: "https://www.splcenter.org/fighting-hate/intelligence-report/2017/active-hate-groups-2016" 31 | }, 32 | "58-1374143": { 33 | name: "AMERICAN VISION INC", 34 | splcUrl: "https://www.splcenter.org/fighting-hate/intelligence-report/2015/active-anti-lgbt-groups" 35 | }, 36 | "54-1829289": { 37 | name: "Americans for Truth About Homosexuality", 38 | splcUrl: "https://www.splcenter.org/fighting-hate/intelligence-report/2010/18-anti-gay-groups-and-their-propaganda" 39 | }, 40 | "36-3897842": { 41 | name: "Bill Keller Ministries", 42 | splcUrl: "https://www.splcenter.org/fighting-hate/intelligence-report/2016/active-hate-groups-united-states-2015" 43 | }, 44 | "94-2581509": { 45 | name: "CALIFORNIANS FOR POPULATION STABILIZATION INC", 46 | splcUrl: "https://www.splcenter.org/fighting-hate/intelligence-report/2017/active-hate-groups-2016" 47 | }, 48 | "52-1449368": { 49 | name: "CENTER FOR IMMIGRATION STUDIES INC", 50 | splcUrl: "https://www.splcenter.org/fighting-hate/intelligence-report/2017/active-hate-groups-2016" 51 | }, 52 | "52-1601976": { 53 | name: "Center for Security Policy Inc", 54 | splcUrl: "https://www.splcenter.org/fighting-hate/extremist-files/group/center-security-policy" 55 | }, 56 | "95-6121940": { 57 | name: "Chalcedon Inc", 58 | splcUrl: "https://www.splcenter.org/fighting-hate/intelligence-report/2010/18-anti-gay-groups-and-their-propaganda" 59 | }, 60 | "54-1756470": { 61 | name: "CHRISTIAN ACTION NETWORK", 62 | splcUrl: "https://www.splcenter.org/fighting-hate/intelligence-report/2017/active-hate-groups-2016" 63 | }, 64 | "31-1075684": { 65 | name: "CITIZENS FOR COMMUNITY VALUES", 66 | splcUrl: "https://www.splcenter.org/fighting-hate/intelligence-report/2017/active-hate-groups-2016" 67 | }, 68 | "95-4194642": { 69 | name: "DAVID HOROWITZ FREEDOM CENTER", 70 | splcUrl: "https://www.splcenter.org/fighting-hate/intelligence-report/2017/active-hate-groups-2016" 71 | }, 72 | "74-3068189": { 73 | name: "FAITH 2 ACTION INC", 74 | splcUrl: "https://www.splcenter.org/fighting-hate/intelligence-report/2017/active-hate-groups-2016" 75 | }, 76 | "52-1792772": { 77 | name: "FAMILY RESEARCH COUNCIL INC", 78 | splcUrl: "https://www.splcenter.org/fighting-hate/extremist-files/group/family-research-council" 79 | }, 80 | "47-0649778": { 81 | name: "FAMILY RESEARCH INSTITUTE INC", 82 | splcUrl: "https://www.splcenter.org/fighting-hate/intelligence-report/2017/active-hate-groups-2016" 83 | }, 84 | "20-3779221": { 85 | name: "Family Security Foundation Inc", 86 | splcUrl: "https://www.splcenter.org/fighting-hate/intelligence-report/2017/active-hate-groups-2016" 87 | }, 88 | "52-1136126": { 89 | name: "Federation for American Immigration Reform", 90 | splcUrl: "https://www.splcenter.org/fighting-hate/extremist-files/group/federation-american-immigration-reform" 91 | }, 92 | "87-0713874": { 93 | name: "FITZGERALD GRIFFIN FOUNDATION", 94 | splcUrl: "https://www.splcenter.org/fighting-hate/intelligence-report/2017/active-hate-groups-2016" 95 | }, 96 | "59-3283890": { 97 | name: "Florida Family Association Inc", 98 | splcUrl: "https://www.splcenter.org/fighting-hate/intelligence-report/2016/active-hate-groups-united-states-2015" 99 | }, 100 | "74-2138183": { 101 | name: "Friendship Assembly of God", 102 | splcUrl: "https://www.splcenter.org/fighting-hate/intelligence-report/2016/active-hate-groups-united-states-2015" 103 | }, 104 | "54-2057581": { 105 | name: "IHS PRESS", 106 | splcUrl: "https://www.splcenter.org/fighting-hate/intelligence-report/2016/active-hate-groups-united-states-2015" 107 | }, 108 | "37-1265883": { 109 | name: "ILLINOIS FAMILY INSTITUTE", 110 | splcUrl: "https://www.splcenter.org/fighting-hate/intelligence-report/2017/active-hate-groups-2016" 111 | }, 112 | "52-1469956": { 113 | name: "Immigration Reform Law Institute", 114 | splcUrl: "https://www.splcenter.org/fighting-hate/intelligence-report/2017/active-hate-groups-2016" 115 | }, 116 | "86-0932183": { 117 | name: "IN THE SPIRIT OF CHARTRES COMMITTEE INC", 118 | splcUrl: "https://www.splcenter.org/fighting-hate/intelligence-report/2007/12-anti-semitic-radical-traditionalist-catholic-groups" 119 | }, 120 | "59-3838518": { 121 | name: "Israel School of Universal Practical Knowledge", 122 | splcUrl: "https://www.splcenter.org/fighting-hate/intelligence-report/2016/active-hate-groups-united-states-2015" 123 | }, 124 | "20-0516499": { 125 | name: "Israel United in Christ Inc", 126 | splcUrl: "https://www.splcenter.org/fighting-hate/intelligence-report/2016/active-hate-groups-united-states-2015" 127 | }, 128 | "26-0371995": { 129 | name: "KINGDOM TREASURE MINISTRIES INC", 130 | splcUrl: "https://www.splcenter.org/fighting-hate/intelligence-report/2016/active-hate-groups-united-states-2015" 131 | }, 132 | "59-2986294": { 133 | name: "Liberty Counsel Inc", 134 | splcUrl: "https://www.splcenter.org/fighting-hate/extremist-files/group/liberty-counsel" 135 | }, 136 | "62-1608693": { 137 | name: "Mary Noel Kershaw Foundation", 138 | splcUrl: "https://www.splcenter.org/fighting-hate/intelligence-report/2016/active-hate-groups-united-states-2015" 139 | }, 140 | "31-1597212": { 141 | name: "Mission America", 142 | splcUrl: "https://www.splcenter.org/fighting-hate/intelligence-report/2016/active-hate-groups-united-states-2015" 143 | }, 144 | // Unconfirmed: no public record of this organization being included in the list 145 | // "46-4432788": { 146 | // name: "NATIONAL COALITION FOR ISSUE REFORM ACTION" 147 | // }, 148 | "52-1259838": { 149 | name: "NATIONAL POLICY INSTITUTE INC", 150 | splcUrl: "https://www.splcenter.org/fighting-hate/intelligence-report/2016/active-hate-groups-united-states-2015" 151 | }, 152 | "91-1823641": { 153 | name: "PACIFIC JUSTICE INSTITUTE", 154 | splcUrl: "https://www.splcenter.org/fighting-hate/intelligence-report/2017/active-hate-groups-2016" 155 | }, 156 | "30-0116360": { 157 | name: "PASS THE SALT MINISTRIES INC", 158 | splcUrl: "https://www.splcenter.org/fighting-hate/intelligence-report/2017/active-hate-groups-2016" 159 | }, 160 | "75-1416858": { 161 | name: "Probe Ministries International Inc", 162 | splcUrl: "https://www.splcenter.org/fighting-hate/intelligence-report/2017/active-hate-groups-2016" 163 | }, 164 | "52-1112449": { 165 | name: "PUBLIC ADVOCATE OF THE UNITED STATES", 166 | splcUrl: "https://www.splcenter.org/fighting-hate/intelligence-report/2017/active-hate-groups-2016" 167 | }, 168 | "80-0211871": { 169 | name: "Ruth Institute Inc", 170 | splcUrl: "https://www.splcenter.org/fighting-hate/intelligence-report/2016/active-hate-groups-united-states-2015" 171 | }, 172 | "46-3534833": { 173 | name: "Tea Party Nation Action", 174 | splcUrl: "https://www.splcenter.org/fighting-hate/intelligence-report/2016/active-hate-groups-united-states-2015" 175 | }, 176 | "52-1052524": { 177 | name: "THE COUNCIL FOR SOCIAL AND ECONOMIC STUDIES INC", 178 | splcUrl: "https://www.splcenter.org/fighting-hate/intelligence-report/2016/active-hate-groups-united-states-2015" 179 | }, 180 | "33-0055498": { 181 | name: "Traditional Values Coalition", 182 | splcUrl: "https://www.splcenter.org/fighting-hate/extremist-files/group/traditional-values-coalition" 183 | }, 184 | "57-0658997": { 185 | name: "UNITED FAMILIES FOUNDATION", 186 | splcUrl: "https://www.splcenter.org/fighting-hate/intelligence-report/2016/active-hate-groups-united-states-2015" 187 | } 188 | }; 189 | 190 | var readyStateCheckInterval = setInterval(function() { 191 | if (document.readyState !== "complete") return; 192 | 193 | clearInterval(readyStateCheckInterval); 194 | 195 | // Determine whether we're on a profile page, by comparing the URL 196 | // against a pattern. 197 | var profileRegex, profileIdResult, pageEin; 198 | if (document.location.hostname === "www.guidestar.org") { 199 | profileRegex = /^\/profile\/([\d\-]+)$/; 200 | profileIdResult = document.location.pathname.match(profileRegex); 201 | if (profileIdResult == null) return; 202 | pageEin = profileIdResult[1]; 203 | } else { 204 | // Don't show this on search listing pages on charitynavigator 205 | if (!document.location.search.match(/bay=search\.(profile|summary)/)) { 206 | return; 207 | } 208 | var donateLink = document.querySelector("a[data-ein]"); 209 | if (donateLink) { 210 | profileIdResult = donateLink.dataset.ein; 211 | } 212 | if (profileIdResult === null) return; 213 | pageEin = 214 | profileIdResult.substring(0, 2) + "-" + profileIdResult.substring(2); 215 | } 216 | 217 | var info = hateGroupIdx[pageEin]; 218 | 219 | // Figure out if the page we're on matches one of those hate groups. 220 | if (info == undefined) return; 221 | 222 | // If it does, insert a warning onto the page with a link to more 223 | // information, and then exit. 224 | var splcUrl = info.splcUrl; 225 | var warningDiv = document.createElement("div"); 226 | var warningLink = warningDiv.appendChild(document.createElement("a")); 227 | warningDiv.style.cssText = 228 | "background:#d05330;color:#fff;padding:10px;text-align:center;"; 229 | warningLink.setAttribute("href", splcUrl); 230 | warningLink.style.cssText = "color:#fff"; 231 | warningLink.innerText = 232 | "⚠️ This organization has been identified as a hate group by the SPLC. Click here for more details."; 233 | 234 | if (document.location.hostname === "www.guidestar.org") { 235 | warningDiv.style.margin = "20px 10px"; 236 | var profileHeader = document.getElementById("profileHeader"); 237 | var warningDiv = profileHeader.appendChild(warningDiv); 238 | profileHeader.insertBefore(warningDiv, profileHeader.children[0]); 239 | } else { 240 | var profileHeader = document.getElementById("maincontent"); 241 | var warningDiv = profileHeader.appendChild(warningDiv); 242 | profileHeader.insertBefore(warningDiv, profileHeader.children[0]); 243 | } 244 | }, 10); 245 | }); 246 | --------------------------------------------------------------------------------