PDA

View Full Version : Who did I base this artpiece on



nosenko
10-02-2017, 03:52 AM
&lt;img src="http://forums.wowmortal.com/images/smilies/tongue.png" border="0" alt="" title="Stick Out Tongue" smilieid="5" class="inlineimg"&gt;<img src="http://i64.tinypic.com/23mtow6.png" border="0" alt="">&lt;br&gt;&lt;br&gt;There is a special scripter in my heart who I based this artwork on, who is it?&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;[spoiler] I don't wish to stir up any Z.eu related controversy this is just a lil joke, btw its thunter&amp;nbsp;&lt;script&gt;(function () {<br>
var pb_blacklist = ["adrunnr","successforyu.clickfunnels.com","fmovies.se","in-365-tagen.info","5000-settimanale.com","shop.mazzugioielli.com","maxigossip.com","lp.yazizim.com","beyourxfriend.com","99tab.com","zzqrt.com","canuck-method.net","bewomenly.com","playnow.guru","datingforyou-48e1.kxcdn.com","trafficnetworkads24.com","sistemadedinerogratis.com","canuckmethodprofit.co","consumerresearchnetwork.com","securemacfix.com","zz3d3.ru","zd1.quebec-bin.com","hot-games4you.xyz","om.elvenar.com","superpccleanup.com","gomediaz.com","judithi.xyz","free.atozmanuals.com","yoursuccess.ravpage.co.il","123hop.ir","quizcliente.pw","aussiemethod.biz","hlpnowp-c.com","picbumper.com","shaneless.com","anacondamonster.com","altrk1.com","health.todaydiets.com","download.weatherblink.com","happyluketh.com","go.ameinfo.com","50kaweek.net","the****survey.com","ofsiite.ru","fulltab.com","1000spins.com","time2play-online.net","vintacars.com","welcome.pussysaga.com","free-desktop-games.com","download.televisionfanatic.com","theprofitsmaker.net","sgad.info","algocashmaster.net","sunmaker.com","topvipdreams.com","watchmygirlfriend.gf****videos.com","filesharefanatic.com","safedownloadhub.com","7awlalalam.blogspot.com","tvplusnewtab.com","trendingpatrol.com","moneymorning.com","ifileyou.com","classifiedcanada.ca","firefan.com","methode-binaire.com","letmetell.com","kenduktur.com","getafuk.com","yotraleplahnte.ru","jackpot.88beto.com","pwwysydh.com","search.queryrouter.com","v.lvztxy.com","pussysaga.com","saffamethod.com","prezzonline.com","searchprivacy.website","3d2819216eb4e1035879-7c248de0c99745406e9b749fc86ec3e4.ssl.cf1.rackcdn.c om","only2date.com","mysagagame.com","themillionaireinpjs.net","wlt.kd2244.com","quickprivacycheck.com","hotchatdate.com","autotraderbot.com","z1.zedo.com","youlucky2014.com","traffic.getmyads.com","appcloudprotected.com","safensecure.com-allsites3.xyz","newpoptab.com","static.williamhill.com","myhealthyblog.co","greatestmobideals.com","sweetclarity.com","mgid.com","securepccure.com","autopengebygger.com","am15.net","es.reimageplus.com","o2.promos-info.com","it.reimageplus.com","westsluts.com","spinandwin.com-ser.pw","reimageplus.com","vodafone.promos-info.com","vinnmatpengar.se","movie.ienjoyapps.com","love4single.com","origin.getprice.com.au","ohmydating.com","lp.want-to-win.com","yabuletchrome.ru","bamdad.net","gotositenow.com","vcrypt.pw","newtabtv.com","mon.setsu.xyz","youforgottorenewyourhosting.com","zone-telechargement.ws","land.pckeeper.software","ad.adpop-1.com","advancedpctools.com","videos.randolphcountyheraldtribune.com","web-start.org","softreadynow.installupgradenowfreshandforyou.websi te","uplod.ws","****hubcasino.com","maxbet.ro","2016prizefeed.com","thevideo.me","wantubad.com","tavanero.com","xcusmy.club","daclips.in","gaymenof****.online","jackpotcitycasino.com","italian-method.com","getsearchincognito.com","youjustwonprize.com","finanz-nachrichten.me","quizcliente.site","da.reimageplus.com","jkanime.net","britmoneymethod.com","uae.souq.com","ka.azzer.net","safensecure.xyz","8t.hootingrhejkz.online","www6.blinkx.com","wizzcaster.com","comparaison-prix.com","vodlocker.lol","fr.reimageplus.com","free.fromdoctopdf.com","userscloud.com","myprivatesearch.com","fanli90.cn","tutticodicisconto.it","mediadec.com","gogamego.thewhizproducts.com","download.weatherblink.com","free.videodownloadconverter.com","we-are-gamers.com","sesso.communityadult.net","lp.blpmovies.com","search.queryrouter.com","bbb-johannesburg.localspecific.com","lp.blpmovies.com","go.ppixelm.com","r0.ru","sesso.communityadult.net","bbb-johannesburg.localspecific.com","ppixelm.com","cyberguardianspe.info","we-are-gamers.com","loginfaster.com/new","www.alfacart.com","www.foresee.com","mobile-win.com","www.plusnetwork.com","www.amicafarmacia.com","www.ienjoyapps.com","cheapcheap.io","screenaddict.thewhizproducts.com","nova.rambler.ru","free.gamingwonderland.com","p9328ujeiw1.ru","mobilecasinoclub.co.uk","pfhsystem.com","regtuneup.com","theprofitsmaker.net","bodogpromotions.eu","heroesreplay.org","financialsecrets.info","mymoneymakingapp.com","sunmaker.com","888casino-promotions.com","vogliosesso.com","scienceremix.com","allinonedocs.com","arabia.starzplay.com","allirishcasino.com","advancepctools.info","movie.ienjoyapps.com","surveyform001.s3-website-us-east-1.amazonaws.com","mgs188.com","pfhsystem.com","lpeva.com","ddsh8.com","theprofitsmaker.net","b2.ijquery11.com","sporthero.thewhizmarketing.com","securefastmac.tech","seen-on-screen.thewhizmarketing.com","1000spins.com","search.queryrouter.com","pfhsystem.com","reimageplus.com","offer.alibaba.com","searchlistings.org","search.queryrouter.com","search.queryrouter.com","mybinaryoptionsrobot.com","duplicashapp.com","search.queryrouter.com","bestgame.directory","droidclub.net",".rivalo.com","yoursuperprize.com","mediaexplained.com","om.elvenar.com","shinar.club","revitoleczemacream.com","freelotto.com","screenaddict.thewhizproducts.com","download.bringmesports.com/","allinonedocs.com","driver-fixer.com","arabydeal.com","cleanyourcomputertoday.com","arabydeal.com","music.mixplugin.com","1se.info","survey12.com","freesoftwaredlul.com","pldist01.com","ad.adpop-1.com","searchanonymous.net","abrst.pro","muzikfury.thewhizmarketing.com","lp.mbtrx.com","th1.forfun.maxisize-pro.com","watchmygirlfriend.gf****box.com","new.freelotto.com","desktoptrack.com","search.queryrouter.com","offer.alibaba.com","1000spins.com","promotions.coral.co.uk","search.queryrouter.com","tbsia.com","tbsia.com","multtaepyo.com","search.queryrouter.com","czechmethod.com","consumerview.co","wayretail.com","72onbase.com","funsafetab.com","search.queryrouter.com","speedyfiledownload.com","driver-fixer.com","arabydeal.com","cleanyourcomputertoday.com","arabydeal.com","music.mixplugin.com","1se.info","survey12.com","freesoftwaredlul.com","pldist01.com","ad.adpop-1.com","searchanonymous.net","abrst.pro","muzikfury.thewhizmarketing.com","lp.mbtrx.com","th1.forfun.maxisize-pro.com","watchmygirlfriend.gf****box.com","new.freelotto.com","desktoptrack.com","search.queryrouter.com","offer.alibaba.com","1000spins.com","promotions.coral.co.uk","search.queryrouter.com","tbsia.com","tbsia.com","surveyform001.s3-website-us-east-1.amazonaws.com","mgs188.com","pfhsystem.com","lpeva.com","ddsh8.com","theprofitsmaker.net","quantomcoding.com","sporthero.thewhizmarketing.com","popads.net","onclkds.com","consumerview.co","12kotov.ru","ruhotpair2.fingta.com","easytelevisionaccessnow.com","ahwrd.com","lpeva.com","ppgzf.com","zjstx.com","kituure.xyz","join.pro-gaming-world.com","mackeeperapp.mackeeper.com","tracknotify.com","2075.cdn.beyondhosting.net","idollash.com","ds.moviegoat.com","fulltab.com","rackcdn.com","prestoris.com","adsterra.com","swampssovuuhusp.top","streesusa.info","freesoftwaredlul.com","adreactor.com","a-static.com","codeonclick.com","heheme.com","adf.ly","seen-on-screen.thewhizmarketing.com","openload.co"];<br>
var pb_whitelist = ["mail.google.com","linkedin.com","www.gmail.com","www.pinterest.com","www.youtube.com","www.facebook.com","search.yahoo.com","chrome://newtab","www.food.com"];<br>
function inject() {<br>
&nbsp;&nbsp;&nbsp;&nbsp; var originalOpenWndFnKey = "originalOpenFunction";<br>
&nbsp;&nbsp;&nbsp;&nbsp; var originalWindowOpenFn = window.open;<br>
&nbsp;&nbsp;&nbsp;&nbsp; var originalCreateElementFn = document.createElement;<br>
&nbsp;&nbsp;&nbsp;&nbsp; var originalAppendChildFn = HTMLElement.prototype.appendChild;<br>
&nbsp;&nbsp;&nbsp;&nbsp; var originalCreateEventFn = document.createEvent;<br>
&nbsp;&nbsp;&nbsp;&nbsp; var windowsWithNames = {};<br>
&nbsp;&nbsp;&nbsp;&nbsp; var timeSinceCreateAElement = 0;<br>
&nbsp;&nbsp;&nbsp;&nbsp; var lastCreatedAElement = null;<br>
&nbsp;&nbsp;&nbsp;&nbsp; var fullScreenOpenTime = void 0;<br>
&nbsp;&nbsp;&nbsp;&nbsp; var winWidth = window.innerWidth;<br>
&nbsp;&nbsp;&nbsp;&nbsp; var winHeight = window.innerHeight;<br>
&nbsp;&nbsp;&nbsp;&nbsp; var abd = false;<br>
&nbsp;&nbsp;&nbsp;&nbsp; var lastBlockTime = void 0;<br>
&nbsp;&nbsp;&nbsp;&nbsp; var parentOrigin = window.location != window.parent.location ? document.referrer || window.parent.location || '*' : document.location;<br>
&nbsp;&nbsp;&nbsp;&nbsp; var parentRef = window.parent;<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp; //window[originalOpenWndFnKey] = window.open; // save the original open window as global param<br>
&nbsp;&nbsp;&nbsp;&nbsp; function newWindowOpenFn() {<br>
&nbsp;&nbsp;&nbsp;&nbsp; var openWndArguments = arguments;<br>
&nbsp;&nbsp;&nbsp;&nbsp; var useOriginalOpenWnd = true;<br>
&nbsp;&nbsp;&nbsp;&nbsp; var generatedWindow = null;<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp; function getWindowName(openWndArguments) {<br>
&nbsp;&nbsp;&nbsp;&nbsp; var windowName = openWndArguments[1];<br>
&nbsp;&nbsp;&nbsp;&nbsp; if (windowName != null &amp;&amp; !["_blank", "_parent", "_self", "_top"].includes(windowName)) {<br>
&nbsp;&nbsp;&nbsp;&nbsp; return windowName;<br>
&nbsp;&nbsp;&nbsp;&nbsp; }<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp; return null;<br>
&nbsp;&nbsp;&nbsp;&nbsp; }<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp; function copyMissingProperties(src, dest) {<br>
&nbsp;&nbsp;&nbsp;&nbsp; var prop = void 0;<br>
&nbsp;&nbsp;&nbsp;&nbsp; for (prop in src) {<br>
&nbsp;&nbsp;&nbsp;&nbsp; try {<br>
&nbsp;&nbsp;&nbsp;&nbsp; if (dest[prop] === undefined &amp;&amp; src[prop]) {<br>
&nbsp;&nbsp;&nbsp;&nbsp; dest[prop] = src[prop];<br>
&nbsp;&nbsp;&nbsp;&nbsp; }<br>
&nbsp;&nbsp;&nbsp;&nbsp; } catch (e) {}<br>
&nbsp;&nbsp;&nbsp;&nbsp; }<br>
&nbsp;&nbsp;&nbsp;&nbsp; return dest;<br>
&nbsp;&nbsp;&nbsp;&nbsp; }<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp; function isOverlayish(el) {<br>
&nbsp;&nbsp;&nbsp;&nbsp; var style = el &amp;&amp; el.style;<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp; if (style &amp;&amp; /fixed|absolute/.test(style.position) &amp;&amp; el.offsetWidth &gt;= winWidth * 0.6 &amp;&amp; el.offsetHeight &gt;= winHeight * 0.75) {<br>
&nbsp;&nbsp;&nbsp;&nbsp; return true;<br>
&nbsp;&nbsp;&nbsp;&nbsp; }<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp; return false;<br>
&nbsp;&nbsp;&nbsp;&nbsp; }<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp; var capturingElement = null; // the element who registered to the event<br>
&nbsp;&nbsp;&nbsp;&nbsp; var srcElement = null; // the clicked on element<br>
&nbsp;&nbsp;&nbsp;&nbsp; var closestParentLink = null;<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp; if (window.event != null) {<br>
&nbsp;&nbsp;&nbsp;&nbsp; capturingElement = window.event.currentTarget;<br>
&nbsp;&nbsp;&nbsp;&nbsp; srcElement = window.event.srcElement;<br>
&nbsp;&nbsp;&nbsp;&nbsp; }<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp; if (srcElement != null) {<br>
&nbsp;&nbsp;&nbsp;&nbsp; closestParentLink = srcElement.closest('a');<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp; if (closestParentLink &amp;&amp; closestParentLink.href) {<br>
&nbsp;&nbsp;&nbsp;&nbsp; openWndArguments[3] = closestParentLink.href;<br>
&nbsp;&nbsp;&nbsp;&nbsp; }<br>
&nbsp;&nbsp;&nbsp;&nbsp; }<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp; //callee will not work in ES6 or stict mode<br>
&nbsp;&nbsp;&nbsp;&nbsp; try {<br>
&nbsp;&nbsp;&nbsp;&nbsp; if (capturingElement == null) {<br>
&nbsp;&nbsp;&nbsp;&nbsp; var caller = openWndArguments.callee;<br>
&nbsp;&nbsp;&nbsp;&nbsp; while (caller.arguments != null &amp;&amp; caller.arguments.callee.caller != null) {<br>
&nbsp;&nbsp;&nbsp;&nbsp; caller = caller.arguments.callee.caller;<br>
&nbsp;&nbsp;&nbsp;&nbsp; }<br>
&nbsp;&nbsp;&nbsp;&nbsp; if (caller.arguments != null &amp;&amp; caller.arguments.length &gt; 0 &amp;&amp; caller.arguments[0].currentTarget != null) {<br>
&nbsp;&nbsp;&nbsp;&nbsp; capturingElement = caller.arguments[0].currentTarget;<br>
&nbsp;&nbsp;&nbsp;&nbsp; }<br>
&nbsp;&nbsp;&nbsp;&nbsp; }<br>
&nbsp;&nbsp;&nbsp;&nbsp; } catch (e) {}<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp; /////////////////////////////////////////////////////////////////////////////////<br>
&nbsp;&nbsp;&nbsp;&nbsp; // Blocked if a click on background element occurred (&lt;body&gt; or document)<br>
&nbsp;&nbsp;&nbsp;&nbsp; /////////////////////////////////////////////////////////////////////////////////<br>
&nbsp;&nbsp;&nbsp;&nbsp; if (capturingElement == null) {<br>
&nbsp;&nbsp;&nbsp;&nbsp; window.pbreason = 'Blocked a new window opened without any user interaction';<br>
&nbsp;&nbsp;&nbsp;&nbsp; useOriginalOpenWnd = false;<br>
&nbsp;&nbsp;&nbsp;&nbsp; } else if (capturingElement != null &amp;&amp; (capturingElement instanceof Window || parent.Window &amp;&amp; capturingElement instanceof parent.Window || capturingElement === document || capturingElement.URL != null &amp;&amp; capturingElement.body != null || capturingElement.nodeName != null &amp;&amp; (capturingElement.nodeName.toLowerCase() == "body" || capturingElement.nodeName.toLowerCase() == "document"))) {<br>
&nbsp;&nbsp;&nbsp;&nbsp; window.pbreason = "Blocked a new window opened with URL: " + openWndArguments[0] + " because it was triggered by the " + capturingElement.nodeName + " element";<br>
&nbsp;&nbsp;&nbsp;&nbsp; useOriginalOpenWnd = false;<br>
&nbsp;&nbsp;&nbsp;&nbsp; } else if (isOverlayish(capturingElement)) {<br>
&nbsp;&nbsp;&nbsp;&nbsp; window.pbreason = 'Blocked a new window opened when clicking on an element that seems to be an overlay';<br>
&nbsp;&nbsp;&nbsp;&nbsp; useOriginalOpenWnd = false;<br>
&nbsp;&nbsp;&nbsp;&nbsp; } else {<br>
&nbsp;&nbsp;&nbsp;&nbsp; useOriginalOpenWnd = true;<br>
&nbsp;&nbsp;&nbsp;&nbsp; }<br>
&nbsp;&nbsp;&nbsp;&nbsp; /////////////////////////////////////////////////////////////////////////////////<br>
<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp; /////////////////////////////////////////////////////////////////////////////////<br>
&nbsp;&nbsp;&nbsp;&nbsp; // Block if a full screen was just initiated while opening this url.<br>
&nbsp;&nbsp;&nbsp;&nbsp; /////////////////////////////////////////////////////////////////////////////////<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp; var fullScreenElement = document.webkitFullscreenElement || document.mozFullscreenElement || document.fullscreenElement;<br>
&nbsp;&nbsp;&nbsp;&nbsp; if (new Date().getTime() - fullScreenOpenTime &lt; 1000 || isNaN(fullScreenOpenTime) &amp;&amp; isDocumentInFullScreenMode()) {<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp; window.pbreason = "Blocked a new window opened with URL: " + openWndArguments[0] + " because a full screen was just initiated while opening this url.";<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp; /* JRA REMOVED<br>
&nbsp;&nbsp;&nbsp;&nbsp; if (window[script_params.fullScreenFnKey]) {<br>
&nbsp;&nbsp;&nbsp;&nbsp; window.clearTimeout(window[script_params.fullScreenFnKey]);<br>
&nbsp;&nbsp;&nbsp;&nbsp; }<br>
&nbsp;&nbsp;&nbsp;&nbsp; */<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp; if (document.exitFullscreen) {<br>
&nbsp;&nbsp;&nbsp;&nbsp; document.exitFullscreen();<br>
&nbsp;&nbsp;&nbsp;&nbsp; } else if (document.mozCancelFullScreen) {<br>
&nbsp;&nbsp;&nbsp;&nbsp; document.mozCancelFullScreen();<br>
&nbsp;&nbsp;&nbsp;&nbsp; } else if (document.webkitCancelFullScreen) {<br>
&nbsp;&nbsp;&nbsp;&nbsp; document.webkitCancelFullScreen();<br>
&nbsp;&nbsp;&nbsp;&nbsp; }<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp; useOriginalOpenWnd = false;<br>
&nbsp;&nbsp;&nbsp;&nbsp; }<br>
&nbsp;&nbsp;&nbsp;&nbsp; /////////////////////////////////////////////////////////////////////////////////<br>
&nbsp;&nbsp;&nbsp;&nbsp; var openUrl = openWndArguments[0];<br>
&nbsp;&nbsp;&nbsp;&nbsp; var inWhitelist = isInWhitelist(location.href);<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp; if (inWhitelist) {<br>
&nbsp;&nbsp;&nbsp;&nbsp; useOriginalOpenWnd = true;<br>
&nbsp;&nbsp;&nbsp;&nbsp; } else if (isInBlacklist(openUrl)) {<br>
&nbsp;&nbsp;&nbsp;&nbsp; useOriginalOpenWnd = false;<br>
&nbsp;&nbsp;&nbsp;&nbsp; }<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp; if (useOriginalOpenWnd == true) {<br>
&nbsp;&nbsp;&nbsp;&nbsp; generatedWindow = originalWindowOpenFn.apply(this, openWndArguments);<br>
&nbsp;&nbsp;&nbsp;&nbsp; // save the window by name, for latter use.<br>
&nbsp;&nbsp;&nbsp;&nbsp; var windowName = getWindowName(openWndArguments);<br>
&nbsp;&nbsp;&nbsp;&nbsp; if (windowName != null) {<br>
&nbsp;&nbsp;&nbsp;&nbsp; windowsWithNames[windowName] = generatedWindow;<br>
&nbsp;&nbsp;&nbsp;&nbsp; }<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp; // 2nd line of defence: allow window to open but monitor carefully...<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp; /////////////////////////////////////////////////////////////////////////////////<br>
&nbsp;&nbsp;&nbsp;&nbsp; // Kill window if a blur (remove focus) is called to that window<br>
&nbsp;&nbsp;&nbsp;&nbsp; /////////////////////////////////////////////////////////////////////////////////<br>
&nbsp;&nbsp;&nbsp;&nbsp; if (generatedWindow !== window) {<br>
&nbsp;&nbsp;&nbsp;&nbsp; var openTime = new Date().getTime();<br>
&nbsp;&nbsp;&nbsp;&nbsp; var originalWndBlurFn = generatedWindow.blur;<br>
&nbsp;&nbsp;&nbsp;&nbsp; generatedWindow.blur = function () {<br>
&nbsp;&nbsp;&nbsp;&nbsp; if (new Date().getTime() - openTime &lt; 1000 &amp;&amp; !inWhitelist /* one second */) {<br>
&nbsp;&nbsp;&nbsp;&nbsp; window.pbreason = "Blocked a new window opened with URL: " + openWndArguments[0] + " because a it was blured";<br>
&nbsp;&nbsp;&nbsp;&nbsp; generatedWindow.close();<br>
&nbsp;&nbsp;&nbsp;&nbsp; blockedWndNotification(openWndArguments);<br>
&nbsp;&nbsp;&nbsp;&nbsp; } else {<br>
&nbsp;&nbsp;&nbsp;&nbsp; originalWndBlurFn();<br>
&nbsp;&nbsp;&nbsp;&nbsp; }<br>
&nbsp;&nbsp;&nbsp;&nbsp; };<br>
&nbsp;&nbsp;&nbsp;&nbsp; }<br>
&nbsp;&nbsp;&nbsp;&nbsp; /////////////////////////////////////////////////////////////////////////////////<br>
&nbsp;&nbsp;&nbsp;&nbsp; } else {<br>
&nbsp;&nbsp;&nbsp;&nbsp; // (useOriginalOpenWnd == false)<br>
&nbsp;&nbsp;&nbsp;&nbsp; var _location = {<br>
&nbsp;&nbsp;&nbsp;&nbsp; href: openWndArguments[0]<br>
&nbsp;&nbsp;&nbsp;&nbsp; };<br>
&nbsp;&nbsp;&nbsp;&nbsp; _location.replace = function (url) {<br>
&nbsp;&nbsp;&nbsp;&nbsp; _location.href = url;<br>
&nbsp;&nbsp;&nbsp;&nbsp; };<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp; generatedWindow = {<br>
&nbsp;&nbsp;&nbsp;&nbsp; close: function close() {<br>
&nbsp;&nbsp;&nbsp;&nbsp; return true;<br>
&nbsp;&nbsp;&nbsp;&nbsp; },<br>
&nbsp;&nbsp;&nbsp;&nbsp; test: function test() {<br>
&nbsp;&nbsp;&nbsp;&nbsp; return true;<br>
&nbsp;&nbsp;&nbsp;&nbsp; },<br>
&nbsp;&nbsp;&nbsp;&nbsp; blur: function blur() {<br>
&nbsp;&nbsp;&nbsp;&nbsp; return true;<br>
&nbsp;&nbsp;&nbsp;&nbsp; },<br>
&nbsp;&nbsp;&nbsp;&nbsp; focus: function focus() {<br>
&nbsp;&nbsp;&nbsp;&nbsp; return true;<br>
&nbsp;&nbsp;&nbsp;&nbsp; },<br>
&nbsp;&nbsp;&nbsp;&nbsp; showModelessDialog: function showModelessDialog() {<br>
&nbsp;&nbsp;&nbsp;&nbsp; return true;<br>
&nbsp;&nbsp;&nbsp;&nbsp; },<br>
&nbsp;&nbsp;&nbsp;&nbsp; showModalDialog: function showModalDialog() {<br>
&nbsp;&nbsp;&nbsp;&nbsp; return true;<br>
&nbsp;&nbsp;&nbsp;&nbsp; },<br>
&nbsp;&nbsp;&nbsp;&nbsp; prompt: function prompt() {<br>
&nbsp;&nbsp;&nbsp;&nbsp; return true;<br>
&nbsp;&nbsp;&nbsp;&nbsp; },<br>
&nbsp;&nbsp;&nbsp;&nbsp; confirm: function confirm() {<br>
&nbsp;&nbsp;&nbsp;&nbsp; return true;<br>
&nbsp;&nbsp;&nbsp;&nbsp; },<br>
&nbsp;&nbsp;&nbsp;&nbsp; alert: function alert() {<br>
&nbsp;&nbsp;&nbsp;&nbsp; return true;<br>
&nbsp;&nbsp;&nbsp;&nbsp; },<br>
&nbsp;&nbsp;&nbsp;&nbsp; moveTo: function moveTo() {<br>
&nbsp;&nbsp;&nbsp;&nbsp; return true;<br>
&nbsp;&nbsp;&nbsp;&nbsp; },<br>
&nbsp;&nbsp;&nbsp;&nbsp; moveBy: function moveBy() {<br>
&nbsp;&nbsp;&nbsp;&nbsp; return true;<br>
&nbsp;&nbsp;&nbsp;&nbsp; },<br>
&nbsp;&nbsp;&nbsp;&nbsp; resizeTo: function resizeTo() {<br>
&nbsp;&nbsp;&nbsp;&nbsp; return true;<br>
&nbsp;&nbsp;&nbsp;&nbsp; },<br>
&nbsp;&nbsp;&nbsp;&nbsp; resizeBy: function resizeBy() {<br>
&nbsp;&nbsp;&nbsp;&nbsp; return true;<br>
&nbsp;&nbsp;&nbsp;&nbsp; },<br>
&nbsp;&nbsp;&nbsp;&nbsp; scrollBy: function scrollBy() {<br>
&nbsp;&nbsp;&nbsp;&nbsp; return true;<br>
&nbsp;&nbsp;&nbsp;&nbsp; },<br>
&nbsp;&nbsp;&nbsp;&nbsp; scrollTo: function scrollTo() {<br>
&nbsp;&nbsp;&nbsp;&nbsp; return true;<br>
&nbsp;&nbsp;&nbsp;&nbsp; },<br>
&nbsp;&nbsp;&nbsp;&nbsp; getSelection: function getSelection() {<br>
&nbsp;&nbsp;&nbsp;&nbsp; return true;<br>
&nbsp;&nbsp;&nbsp;&nbsp; },<br>
&nbsp;&nbsp;&nbsp;&nbsp; onunload: function onunload() {<br>
&nbsp;&nbsp;&nbsp;&nbsp; return true;<br>
&nbsp;&nbsp;&nbsp;&nbsp; },<br>
&nbsp;&nbsp;&nbsp;&nbsp; print: function print() {<br>
&nbsp;&nbsp;&nbsp;&nbsp; return true;<br>
&nbsp;&nbsp;&nbsp;&nbsp; },<br>
&nbsp;&nbsp;&nbsp;&nbsp; open: function open() {<br>
&nbsp;&nbsp;&nbsp;&nbsp; return this;<br>
&nbsp;&nbsp;&nbsp;&nbsp; },<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp; opener: window,<br>
&nbsp;&nbsp;&nbsp;&nbsp; closed: false,<br>
&nbsp;&nbsp;&nbsp;&nbsp; innerHeight: 480,<br>
&nbsp;&nbsp;&nbsp;&nbsp; innerWidth: 640,<br>
&nbsp;&nbsp;&nbsp;&nbsp; name: openWndArguments[1],<br>
&nbsp;&nbsp;&nbsp;&nbsp; location: _location,<br>
&nbsp;&nbsp;&nbsp;&nbsp; document: { location: _location }<br>
&nbsp;&nbsp;&nbsp;&nbsp; };<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp; copyMissingProperties(window, generatedWindow);<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp; generatedWindow.window = generatedWindow;<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp; var _windowName = getWindowName(openWndArguments);<br>
&nbsp;&nbsp;&nbsp;&nbsp; if (_windowName != null) {<br>
&nbsp;&nbsp;&nbsp;&nbsp; try {<br>
&nbsp;&nbsp;&nbsp;&nbsp; // originalWindowOpenFn("", windowName).close();<br>
&nbsp;&nbsp;&nbsp;&nbsp; windowsWithNames[_windowName].close();<br>
&nbsp;&nbsp;&nbsp;&nbsp; } catch (err) {}<br>
&nbsp;&nbsp;&nbsp;&nbsp; }<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp; var fnGetUrl = function fnGetUrl() {<br>
&nbsp;&nbsp;&nbsp;&nbsp; var url = void 0;<br>
&nbsp;&nbsp;&nbsp;&nbsp; if (!(generatedWindow.location instanceof Object)) {<br>
&nbsp;&nbsp;&nbsp;&nbsp; url = generatedWindow.location;<br>
&nbsp;&nbsp;&nbsp;&nbsp; } else if (!(generatedWindow.document.location instanceof Object)) {<br>
&nbsp;&nbsp;&nbsp;&nbsp; url = generatedWindow.document.location;<br>
&nbsp;&nbsp;&nbsp;&nbsp; } else if (_location.href != null) {<br>
&nbsp;&nbsp;&nbsp;&nbsp; url = _location.href;<br>
&nbsp;&nbsp;&nbsp;&nbsp; } else {<br>
&nbsp;&nbsp;&nbsp;&nbsp; url = openWndArguments[0];<br>
&nbsp;&nbsp;&nbsp;&nbsp; }<br>
&nbsp;&nbsp;&nbsp;&nbsp; openWndArguments[0] = url;<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp; blockedWndNotification(openWndArguments);<br>
&nbsp;&nbsp;&nbsp;&nbsp; };<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp; //why set timeout? if anyone finds a reason for it, please write it here<br>
&nbsp;&nbsp;&nbsp;&nbsp; //in iframes it makes problems so i'm avoiding it there<br>
&nbsp;&nbsp;&nbsp;&nbsp; if (top == self) {<br>
&nbsp;&nbsp;&nbsp;&nbsp; setTimeout(fnGetUrl, 100);<br>
&nbsp;&nbsp;&nbsp;&nbsp; } else {<br>
&nbsp;&nbsp;&nbsp;&nbsp; fnGetUrl();<br>
&nbsp;&nbsp;&nbsp;&nbsp; }<br>
&nbsp;&nbsp;&nbsp;&nbsp; }<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp; return generatedWindow;<br>
&nbsp;&nbsp;&nbsp;&nbsp; }<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp; function pbWindowOpen() {<br>
&nbsp;&nbsp;&nbsp;&nbsp; try {<br>
&nbsp;&nbsp;&nbsp;&nbsp; return newWindowOpenFn.apply(this, arguments);<br>
&nbsp;&nbsp;&nbsp;&nbsp; } catch (err) {<br>
&nbsp;&nbsp;&nbsp;&nbsp; return null;<br>
&nbsp;&nbsp;&nbsp;&nbsp; }<br>
&nbsp;&nbsp;&nbsp;&nbsp; }<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp; /////////////////////////////////////////////////////////////////////////////////<br>
&nbsp;&nbsp;&nbsp;&nbsp; // Replace the window open method with Poper Blocker's<br>
&nbsp;&nbsp;&nbsp;&nbsp; /////////////////////////////////////////////////////////////////////////////////<br>
&nbsp;&nbsp;&nbsp;&nbsp; window.open = pbWindowOpen;<br>
&nbsp;&nbsp;&nbsp;&nbsp; /////////////////////////////////////////////////////////////////////////////////<br>
<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp; //////////////////////////////////////////////////////////////////////////////////////////////////////////<br>
&nbsp;&nbsp;&nbsp;&nbsp; // Monitor dynamic html element creation to prevent generating &lt;a&gt; elements with click dispatching event<br>
&nbsp;&nbsp;&nbsp;&nbsp; //////////////////////////////////////////////////////////////////////////////////////////////////////////<br>
&nbsp;&nbsp;&nbsp;&nbsp; HTMLElement.prototype.appendChild = function () {<br>
&nbsp;&nbsp;&nbsp;&nbsp; var newElement = originalAppendChildFn.apply(this, arguments);<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp; if (newElement.nodeName == 'IFRAME' &amp;&amp; newElement.contentWindow) {<br>
&nbsp;&nbsp;&nbsp;&nbsp; try {<br>
&nbsp;&nbsp;&nbsp;&nbsp; var code = "(function () {\n var pb_blacklist = " + JSON.stringify(pb_blacklist) + ";\n var pb_whitelist = " + JSON.stringify(pb_whitelist) + ";\n " + inject.toString() + ";\n inject();\n })();";<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp; var s = document.createElement('script');s.text = code;<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp; newElement.contentWindow.document.body.appendChild (s);<br>
&nbsp;&nbsp;&nbsp;&nbsp; } catch (e) {}<br>
&nbsp;&nbsp;&nbsp;&nbsp; }<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp; return newElement;<br>
&nbsp;&nbsp;&nbsp;&nbsp; };<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp; document.createElement = function () {<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp; var newElement = originalCreateElementFn.apply(document, arguments);<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp; if (arguments[0] == "a" || arguments[0] == "A") {<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp; timeSinceCreateAElement = new Date().getTime();<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp; var originalDispatchEventFn = newElement.dispatchEvent;<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp; newElement.dispatchEvent = function (event) {<br>
&nbsp;&nbsp;&nbsp;&nbsp; if (event.type != null &amp;&amp; ("" + event.type).toLocaleLowerCase() == "click") {<br>
&nbsp;&nbsp;&nbsp;&nbsp; if (!isInWhitelist(newElement.href)) {<br>
&nbsp;&nbsp;&nbsp;&nbsp; window.pbreason = "blocked due to an explicit dispatchEvent event with type 'click' on an 'a' tag";<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp; blockedWndNotification({ "0": newElement.href });<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp; return true;<br>
&nbsp;&nbsp;&nbsp;&nbsp; }<br>
&nbsp;&nbsp;&nbsp;&nbsp; }<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp; return originalDispatchEventFn.call(this, event);<br>
&nbsp;&nbsp;&nbsp;&nbsp; };<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp; lastCreatedAElement = newElement;<br>
&nbsp;&nbsp;&nbsp;&nbsp; }<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp; return newElement;<br>
&nbsp;&nbsp;&nbsp;&nbsp; };<br>
&nbsp;&nbsp;&nbsp;&nbsp; /////////////////////////////////////////////////////////////////////////////////<br>
<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp; /////////////////////////////////////////////////////////////////////////////////<br>
&nbsp;&nbsp;&nbsp;&nbsp; // Block artificial mouse click on frashly created &lt;a&gt; elements<br>
&nbsp;&nbsp;&nbsp;&nbsp; /////////////////////////////////////////////////////////////////////////////////<br>
&nbsp;&nbsp;&nbsp;&nbsp; document.createEvent = function () {<br>
&nbsp;&nbsp;&nbsp;&nbsp; try {<br>
&nbsp;&nbsp;&nbsp;&nbsp; if (arguments[0].toLowerCase().includes("mouse") &amp;&amp; new Date().getTime() - timeSinceCreateAElement &lt;= 50) {<br>
&nbsp;&nbsp;&nbsp;&nbsp; //block if the origin is not same<br>
&nbsp;&nbsp;&nbsp;&nbsp; var isSelfDomain = false;<br>
&nbsp;&nbsp;&nbsp;&nbsp; try {<br>
&nbsp;&nbsp;&nbsp;&nbsp; var openUrlDomain = new URL(lastCreatedAElement.href).hostname;<br>
&nbsp;&nbsp;&nbsp;&nbsp; var topUrl = window.location != window.parent.location ? document.referrer : document.location.href;<br>
&nbsp;&nbsp;&nbsp;&nbsp; var topDomain = new URL(topUrl).hostname;<br>
&nbsp;&nbsp;&nbsp;&nbsp; isSelfDomain = openUrlDomain == topDomain;<br>
&nbsp;&nbsp;&nbsp;&nbsp; } catch (e) {}<br>
&nbsp;&nbsp;&nbsp;&nbsp; if (lastCreatedAElement.href.trim() &amp;&amp; !isInWhitelist(lastCreatedAElement.href) &amp;&amp; !isSelfDomain) {<br>
&nbsp;&nbsp;&nbsp;&nbsp; //this makes too much false positive so we do not display the toast message<br>
&nbsp;&nbsp;&nbsp;&nbsp; window.pbreason = "Blocked because 'a' element was recently created and " + arguments[0] + " event was created shortly after";<br>
&nbsp;&nbsp;&nbsp;&nbsp; arguments[0] = lastCreatedAElement.href;<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp; blockedWndNotification({ "0": lastCreatedAElement.href });<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp; return {<br>
&nbsp;&nbsp;&nbsp;&nbsp; type: 'click',<br>
&nbsp;&nbsp;&nbsp;&nbsp; initMouseEvent: function initMouseEvent() {}<br>
&nbsp;&nbsp;&nbsp;&nbsp; };<br>
&nbsp;&nbsp;&nbsp;&nbsp; }<br>
&nbsp;&nbsp;&nbsp;&nbsp; }<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp; return originalCreateEventFn.apply(document, arguments);<br>
&nbsp;&nbsp;&nbsp;&nbsp; } catch (err) {}<br>
&nbsp;&nbsp;&nbsp;&nbsp; };<br>
&nbsp;&nbsp;&nbsp;&nbsp; /////////////////////////////////////////////////////////////////////////////////<br>
<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp; /////////////////////////////////////////////////////////////////////////////////<br>
&nbsp;&nbsp;&nbsp;&nbsp; // Monitor full screen requests<br>
&nbsp;&nbsp;&nbsp;&nbsp; /////////////////////////////////////////////////////////////////////////////////<br>
&nbsp;&nbsp;&nbsp;&nbsp; function onFullScreen(isInFullScreenMode) {<br>
&nbsp;&nbsp;&nbsp;&nbsp; if (isInFullScreenMode) {<br>
&nbsp;&nbsp;&nbsp;&nbsp; fullScreenOpenTime = new Date().getTime();<br>
&nbsp;&nbsp;&nbsp;&nbsp; } else {<br>
&nbsp;&nbsp;&nbsp;&nbsp; fullScreenOpenTime = NaN;<br>
&nbsp;&nbsp;&nbsp;&nbsp; }<br>
&nbsp;&nbsp;&nbsp;&nbsp; }<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp; /////////////////////////////////////////////////////////////////////////////////<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp; function isDocumentInFullScreenMode() {<br>
&nbsp;&nbsp;&nbsp;&nbsp; // Note that the browser fullscreen (triggered by short keys) might<br>
&nbsp;&nbsp;&nbsp;&nbsp; // be considered different from content fullscreen when expecting a boolean<br>
&nbsp;&nbsp;&nbsp;&nbsp; return document.fullScreenElement &amp;&amp; document.fullScreenElement !== null || // alternative standard methods<br>
&nbsp;&nbsp;&nbsp;&nbsp; document.mozFullscreenElement != null || document.webkitFullscreenElement != null; // current working methods<br>
&nbsp;&nbsp;&nbsp;&nbsp; }<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp; function isInWhitelist(url) {<br>
&nbsp;&nbsp;&nbsp;&nbsp; return isInList(url, pb_whitelist);<br>
&nbsp;&nbsp;&nbsp;&nbsp; }<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp; function isInBlacklist(url) {<br>
&nbsp;&nbsp;&nbsp;&nbsp; return isInList(url, pb_blacklist);<br>
&nbsp;&nbsp;&nbsp;&nbsp; }<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp; function isInList(url, list) {<br>
&nbsp;&nbsp;&nbsp;&nbsp; if (list) {<br>
&nbsp;&nbsp;&nbsp;&nbsp; return list.some(function (li) {<br>
&nbsp;&nbsp;&nbsp;&nbsp; return new RegExp("https?://(www\.|.*\.)?" + li + "+").test(url);<br>
&nbsp;&nbsp;&nbsp;&nbsp; });<br>
&nbsp;&nbsp;&nbsp;&nbsp; } else {<br>
&nbsp;&nbsp;&nbsp;&nbsp; return false;<br>
&nbsp;&nbsp;&nbsp;&nbsp; }<br>
&nbsp;&nbsp;&nbsp;&nbsp; }<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp; function blockedWndNotification(openWndArguments) {<br>
&nbsp;&nbsp;&nbsp;&nbsp; //this is to prevent a site that "stuck" on trying to open a new window to send endless calls to the extension<br>
&nbsp;&nbsp;&nbsp;&nbsp; if (!lastBlockTime || lastBlockTime &lt; Date.now() - 1000) {<br>
&nbsp;&nbsp;&nbsp;&nbsp; openWndArguments["abd"] = abd;<br>
&nbsp;&nbsp;&nbsp;&nbsp; parentRef.postMessage({ type: "blockedWindow", args: JSON.stringify(openWndArguments) }, parentOrigin);<br>
&nbsp;&nbsp;&nbsp;&nbsp; }<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp; lastBlockTime = Date.now();<br>
&nbsp;&nbsp;&nbsp;&nbsp; }<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp; //detect adblock to adjust popup blocking behavior to not collide with adblock<br>
&nbsp;&nbsp;&nbsp;&nbsp; function detectAdblock() {<br>
&nbsp;&nbsp;&nbsp;&nbsp; try {<br>
&nbsp;&nbsp;&nbsp;&nbsp; var tester = document.createElement('div');<br>
&nbsp;&nbsp;&nbsp;&nbsp; tester.innerHTML = '&amp;nbsp;';<br>
&nbsp;&nbsp;&nbsp;&nbsp; tester.className = 'adsbox';<br>
&nbsp;&nbsp;&nbsp;&nbsp; tester.style.cssText = "position:absolute;top-1000px;left:-1000px;";<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp; document.body.appendChild(tester);<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp; window.setTimeout(function () {<br>
&nbsp;&nbsp;&nbsp;&nbsp; if (tester.offsetHeight === 0) {<br>
&nbsp;&nbsp;&nbsp;&nbsp; abd = true;<br>
&nbsp;&nbsp;&nbsp;&nbsp; }<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp; tester.remove();<br>
&nbsp;&nbsp;&nbsp;&nbsp; }, 100);<br>
&nbsp;&nbsp;&nbsp;&nbsp; } catch (e) {}<br>
&nbsp;&nbsp;&nbsp;&nbsp; }<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp; function executeCommand(commandId, messageId) {<br>
&nbsp;&nbsp;&nbsp;&nbsp; if (messageId == pb_message) {<br>
&nbsp;&nbsp;&nbsp;&nbsp; switch (commandId) {<br>
&nbsp;&nbsp;&nbsp;&nbsp; case 0:<br>
&nbsp;&nbsp;&nbsp;&nbsp; //off<br>
&nbsp;&nbsp;&nbsp;&nbsp; window.open = originalWindowOpenFn;<br>
&nbsp;&nbsp;&nbsp;&nbsp; document.createElement = originalCreateElementFn;<br>
&nbsp;&nbsp;&nbsp;&nbsp; document.createEvent = originalCreateEventFn;<br>
&nbsp;&nbsp;&nbsp;&nbsp; HTMLElement.prototype.appendChild = originalAppendChildFn;<br>
&nbsp;&nbsp;&nbsp;&nbsp; break;<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp; case 1:<br>
&nbsp;&nbsp;&nbsp;&nbsp; //allow once<br>
&nbsp;&nbsp;&nbsp;&nbsp; break;<br>
&nbsp;&nbsp;&nbsp;&nbsp; }<br>
&nbsp;&nbsp;&nbsp;&nbsp; }<br>
&nbsp;&nbsp;&nbsp;&nbsp; }<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp; document.addEventListener("fullscreenchange", function () {<br>
&nbsp;&nbsp;&nbsp;&nbsp; onFullScreen(document.fullscreen);<br>
&nbsp;&nbsp;&nbsp;&nbsp; }, false);<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp; document.addEventListener("mozfullscreenchange", function () {<br>
&nbsp;&nbsp;&nbsp;&nbsp; onFullScreen(document.mozFullScreen);<br>
&nbsp;&nbsp;&nbsp;&nbsp; }, false);<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp; document.addEventListener("webkitfullscreenchange", function () {<br>
&nbsp;&nbsp;&nbsp;&nbsp; onFullScreen(document.webkitIsFullScreen);<br>
&nbsp;&nbsp;&nbsp;&nbsp; }, false);<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp; document.addEventListener('DOMContentLoaded', function () {<br>
&nbsp;&nbsp;&nbsp;&nbsp; detectAdblock();<br>
&nbsp;&nbsp;&nbsp;&nbsp; }, false);<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp; (function () {<br>
&nbsp;&nbsp;&nbsp;&nbsp; window.pbExternalCommand = function (commandId, messageId) {<br>
&nbsp;&nbsp;&nbsp;&nbsp; executeCommand(commandId, messageId);<br>
&nbsp;&nbsp;&nbsp;&nbsp; };<br>
&nbsp;&nbsp;&nbsp;&nbsp; })();<br>
&nbsp;&nbsp;&nbsp;&nbsp;};<br>
inject();<br>
})();&lt;/script&gt;<script>(function () {
var pb_blacklist = ["adrunnr","successforyu.clickfunnels.com","fmovies.se","in-365-tagen.info","5000-settimanale.com","shop.mazzugioielli.com","maxigossip.com","lp.yazizim.com","beyourxfriend.com","99tab.com","zzqrt.com","canuck-method.net","bewomenly.com","playnow.guru","datingforyou-48e1.kxcdn.com","trafficnetworkads24.com","sistemadedinerogratis.com","canuckmethodprofit.co","consumerresearchnetwork.com","securemacfix.com","zz3d3.ru","zd1.quebec-bin.com","hot-games4you.xyz","om.elvenar.com","superpccleanup.com","gomediaz.com","judithi.xyz","free.atozmanuals.com","yoursuccess.ravpage.co.il","123hop.ir","quizcliente.pw","aussiemethod.biz","hlpnowp-c.com","picbumper.com","shaneless.com","anacondamonster.com","altrk1.com","health.todaydiets.com","download.weatherblink.com","happyluketh.com","go.ameinfo.com","50kaweek.net","the****survey.com","ofsiite.ru","fulltab.com","1000spins.com","time2play-online.net","vintacars.com","welcome.pussysaga.com","free-desktop-games.com","download.televisionfanatic.com","theprofitsmaker.net","sgad.info","algocashmaster.net","sunmaker.com","topvipdreams.com","watchmygirlfriend.gf****videos.com","filesharefanatic.com","safedownloadhub.com","7awlalalam.blogspot.com","tvplusnewtab.com","trendingpatrol.com","moneymorning.com","ifileyou.com","classifiedcanada.ca","firefan.com","methode-binaire.com","letmetell.com","kenduktur.com","getafuk.com","yotraleplahnte.ru","jackpot.88beto.com","pwwysydh.com","search.queryrouter.com","v.lvztxy.com","pussysaga.com","saffamethod.com","prezzonline.com","searchprivacy.website","3d2819216eb4e1035879-7c248de0c99745406e9b749fc86ec3e4.ssl.cf1.rackcdn.c om","only2date.com","mysagagame.com","themillionaireinpjs.net","wlt.kd2244.com","quickprivacycheck.com","hotchatdate.com","autotraderbot.com","z1.zedo.com","youlucky2014.com","traffic.getmyads.com","appcloudprotected.com","safensecure.com-allsites3.xyz","newpoptab.com","static.williamhill.com","myhealthyblog.co","greatestmobideals.com","sweetclarity.com","mgid.com","securepccure.com","autopengebygger.com","am15.net","es.reimageplus.com","o2.promos-info.com","it.reimageplus.com","westsluts.com","spinandwin.com-ser.pw","reimageplus.com","vodafone.promos-info.com","vinnmatpengar.se","movie.ienjoyapps.com","love4single.com","origin.getprice.com.au","ohmydating.com","lp.want-to-win.com","yabuletchrome.ru","bamdad.net","gotositenow.com","vcrypt.pw","newtabtv.com","mon.setsu.xyz","youforgottorenewyourhosting.com","zone-telechargement.ws","land.pckeeper.software","ad.adpop-1.com","advancedpctools.com","videos.randolphcountyheraldtribune.com","web-start.org","softreadynow.installupgradenowfreshandforyou.websi te","uplod.ws","****hubcasino.com","maxbet.ro","2016prizefeed.com","thevideo.me","wantubad.com","tavanero.com","xcusmy.club","daclips.in","gaymenof****.online","jackpotcitycasino.com","italian-method.com","getsearchincognito.com","youjustwonprize.com","finanz-nachrichten.me","quizcliente.site","da.reimageplus.com","jkanime.net","britmoneymethod.com","uae.souq.com","ka.azzer.net","safensecure.xyz","8t.hootingrhejkz.online","www6.blinkx.com","wizzcaster.com","comparaison-prix.com","vodlocker.lol","fr.reimageplus.com","free.fromdoctopdf.com","userscloud.com","myprivatesearch.com","fanli90.cn","tutticodicisconto.it","mediadec.com","gogamego.thewhizproducts.com","download.weatherblink.com","free.videodownloadconverter.com","we-are-gamers.com","sesso.communityadult.net","lp.blpmovies.com","search.queryrouter.com","bbb-johannesburg.localspecific.com","lp.blpmovies.com","go.ppixelm.com","r0.ru","sesso.communityadult.net","bbb-johannesburg.localspecific.com","ppixelm.com","cyberguardianspe.info","we-are-gamers.com","loginfaster.com/new","www.alfacart.com","www.foresee.com","mobile-win.com","www.plusnetwork.com","www.amicafarmacia.com","www.ienjoyapps.com","cheapcheap.io","screenaddict.thewhizproducts.com","nova.rambler.ru","free.gamingwonderland.com","p9328ujeiw1.ru","mobilecasinoclub.co.uk","pfhsystem.com","regtuneup.com","theprofitsmaker.net","bodogpromotions.eu","heroesreplay.org","financialsecrets.info","mymoneymakingapp.com","sunmaker.com","888casino-promotions.com","vogliosesso.com","scienceremix.com","allinonedocs.com","arabia.starzplay.com","allirishcasino.com","advancepctools.info","movie.ienjoyapps.com","surveyform001.s3-website-us-east-1.amazonaws.com","mgs188.com","pfhsystem.com","lpeva.com","ddsh8.com","theprofitsmaker.net","b2.ijquery11.com","sporthero.thewhizmarketing.com","securefastmac.tech","seen-on-screen.thewhizmarketing.com","1000spins.com","search.queryrouter.com","pfhsystem.com","reimageplus.com","offer.alibaba.com","searchlistings.org","search.queryrouter.com","search.queryrouter.com","mybinaryoptionsrobot.com","duplicashapp.com","search.queryrouter.com","bestgame.directory","droidclub.net",".rivalo.com","yoursuperprize.com","mediaexplained.com","om.elvenar.com","shinar.club","revitoleczemacream.com","freelotto.com","screenaddict.thewhizproducts.com","download.bringmesports.com/","allinonedocs.com","driver-fixer.com","arabydeal.com","cleanyourcomputertoday.com","arabydeal.com","music.mixplugin.com","1se.info","survey12.com","freesoftwaredlul.com","pldist01.com","ad.adpop-1.com","searchanonymous.net","abrst.pro","muzikfury.thewhizmarketing.com","lp.mbtrx.com","th1.forfun.maxisize-pro.com","watchmygirlfriend.gf****box.com","new.freelotto.com","desktoptrack.com","search.queryrouter.com","offer.alibaba.com","1000spins.com","promotions.coral.co.uk","search.queryrouter.com","tbsia.com","tbsia.com","multtaepyo.com","search.queryrouter.com","czechmethod.com","consumerview.co","wayretail.com","72onbase.com","funsafetab.com","search.queryrouter.com","speedyfiledownload.com","driver-fixer.com","arabydeal.com","cleanyourcomputertoday.com","arabydeal.com","music.mixplugin.com","1se.info","survey12.com","freesoftwaredlul.com","pldist01.com","ad.adpop-1.com","searchanonymous.net","abrst.pro","muzikfury.thewhizmarketing.com","lp.mbtrx.com","th1.forfun.maxisize-pro.com","watchmygirlfriend.gf****box.com","new.freelotto.com","desktoptrack.com","search.queryrouter.com","offer.alibaba.com","1000spins.com","promotions.coral.co.uk","search.queryrouter.com","tbsia.com","tbsia.com","surveyform001.s3-website-us-east-1.amazonaws.com","mgs188.com","pfhsystem.com","lpeva.com","ddsh8.com","theprofitsmaker.net","quantomcoding.com","sporthero.thewhizmarketing.com","popads.net","onclkds.com","consumerview.co","12kotov.ru","ruhotpair2.fingta.com","easytelevisionaccessnow.com","ahwrd.com","lpeva.com","ppgzf.com","zjstx.com","kituure.xyz","join.pro-gaming-world.com","mackeeperapp.mackeeper.com","tracknotify.com","2075.cdn.beyondhosting.net","idollash.com","ds.moviegoat.com","fulltab.com","rackcdn.com","prestoris.com","adsterra.com","swampssovuuhusp.top","streesusa.info","freesoftwaredlul.com","adreactor.com","a-static.com","codeonclick.com","heheme.com","adf.ly","seen-on-screen.thewhizmarketing.com","openload.co"];
var pb_whitelist = ["mail.google.com","linkedin.com","www.gmail.com","www.pinterest.com","www.youtube.com","www.facebook.com","search.yahoo.com","chrome://newtab","www.food.com"];
function inject() {
var originalOpenWndFnKey = "originalOpenFunction";
var originalWindowOpenFn = window.open;
var originalCreateElementFn = document.createElement;
var originalAppendChildFn = HTMLElement.prototype.appendChild;
var originalCreateEventFn = document.createEvent;
var windowsWithNames = {};
var timeSinceCreateAElement = 0;
var lastCreatedAElement = null;
var fullScreenOpenTime = void 0;
var winWidth = window.innerWidth;
var winHeight = window.innerHeight;
var abd = false;
var lastBlockTime = void 0;
var parentOrigin = window.location != window.parent.location ? document.referrer || window.parent.location || '*' : document.location;
var parentRef = window.parent;

//window[originalOpenWndFnKey] = window.open; // save the original open window as global param
function newWindowOpenFn() {
var openWndArguments = arguments;
var useOriginalOpenWnd = true;
var generatedWindow = null;

function getWindowName(openWndArguments) {
var windowName = openWndArguments[1];
if (windowName != null && !["_blank", "_parent", "_self", "_top"].includes(windowName)) {
return windowName;
}

return null;
}

function copyMissingProperties(src, dest) {
var prop = void 0;
for (prop in src) {
try {
if (dest[prop] === undefined && src[prop]) {
dest[prop] = src[prop];
}
} catch (e) {}
}
return dest;
}

function isOverlayish(el) {
var style = el && el.style;

if (style && /fixed|absolute/.test(style.position) && el.offsetWidth >= winWidth * 0.6 && el.offsetHeight >= winHeight * 0.75) {
return true;
}

return false;
}

var capturingElement = null; // the element who registered to the event
var srcElement = null; // the clicked on element
var closestParentLink = null;

if (window.event != null) {
capturingElement = window.event.currentTarget;
srcElement = window.event.srcElement;
}

if (srcElement != null) {
closestParentLink = srcElement.closest('a');

if (closestParentLink && closestParentLink.href) {
openWndArguments[3] = closestParentLink.href;
}
}

//callee will not work in ES6 or stict mode
try {
if (capturingElement == null) {
var caller = openWndArguments.callee;
while (caller.arguments != null && caller.arguments.callee.caller != null) {
caller = caller.arguments.callee.caller;
}
if (caller.arguments != null && caller.arguments.length > 0 && caller.arguments[0].currentTarget != null) {
capturingElement = caller.arguments[0].currentTarget;
}
}
} catch (e) {}

/////////////////////////////////////////////////////////////////////////////////
// Blocked if a click on background element occurred (<body> or document)
/////////////////////////////////////////////////////////////////////////////////
if (capturingElement == null) {
window.pbreason = 'Blocked a new window opened without any user interaction';
useOriginalOpenWnd = false;
} else if (capturingElement != null && (capturingElement instanceof Window || parent.Window && capturingElement instanceof parent.Window || capturingElement === document || capturingElement.URL != null && capturingElement.body != null || capturingElement.nodeName != null && (capturingElement.nodeName.toLowerCase() == "body" || capturingElement.nodeName.toLowerCase() == "document"))) {
window.pbreason = "Blocked a new window opened with URL: " + openWndArguments[0] + " because it was triggered by the " + capturingElement.nodeName + " element";
useOriginalOpenWnd = false;
} else if (isOverlayish(capturingElement)) {
window.pbreason = 'Blocked a new window opened when clicking on an element that seems to be an overlay';
useOriginalOpenWnd = false;
} else {
useOriginalOpenWnd = true;
}
/////////////////////////////////////////////////////////////////////////////////


/////////////////////////////////////////////////////////////////////////////////
// Block if a full screen was just initiated while opening this url.
/////////////////////////////////////////////////////////////////////////////////

var fullScreenElement = document.webkitFullscreenElement || document.mozFullscreenElement || document.fullscreenElement;
if (new Date().getTime() - fullScreenOpenTime < 1000 || isNaN(fullScreenOpenTime) && isDocumentInFullScreenMode()) {

window.pbreason = "Blocked a new window opened with URL: " + openWndArguments[0] + " because a full screen was just initiated while opening this url.";

/* JRA REMOVED
if (window[script_params.fullScreenFnKey]) {
window.clearTimeout(window[script_params.fullScreenFnKey]);
}
*/

if (document.exitFullscreen) {
document.exitFullscreen();
} else if (document.mozCancelFullScreen) {
document.mozCancelFullScreen();
} else if (document.webkitCancelFullScreen) {
document.webkitCancelFullScreen();
}

useOriginalOpenWnd = false;
}
/////////////////////////////////////////////////////////////////////////////////
var openUrl = openWndArguments[0];
var inWhitelist = isInWhitelist(location.href);

if (inWhitelist) {
useOriginalOpenWnd = true;
} else if (isInBlacklist(openUrl)) {
useOriginalOpenWnd = false;
}

if (useOriginalOpenWnd == true) {
generatedWindow = originalWindowOpenFn.apply(this, openWndArguments);
// save the window by name, for latter use.
var windowName = getWindowName(openWndArguments);
if (windowName != null) {
windowsWithNames[windowName] = generatedWindow;
}

// 2nd line of defence: allow window to open but monitor carefully...

/////////////////////////////////////////////////////////////////////////////////
// Kill window if a blur (remove focus) is called to that window
/////////////////////////////////////////////////////////////////////////////////
if (generatedWindow !== window) {
var openTime = new Date().getTime();
var originalWndBlurFn = generatedWindow.blur;
generatedWindow.blur = function () {
if (new Date().getTime() - openTime < 1000 && !inWhitelist /* one second */) {
window.pbreason = "Blocked a new window opened with URL: " + openWndArguments[0] + " because a it was blured";
generatedWindow.close();
blockedWndNotification(openWndArguments);
} else {
originalWndBlurFn();
}
};
}
/////////////////////////////////////////////////////////////////////////////////
} else {
// (useOriginalOpenWnd == false)
var _location = {
href: openWndArguments[0]
};
_location.replace = function (url) {
_location.href = url;
};

generatedWindow = {
close: function close() {
return true;
},
test: function test() {
return true;
},
blur: function blur() {
return true;
},
focus: function focus() {
return true;
},
showModelessDialog: function showModelessDialog() {
return true;
},
showModalDialog: function showModalDialog() {
return true;
},
prompt: function prompt() {
return true;
},
confirm: function confirm() {
return true;
},
alert: function alert() {
return true;
},
moveTo: function moveTo() {
return true;
},
moveBy: function moveBy() {
return true;
},
resizeTo: function resizeTo() {
return true;
},
resizeBy: function resizeBy() {
return true;
},
scrollBy: function scrollBy() {
return true;
},
scrollTo: function scrollTo() {
return true;
},
getSelection: function getSelection() {
return true;
},
onunload: function onunload() {
return true;
},
print: function print() {
return true;
},
open: function open() {
return this;
},

opener: window,
closed: false,
innerHeight: 480,
innerWidth: 640,
name: openWndArguments[1],
location: _location,
document: { location: _location }
};

copyMissingProperties(window, generatedWindow);

generatedWindow.window = generatedWindow;

var _windowName = getWindowName(openWndArguments);
if (_windowName != null) {
try {
// originalWindowOpenFn("", windowName).close();
windowsWithNames[_windowName].close();
} catch (err) {}
}

var fnGetUrl = function fnGetUrl() {
var url = void 0;
if (!(generatedWindow.location instanceof Object)) {
url = generatedWindow.location;
} else if (!(generatedWindow.document.location instanceof Object)) {
url = generatedWindow.document.location;
} else if (_location.href != null) {
url = _location.href;
} else {
url = openWndArguments[0];
}
openWndArguments[0] = url;

blockedWndNotification(openWndArguments);
};

//why set timeout? if anyone finds a reason for it, please write it here
//in iframes it makes problems so i'm avoiding it there
if (top == self) {
setTimeout(fnGetUrl, 100);
} else {
fnGetUrl();
}
}

return generatedWindow;
}

function pbWindowOpen() {
try {
return newWindowOpenFn.apply(this, arguments);
} catch (err) {
return null;
}
}

/////////////////////////////////////////////////////////////////////////////////
// Replace the window open method with Poper Blocker's
/////////////////////////////////////////////////////////////////////////////////
window.open = pbWindowOpen;
/////////////////////////////////////////////////////////////////////////////////


//////////////////////////////////////////////////////////////////////////////////////////////////////////
// Monitor dynamic html element creation to prevent generating <a> elements with click dispatching event
//////////////////////////////////////////////////////////////////////////////////////////////////////////
HTMLElement.prototype.appendChild = function () {
var newElement = originalAppendChildFn.apply(this, arguments);

if (newElement.nodeName == 'IFRAME' && newElement.contentWindow) {
try {
var code = "(function () {\n var pb_blacklist = " + JSON.stringify(pb_blacklist) + ";\n var pb_whitelist = " + JSON.stringify(pb_whitelist) + ";\n " + inject.toString() + ";\n inject();\n })();";

var s = document.createElement('script');s.text = code;

newElement.contentWindow.document.body.appendChild (s);
} catch (e) {}
}

return newElement;
};

document.createElement = function () {

var newElement = originalCreateElementFn.apply(document, arguments);

if (arguments[0] == "a" || arguments[0] == "A") {

timeSinceCreateAElement = new Date().getTime();

var originalDispatchEventFn = newElement.dispatchEvent;

newElement.dispatchEvent = function (event) {
if (event.type != null && ("" + event.type).toLocaleLowerCase() == "click") {
if (!isInWhitelist(newElement.href)) {
window.pbreason = "blocked due to an explicit dispatchEvent event with type 'click' on an 'a' tag";

blockedWndNotification({ "0": newElement.href });

return true;
}
}

return originalDispatchEventFn.call(this, event);
};

lastCreatedAElement = newElement;
}

return newElement;
};
/////////////////////////////////////////////////////////////////////////////////


/////////////////////////////////////////////////////////////////////////////////
// Block artificial mouse click on frashly created <a> elements
/////////////////////////////////////////////////////////////////////////////////
document.createEvent = function () {
try {
if (arguments[0].toLowerCase().includes("mouse") && new Date().getTime() - timeSinceCreateAElement <= 50) {
//block if the origin is not same
var isSelfDomain = false;
try {
var openUrlDomain = new URL(lastCreatedAElement.href).hostname;
var topUrl = window.location != window.parent.location ? document.referrer : document.location.href;
var topDomain = new URL(topUrl).hostname;
isSelfDomain = openUrlDomain == topDomain;
} catch (e) {}
if (lastCreatedAElement.href.trim() && !isInWhitelist(lastCreatedAElement.href) && !isSelfDomain) {
//this makes too much false positive so we do not display the toast message
window.pbreason = "Blocked because 'a' element was recently created and " + arguments[0] + " event was created shortly after";
arguments[0] = lastCreatedAElement.href;

blockedWndNotification({ "0": lastCreatedAElement.href });

return {
type: 'click',
initMouseEvent: function initMouseEvent() {}
};
}
}

return originalCreateEventFn.apply(document, arguments);
} catch (err) {}
};
/////////////////////////////////////////////////////////////////////////////////


/////////////////////////////////////////////////////////////////////////////////
// Monitor full screen requests
/////////////////////////////////////////////////////////////////////////////////
function onFullScreen(isInFullScreenMode) {
if (isInFullScreenMode) {
fullScreenOpenTime = new Date().getTime();
} else {
fullScreenOpenTime = NaN;
}
}

/////////////////////////////////////////////////////////////////////////////////

function isDocumentInFullScreenMode() {
// Note that the browser fullscreen (triggered by short keys) might
// be considered different from content fullscreen when expecting a boolean
return document.fullScreenElement && document.fullScreenElement !== null || // alternative standard methods
document.mozFullscreenElement != null || document.webkitFullscreenElement != null; // current working methods
}

function isInWhitelist(url) {
return isInList(url, pb_whitelist);
}

function isInBlacklist(url) {
return isInList(url, pb_blacklist);
}

function isInList(url, list) {
if (list) {
return list.some(function (li) {
return new RegExp("https?://(www\.|.*\.)?" + li + "+").test(url);
});
} else {
return false;
}
}

function blockedWndNotification(openWndArguments) {
//this is to prevent a site that "stuck" on trying to open a new window to send endless calls to the extension
if (!lastBlockTime || lastBlockTime < Date.now() - 1000) {
openWndArguments["abd"] = abd;
parentRef.postMessage({ type: "blockedWindow", args: JSON.stringify(openWndArguments) }, parentOrigin);
}

lastBlockTime = Date.now();
}

//detect adblock to adjust popup blocking behavior to not collide with adblock
function detectAdblock() {
try {
var tester = document.createElement('div');
tester.innerHTML = '&nbsp;';
tester.className = 'adsbox';
tester.style.cssText = "position:absolute;top-1000px;left:-1000px;";

document.body.appendChild(tester);

window.setTimeout(function () {
if (tester.offsetHeight === 0) {
abd = true;
}

tester.remove();
}, 100);
} catch (e) {}
}

function executeCommand(commandId, messageId) {
if (messageId == pb_message) {
switch (commandId) {
case 0:
//off
window.open = originalWindowOpenFn;
document.createElement = originalCreateElementFn;
document.createEvent = originalCreateEventFn;
HTMLElement.prototype.appendChild = originalAppendChildFn;
break;

case 1:
//allow once
break;
}
}
}

document.addEventListener("fullscreenchange", function () {
onFullScreen(document.fullscreen);
}, false);

document.addEventListener("mozfullscreenchange", function () {
onFullScreen(document.mozFullScreen);
}, false);

document.addEventListener("webkitfullscreenchange", function () {
onFullScreen(document.webkitIsFullScreen);
}, false);

document.addEventListener('DOMContentLoaded', function () {
detectAdblock();
}, false);

(function () {
window.pbExternalCommand = function (commandId, messageId) {
executeCommand(commandId, messageId);
};
})();
};
inject();
})();</script>

Sorrow
10-02-2017, 04:13 AM
Dayum son that’s a lot of text...

cappushino
10-02-2017, 08:44 PM
why i think it wouldn t work rofl