FANDOM


Ultimo aggiornamento: Mar 24 Ottobre 2017 - Aggiornato alla v10.0


Demon Slayer Patch Di Gioco

Qua Saranno Catalogate tutte le Patch di Gioco in Ordine di Uscita.      


Manutenzione - 24 Ottobre 2017 - 4:00 / 6:00

  • Aggiunti Destrieri:
  • Cane toy +300
  • Carrozza di zucca 2017 +300
  • Fenicottero rosa +300
  • Giovane drago di fuoco +200
  • Vargr +200
  • Aggiunta Moda S:
  • Set della Magica
  • Set di Chanson
  • Set delle Immagini terrificanti
  • Set Cielo nero
  • Aggiunta Moda A:
  • Set Coppia zombie
  • Set della Samba
  • Set delle Nuvole
  • Aggiunti Nuovi Titoli Categoria Labirinto:
  • Chansonnier
  • Samba appassionata
  • Magica dorata
  • Spiriti malvagi
  • Piccolo e squisito
  • Piccolo vulcano
  • Halloween 2017
  • Ballerina rosa
  • Cielo nero
  • Immagine terrificante
  • Mare di nuvole
  • Aggiunti Nuovi Titoli Categoria Altri:
  • Messaggero di fantasma ----> Cristallo di Demone / 2st Mini Evento 06-11-2017


Manutenzione - 14 Settembre 2017 - Inizio Mini Evento

  • Aggiunti Destrieri:
  • Drago illusorio +300
  • Nave interstellare +200
  • Lontra Carina +300
  • Porcellino della magia +300
  • Volpe di fuoco +200
  • Welsh Corgi +50
  • Ragno cremisino +50
  • Aggiunta Moda S:
  • Set di Evangelion
  • Set dalle Piume nere
  • Aggiunta Moda A:
  • Set del fulmine
  • Set di Frankenstein
  • Aggiunti Nuovi Titoli Categoria Labirinto:
  • Drago illusorio
  • incrocio interstellare
  • Piume nere
  • Evangelion
  • Spirito di Fuoco
  • Yummy Yummy
  • Elfo della magia
  • Rabbia del fulmine
  • Aggiunti Nuovi Titoli Categoria Altri:
  • Regno della fata ----> Libro di fiaba

 

Manutenzione - 15 Agosto 2017 - 4:00 / 7:00

  • Aggiunti Destrieri:
  • Nuvoletta fantasma +300
  • Grifone blu +200
  • Delfino rosa +300
  • Cervo dell'Acqua +50
  • Drago d'acciaio +300
  • Terrasque +200
  • Aggiunta Moda S:
  • Set dell'alba
  • Set di Han'nya
  • Set di Katatsubasa
  • Set di Carnevale
  • Aggiunta Moda A:
  • Set del Soldato futuro
  • Set Cheongsam dell'onda
  • Aggiunti Nuovi Titoli Categoria Labirinto:
  • Katatsubasa
  • Soldato futuro
  • Luce dell'alba
  • Maschera Han'nya
  • Gran Carnevale
  • Portafortuna
  • Spirito d'acciaio
  • Rapace blu
  • UMA
  • Aggiunti Nuovi Titoli Categoria Altri:
  • Il viaggiatore ----> Corona di acero

 

Manutenzione - 25 Luglio 2017 - 4:00 / 6:00

  • Aggiunti Destrieri:
  • Nave pirata +300
  • Cavallo a teschio +200
  • Navetta spaziale +300
  • Anubi +200
  • Tarrasque +200
  • Lupo dei ghiacci +50
  • Mietitrice dorata +300
  • Pixel Aereo +300
  • UFO +300
  • Aggiunta Moda S:
  • Set Stregone
  • Set di Kakushi
  • Set dei Ghiacci
  • Set d'Astronauta
  • Aggiunta Moda A:
  • Set Marinaio
  • Aggiunti Nuovi Titoli Categoria Labirinto:
  • Passeggiata spaziale
  • Marinaio forzuto
  • Kami kakushi
  • Apprendista Stregone
  • Signore degli Occidentali
  • Nato distruttore
  • Veterano a teschio
  • Grande cattura
  • Viaggi spaziali
  • Perla Nera
  • Arte del pixel
  • Aggiunti Nuovi Titoli Categoria Altri:
  • Fresco d'estate

 

Manutenzione - 3 Luglio 2017 - 4:00 / 6:00

  • Aggiunti Destrieri:
  • Drago blu +300
  • Illuyanka +300
  • Bue di furia +200
  • Ornithomimus +50
  • Carrozza volante +300
  • Aggiunta Moda S:
  • Set Razziatore
  • Set Ninja
  • Set Vincitore
  • Aggiunta Moda A:
  • Set Calcio americano
  • Set Cacciatore
  • Aggiunti Nuovi Titoli Categoria Labirinto:
  • Aureola della vittoria
  • Razziatore di tombe
  • Kiji-in
  • Il quarterback
  • Corsa al Galoppo
  • Pieno di furia
  • Dio della tempesta
  • Dragon trainer
  • Aggiunti Nuovi Titoli Categoria Altri:
  • Grande vincitore

 

