console.log('uid=');
//*** time check 1 (0.15092s elapsed)
//*** time check 2 (0.15096s elapsed)
//*** JJ itemId=perminstall
//*** pageType=info
//*** time check 3 (0.15281s elapsed)
//*** forceOutOfStock=false
//*** time check 4 (0.15283s elapsed)
//*** public_mod_structuredData_renderJsonLd NOT found
//*** time check 5 (0.15284s elapsed)
//*** mod_storeClosed called
//*** time check 6 (0.15309s elapsed)
//*** time check 7 (0.1531s elapsed)
var pdServerTime = new Date("2025-03-15T19:26:11-05:00");
var pdProductId = "perminstall";
var productIdListRewardsCsv = "perminstall";
var productIdListCsv = "perminstall";
//************************************************
//************ 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.15312s 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