{"id":16427682,"url":"https://github.com/cferdinandi/petfinderapi4everybody","last_synced_at":"2025-03-23T07:33:07.278Z","repository":{"id":24542708,"uuid":"27949314","full_name":"cferdinandi/petfinderAPI4everybody","owner":"cferdinandi","description":"A JavaScript plugin that makes it easier to use the Petfinder API.","archived":false,"fork":false,"pushed_at":"2018-11-18T19:04:17.000Z","size":151,"stargazers_count":14,"open_issues_count":0,"forks_count":7,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-03-18T18:52:52.632Z","etag":null,"topics":["animals","api","javascript","javascript-plugin","no-dependencies","non-profit","petfinder","petfinder-api","vanilla-js"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cferdinandi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-12-13T04:28:37.000Z","updated_at":"2022-11-26T20:39:16.000Z","dependencies_parsed_at":"2022-08-23T00:31:44.765Z","dependency_job_id":null,"html_url":"https://github.com/cferdinandi/petfinderAPI4everybody","commit_stats":null,"previous_names":[],"tags_count":13,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cferdinandi%2FpetfinderAPI4everybody","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cferdinandi%2FpetfinderAPI4everybody/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cferdinandi%2FpetfinderAPI4everybody/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cferdinandi%2FpetfinderAPI4everybody/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cferdinandi","download_url":"https://codeload.github.com/cferdinandi/petfinderAPI4everybody/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245072233,"owners_count":20556352,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["animals","api","javascript","javascript-plugin","no-dependencies","non-profit","petfinder","petfinder-api","vanilla-js"],"created_at":"2024-10-11T08:13:49.606Z","updated_at":"2025-03-23T07:33:06.997Z","avatar_url":"https://github.com/cferdinandi.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# petfinderAPI4everybody.js [![Build Status](https://travis-ci.org/cferdinandi/petfinderAPI4everybody.svg)](https://travis-ci.org/cferdinandi/petfinderAPI4everybody)\nA JavaScript plugin that makes it easier for developers to use the [Petfinder API](https://www.petfinder.com/developers/api-docs).\n\n[Download petfinderAPI4everybody.js](https://github.com/cferdinandi/petfinderAPI4everybody/archive/master.zip) / [View the demo](http://cferdinandi.github.io/petfinderAPI4everybody/)\n\n***Note:*** *This is DIY library for web developers. If you're not comfortable writing code, you may prefer working with [Fetch](https://fetch.gomakethings.com/), my plug-and-play solution for the Petfinder API.*\n\n\n\n## Getting Started\n\nCompiled and production-ready code can be found in the `dist` directory. The `src` directory contains development code.\n\n### 1. Include petfinderAPI4everybody.js on your site.\n\n```html\n\u003cscript src=\"dist/js/petfinderAPI4everybody.js\"\u003e\u003c/script\u003e\n```\n\n### 2. Add the markup to your HTML.\n\n```html\n\u003cdiv data-petfinder=\"main\"\u003e\n\t\u003c!-- Required --\u003e\n\t\u003c!-- Main pet content will be generated here --\u003e\n\t\u003ca href=\"http://awos.petfinder.com/shelters/AA11.html\"\u003eView our adoptable pets on Petfinder.\u003c/a\u003e\n\u003c/div\u003e\n\n\u003cdiv data-petfinder=\"aside\"\u003e\n\t\u003c!-- Optional --\u003e\n\t\u003c!-- Supplemental content will be generated here --\u003e\n\u003c/div\u003e\n```\n\nPlace the two `[data-petfinder]` elements anywhere on a webpage. You can wrap them in other elements, add classes and IDs, and so on.\n\n- `[data-petfinder=\"main\"]` - The primary area where all data for specific pets will be displayed.\n- `[data-petfinder=\"aside\"]` - [optional] Used to display lists, checkboxes, and supplemental information.\n\n***Note:*** *You should include a backup link or Petfinder iframe in the `[data-petfinder=\"main\"]` element. This will be displayed if the user's browser is not supported by petfinderAPI4everybody.js or the API fails to load.*\n\n### 3. Initialize petfinderAPI4everybody.js.\n\nIn the footer of your page, after the content, initialize petfinderAPI4everybody.js.\n\n[A `key` and `sheltherID` are required](https://www.petfinder.com/developers/api-key). This is also where you pass in templates for the `main` and `aside` content.\n\nAnd that's it, you're done. Nice work!\n\n***Note:*** *If you find this section confused, [check out the template](#template) to see an example of how you might set things up. Still lost? [I can help.](#help-with-this-plugin)*\n\n```html\n\u003cscript\u003e\n\tpetfinderAPI.init({\n\t\tkey: '123456789', // Your API key with Petfinder\n\t\tshelterID: 'AA11', // Your Petfinder shelter ID\n\t\ttemplates: {\n\t\t\t// The layout for the page that displays all pets\n\t\t\tallPets:\n\t\t\t\t'\u003cdiv\u003e' +\n\t\t\t\t\t'\u003cdiv\u003e' +\n\t\t\t\t\t\t'\u003cimg src=\"{{photo.1.medium}}\"\u003e' +\n\t\t\t\t\t'\u003c/div\u003e' +\n\t\t\t\t\t'\u003ch2\u003e{{name}}\u003c/h2\u003e' +\n\t\t\t\t\t'\u003cp\u003e\u003ca href=\"{{url.pet}}\"\u003eView Full Profile\u003c/a\u003e\u003c/p\u003e' +\n\t\t\t\t\t'\u003chr\u003e' +\n\t\t\t\t'\u003c/div\u003e',\n\t\t\tonePet: null, // The layout for individual pet profiles [optional]\n\t\t\tasideAllPets: null, // The layout for secondary content on the \"All Pets\" page [optional]\n\t\t\tasideOnePet: null, // The layout for secondary content on individual pet pages [optional]\n\t\t}\n\t});\n\u003c/script\u003e\n```\n\n#### API Data Variables\n\nInclude the following variables in your template markup to dynamically add content from the Petfinder API.\n\n**Pet Variables:**\n\n* `{{name}}` - Name of the pet\n* `{{id}}` - Petfinder ID for the pet\n* `{{description}}` - Description of the pet\n* `{{age}}` - Age of the pet\n* `{{gender}}` - Gender of the pet\n* `{{size}}` - Size of the pet\n* `{{animal}}` - Type of animal the pet is\n* `{{breeds}}` - Breeds of the pet\n* `{{photo.1.large}}` - First photo of the pet, large\n* `{{photo.2.large}}` - Second photo of the pet, large\n* `{{photo.3.large}}` - Third photo of the pet, large\n* `{{photo.1.medium}}` - First photo of the pet, medium\n* `{{photo.2.medium}}` - Second photo of the pet, medium\n* `{{photo.3.medium}}` - Third photo of the pet, medium\n* `{{photo.1.thumbnail.small}}` - First photo of the pet, small thumbnail\n* `{{photo.2.thumbnail.small}}` - Second photo of the pet, small thumbnail\n* `{{photo.3.thumbnail.small}}` - Third photo of the pet, small thumbnail\n* `{{photo.1.thumbnail.medium}}` - First photo of the pet, medium thumbnail\n* `{{photo.2.thumbnail.medium}}` - Second photo of the pet, medium thumbnail\n* `{{photo.3.thumbnail.medium}}` - Third photo of the pet, medium thumbnail\n* `{{photo.1.thumbnail.large}}` - First photo of the pet, large thumbnail\n* `{{photo.2.thumbnail.large}}` - Second photo of the pet, large thumbnail\n* `{{photo.3.thumbnail.large}}` - Third photo of the pet, large thumbnail\n* `{{options.specialNeeds}}` - Text if the pet has special needs\n* `{{options.noDogs}}` - Text if the pet can't be in a home with dogs\n* `{{options.noCats}}` - Text if the pet can't be in a home with cats\n* `{{options.noKids}}` - Text if the pet can't be in a home with kids\n* `{{options.noClaws}}` - Text if the pet doesn't have claws\n* `{{options.hasShots}}` - Text if the pet is up-to-date with shots\n* `{{options.housebroken}}` - Text if the pet is housebroken\n* `{{options.altered}}` - Text if the pet is spayed or neutered\n* `{{options.multi}}` - Text if pet can't be in a home with some combination dogs, cats, or kids\n* `{{contact.name}}` - Name of contact for pet\n* `{{contact.email}}` - Email of contact for pet\n* `{{contact.phone}}` - Phone number of contact for pet\n* `{{contact.address1}}` - Address (line one) of contact for pet\n* `{{contact.address2}}` - Address (line two) of contact for pet\n* `{{contact.city}}` - City of contact for pet\n* `{{contact.state}}` - State of contact for pet\n* `{{contact.zip}}` - Zip code of contact for pet\n* `{{contact.fax}}` - Fax number of contact for pet\n* `{{url.all}}` - URL to list of all pets (for use in \"one pet\" template).\n* `{{url.pet}}` - URL to profile of individual pet (for use in \"all pets\" template)\n* `{{url.petfinder}}` - URL to pet's Petfinder profile\n* `{{classes}}` - A string of classes describing all pet attributes\n* `{{number}}` - This pets number out of the total number of available pets (for use in \"one pet\" template - eg. 10 of 25)\n* `{{total}}` - Total number of pets available\n\n**Aside Variables:**\n\n* `{{list.ages}}` - List of available ages\n* `{{list.animals}}` - List of available animals\n* `{{list.breeds}}` - List of available pet breeds\n* `{{list.options}}` - List of available options\n* `{{list.genders}}` - List of available genders\n* `{{list.sizes}}` - List of available sizes\n* `{{checkbox.ages}}` - Checkbox and label for each available age\n* `{{checkbox.animals}}` - Checkbox and label for each available animal\n* `{{checkbox.breeds}}` - Checkbox and label for each available breed\n* `{{checkbox.options}}` - Checkbox and label for each available option\n* `{{checkbox.genders}}` - Checkbox and label for each available gender\n* `{{checkbox.sizes}}` - Checkbox and label for each available size\n* `{{checkbox.ages.toggle}}` - Checkbox and label for each available age with \"select all\" toggle\n* `{{checkbox.animals.toggle}}` - Checkbox and label for each available animal with \"select all\" toggle\n* `{{checkbox.breeds.toggle}}` - Checkbox and label for each available breed with \"select all\" toggle\n* `{{checkbox.options.toggle}}` - Checkbox and label for each available option with \"select all\" toggle\n* `{{checkbox.genders.toggle}}` - Checkbox and label for each available gender with \"select all\" toggle\n* `{{checkbox.sizes.toggle}}` - Checkbox and label for each available size with \"select all\" toggle\n* `{{total}}` - Total number of pets available\n\n***Note:*** *Lists return `\u003cli\u003e` elements only. You must place them inside an `\u003col\u003e` or `\u003cul\u003e` element as desired. Example: `\u003cul\u003e{{list.breeds}}\u003c/ul\u003e`*\n\n\n## Filtering Pets\n\nIf you have a lot of pets, you may want to give users the option of filter by attributes like animal type, breed, age, and more. The included (but optional) `petfinderSort.js` script makes this really easy.\n\n### 1. Include the script on your site.\n\n```html\n\u003cscript src=\"dist/js/petfinderSort.js\"\u003e\u003c/script\u003e\n```\n\n### 2. Add the markup to your HTML and initialize petfinderSort.js as a callback after the content is generated.\n\nAdd any of the attribute checklists you want to use to your template, and add the `{{classes}}` variable on a containing `\u003cdiv\u003e` in the `allPets` template. Initialize petfinderSort.js as a callback after content is generated.\n\n```html\n\u003cscript\u003e\n\tpetfinderAPI.init({\n\t\t...\n\t\ttemplates: {\n\t\t\tallPets:\n\t\t\t\t'\u003cdiv class=\"{{classes}}\"\u003e' +\n\t\t\t\t\t// Pet layout\n\t\t\t\t'\u003c/div\u003e',\n\t\t\tasideAllPets:\n\t\t\t\t'\u003cstrong\u003eAge:\u003c/strong\u003e' +\n\t\t\t\t'{{checkbox.ages.toggle}}' +\n\t\t\t\t'\u003cbr\u003e\u003cbr\u003e' +\n\n\t\t\t\t'\u003cstrong\u003eSize:\u003c/strong\u003e' +\n\t\t\t\t'{{checkbox.sizes}}' +\n\t\t\t\t'\u003cbr\u003e\u003cbr\u003e' +\n\n\t\t\t\t'\u003cstrong\u003eGender:\u003c/strong\u003e' +\n\t\t\t\t'{{checkbox.genders}}' +\n\t\t\t\t'\u003cbr\u003e\u003cbr\u003e' +\n\n\t\t\t\t'\u003cstrong\u003eBreeds:\u003c/strong\u003e' +\n\t\t\t\t'{{checkbox.breeds.toggle}}',\n\t\t\tcallback: function () {\n\t\t\t\tpetfinderSort.init();\n\t\t\t}\n\t\t}\n\t});\n\u003c/script\u003e\n```\n\n\n\n## Template\n\nIf the initial setup is a bit confusing, here's a template to get you started.\n\n```html\n\u003c!-- Container that \"aside\" content will be added to --\u003e\n\u003cdiv data-petfinder=\"aside\"\u003e\u003c/div\u003e\n\n\u003c!-- Container that \"main\" content will be added to. The text in here will be replaced when the script loads. --\u003e\n\u003cdiv data-petfinder=\"main\"\u003e\n\t\u003ca href=\"http://awos.petfinder.com/shelters/AA11.html\"\u003eView our adoptable pets on Petfinder.\u003c/a\u003e\n\u003c/div\u003e\n\n\u003cscript src=\"dist/js/petfinderAPI4everybody.js\"\u003e\u003c/script\u003e\n\u003cscript\u003e\n\t;(function (window, document, undefined) {\n\n\t\t'use strict';\n\n\t\t// Templates\n\n\t\tvar allPets =\n\t\t\t'\u003cdiv class=\"{{classes}}\"\u003e' +\n\t\t\t\t'\u003cdiv\u003e' +\n\t\t\t\t\t'\u003cimg src=\"{{photo.1.medium}}\"\u003e' +\n\t\t\t\t'\u003c/div\u003e' +\n\t\t\t\t'\u003ch2\u003e{{name}}\u003c/h2\u003e' +\n\t\t\t\t'\u003cp\u003e\u003ca href=\"{{url.pet}}\"\u003eView Full Profile\u003c/a\u003e\u003c/p\u003e' +\n\t\t\t\t'\u003chr\u003e' +\n\t\t\t'\u003c/div\u003e';\n\n\t\tvar onePet =\n\t\t\t'\u003cp\u003e\u003ca href=\"{{url.all}}\"\u003e\u0026larr; Back to Full List\u003c/a\u003e\u003c/p\u003e' +\n\t\t\t'\u003cp\u003e' +\n\t\t\t\t'\u003ca target=\"_blank\" href=\"{{photo.1.large}}\"\u003e\u003cimg src=\"{{photo.1.thumbnail.large}}\"\u003e\u003c/a\u003e\u0026nbsp;' +\n\t\t\t\t'\u003ca target=\"_blank\" href=\"{{photo.1.large}}\"\u003e\u003cimg src=\"{{photo.2.thumbnail.large}}\"\u003e\u003c/a\u003e\u0026nbsp;' +\n\t\t\t\t'\u003ca target=\"_blank\" href=\"{{photo.1.large}}\"\u003e\u003cimg src=\"{{photo.3.thumbnail.large}}\"\u003e\u003c/a\u003e' +\n\t\t\t'\u003c/p\u003e' +\n\t\t\t'\u003ch2\u003e{{name}}\u003c/h2\u003e' +\n\t\t\t'\u003cp\u003e' +\n\t\t\t\t'Age: {{age}}\u003cbr\u003e' +\n\t\t\t\t'Gender: {{gender}}\u003cbr\u003e' +\n\t\t\t\t'Size: {{size}}' +\n\t\t\t'\u003c/p\u003e' +\n\t\t\t'\u003cp\u003e{{options.multi}}\u003c/p\u003e' +\n\t\t\t'\u003cdiv\u003e{{description}}\u003c/div\u003e';\n\n\t\tvar asideAllPets =\n\t\t\t'\u003cstrong\u003eAge:\u003c/strong\u003e' +\n\t\t\t'{{checkbox.ages.toggle}}' +\n\t\t\t'\u003cbr\u003e\u003cbr\u003e' +\n\n\t\t\t'\u003cstrong\u003eSize:\u003c/strong\u003e' +\n\t\t\t'{{checkbox.sizes}}' +\n\t\t\t'\u003cbr\u003e\u003cbr\u003e' +\n\n\t\t\t'\u003cstrong\u003eGender:\u003c/strong\u003e' +\n\t\t\t'{{checkbox.genders}}' +\n\t\t\t'\u003cbr\u003e\u003cbr\u003e' +\n\n\t\t\t'\u003cstrong\u003eBreeds:\u003c/strong\u003e' +\n\t\t\t'{{checkbox.breeds.toggle}}';\n\n\t\tpetfinderAPI.init({\n\t\t\tkey: '[YOUR PETFINDER API KEY HERE]', // Learn more: https://www.petfinder.com/developers/api-key\n\t\t\tshelter: '[YOUR SHELTER ID]',\n\t\t\ttemplates: {\n\t\t\t\tallPets: allPets,\n\t\t\t\tonePet: onePet,\n\t\t\t\tasideAllPets: asideAllPets,\n\t\t\t},\n\t\t\tcallback: function () {\n\t\t\t\tpetfinderSort.init(); // If you want to use the filtering plugin\n\t\t\t}\n\t\t});\n\n\t})(window, document);\n\u003c/script\u003e\n```\n\n\n\n## Installing with Package Managers\n\nYou can install petfinderAPI4everybody.js with your favorite package manager.\n\n* **NPM:** `npm install cferdinandi/petfinderAPI4everybody`\n* **Bower:** `bower install https://github.com/cferdinandi/petfinderAPI4everybody.git`\n* **Component:** `component install cferdinandi/petfinderAPI4everybody`\n\n\n\n## Working with the Source Files\n\nIf you would prefer, you can work with the development code in the `src` directory using the included [Gulp build system](http://gulpjs.com/). This compiles, lints, and minifies code.\n\n### Dependencies\nMake sure these are installed first.\n\n* [Node.js](http://nodejs.org)\n* [Gulp](http://gulpjs.com) `sudo npm install -g gulp`\n\n### Quick Start\n\n1. In bash/terminal/command line, `cd` into your project directory.\n2. Run `npm install` to install required files.\n3. When it's done installing, run one of the task runners to get going:\n\t* `gulp` manually compiles files.\n\t* `gulp watch` automatically compiles files and applies changes using [LiveReload](http://livereload.com/).\n\n\n\n## Options and Settings\n\npetfinderAPI4everybody.js includes smart defaults and works right out of the box. But if you want to customize things, it also has a robust API that provides multiple ways for you to adjust the default options and settings.\n\n### Global Settings\n\nYou can pass options and callbacks into petfinderAPI4everybody.js through the `init()` function:\n\n```javascript\npetfinderAPI.init({\n\n\t// API Defaults\n\tkey: null, // Your API developer key\n\tshelter: null, // The ID of the shelther you want to get data for\n\tcount: 25, // Number of pets to get data for\n\tstatus: 'A', // Adoption status of pets (A = adoptable)\n\toffset: null, // Skip first x number of pets when retrieving data\n\texpiration: 60, // How long to save API data for locally, in minutes\n\tnewestFirst: true, // If true, show newest pets first on page\n\n\t// Selectors (must be valid CSS selectors)\n\tselectorAppMain: '[data-petfinder=\"main\"]', // Main content area\n\tselectorAppAside: '[data-petfinder=\"aside\"]', // Secondary content area\n\n\t// Templates\n\ttemplates: {\n\t\tallPets: null, // Template for page that displays all pets\n\t\tonePet: null, // Tempplate for individual pet profiles\n\t\tasideAllPets: null, // Template for secondary content on all pets page\n\t\tasideOnePet: null, // Template for secondary content on individual pet profiles\n\t},\n\n\t// Class Hooks\n\tinitClass: 'js-petfinder-api', // Added on initialization\n\tallClass: 'js-petfinder-api-all-pets', // Added when all pets are displayed\n\toneClass: 'js-petfinder-api-one-pet', // Added when one pet is displayed\n\n\t// Miscellaneous\n\ttitlePrefix: '{{name}}` - | ', // Prefix to add to document title when displaying one pet ({{name}} is replaced with pet name)\n\tloading: 'Fetching the latest pet info...', // Loading text and graphics\n\tnoPet: noPet: 'Sorry, but this pet is no longer available. \u003ca data-petfinder-async href=\"{{url.all}}\"\u003eView available pets.\u003c/a\u003e', // Message when petID in query string does not match an available pet ({{url.all}} is replaced with a URL to full pet list)\n\n\t// Lists and Checkboxes\n\tclassPrefix: 'pf-', // Prefix to add before all pet classes\n\ttoggleAll: 'Select/Unselect All', // Select/Unselect All checkbox text\n\n\t// Pet photos\n\tnoImage: '', // Placeholder image to use when no photo is available\n\n\t// Breeds Text\n\tbreedDelimiter: ', ', // Character(s) to use to separate multiple breeds\n\n\t// Animal Text\n\tanimalUnknown: '', // Text when animal type is unknown\n\n\t// Size Text\n\tsizeUnknown: 'Not Known', // Text when pet size is unknown\n\tsizeS: 'Small', // Text for small pets\n\tsizeM: 'Medium', // Text for medium pets\n\tsizeL: 'Large', // Text for large pets\n\tsizeXL: 'Extra Large', // Text for extra large pets\n\n\t// Age Text\n\tageUnknown: 'Not Known', // Text when pet age is unknown\n\tageBaby: 'Baby', // Text for baby pets\n\tageYoung: 'Young', // Text for young pets\n\tageAdult: 'Adult', // Text for adult pets\n\tageSenior: 'Senior', // Text for senior pets\n\n\t// Gender Text\n\tgenderUnknown: 'Not Known', // Text when pet gender is unknown\n\tgenderM: 'Male', // Text when pet is a male\n\tgenderF: 'Female', // Text when pet is a female\n\n\t// Options Text\n\toptionsSpecialNeeds: 'Special Needs', // Text for pets with special needs\n\toptionsNoDogs: 'No Dogs', // Text for pets that can't be in a house with dogs\n\toptionsNoCats: 'No Cats', // Text for pets that can't be in a house with cats\n\toptionsNoKids: 'No Kids', // Text for pets that can't be in a house with kids\n\toptionsNoClaws: 'No Claws', // Text for pets without claws\n\toptionsHasShot: 'Has hots', // Text for pets that are up-to-date with shots\n\toptionsHousebroken: 'Housebroken', // Text for housebroken pets\n\toptionsAltered: 'Spayed/Neutered', // Text for spayed or neutered pets\n\n\t// Multi-Option Text\n\toptionsNoDogsCatsKids: 'No Dogs/Cats/Kids', // Text for pets that can't be in a house with dogs, cats, or kids\n\toptionsNoDogsCats: 'No Dogs/Cats', // Text for pets that can't be in a house with dogs or cats\n\toptionsNoDogsKids: 'No Dogs/Kids', // Text for pets that can't be in a house with dogs or kids\n\toptionsNoCatsKids: 'No Cats/Kids', // Text for pets that can't be in a house with cats or kids\n\n\t// Contact Info Missing Text\n\tcontactName: '', // Text when pet's contact name is missing\n\tcontactEmail: '', // Text when pet's contact email is missing\n\tcontactPhone: '', // Text when pet's contact phone number is missing\n\tcontactAddress1: '', // Text when pet's contact first line address is missing\n\tcontactAddress2: '', // Text when pet's contact second line address is missing\n\tcontactCity: '', // Text when pet's contact city is missing\n\tcontactState: '', // Text when pet's contact state is missing\n\tcontactZip: '', // Text when pet's contact zip code is missing\n\tcontactFax: '', // Text when pet's contact fax number is missing\n\n\t// Callbacks\n\tcallback: function () {} // Callback to run after each time pet content is generated\n});\n```\n\n### Use petfinderAPI4everybody.js events in your own scripts\n\nYou can also call petfinderAPI4everybody.js events in your own scripts.\n\n#### destroy()\nDestroy the current `petfinderAPI.init()`. This is called automatically during the init function to remove any existing initializations.\n\n```javascript\npetfinderAPI.destroy();\n```\n\n\n\n## Browser Compatibility\n\npetfinderAPI4everybody.js works in all modern browsers, and IE 9 and above.\n\npetfinderAPI4everybody.js is built with modern JavaScript APIs. If the JavaScript file fails to load, or if your site is viewed on older and less capable browsers, no API content will be displayed. You should always include fallback content in the `[data-petfinder-app=\"main\"]` element.\n\n\n\n## How to Contribute\n\nIn lieu of a formal style guide, take care to maintain the existing coding style. Please apply fixes to both the development and production code. Don't forget to update the version number, and when applicable, the documentation.\n\n\n\n## License\n\nThe code is available under the [MIT License](LICENSE.md).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcferdinandi%2Fpetfinderapi4everybody","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcferdinandi%2Fpetfinderapi4everybody","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcferdinandi%2Fpetfinderapi4everybody/lists"}