console.log('uid=');
//*** time check 1 (0.06587s elapsed)
//*** time check 2 (0.06592s elapsed)
//*** JJ itemId=swimming-ribbons
//*** pageType=product
//*** time check 3 (0.06764s elapsed)
//*** forceOutOfStock=false
//*** time check 4 (0.07149s 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\":\"Product\",\"name\":\"Swimming Award Ribbons\",\"description\":\"Our swimming ribbons are sure to be a hit with your players. Choose from 1st to 6th place, honorable mention or participant. Soled in packages of 25 ribbons. Each swimming ribbon measures 2\\\" x 8\\\". Price includes card & string. Large quantity discounts apply. SKU: RMSESWIM.\",\"brand\":{\"@type\":\"Brand\",\"name\":\"Tower Ribbon\"},\"image\":\"https:\\/\\/images.practicaldatacore.com\\/trophycentral\\/getProductImage.php?size=imageMedium&cb=1743615724&productId=swimming-ribbons\",\"sku\":\"RMSESWIM-TW\",\"@id\":\"https:\\/\\/www.trophycentral.com\\/swimming-ribbons.html#product\",\"offers\":{\"@type\":\"AggregateOffer\",\"priceCurrency\":\"USD\",\"highPrice\":18.5,\"lowPrice\":14.5,\"offerCount\":1},\"mpn\":\"RMSESWIM-TW\"}"
document.getElementsByTagName('head')[0].appendChild(script); ;
//*** time check 5 (0.12401s elapsed)
//*** mod_storeClosed called
//*** time check 6 (0.12807s elapsed)
//*** time check 7 (0.12809s elapsed)
var pdServerTime = new Date("2025-04-02T14:20:54-05:00");
var pdProductId = "swimming-ribbons";
var pdProductCode = "RMSESWIM-TW";
//************************************************
//************ 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.12811s 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