(function() { // Set the pdUid cookie with session-level expiration (no explicit expiration date) document.cookie = "pdUid=false; path=/; domain=entirelypets.com; SameSite=Lax"; })();console.log('uid='); //*** time check 1 (0.00237s elapsed) //*** time check 2 (0.0024s elapsed) //*** JJ itemId=otis-claude-bumbleball //*** pageType=category //*** time check 3 (0.0095s elapsed) //*** forceOutOfStock=false //*** time check 4 (0.00952s elapsed) //*** public_mod_structuredData_renderJsonByItemId found //*** public_mod_structuredData enabled var script = document.createElement('script'); script.setAttribute('type', 'application/ld+json'); script.innerHTML = "{\"@context\":\"http:\\/\\/schema.org\",\"@type\":\"BreadcrumbList\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"item\":{\"@id\":\"https:\\/\\/www.entirelypets.com\\/\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"position\":2,\"item\":{\"@id\":\"https:\\/\\/www.entirelypets.com\\/dogsupplies1.html\",\"name\":\"Dog Supplies\"}},{\"@type\":\"ListItem\",\"position\":3,\"item\":{\"@id\":\"https:\\/\\/www.entirelypets.com\\/catsupplies.html\",\"name\":\"Cat Supplies\"}},{\"@type\":\"ListItem\",\"position\":4,\"item\":{\"@id\":\"https:\\/\\/www.entirelypets.com\\/dogsupplies.html\",\"name\":\"Dog Supplies\"}},{\"@type\":\"ListItem\",\"position\":5,\"item\":{\"@id\":\"https:\\/\\/www.entirelypets.com\\/dogtoys.html\",\"name\":\"Dog Toys\"}},{\"@type\":\"ListItem\",\"position\":6,\"item\":{\"@id\":\"https:\\/\\/www.entirelypets.com\\/interactive-games.html\",\"name\":\"Interactive Dog Toys\"}},{\"@type\":\"ListItem\",\"position\":7,\"item\":{\"@id\":\"https:\\/\\/www.entirelypets.com\\/otis-claude-bumbleball.html\",\"name\":\"Otis and Claude Bumble Balls\"}}]}" document.getElementsByTagName('head')[0].appendChild(script); ; var script = document.createElement('script'); script.setAttribute('type', 'application/ld+json'); script.innerHTML = "{\"@context\":\"http:\\/\\/schema.org\",\"@type\":\"Product\",\"offers\":{\"@type\":\"Offer\",\"price\":\"0.00\",\"priceCurrency\":\"USD\",\"priceValidUntil\":\"2026-09-27\",\"seller\":{\"@type\":\"Organization\",\"name\":\"Entirelypets.com\"},\"@id\":\"https:\\/\\/www.entirelypets.com\\/otis-claude-bumbleball.html#offers\",\"url\":\"https:\\/\\/www.entirelypets.com\\/otis-claude-bumbleball.html\",\"itemCondition\":\"NewCondition\",\"availability\":\"OutOfStock\"},\"name\":\"Otis and Claude Bumble Balls\",\"image\":\"https:\\/\\/images.practicaldatacore.com\\/entirelypets\\/getProductImage.php?size=imageMedium&cb=1790210573&productId=otis-claude-bumbleball\",\"sku\":\"otis-claude-bumbleball\",\"@id\":\"https:\\/\\/www.entirelypets.com\\/otis-claude-bumbleball.html#product\",\"review\": [{\"@type\":\"Review\",\"itemReviewed\":\"Otis and Claude Bumble Balls\",\"reviewRating\":{\"@type\":\"Rating\",\"ratingValue\":\"1.0\"},\"author\":{\"@type\":\"person\",\"name\":\"Disappointed c.\"},\"reviewBody\":\"I have purchased three of these and every one has not given my little dog more than five minutes of play before crashing. The inside clips come off and jam the motor so action stops. You need a very small screw driver to take apart and reinstall parts. Battery packet is hard to get closed. I have three sitting on my table at all times waiting to be fixed. Great action. My dog loves it BUT it is very poor quality and needs constant repair. I do not recommend this product at all. I need a refund. Probably won\'t get it.\",\"datePublished\":\"2020-07-09 15:13:00\"}],\"aggregateRating\":{\"@type\":\"AggregateRating\",\"reviewCount\":\"1\",\"ratingValue\":\"1.0\"}}" document.getElementsByTagName('head')[0].appendChild(script); ; //*** time check 5 (0.07684s elapsed) //*** mod_storeClosed called //*** time check 6 (0.0771s elapsed) //*** time check 7 (0.07712s elapsed) var pdServerTime = new Date("2026-09-24T09:27:57-05:00"); var pdProductId = "otis-claude-bumbleball"; //************************************************ //************ JS/CSS FILE ROUTINES ************* //************************************************ function pdLoadJsCssFile(filename, filetype){ if (filetype=="js") { var fileref=document.createElement('script'); fileref.setAttribute("type","text/javascript"); fileref.setAttribute("async",true); fileref.setAttribute("src", filename); } else if (filetype=="css") { var fileref=document.createElement("link"); fileref.setAttribute("rel", "stylesheet"); fileref.setAttribute("type", "text/css"); fileref.setAttribute("href", filename); } if (typeof fileref!="undefined") document.getElementsByTagName("head")[0].appendChild(fileref); } function pdAddStyle(css) { var style = document.createElement("style"); style.innerHTML = css; document.getElementsByTagName("body")[0].appendChild(style); } //*** time check 8 (0.07713s elapsed) /* pdGetElementsByClassName -- Revised to avoid JS conflicts with libraries that override native "getElementsByClassName" browser function in IE Developed by Robert Nyman, http://www.robertnyman.com Code/licensing: http://code.google.com/p/getelementsbyclassname/ */ var pdGetElementsByClassName = function (className, tag, elm){ var ieVersion = getInternetExplorerVersion(); if (ieVersion == -1 && document.getElementsByClassName) { pdGetElementsByClassName = function (className, tag, elm) { elm = elm || document; var elements = elm.getElementsByClassName(className), nodeName = (tag)? new RegExp("\b" + tag + "\b", "i") : null, returnElements = [], current; for(var i=0, il=elements.length; i -1) { if(signatureList[i] == 'android') { //*** ONLY CONSIDER android a mobile device if "mobile" is also present in user agent string if(agent.indexOf("mobile") > -1) isMobile = true; } else { isMobile = true; } } } return isMobile; } function pdIsIpad() { var isIpad = false; var signatureList = new Array('ipad'); var agent = navigator.userAgent.toLowerCase(); for(var i=0;i -1) isIpad = true; } return isIpad; } function pdIsTablet() { var isTablet = false; var signatureList = new Array('ipad', 'android'); var agent = navigator.userAgent.toLowerCase(); for(var i=0;i -1) { isTablet = true; //*** ASSUME TABLET if(signatureList[i] == 'android') { //*** ONLY CONSIDER android a mobile device if "mobile" is also present in user agent string if(agent.indexOf("mobile") > -1) isTablet = false; } else { isTablet = true; } } } return isTablet; } function pdFormatCurrency(num, includeDollarSign) { num = num.toString().replace(/$|\,/g,''); if(isNaN(num)) num = "0"; sign = (num == (num = Math.abs(num))); num = Math.floor(num*100+0.50000000001); cents = num%100; num = Math.floor(num/100).toString(); if(cents<10) cents = "0" + cents; for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++) num = num.substring(0,num.length-(4*i+3))+','+ num.substring(num.length-(4*i+3)); var returnValue = (((sign)?'':'-') + num + '.' + cents); if(includeDollarSign == true) returnValue = "$" + returnValue; return returnValue; } function pdFindParentForm(element) { var elm,parentForm; for (elm = element.parentNode; elm; elm = elm.parentNode) { if(elm.tagName.toLowerCase() == "form") { parentForm = elm; break; } } return parentForm; } function pdHideForLoggedInUser() { var hideList = pdGetElementsByClassName("pdHideForLoggedInUser", null); for(var i=0;i (163 reviews)"; elements.forEach(element => { element.innerHTML = newHtml; }); elements = document.querySelectorAll(".pdRatingStarsWrapper[productId='bumbleball3pck'], .pdRatingStarsWrapper[data-itemid='bumbleball3pck']"); newHtml = "
(44 reviews)"; elements.forEach(element => { element.innerHTML = newHtml; }); pdStarsRefreshFlag = false; } } pdDisplayCategoryStars(); //*** time check 12 (0.09667s elapsed) $(".abr-flex-favorite-link").on("click", function(){ var pdAddToFavoritesAction = "https://myaccount.entirelypets.com/mod_favorites/ajax/favoritesAddItemNew.php"; var itemId = jQuery(this).parent().parent().data("data-itemid"); var productId = jQuery(this).parent().parent().data("productId"); var item; if(!isBlank(itemId)){ item = itemId; }else{ item = productId; } var pdAddToFavoritesButton = jQuery(this); if (!item) { console.log("Unable to identify item id for adding to favorites"); return false; } var data = { vwitem: item } //**** IF ITEM IS ALREADY FAVORITED, DISABLE ACTIONS AND DIRECT TO CUSTOMER FAVORITES *** var pdItemAlreadyInFavorites = jQuery(this).children("div").hasClass("is-favorite"); var pdItemAddedToFavorites = jQuery(this).children("div").hasClass("is-added"); if(pdItemAlreadyInFavorites == true || pdItemAddedToFavorites == true){ console.log("Item is already in customer favorites"); return false; } jQuery.ajax({ 'async': false, 'global': false, 'xhrFields': {withCredentials: true}, 'type': "POST", 'url': pdAddToFavoritesAction, 'data': data, 'crossDomain': true, 'success': function (response) { if (response.indexOf("<") == 0){ response = response.slice(response.indexOf(">")+1); } var data = jQuery.parseJSON(response); console.log(data); if (data['loggedIn'] == true){ jQuery(pdAddToFavoritesButton).addClass("is-favorite"); console.log("Success adding to favorites"); } else{ console.log("User not logged in adding to favorites"); } }, 'error': function(xhr, status, error){ var errorMessage = xhr.status + ': ' + xhr.statusText console.log('Error - ' + errorMessage); } }); }); function pdAddToFavorites(orderForm,index,productUrl) { var pdAddToFavoritesAction = "https://myaccount.entirelypets.com/mod_favorites/favoritesAddItem.php"; if(pdIsBlank(index)) index = 0; var item = "vwitem" + index; var itemAttr = "vwattr" + index + "_"; //*** CAN'T FIND MULTIFORM ELEMENT? FALL BACK TO SINGLE ITEM CASE if(typeof orderForm[item] == "undefined") { item = "item"; itemAttr = "vwattr_"; } //******** ATTACH PRODUCT ID INPUT ************** if(item != "item") { var inputProductId = document.createElement("INPUT"); inputProductId.type = "hidden"; inputProductId.name = "add-single-favorites"; inputProductId.value = index; orderForm.appendChild(inputProductId); } if(productUrl == "autoDetect") productUrl = String(document.location); if(!pdIsBlank(productUrl)) { var inputOptions = document.createElement("INPUT"); inputOptions.type = "hidden"; inputOptions.name = "productUrl"; inputOptions.value = productUrl; orderForm.appendChild(inputOptions); } var tempAction = orderForm.action; var copiedQueryString = ""; var queryStringPosition = tempAction.indexOf("?"); if(queryStringPosition > -1) { copiedQueryString = tempAction.substring(queryStringPosition, tempAction.length); copiedQueryString = copiedQueryString.replace("+", "%20"); } orderForm.action=pdAddToFavoritesAction + copiedQueryString; if(orderForm.target != "_top") orderForm.target = ""; //*** COMPAT W/ SCFC orderForm.submit(); orderForm.action = tempAction; orderForm.removeChild(inputProductId); orderForm.removeChild(inputOptions); return false; } //*** time check 13 (0.0968s elapsed) //*** time check 14 (0.0968s elapsed) //*** time check 15 (0.09685s elapsed) if (typeof pdPerformLoginActions === "function") { pdPerformLoginActions(false); } //*** time check 16 (0.09794s elapsed) //*** time check 17 (0.09889s elapsed) //*** time check 18 (0.0997s elapsed) //*** time check 19 (0.0997s elapsed) //*** time check 20 (0.10053s elapsed) //*** time check 21 (0.10138s elapsed) //*** time check 22 (0.10313s elapsed) //********************************* //*** BEGIN mod_promotionCenter *** //********************************* //*** COULD NOT FIND PUBLIC FUNCTION 'public_mod_promotionCenter_getRenderedPageScript3()' //******************************* //*** END mod_promotionCenter *** //******************************* //*** time check 23 (0.10315s elapsed) //*** SEND PROMO INFO TO ALREADY ON-PAGE HANDLER FUNCTION var pdPromo = {}; try{pdHandlePromoInfo(pdPromo)} catch(e) {} //*** SEND PROMO INFO TO ALREADY ON-PAGE HANDLER FUNCTION var pdProductListCalloutHtml = ""; try{pdHandleProductListCallout(pdProductListCalloutHtml)} catch(e) {} //*** time check 24 (0.10459s elapsed) //*** mod_fbConversion is NOT enabled! //*** time check 25 (0.10581s elapsed) //*** time check 26 (0.10929s elapsed) //*** time check 27 (0.11021s elapsed) //*** time check 28 (0.11772s elapsed) //**** CART ITEM COUNT MESSAGE ***** function pdDisplayCartItemCount() { var pdCartItemCount = pdGetCookie('pdCartItemCount'); if(!pdIsBlank(pdCartItemCount)) { var pdCartItemCountMessage = pdCartItemCount; jQuery('.pdCartItemCountMessage').html(pdCartItemCountMessage); } } pdDisplayCartItemCount(); //*** pageScript end (0.11782s elapsed) //*** time check 29 (0.11783s elapsed) //*** PAGESCRIPT DONE