//AddAccessibility("store.cosequin.com"); // AddAccessibility("."); // console.log("acs hash:"+location.referrer); // function AddAccessibility(domain){ // //if (document.location.href.toLowerCase().indexOf(domain.toLowerCase().trim())==-1){ return; } // console.log("nmx.acs for accessibility"); // } //nmxSiteAccessibility(20, 100); // function nmxSiteAccessibility(c, i){ // jQuery("a[href*='pdf']").each(function(index){ // if (jQuery(this).attr("href").indexOf("javascript")==-1){ // jQuery(this).attr("href",'javascript:(function(){ var i='+index+'; document.location="'+jQuery(this).attr("href")+'"; })();').attr("aria-hidden","true").attr("role","presentation"); // } // }); //jQuery('.mobile-searchform [placeholder="Search"]').attr("id","mobilesearch"); jQuery("input,select,textarea").not('[type="submit"],[type="radio"],[type="button"]').each(function(index){ if (!jQuery(this).filter("[id]").length){ jQuery(this).attr("id","fld"+index); } else { //console.log("acs id not set: i"+index+" class:"+jQuery(this).attr("class")+" id:"+jQuery(this).attr("id")); } if (jQuery(this).filter("[id]").length){ if (!jQuery("[for='"+jQuery(this).attr("id")+"']").length){ if (jQuery(this).parent().is("label") && !jQuery(this).parent().has("[for]")){ jQuery(this).parent().attr("for",jQuery(this).attr("id")); } else { jQuery(this).before(''); } } } }); /* this is rediculous - noscript cannot be used */ jQuery("noscript").remove(); /* empty headers */ jQuery(":header, a").each(function(index){ if (!jQuery(this).find("*").length && jQuery(this).text().trim() == ""){ jQuery(this).remove(); } else if (jQuery(this).text().trim() == ""){ jQuery(this).append('i'+index+''); } }); /* alt tags */ jQuery("img:not([alt])").filter("[src]").each(function(index){ var alt=""; jQuery(this).attr("alt", alt); console.log("acs no alt - "+jQuery(this).attr("src")); if (jQuery(this).attr("title") != ""){ alt = jQuery(this).attr("title"); } else { alt = jQuery(this).attr("src").replace(".png","").replace(".svg","").replace(".jpg","").replace(".gif","").replace(/[-_]/g," ").replace(/^.*[\\\/]/, ''); } alt = "img "+index; console.log("acs set alt: "+alt); jQuery(this).attr("alt", alt); }); /* empty buttons and links */ jQuery("button").each(function(){ if (jQuery(this).text().trim() == ""){ jQuery(this).append('hidden element'); } }); jQuery("footer a, a.top").each(function(){ if (jQuery(this).text().trim() == "" && !jQuery(this).find("img").length){ jQuery(this).remove(); } }); jQuery(':header').each(function(){ var level = jQuery(this).prop("tagName").replace("H",""); if (level > 1 && jQuery(this).parents().find("H"+(level-1))){ if (!jQuery(this).prev("h"+(level-1)).length){ //console.log("acs found heading: "+jQuery(this).prop("tagName")); jQuery(this).before('>'); //return; } } }); jQuery("[aria-labelledby]").each(function(){ if (!jQuery("#"+jQuery(this).attr("aria-labelledby")+"").length){ //jQuery(this).removeAttr("aria-labelledby").attr("aria-hidden","true"); jQuery(this).attr("aria-hidden","true"); } }); jQuery("img[alt]").not("[acs]").each(function(index){ var that = jQuery(this); var match = "diff"; if (jQuery("[alt='"+jQuery(this).attr("alt")+"']").length > 1 && jQuery(this).not("[acs]")){ console.log("acs alt dup"+index+": "+jQuery(this).attr("alt")+" / "+jQuery("[alt='"+jQuery(this).attr("alt")+"']").length+" / "+match+" / "+that.filter(":visible").length); jQuery("[alt='"+jQuery(this).attr("alt")+"']").not(":first").each(function(index){ jQuery(this).attr("alt",""); }); } }); jQuery("a[href]").not("[acs]").each(function(index){ var that = jQuery(this); var match = "diff"; if (jQuery("[href='"+jQuery(this).attr("href")+"']").length > 1 && jQuery(this).not("[acs]")){ jQuery("[href='"+jQuery(this).attr("href")+"']").attr("acs",1).attr("aria-hidden","true").attr("role","presentation"); if ( jQuery(this).parent().prev() == that.parent() || jQuery(this).parent() == that.parent() || jQuery(this).parent() == that.parent().parent() ){ match = "same"; } //console.log("acs pg dup"+index+": "+jQuery(this).attr("href")+" / "+match+" / "+that.filter(":visible").length); } }); jQuery('[data-original-title="Select Options"]').remove(); jQuery('a.thumb-link[href*="void"]').removeAttr("href"); jQuery("[alt]").each(function(index){ if (jQuery("[alt='"+jQuery(this).attr("alt")+"']").length > 1){ jQuery(this).attr("alt",""); } }); /* remove orphaned labels */ jQuery("[for]").each(function(index){ if (!jQuery("#"+jQuery(this).attr("for")).length && jQuery(this).attr("for").trim() == jQuery(this).text().trim()){ console.log("acs orphaned label: "+jQuery(this).attr("for")); jQuery(this).remove(); } }); /* fix layout table false-pos */ jQuery('#guaranteed tbody').prepend('Contains'); //jQuery('#guaranteed tbody').before(''+jQuery('#guaranteed').prev("p").text()+''); //jQuery('#guaranteed').prev("p").remove(); jQuery('label[for="Quantity"]').remove(); //jQuery(".mc-field-group.input-group").remove(); /* end accessibility */ if (c > 0){ c--; window.setTimeout(function(){ nmxSiteAccessibility(c--, i); },i); } } // function AddAccessibilityAssets(domain){ // if (document.location.href.toLowerCase().indexOf(domain.toLowerCase().trim())==-1){ return; } // console.log("nmx.acs for accessibility"); // var script = document.createElement("script"); // script.src = ('https://www.nutramax.biz/accessibility/'+domain+'/nmx.acs.js'); // var link = document.createElement('link') // link.setAttribute('rel', 'stylesheet') // link.setAttribute('type', 'text/css') // link.setAttribute('href', 'https://www.nutramax.biz/nmx/css/'+domain+'/nmx.acs.css') // document.getElementById('g_nmx_acs').parentNode.insertBefore(link, document.getElementById('g_nmx_acs')); // document.getElementById('g_nmx_acs').parentNode.insertBefore(script, document.getElementById('g_nmx_acs')); // }