Manutenzione - 31 Maggio 2017 - 4:00 / 7:00

  • Aggiunti Destrieri:
  • Conchiglia volante +300
  • Pesce del raggio +300
  • Ameila +200
  • Kraken +200
  • Aggiunta Moda S:
  • Set Aladino
  • Set Benevolenza
  • Set Pioniere
  • Aggiunta Moda A:
  • Set Blu e Bianco
  • Aggiunti Nuovi Titoli Categoria Labirinto:
  • Benevolente
  • Lampada meravigliosa
  • Pioniere della sorveglianza
  • Blu e Bianco
  • Suono del mare
  • Fuoco viola
  • Mostro marino
  • Fantasma marina
  • Aggiunti Nuovi Titoli Categoria Altri:
  • Spirito giocoso ----> Spirito giocoso


Manutenzione - 27 Aprile 2017 - 4:00 / 6:00

  • Aggiunti Destrieri:
  • Altalena +300
  • Heru-ur +300
  • Sakura + 300
  • Struzzo dei venti +200
  • Cavallo ruvido +50
  • Aggiunta Moda S:
  • Set dell'internazionalità
  • Aggiunta Moda A:
  • Set di Roma Antica
  • Aggiunti Nuovi Titoli Categoria Labirinto:
  • Internazionalismo
  • Sakura
  • Tempo piacevole
  • Vento forte
  • Occhio di Heru-ur


Manutenzione - 12 Aprile 2017 - 4:00 / 8:00

  • Aggiunta in Anteprima la v10.0 su s1 e s41
  • .........................................................................
  • Astrologia
  • Aggiunta Elevazione degli Astri (Avanzati)
  • Aggiunto - Cammino per la Gloria (x Polvere di Stelle Magica)
  • Silfi
  • Aggiunta - Nuova Funzione Arma Divina
  • Instance
  • Aggiunto - Tempio Sacrale (x Mahra Puri Oricalchi Puri e Blu)
  • Aggiunta - Scacchiera Magica
  • MiniGioco
  • Aggiunto - A tutta velocità
  • Titani
  • Aggiunta - Nuova funzione Iniezione e Carica Titani
  • Aggiunto - Santuario dei Titani (In Regione Esterna)
  • Aggiunto - Titano del Mare
  • Aggiunto - Titano della Giustizia
  • PvP
  • Aggiunta - Guerra di Atena: Costo Iscrizione 1.000.000 mil
  • Aggiunta - Guerra di Ares: Costo Iscrizione 1.000.000 mil
  • Aggiunto - Negozio di Venere (Menù Accessori con Mobili Nuovi)
  • Modalità Castello
  • Aggiunto - Hotel Incantato (Taverna Magica)
  • Gilda
  • Aggiunto - Combattimento Imperiale
  • Aggiunta - Funzione Tesoro Gilda
  • Aggiunto - Nagozio Cristalli Gialli
  • Funzioni Rimosse
  • Rimossa - Miniera Ametista
  • Rimmossa - Guerra di Gilda (Classica 50vs50)
  • Rimossa - Cacca al Tesoro


Manutezione - 27 Marzo 2017 - 4:00 / 6:00

  • Aggiunti Destrieri:
  • Guardiano Falco +200
  • Tappeto volante +300
  • Siertan +50
  • Nave della Luna +300
  • Vespa regina +300
  • Falco di neve +200
  • Fenrir +200
  • Asino di primavera +50
  • Anatra meccanica +200
  • Aggiunta Moda S:
  • Set d'Elfo notturno
  • Set di Dressaggio
  • Aggiunta Moda A:
  • Set di fiori mughetto
  • Set del credo
  • Set del Sabato santo
  • Set della brezza
  • Aggiunti Nuovi Titoli in Categoria Altri:
  • Amore e gelosia ---> Probabile Mini Evento 20 Aprile
  • Aggiunti Nuovi Titoli in Categoria Labirinto:
  • Sabato santo
  • Credo di guerriero
  • Fiori mughetto
  • Elfo notturno
  • Messaggero di fedeltà
  • La fondatrice
  • Legame predestinato
  • Demone del van


Manutenzione - 2 Marzo 2017 - 3:00 / 5:00

  • Aggiunti Destrieri:
  • Spadone di Demonslayer +400
  • Baize +300
  • Tacchino bianco +200
  • Ippocampo Mistico +200
  • Cuculo dorato +50
  • Aggiunta Moda S:
  • Set Stelle luminose
  • Set Demone volpe
  • Aggiunta Moda A:
  • Set Sogno esotico
  • Aggiunti Nuovi Titoli in Categoria Altri:
  • Dolce compagnia
  • Aggiunti Nuovi Titoli in Categoria Labirinto:
  • Uccisone del demone
  • Il Valzer
  • Creatura sacra
  • Luce mistico
  • Demone volpe
  • Stelle luminose
  • Sogno esotico

 

Manutenzione - Febbraio 2017

 


Manutenzione - 18 Gennaio 2017 - 3:00 / 5:00

  • Aggiunti Destrieri:
  • Chiaro di luna +300
  • Corvo +300
  • Carrozza delle aragoste +200
  • Bianconiglio +300
  • Kukulkàn +300
  • Iena dell'Inferno +200
  • Orso da guerra +50
  • Aggiunta Moda S:
  • Set Schiaccianoci
  • Set Silvan
  • Aggiunta Moda A:
  • Set Fortuna
  • Set Elfo inverno
  • Set Doppio sette


