= 0) hasClass = true; break; return hasClass; function hasClass(element, className) var pattern = /[\t\r\n\f]/g, className = + className + , element = + element.className + ; return element.replace(pattern, ).indexOf(className)
0) anchor = anchors[0]; // DWNDSO-3221 addresses the DLNow anchor being clickable before the full // DLNow JS is loaded. The href attr is now data-href. Here we reassign it // to an href attr. var downloadNowLink = selectedElement.querySelector(.dln-a), href= downloadNowLink.getAttribute(href), datahref= downloadNowLink.getAttribute(data-href); // If the element has an href, do not alter it. It is needed for P2P offsite // visit site functionality (redirect to 3055 page and open offsite page // in a new tab). if (!href && datahref) downloadNowLink.setAttribute(href, datahref); if erAgent.indexOf(MSIE) !== -1) if (!offsitePopup) if (e.preventDefault) e.preventDefault(); var directDownload = false; var fileUrl = self.getAttribute(data-dl-url); var pdl = getValueFromKey(location.search, pdl, directDownload = (selectedElement.getAttribute(data-noredirect) === true) && (pdl === null pdl !== 1) ; fileUrl = selectedElement.getAttribute(data-dl-url); var pdlParam = getUrlParam(location.search, pdl); var dataNoRedirect = self.getAttribute(data-noredirect); if (self.getAttribute(data-product-id) === 10019223 && (dataNoRedirect !== null && dataNoRedirect !== false) && (pdlParam === null pdlParam !== 1)) directDownload = true; if (self.getAttribute(data-use-href)) callBack = function () window.location = anchor.getAttribute(href); ; else if (!hasClass(anchor, init)) if (!offsitePopup) if (e.preventDefault) e.preventDefault(); e.cancelBubble = true; e.returnValue = false; anchor.className = anchor.className + init; anchor.setAttribute(href, self.getAttribute(data-pdl-no-dl)); anchor.setAttribute(onclick, javascript:window.open( + fileUrl + , dlnow, toolbar=0,location=no,directories=0,status=0,scrollbars=no,resizable=0,width=200,height=200,top=0,left=0);); fireEvent(anchor, click); return false; callBack = function () if (offsitePopup) fireEvent(anchor, click); var pdlRedir = self.getAttribute(pdl-redir); if (pdlRedir != null) window.location = pdlRedir; else window.location = anchor.getAttribute(href); else if (directDownload === false) window.location = anchor.getAttribute(href); else // TODO: remove the init class so redirect excluded product can download again //self.removeClass(init); window.location = fileUrl; ; else if (!offsitePopup) e.preventDefault(); callBack = function() if (offsitePopup) var pdlRedir = self.getAttribute(pdl-redir); if (pdlRedir != null) window.location = pdlRedir; else window.location = anchor.getAttribute(href); else try require([components/downloadNowButton-2.0], function(dlNow) dlNow.downloadClickEvent(e, selectedElement); ); catch (err) window.location = anchor.getAttribute(href); ; om.trackDownloadClick( idlType: selectorIdlTypeArray[selector], softwareId:self.getAttribute(data-om-version-id), softwareProductId:self.getAttribute(data-om-product-set-id), softwareName:self.getAttribute(data-om-product-name), udlSerial:self.getAttribute(data-om-version-id) + getSessionId(), searchSerpPage:1, searchSerpPosition:self.parentElement.getAttribute(data-position), pageEventDreClick: selectorIdlTypeArray[selector] == dre_dln_btn_clk? 1 : 0 , true, callBack); function fireEvent(element, event) var evt = null; if (document.createEvent) // dispatch for firefox + others evt = document.createEvent(HTMLEvents); evt.initEvent(event, true, true ); // event type,bubbling,cancelable return !element.dispatchEvent(evt); else // dispatch for IE evt = document.createEventObject(); return element.fireEvent(on+event, evt); for (var selector in selectorIdlTypeArray) if (selectorIdlTypeArray.hasOwnProperty(selector)) var selectedElements = document.querySelectorAll(selector); for (var i = 0; i
=d[a[11]]()))b[s[5]]=1;var g=c[a[8]][I[12]](Q[13]);g&&(f=s[14]+g[1]);c[s[15]](e(s[16]+f+I[17])))()catch(k);
; if (pageTargeting.vguid) pageParams[viewguid] = pageTargeting.vguid; DW.pageParams = pageParams; DW.comScore.params.c2 = 3005086; DW.comScore.params.c4 = 3000086; DW.clear(); )();
=e/100?0:100),a=[h,e,0],this.set(f,a.join(:));else return!0;var c=a[1];if(100==c)return!0;switch(a[0])case v:return!1;case r:return c=a[2]%Math.floor(100/c),a[2]++,this.set(f,a.join(:)),!creturn!0; this.go=function()if(this.check())var a=document.createElement(script);a.type=text/javascript;a.src=g+ &t= + (new Date()).getTime();document.body&&document.body.appendChild(a); this.start=function()var a=this;window.addEventListener?window.addEventListener(load,function()a.go(),!1):window.attachEvent&&window.attachEvent(onload,function()a.go()); try(new g(100,r,QSI_S_ZN_9nqUvAZst1xipKt,//zn_9nquvazst1xipkt-cbs.siteintercept.qualtrics.com/WRSiteInterceptEngine/?Q_ZID=ZN_9nqUvAZst1xipKt&Q_LOC=+encodeURIComponent(window.location.href))).start()catch(i))();
a.dln-a:download_now_button_click; var downloadNowExcludedClasses = [offsite-enabled,offsite-webpage,offsite-visitSite]; function fireTrackDownloadClick(selectorIdlTypeArray, selector, selectedElement, isOffsitePopup) return function(e) var offsitePopup = isOffsitePopup false; var callBack = null; var self = selectedElement; var anchor = null; // get the first anchor inside of the selectedElement var anchors = self.getElementsByTagName(a); if (anchors.length
1) return tuple[1]; return null; function parentHasClass(element, excludedClasses) var hasClass = false; for (var i = 0; i
(6 * j)) % 63]; vguid = uu + vguid; return vguid;
-1; function getUrlParam(url, paramName) return decodeURIComponent((new RegExp([?&] + paramName + = + ([^]+?)($)).exec(url)[,])[1].replace(/\+/g, %20))null; var selectorIdlTypeArray = div.listing-button-dln
—