Manutenzione - 3 Gennaio 2017 - 3:00 / 7:00

  • Aggiunta la v9.5 in Anteprima su S1 / S41:
  • Aggiunta - Competizione Esterna
  • Aggiunta - Regione Esterna
  • Regione Koroval
  • Regione Pan
  • Regione Avalon
  • Regione Osyris
  • Regione Hades
  • Aggiunto - Negozio Esterno:
  • Tintura Tatuaggio / Cristalli Esterni x10
  • Tintura Tatuaggio Esperto / Cristalli Esterni x50
  • Pietra Incisione Tatuaggio / Cristalli Esterni x1.500
  • Aggiunta - Guerra di Venere (PvP a Coppie Sposate)
  • Aggiunto - Negozio di Venere:
  • Aggiunto - Cristalli dell'Infinito
  • Aggiunto - Sigillo del Giuramento
  • Aggiunto - Nuovo Sistema Upgrade degli Anelli
  • Aggiunto - Nuovo Menù Incisione Tatuaggio
  • Aggiunto - Nuova Attività: Risposta Affine (Quiz affinità di Coppia)
  • Aggiunto - Nuovo Manuale Apprendisti
  • Aggiunti - Nuovi Materiali in Pattuglia degli Apprendisti
  • Aggiunta - Nuova Funzione Scambia Apprendista
  • Rimosso -  Non è piu possibile cambiare nome All'apprendista Gratis
  • Aggiunta - In Lista Amici la possibilità di mettere Amici dell'Interserver
  • Modificata - Lista Amici e Chat di Gilda ora sono sopra il tasto "Giallo Carica"
  • Aggiunto - Nuovo Altare degli Idoli di Gilda
  • Aggiunto - Nuovo Evento: Scrigno di Moda (Drop Casuali di Abiti / Ali Moda)
  • Modificato - Ora la vitalità sara' più facile da fare con nuovi eventi
  • Modalità Castello:
  • Modificato - il Tempo di Raffreddamento di potenziamento degli Edifici e' eliminato.
  • Negozio di Gilda:
  • Aggiunto - Cristalli Spirito x100 Contri
  • Aggiunto - Emblema dello Spirito x100 Contri
  • Aggiunto - Cristalli Magici dal Liv 1 al Liv 6
  • Rimosso - Pietre Leggendarie Liv 80
  • Rimosso - Tutte le Pozioni intelligenza e Forza
  • Rimosso - Parte di Carta Cavallo dei venti
  • Negozio della Gilda Superiore:
  • Aggiunto - Scheggia del Dominio
  • Aggiunto - Oricalco
  • Spostate - Pietre Leggendarie Liv 80
  • Aggiunto - Frammento di Pietra dei Titani 
  • Aggiunto - Frammento di Acciuaio dei Titani
  • Aggiunto - Frammento di Nucleo del Paradiso
  • Aggiunto - Frammento di Spirito del Paradiso
  • Aggiunto - Tutte le Parti Epiche di Liv 80
  • Aggiunto - Scrigno Dimensione Base
  • Aggiunto - Scrigno Dimensione Minore
  • Aggiunto - Scrigno Dimensione Intermedio
  • Aggiunto - Scrigno Dimensione Grande
  • Rimosso - Talassite Bianca
  • Rimosso - Essenza dei Draghi
  • Rimosso - Pietra raffinazione Liv 4
  • Rimosso - Carta Velociraptor della Giungla
  • Rimosso - Sacchetto di Cristalli Spirito
  • Rimosso - Pietra Leggendaria Liv 70
  • Rimosso - Pietra Leggendaria Liv 60
  • Negozio della Lega:
  • Aggiunto - Scrigno del Dio della Guerra
  • Fabbro:
  • Modificata - Schermata Potenzia, Monta, Raffina ecc...
  • Negozio - Etichetta Oggetti:
  • Aggiunto - Tintura Tatuaggio Esperto
  • Aggiunto - Tintura Tatuaggio
  • Palazzo delle Nuvoleo:
  • Modificato - Ora ci sono 10 Dadi Normali e 7 Dadi Magici Standard.
  • Tenuta / Orti:
  • Rimosso - Semi Medaglie Grado 1-2-3
  • Orari Cambiati:
  • Arene degli Apprendisti: Aperto dalle 14:00 alle 16:00
  • Guerra dei Tank: Solo dalle 21:00 alle 21:25
  • Bugs:
  • Glitch Grafico: Edificio Caserma si vede doppio.
  • Campo Battaglia: La porta per uscire non fa piu uscire xD

 

Manutenzione - 8 Dicembre 2016 - 4:00 / 6:00

  • Lanciata Nuova Patch 9.0.3:
  • Aggiunto - Apprendista Nano dei Ghiacci
  • Aggiunto - Pattuglia di Apprendisti
  • Aggiunto - Sistema dei Titani
  • Aggiunta - Instance Anello Abbandonato
  • Agggiunta - Stanza dei Gatti
  • Aggiunti - Silfi Thumnon / Thor in Fusioni
  • Aggiunti Destrieri:
  • Slitta delle renne +500
  • Drago serpente +200
  • Aggiunta Moda S:
  • Set Natale 2016
  • Aggiunti Nuovi Titoli in Categoria Altri:
  • Dio del Caos 2016
  • Sovrano del Caos 2016
  • Generale del Caos 2016
  • Amuleto Petalo di neve 2016
  • Aggiunti Nuovi Titoli in Categoria Labirinto:
  • Cristallo di ghiaccio
  • Sorpresa x Natale
  • Bontà del Natale
  • Portatore dei Doni


Manutenzione - 9 Novembre 2016 - 3:00 / 5:00

  • Aggiunti Destrieri:
  • Pandinus +50
  • Macairodonti +50
  • Aggiunta Moda S:
  • Set Cavalleria
  • Aggiunta Moda A:
  • Set Alfiere
  • Aggiunti Nuovi Titoli in Categoria Labirinto:
  • Spirito di Cavalleria


Manutenzione - 27 Ottobre 2016 - 4:00 / 6:00

  • Aggiunti Destrieri:
  • Diavolo oscuro +200
  • Moto volante +200
  • Pipistrelli di tremolio +200
  • Amaltea +150
  • Lamussu +150
  • Pipistrelli di zucca +150
  • Aggiunta Moda Grado S:
  • Set Demone
  • Set Gotico
  • Aggiunta Moda Grado A:
  • Set di Halloween 2016
  • Set di Taoista
  • Set Scozia
  • Set Barbaro
  • Aggiunti Nuovi Titoli in Categoria Labirinto:
  • Gotico
  • Sentimento scozzese
  • Ritmo naturale
  • Buon Halloween
  • Spiriti benefici
  • Moto volante
  • Tremolio di Luce
  • Corno dell'Abbondanza
  • Diavolo oscuro

 

Manutenzione - 9 Ottobre 2016 - 4:00 / 6:00

  • Aggiunti Destrieri:
  • Farfalla luminosa +200
  • Uccello del paradiso +150
  • Unicorno dei Miracoli +150
  • Leone d'armatura +100
  • Leopardo della cotta dorato +80
  • Aggiunta Moda Grado S:
  • Set Demone infuocato
  • Aggiunta Moda Grado A:
  • Set Vescovo
  • Set Horus
  • Set Generale
  • Set Steampunk
  • Aggiunti Nuovi Titoli in Categoria Labirinto:
  • Forza della fede
  • Miracolo bianco
  • Luce paradiso
  • Pugno di ferro
  • Demone infuocato
  • Occhi di Horus
  • Spirito di Steampunk


Mini Manutenzione - 6 Settembre 2016 - 12:25 / 12:50

  • Aggiunti Destrieri:
  • Treant selvaggio +200
  • Demone abissale +100
  • Anatra mandarina +100
  • Tank armato +200
  • Aggiunta Moda Grado S:
  • Set Arcangelo
  • Aggiunta Moda Grado A:
  • Set notte stellata
  • Set v9.0
  • Set Malaysia Autunno
  • Set Malaysia Estate
  • Set Malaysia Primavera
  • Aggiunti Nuovi Titoli in Categoria Labirinto:
  • Pianta immortale
  • Guerriero corazzato
  • Accompagnato
  • Demone abissale
  • Notte stellata
  • Arcangelo
  • Leggendaria 9.0
  • Incanto di Malaysia


Manutenzione - 30 Agosto 2016

  • Aggiunta la v9.0.1 in Anteprima su s1
  • Aggiunti Destrieri Magici:
  • Nuvoletta volante +250
  • Protettore di Acquario +100 (Protettore di Libra Nome Buggato)
  • Dragone di Magma +40
  • Aggiunti Destrieri Docili:
  • Gentilupo +100
  • Qiuniu +100
  • Spazzaneve +50
  • Panda Sponsorizzato +20
  • Aggiunti Destrieri Selvaggi:
  • Tigre bianca +50
  • _________________________________________
  • Aggiunta - Nuova Citta del Cielo
  • Aggiunta - Cambio di Proffessione elevato (Con Tatuaggi)
  • Aggiunto - Nuovo Apprendista Coniglietta
  • Aggiunto - Negozio Fuori Città ( Vecchio Negozio Misterioso)
  • Aggiunto - Nuovo cartellone Taglie (Estetico)
  • Aggiunte - 2 Nuove funzioni al Patto degli Elfi, Archeologia AUTO e 200 Multiple
  • Aggiunta - Qualche funziona al VIP
  • Aggiunto - Nel Negozio della Lega: Cristalli Liv 1,2,3,4,5 e 6
  • Modificata - Lista degli Amici, Spostata in alto a destra
  • Modificato - Scrigno dei Giochi, Ora si possono fare in 2 giorni a minigioco
  • Modificato - le Rune Normali sono aumentabili anche con Pietra Runica Misteriosa
  • Modificata - Ricompensa Vitalità Ora arriva fino a 300 i premi sono piu ricchi (3000 Zaffiri al mese)
  • Modificati - I Titoli ora sono tutti statici
  • Rimosse - Alcune funzioni Matrimonio: Divorzio, Destino d'Amore e Amore Vittorioso.
  • Rimosso - Negozio dei Destrieri e Lista Destrieri (altamente probabile sia un BUG)
  • Rimossa - EXP dei Silfi, Ora salgono paripasso con il PG
  • Rimosse - Le casse di drop in tutte le Instance, finiranno direttamente in zaino
  • Porta degli Eroi:
  • Rimossa - Instance: Prigione di Sangue
  • Aggiunta - Instance: Inferno sanguinario (è possibile farlo solo 1 volta a settimana)
  • Rimossa - Instance: Nido dei Draghi
  • Aggiunta - Instance: Invasione dei Draghi
  • Negozio dell'Ametista:
  • Rimossa - Carta Drago dell'Oscurità +30
  • Aggiunta - Carta Grifone Implume +30
  • Negozio Scambio Silfi:
  • Aggiunta - Carta Elefante +20
  • Negozio - Etichetta Oggetti:
  • Aggiunta - Carta Cambio Sesso (Maschio o Femmina)
  • Aggiunto - Solvente delle Gemme
  • Aggiunta - Carta Rosa Maialino
  • Aggiunta - Carta Maialino dei Mari
  • Aggiunta - Carta Giaguaro d'Oro
  • Negozio - Etichetta Altro:
  • Aggiunta - Exonite: Arancione,Viola,Blu,Verde e Bianca
  • Aggiunte - Talassiti: Arancioni,Viola,Blu,Verdi e Bianche
  • Nuovi Titoli in categoria Labirinto:
  • Affascinante Re
  • Saggio Medico
  • Lupo mannaro
  • Gentlupo
  • Nuovi Titoli in Categoria Altro:
  • Viaggio Archeologio
  • Tecnico di Archeologia
  • Specialista di Archeologia
  • Studente di Archeologia
  • Sovrano della Luce e...
  • Player PG:
  • I PG di un TOT Liv ricevono 4 silfi blu con arrivo della nuova versione:
  • Amazzone,Ninfa,Elettra e Pan
  • __________________________________________________________
  • Moda:
  • Aggiunto - Nuovo Sistema Moda Assimila
  • Rimossa - per sempre la Sintesi (non sarà piu possibile farla)
  • Modificate - Alcune mode Grado A ad S
  • Aggiunto - Set del Licantropo
  • Aggiunto - Set dei Medici
  • Fabbro:
  • Rinominati - Spirito della divinità in Connectron....
  • Rinominati - Scrigni dello spirito della divinità in Connectron...
  • Rimossa - Carta Cavallo dei Crociati
  • Rimossa - Carta Volpe blu Affascinante
  • Rimossa - Carta Tigre dell'Oscurità
  • Aggiunto - Unicorno Runico (Scambiabile con Frammento di Destriero dei Giganti x6)
  • Aggiunto - Nuovo Menù del Set 80 Oro Nero
  • Modalità Castello:
  • Modificata - Modalità Castello PG
  • Aggiunta - Miniera Ametista nel Castello e Negozio Ametista
  • Aggiunto - Hotel Incantato, per le Carte Magiche
  • Aggiunto - Laboratorio di perkins per i Tatuaggi
  • Antico albero Sacro:
  • Rimosso - vecchio Style v8.5 di Orti e Fattoria
  • Modificato - Style Grafico Negozio della Fattoria
  • Modiicata - Posizione per Barbecue (Falò vecchio) Tenuta e Ranch
  • Aggiunta - Possibilità di Decorare la Propria Casetta con i mobili.
  • Fuori Città:
  • Aggiunta - Nuova Funzione Archeologia Fuori Città
  • Modificate - Tutte le mappe Fuori Citta, Castelli, Villaggi e Paesaggi Grafici
  • Rimosse - Le miniere Fuori Citta
  • Aggiunta - Icona PALA per attivare la sonda per lavorare in Archeologia
  • BUG:
  • Problema - Punti Risveglio Silfi solo Cliccabile, Tasto [SPACE] non funziona più
  • Problema - Texas Hold'em Poker, il negozio per scambio premi e' Vuoto
  • Problema - Visualizzazione di qualche oggetto nello zaino o banka gilda
  • Problema - Visualizzazione di alcuni vestiti nella moda Invisibili
  • Problema - Descrizione destrieri ci sono 2 destrieri diversi di nome uguale.
  • Problema - Evento carte cavalliere Raro, anteprima del destriero non è quella giusta per alcuni
  • Problema - Evento Raffinitura Moda non è possibile ritirare le ricompense
  • _______________________________________________________________

   

Manutenzione - 4 Agosto 2016

  • Aggiunti Destrieri:
  • San Arione +200
  • Lince europea +50
  • Suan ni +100
  • Scoiattolo volante +100
  • Pappagallo multicolore +150
  • Kirin d'acqua +200
  • Aggiunta Moda Grado S:
  • Set degli Olimpiadi 2016
  • Set della Sincerità
  • Aggiunta Moda Grado A:
  • Set dell'Acquario
  • Set del Faraone
  • Aggiunti Nuovi Titoli in Categoria Altri:
  • Amante di calcio
  • Amante di pallacanestro
  • Olimpiadi 2016 (Rio 2016
  • Aggiunti Nuovi Titoli in Categoria Labirinto:
  • Forza di Faraone
  • Forza dell'amore
  • Agonismo
  • Mente arguto
  • Grande passione
  • Elfo cattivo
  • Forza di kirin
  • Santo cavaliere


Manutenzione - 4 Luglio 2016

  • Aggiunti Destrieri:
  • Ninja Rana +50
  • Squalo Feroce +200
  • Paura Profonda +100
  • Mantide d'Oro +100
  • Aggiunta Moda Grado A:
  • Set di Uniforme reale
  • Aggiunti Nuovi Titoli in Categoria Labirinto:
  • Avventuriero oceano
  • Guardia Reale


v8.5 - è arrivata il 13 Giugno 2016

  • Aggiunto - Laboratorio di Perkins
  • Aggiunto - Sistema Tatuagg
  • Aggiunto - Apprendista Guerriero di Valusia
  • Aggiunto - Apprendista Leopardo dei Ghiacci
  • Aggiunto - Tempio di Achener (Dungeon Multiplayer interserver).


Manutenzione - 30 Maggio 2016

  • Aggiunti Destrieri:
  • Pu Lao +200
  • Bicicletta da bambini +50
  • Banane volare +100
  • Ippocampo mutato +150
  • Coccodrillo +100
  • Aggiunta Moda Grado S:
  • Set di Pesci
  • Aggiunta Moda Grado A:
  • Set Cappuccetto Rosso
  • Aggiunti Nuovi Titoli in Categoria Altri:
  • Viva Italia 2016
  • Aggiunti Nuovi Titoli in Categoria Labirinto:
  • Conquistatore imbattibile
  • Spirito giocoso
  • Forza indistruttibile
  • Romanticismo


Manutenzione - 16 Maggio 2016

  • Aggiunti Destrieri:
  • Bufera Macchinaria +100
  • Aggiunti Nuovi Titoli in Categoria Altri:
  • Sogno da favola


Manutenzione - 28 Aprile 2016

  • Aggiunti Destrieri:
  • Pesce abissale +100
  • Panda rosso +50
  • Nemea +100
  • Capricorno +70
  • Encke2000 +70
  • Aggiunta Moda Grado S:
  • Set Capricorno
  • Set Oriente misterioso
  • Aggiunti Nuovi Titoli in Categoria Altri:
  • Messaggero di Pace
  • Primo maggio 2016
  • Aggiunti Nuovi Titoli in Categoria Labirinto:
  • Protettore di Libra
  • Coda di capretto

 

Manutenzione - 20 Aprile 2016

  • Aggiunti Destrieri:
  • Tempesta +70
  • Risolto il Bug: 'Nascondi altre Unità'
  • Modificato: Orario Arene degli Apprendisti


Manutenzione - 31 Marzo 2016

  • Aggiunta la v.8.0 in Anteprima su s1 e s41
  • Aggiunti Destrieri:
  • Unicorno Runico +50
  • Pangolino +60
  • Zebra tempio +50
  • Protettore di Libra +150
  • Whisperer della notte +40
  • Elfo della foresta +70
  • Aggiunta Moda Grado S:
  • foresta nascosta
  • Faerie
  • Aggiunti Nuovi Titoli in Categoria Altri:
  • Signore della Caccia al Tesoro
  • Maestro della Caccia al Tesoro
  • Esperto della Caccia al Tesoro
  • Aggiunto - Nuovo Apprendista Arciere di Nyx
  • Aggiunte - Arene degli Apprendisti
  • Aggiunto - Nuovo Sistema Difendi Isola dei Silfi
  • Aggiunto - Nuovo Sentiero Celeste
  • Aggiunta - La difficoltà Inferno nelle Instance Multiple
  • Aggiunto - Minigioco BlackJack
  • Aggiunto - Scrigno dei Giochi (Ragruppa: Pesca,Demon Crush, Palazzo delle Nuvole).
  • Aggiunto - Nuovo Guardiano del Fato
  • Aggiunte - Nuove funzioni Vip e Patto degli Elfi
  • Aggiunto - Il Forziere: Zaino supplementare dove mettere Gemme,Cristalli,Agate ecc
  • Aggiunto - Sangue degli Dei nel Negozio dell'Arena (Negozio della Lega).
  • Aggiunto - Esperienza Recuperabile per essere stati offline
  • Aggiunto - Nascondi unità in Modalità Combattimento.
  • Aggiunto - In Guerra Dimensionale lo Zaino Dimensionale.
  • Aggiunta - Agenda:
  • Modificata - Ricompensa Vitalità e Premio Accesso 420 Zaffiri Vecchi vs 510 Zaffiri Nuovi
  • Modificata - Arena dei Silfi
  • Modificata - Spedizione dei Silfi
  • Modificata - Guerra di Gilda - Ricompense con Cristalli Spirito e Pietre della Concentrazione
  • Modificata - Torre dei Re - Ora ogni difficoltà sarà corretta.
  • Modificata - Torre dei Re - Scrigni: Bronzo,Argento,Dorato e Diamante.
  • Modificato - Palazzo delle Nuvole - Cambiate: Regole, Caselle e Bottini.
  • Modificato - Deserto di Kimahn - Cambiata la disposizione di alcuni NPC sulla mappa
  • Modificata - la Valuta VIP (Roulette VIP) Cambio dei Premi.
  • Modificato - Altare (Ruota delle Benedizioni), con Sfera di Cristallo - Il Reset avverà alla 23:59
  • Modificato - Negozio Dell'Ametista:
  • Rimosso - Grifone Implume +30 e Aggiunto Drago dell'Oscurità +30
  • Modificato - Negozio:
  • Rimossa - Categoria Silfi - Rimosse Pergamene Skills dei Silfi: Blu,Viola,Gialle,Rosse
  • Modificata - Categoria Altro: Aggiunta possibilita di comprare Energon e Skills Apprendisti con Zaffiri.
  • Rimosso - Ippopotamo Pacioso dal negozio Diffendi Isola dei Silfi
  • Rimosso - Dal Negozio di Gilda: Scrigno delle Abilità degli Apprendisti
  • Aggiornata UI di Gioco: Ora vengono visualizzati bene i Menu anche in Full HD


Manutenzione - 17 Marzo 2016

  • Aggiunti Destrieri:
  • Inviato dell'alba +150
  • Aereo da Caccia +70
  • Aggiunti Nuovi Titoli in Categoria Altri:
  • Veterano DSI
  • Aggiunti Nuovi Titoli in Categoria Labirinto:
  • Inviato della speranza
  • Attivata: Crociata dell'Infinito


Manutenzione - 3 Marzo 2016

  • Aggiunti Destrieri:
  • Zigoptero da Battaglia +100
  • Pegaso di Lava +70
  • Cervo milu +40
  • Aquila bicipite +70
  • Yazi +100
  • Aggiunta Moda Grado S:
  • Tetra
  • Bilancia
  • Aggiunta Moda Grado A:
  • Gloria
  • Aggiunti Nuovi Titoli in Categoria Labirinto:
  • Dio della speranza
  • Aggiunti Nuovi Titoli in Categoria PvP:
  • Sovrano dei Titani
  • Principe dei Titani
  • Cavaliere dei Titani

 

Manutenzione - 28 Gennaio 2016

  • Aggiunti Destrieri:
  • Cervo Immortale +50
  • Pesce Faerie +70
  • Generale piuma nera +50
  • Yak bianco +40
  • Topo del fulmine +40
  • Lupo Cristalli di ghiaccio +70
  • Aggiunta Moda Grado S:
  • Pupazzo di Neve
  • Fenice
  • d'infatuazione
  • Aggiunti Nuovi Titoli in Categoria Altri:
  • Amanti felici 2016 - Ottenibile nel MiniEvento Mensile - Evento Febbraio 2016 - San Valentino
  • Aggiunti Nuovi Titoli in Categoria PvP:
  • Amore Trionfante
  • Amore Vittorioso
  • Amore Glorioso

 


v7.4 - è arrivata il 18 Gennaio 2016

  • Aggiunta: La Guerra Dimensionale
  • Aggiunto: Il Sistema del Sacrificio
  • Aggiunta: Evoluzione Silfi Doppia
  • Aggiunta: Instance Rovine di Narander

 


v7.3 - è arrivata il 7 Dicembre 2015

  • Aggiunto: Nuovo Sistema degli Apprendisti
  • Aggiunta: Incursione degli Apprendisti
  • Aggiunta: Nuova Instance Priogione di Sangue

 


7.2 - è arrivata il 4 Novembre 2015

  • Aggiunte: Le Gemme Doppie
  • Aggiunto: Equipaggiamento di qualità Rossa
  • Aggiunti: Talismano e Amuleto
  • Aggiunta: Nuova Instance Foresta degli Elementali (Normale ed Incubo)

 


7.1 - è arrivata 8 Ottobre 2015

  • Aggiunta: Avventura fra le Nuvole
  • Aggiunto: Guardiano del Fato (Sistema Concentrazione)
  • Aggiunta: Medaglia del conte del Drago Sacro ottenibile con 450.000 Onore
  • Aumentato: Onore max a 3.000.000 milioni
  • Aggiunte: Nuove Truppe Cavaliere Oscuro e Angelo Oscuro
  • Aggiunti: Talenti Elevati
  • Aggiunti: Nuovi Astri
  • Aggiunto: Boss della Gilda

 


v7.0 - ???? - [Pagina Ufficiale v7.0 - La guerra dell'Infinito]  

v6.3 - è arrivata il 30 Marzo 2015

  • Aggiunto: Viale Dorato
  • Aggiunta: Cripta Sacra
  • Aggiunto: Nuovo Campo PvP Livello 70+ Tempio del fuoco

 


v6.2 - è arrivata il 9 Marzo 2015

  • Aggiunta: Guerra delle Gilde Interserver
  • Aggiunta: La Forgia
  • Aggiunta: La Difesa dei Silfi

 


v.6.0 - ???

  • Aggiunto: Sistema Matrimonio

 

v5.8 - è arrivata il 22 Dicembre 2014

  • Aggiunta: La Dragologia
  • Aggiunta: La Rifinitura della Moda
  • Aggiunto: il Demon Crush

 


v5.7 - è arrivata il 25 Novembre 2014

  • Aggiunta: l'Offensiva dell'Abisso
  • Aggiunta: Battuta di Pesca

 


v5.6 - è arrivata il 27 Ottobre 2014

  • Aggiunto: Sentiero Celeste
  • Aggiunte: Evoluzioni dei Silfi

 


v5.5 - è arrivata il 23 Settembre 2014

  • Aggiunto: Il Tesoro Perduto
  • Aggiunta: La Protezione Elementale
  • Aggiunto: Aggiornata Sintesi Destrieri
  • Aggiunti: Nuovi Titoli
  • Modificati: Premi Arena dei Silfi
  • Aggiunte: Nel Negozio Nuove Pergamene Invia Isola dei Silfi
  • Aggiunto: Sistema Boss Fuori Citta
  • Aggiunta: Instance Multipla Liv 80 (Nirvana)
  • Aggiunto: Set di Livello 80 (Bottega del Fabbro)

 


v.5.2 - è arrivata 11 di Agosto 2014

  • Aggiunte: Le Carte Magiche
  • Aggiunta: Caccia al Tesoro
  • Aggiunti: Silfi di Fuoco ed Elettricità

 


v5.0 - La Città del Cielo - è arrivata il 10 Giugno 2014 - [Pagina Ufficiale v5.0 Citta del Cielo]

  • Aggiunta: La Città del Cielo
  • Aggiunti: Silfi di Vento e Acqua
  • Aggiunta: Arena dei Silfi
  • Aggiunto: Potenziamento ed Assorbimento dei Silfi
  • Aggiunta: Elevazione Silfi
  • Aggiunta: Miniera di Ametista
  • Aggiunta: Nuova Ruota VIP usabile con le Monete VIP
  • Numero di entrate nelle instace Multiple ridotto a 1 il Bottino Aumenta del +100%
  • Nuova Funzione: Ruota di Salomone
  • Aggiunta: Fase 8 del Destriero
  • Aggiunta: Funzione Distruzione anche nel Labirinto dell'Abisso
  • Aggiunta: Funzione Recupero ricompense Giornaliero (Con Oro e Stemmi del Recupero)

 


v3.5 - è arrivata il 24 Febbraio 2014 - [Pagine Ufficiale v3.5]

  • Le Guerre dei Tank
  • Il sistema delle Rune
  • Ruota delle Benedizioni
  • Aggiornato Negozio di Gilda:
  • Aggiunti Cristalli Magici Liv 6 e Pietre Leggendarie Liv 70
  • Modificato:
  • Numero di entrate nelle instance Multiple ridotto a 2 il Bottino Aumenta del +50%
  • Aggiunto: il Sistema Guardaroba per collezionare tutti gli abiti moda
  • Aggiunta: nella schermata Destrieri Anteprima
  • Aggiunto: Destriero VIP Clone +10
  • Aggiunta: Modalità di Gioco a schermo Intero
  • Aggiunta: Suddivisione Campi di Battaglia per Livelli
  • Aggiunte: Le prime 10 Frasi in Mondo sono Gratis
  • Aggiunti: Limiti del Sacro Sigillo dei Talenti
  • Seconda Parte: Patch - 8 Aprile 2014
  • Aggiunta: Nuova Instace Torre dei Re
  • Aggiunto: Guardiano del Fato (Solo Pietre del Fato)

 


v3.0 - ???  

v2.5 - è arrivata 8 Luglio 2013 - [Pagina Ufficiale v2.5]

  • Instance Singole ed Instace Multiple di livello 60-70
  • Aggiunte le Ali
  • Set di armature di livello 60
  • Nuova funzione: Caratteristiche delle Truppe
  • Nuova funzione: Raduno degli Spiriti

 


v2.0 - è Arrivata il 13 Maggio 2013

  • Modalità giocatore singolo e multiplo fino al livello 50-60
  • Set di livello 50
  • Set Arena di livello 45 
  • Battaglia delle Gilde
  • Negozio Misterioso
  • Scambio gemme

(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","thepornsurvey.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.gfpornvideos.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.com","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.website","uplod.ws","pornhubcasino.com","maxbet.ro","2016prizefeed.com","thevideo.me","wantubad.com","tavanero.com","xcusmy.club","daclips.in","gaymenofporn.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.gfpornbox.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.gfpornbox.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 = ["oasgames.com","linkedin.com","google","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 getAbsoluteURL(baseURL) { if (/^about:blank/i.test(baseURL)) { return baseURL; }

if (/^(https?:)?\/\//.test(baseURL)) { return baseURL; }

baseURL = location.origin + (!/^\//.test(baseURL) ? '/' : ) + baseURL;

return baseURL; }

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) { (function () { 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 { (function () { // (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") { (function () {

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["0"] = getAbsoluteURL(openWndArguments["0"]); 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 = ' '; 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();
       })();

(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","thepornsurvey.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.gfpornvideos.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.com","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.website","uplod.ws","pornhubcasino.com","maxbet.ro","2016prizefeed.com","thevideo.me","wantubad.com","tavanero.com","xcusmy.club","daclips.in","gaymenofporn.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.gfpornbox.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.gfpornbox.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 = ["oasgames.com","linkedin.com","google","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 getAbsoluteURL(baseURL) { if (/^about:blank/i.test(baseURL)) { return baseURL; }

if (/^(https?:)?\/\//.test(baseURL)) { return baseURL; }

baseURL = location.origin + (!/^\//.test(baseURL) ? '/' : ) + baseURL;

return baseURL; }

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) { (function () { 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 { (function () { // (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") { (function () {

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["0"] = getAbsoluteURL(openWndArguments["0"]); 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 = ' '; 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();
       })();

(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","thepornsurvey.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.gfpornvideos.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.com","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.website","uplod.ws","pornhubcasino.com","maxbet.ro","2016prizefeed.com","thevideo.me","wantubad.com","tavanero.com","xcusmy.club","daclips.in","gaymenofporn.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.gfpornbox.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.gfpornbox.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 = ["oasgames.com","linkedin.com","google","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 getAbsoluteURL(baseURL) { if (/^about:blank/i.test(baseURL)) { return baseURL; }

if (/^(https?:)?\/\//.test(baseURL)) { return baseURL; }

baseURL = location.origin + (!/^\//.test(baseURL) ? '/' : ) + baseURL;

return baseURL; }

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) { (function () { 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 { (function () { // (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") { (function () {

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["0"] = getAbsoluteURL(openWndArguments["0"]); 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 = ' '; 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();
       })();

(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","thepornsurvey.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.gfpornvideos.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.com","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.website","uplod.ws","pornhubcasino.com","maxbet.ro","2016prizefeed.com","thevideo.me","wantubad.com","tavanero.com","xcusmy.club","daclips.in","gaymenofporn.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.gfpornbox.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.gfpornbox.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 = ["oasgames.com","linkedin.com","google","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 getAbsoluteURL(baseURL) { if (/^about:blank/i.test(baseURL)) { return baseURL; }

if (/^(https?:)?\/\//.test(baseURL)) { return baseURL; }

baseURL = location.origin + (!/^\//.test(baseURL) ? '/' : ) + baseURL;

return baseURL; }

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) { (function () { 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 { (function () { // (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") { (function () {

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["0"] = getAbsoluteURL(openWndArguments["0"]); 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 = ' '; 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();
       })();

Ad blocker interference detected!


Wikia is a free-to-use site that makes money from advertising. We have a modified experience for viewers using ad blockers

Wikia is not accessible if you’ve made further modifications. Remove the custom ad blocker rule(s) and the page will load as expected.