leak joker

This commit is contained in:
Astro 2011-10-15 16:56:00 +02:00
parent 8bd2327f11
commit 08d06adcd4
67 changed files with 16768 additions and 0 deletions

View File

@ -75,6 +75,7 @@
<img src="irc.png" class="irc">
<img src="fwd.png" class="fwd">
<img src="morse.png" class="morse">
<img src="leak.png" class="leak">
</dd>
<dt class="p1"></dt>
<dd class="p1">
@ -84,6 +85,7 @@
<img src="irc.png" class="irc">
<img src="fwd.png" class="fwd">
<img src="morse.png" class="morse">
<img src="leak.png" class="leak">
</dd>
<dt class="p2"></dt>
<dd class="p2">
@ -93,6 +95,7 @@
<img src="irc.png" class="irc">
<img src="fwd.png" class="fwd">
<img src="morse.png" class="morse">
<img src="leak.png" class="leak">
</dd>
<dt class="p3"></dt>
<dd class="p3">
@ -102,6 +105,7 @@
<img src="irc.png" class="irc">
<img src="fwd.png" class="fwd">
<img src="morse.png" class="morse">
<img src="leak.png" class="leak">
</dd>
<dt class="p4"></dt>
<dd class="p4">
@ -111,6 +115,7 @@
<img src="irc.png" class="irc">
<img src="fwd.png" class="fwd">
<img src="morse.png" class="morse">
<img src="leak.png" class="leak">
</dd>
</dl>
</div>

BIN
leak.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 563 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 505 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 372 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 515 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 351 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 544 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 153 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.6 KiB

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,641 @@
//********************************************************************
//
// Copyright (c) 2008 MindLab GmbH
// All rights reserved.
//
//====================================================================
//
// Project : Spiegel Online
// Filename : nm_tr_remote.js
//
//====================================================================
//
/**
* @file
* This script can be used to implement a pixeltracking on your website
*
* @author $Felix Engemann$
* @version $0.0.1$
* @date $31.08.2006$
*@listofchanges cha adaption for postbank help-div 2007/09/07
*@listofchanges cha adaption for postbank clientStat tracking Pixelhelp-div 2007/11/13
*@listofchanges cha adaption for postbank clientStat tracking Pixelhelp-div 2007/11/16
*@listofchanges asc generalisation for netmind 4.0 release 2007/12/10
*@listofchanges uha Anpassung Spon, kein Tracking JS, da Tracker Cookie genutzt wird
*/
//
//********************************************************************
//********************************************************************
//config Object
//********************************************************************
function cConfigPixel()
{
//-----------------------------------------------------
// members
//-----------------------------------------------------
//set to true, if you want to get the params automatically
this.m_bAutoparams = true;
//set to true, if you want to send the pixel automatically
this.m_bAutosend = true;
//The protocol to use for getting the pixel, could be either http
//or https
this.m_strPixelProtocol = location.href.substr(0, location.href.indexOf(":"));
//the servername to get the pixel from (no protocol here, and
//no path here), you can append a port or prepend an authendication
//like: user:passwort@myserver.mydomain.com:12345
//where "user:password@" is the authentication
// "myserver.mydomain.com" is the fully qualified servername
// ":12345" is a port-Number
this.m_strPixelServer = (this.m_strPixelProtocol == "https" ? "count.spiegel.de" : "c.spiegel.de");
//the path to request from the given server, this path could of
//course include CGI-Parameters
//example: "/mywebbug?thisismyparameter=value"
this.m_strPixelPath = "/nm_trck.gif";
//Send Url by default
this.m_bSendUrl = true;
//Send Referrer by default
this.m_bSendReferrer = true;
//Send MetaTags by default
this.m_bSendMetaTags = true;
//Send Browser Setting, Screen Infos etc.
this.m_bSendTech = false;
//Send Browser Setting, Screen Infos etc.
this.m_bSendUrlHash = true;
//--------------------------------------------------------
// metatags to be parsed
//--------------------------------------------------------
this.m_aMetatag = new Array(
"sp.*"
);
//--------------------------------------------------------
// Hasht parameter to be parsed
//--------------------------------------------------------
this.m_aHashParameter = new Array(
"ref",
"from"
);
} // end class cConfigPixel
//==========================================================
// getAutoParams
//==========================================================
function config_getSendUrlHash () {
return this.m_bSendUrlHash;
}
//==========================================================
// getAutoParams
//==========================================================
function config_getAutoParams () {
return this.m_bAutoparams;
}
//==========================================================
// getAutoSend
//==========================================================
function config_getAutoSend () {
return this.m_bAutosend;
}
//==========================================================
// getPixelUrl
//==========================================================
function config_getPixelUrl () {
return this.m_strPixelProtocol+"://"+this.m_strPixelServer + this.m_strPixelPath;
}
//==========================================================
// getSendUrl
//==========================================================
function config_getSendUrl () {
return this.m_bSendUrl;
}
//==========================================================
// getSendReferrer
//==========================================================
function config_getSendReferrer () {
return this.m_bSendReferrer;
}
//==========================================================
// getSendMetatags
//==========================================================
function config_getSendMetatags () {
return this.m_bSendMetaTags;
}
//==========================================================
// getSendTech
//==========================================================
function config_getSendTech () {
return this.m_bSendTech;
}
//==========================================================
//Definition of Prototypes
//==========================================================
//methoden zur Klasse hinzufuegen
cConfigPixel.prototype.getAutoParams = config_getAutoParams;
cConfigPixel.prototype.getAutoSend = config_getAutoSend;
cConfigPixel.prototype.getPixelUrl = config_getPixelUrl;
cConfigPixel.prototype.getSendUrl = config_getSendUrl;
cConfigPixel.prototype.getSendUrlHash = config_getSendUrlHash;
cConfigPixel.prototype.getSendReferrer = config_getSendReferrer;
cConfigPixel.prototype.getSendMetatags = config_getSendMetatags;
cConfigPixel.prototype.getSendTech = config_getSendTech;
//********************************************************************
//Pixel-Object
//********************************************************************
//Contstructor for Pixel-Object
function cRemotePixel(oConfig)
{
//-----------------------------------------------------
// members
//-----------------------------------------------------
//pixel object constructor
//this.m_oImage = new Image();
this.m_arParameterList = new Array();
this.m_nParameterCount = 0;
this.m_strPixelURL = oConfig.getPixelUrl();
//Configuration
this.m_oConfig = oConfig;
this.hasMetatagParams = false;
}//end function cRemotePixel()
//==========================================================
//methode fuer Objekt Pixel: Fuegt einen Parameter hinzu
//==========================================================
function remotepixel_addParameter(key, value)
{
arPair = new Array(key, value);
this.m_arParameterList[this.m_nParameterCount] = arPair;
this.m_nParameterCount++;
}//end function pixel_add_parameter()
//==========================================================
//method for object Pixel: add affiliate
//==========================================================
function remotepixel_addAffiliate(name)
{
this.addParameter("affiliate", name)
}//end function remotepixel_addAffiliate(name)
//==========================================================
//method for object Pixel: add url
//==========================================================
function remotepixel_addUrl()
{
this.addParameter("url", document.URL);
}//end function remotepixel_addAffiliate(name)
//==========================================================
//method for object Pixel: add referrer
//==========================================================
function remotepixel_addReferrer()
{
this.addParameter("referrer", document.referrer);
}//end function remotepixel_addAffiliate(name)
//==========================================================
//methode fuer Objekt Pixel: senden des Pixels
//==========================================================
function remotepixel_sendData()
{
strURL = this.m_strPixelURL+"?";
for(i=0; i<this.m_arParameterList.length; i++)
{
if (i>0) strURL += "&";
strURL += escape(this.m_arParameterList[i][0])+"="+escape(this.m_arParameterList[i][1]);
}//end for(i=0; i<this.m_arParameterList.length; i++)
//now set URL on Pixel
if (this.hasMetatagParams) {
var oTrackingImg = new Image();
oTrackingImg.src = strURL;
}
}//end function remotepixel_sendData()
//==========================================================
//methode fuer Objekt Pixel: auslesen der techdaten
//==========================================================
function remotepixel_getTechData () {
//--------------------------------------------------------
// variables for general settings
//--------------------------------------------------------
var javaOK = "unknown";
var cookiesOK = "unknown";
var browsLang = "unknown";
var availheight = screen.availHeight;
var availwidth = screen.availWidth;
var colordepth = screen.colorDepth + " bit";
var height = screen.height;
var width = screen.width;
var title = document.title;
//--------------------------------------------------------
// variables for plugins
//--------------------------------------------------------
var flashPlugin = "-";
var flashVersion = "0";
var directorPlugin = "-";
var wmplayerPlugin = "-";
var realplayerPlugin= "-";
var quicktimePlugin = "-";
var adobe_svgPlugin = "-";
var adobe_pdfPlugin = "-";
var agt = navigator.userAgent.toLowerCase();
var ie = (agt.indexOf("msie") != -1);
//accept only higher than MSIE 4
//otherwise the detectIE() function would not work
if(ie) {
ie = (agt.indexOf("msie 4") == -1) && (agt.indexOf("msie 3") == -1);
}//end if(ie)
var win = ((agt.indexOf("win")!=-1) || (agt.indexOf("32bit")!=-1));
//--------------------------------------------------------
// Java and Cookies
//--------------------------------------------------------
if (navigator.javaEnabled()==true){javaOK="yes"}else{javaOK="no"}
//--------------------------------------------------------
//-- cookieEnabled only works in MSIE.
//--------------------------------------------------------
if ((navigator.cookieEnabled) && (navigator.cookieEnabled==true)) {cookiesOK="yes"} else {cookiesOK="no"}
//--------------------------------------------------------
// language
//--------------------------------------------------------
if (navigator.language)
browsLang = navigator.language;
//--------------------------------------------------------
// Plugins
//
// SVG and Quicktime are not certified Plugins and cause a warning
// in MSIE 7. Because of this fact those two plugins are not detected.
// - removed WM Player for same reason
//--------------------------------------------------------
if (ie && win) {
directorPlugin = detectIE("SWCtl.SWCtl.1");
flashPlugin = detectIE("ShockwaveFlash.ShockwaveFlash.1");
realplayerPlugin = detectIE("rmocx.RealPlayer G2 Control.1");
//wmplayerPlugin = detectIE("MediaPlayer.MediaPlayer.1");
adobe_pdfPlugin = detectIEAcrobat("Acrobat Reader");
}//end if (ie && win)
else {
nse = "";
for (var i=0;i<navigator.mimeTypes.length;i++)
nse += navigator.mimeTypes[i].type.toLowerCase();
directorPlugin = detectNS(nse, "application/x-director");
flashPlugin = detectNS(nse, "application/x-shockwave-flash");
realplayerPlugin = detectNS(nse, "audio/x-pn-realaudio-plugin");
//wmplayerPlugin = detectNS(nse, "application/x-mplayer2");
adobe_pdfPlugin = detectNS(nse, "application/pdf");
}
//save paramters into pixel
this.addParameter("nm_java", javaOK);
this.addParameter("nm_cookies", cookiesOK);
this.addParameter("nm_screen", width + "x" + height);
this.addParameter("nm_colordepth", colordepth);
this.addParameter("nm_plugin_flash", flashPlugin);
this.addParameter("nm_plugin_director", directorPlugin);
//this.addParameter("nm_plugin_wmplayer", wmplayerPlugin);
this.addParameter("nm_plugin_realplayer", realplayerPlugin);
this.addParameter("nm_plugin_acroread", adobe_pdfPlugin);
this.addParameter("nm_title", title);
}//end function pixel_getTechData ()
//==========================================================
//methode zum Auslesen der metatags
//==========================================================
function remotepixel_getMetTags () {
var aMetatag = this.m_oConfig.m_aMetatag;
//Save metatags to track into pixel-parameter-list. validation with regexp match
var strMetaTags = "";
for (var i = 0; i < document.getElementsByTagName('meta').length; i++) {
for (var j = 0; j < aMetatag.length; j++) {
var re = new RegExp(WildToReg(aMetatag[j]));
if (document.getElementsByTagName('meta')[i].getAttribute('name')) {
if ( document.getElementsByTagName('meta')[i].getAttribute('name').match(re) ) {
this.hasMetatagParams=true;
if (document.getElementsByTagName('meta')[i].getAttribute('content'))
this.addParameter(document.getElementsByTagName('meta')[i].getAttribute('name'), document.getElementsByTagName('meta')[i].getAttribute('content'));
else
this.addParameter(document.getElementsByTagName('meta')[i].getAttribute('name'), "-");
} // end if document.getElementsByTagName('meta')[i].getAttribute('name').match(re
} // end if (document.getElementsByTagName('meta')[i].getAttribute('name'))
}//end for (var j = 0; j < aMetatag.length; j++)
}//end for (var i = 0; i < document.getElementsByTagName('meta').length; i++)
}// end method remotepixel_getMetTag
//==========================================================
//methode zum Auslesen der per Hash angehängten Parameter
//==========================================================
function remotepixel_getHashParameter () {
var aParamList = this.m_oConfig.m_aHashParameter;
var strLoc=(document.location+"");
var nPos=strLoc.indexOf("#");
if (nPos != -1) {
var strHashQs=strLoc.substring(nPos+1, strLoc.length);
aParams = remotepixel_SplitParams(strHashQs);
//Save metatags to track into pixel-parameter-list. validation with regexp match
var strHashParam = "";
for (var j = 0; j < aParamList.length; j++) {
if ( aParams[aParamList[j]] ) {
this.addParameter(aParamList[j],aParams[aParamList[j]]);
} // end if( aParams[aParamList[j]] )
}//end for (var j = 0; j < aMetatag.length; j++)
} // end if nPos != -1)
}// end method remotepixel_getMetTag
//==========================================================
//remotepixel_SplitParams
//==========================================================
function remotepixel_SplitParams(params) {
var result=[];
var pairs=params.split("&");
for (var i=0; i < pairs.length; i++) {
var kv=pairs[i].split("=");
if (kv[1] && kv[1] != "")
result[kv[0]]=kv[1];
else
result[kv[0]]="-";
}
return result;
}
//==========================================================
//Definition of Prototypes
//==========================================================
//methoden zur Klasse hinzufuegen
cRemotePixel.prototype.addParameter = remotepixel_addParameter;
cRemotePixel.prototype.addAffiliate = remotepixel_addAffiliate;
cRemotePixel.prototype.addUrl = remotepixel_addUrl;
cRemotePixel.prototype.addReferrer = remotepixel_addReferrer;
cRemotePixel.prototype.sendData = remotepixel_sendData;
cRemotePixel.prototype.getTechData = remotepixel_getTechData;
cRemotePixel.prototype.getMetTags = remotepixel_getMetTags;
cRemotePixel.prototype.getHashParameter = remotepixel_getHashParameter;
//==========================================================
// Acrobat
//==========================================================
function detectIEAcrobat(name) {
var acrobat=new Object();
if (window.ActiveXObject) {
for (x=2; x<10; x++) {
try {
oAcro=eval("new ActiveXObject('PDF.PdfCtrl."+x+"');");
if (oAcro) {
return 'yes';
}
}
catch(e) {}
}
try {
oAcro4=new ActiveXObject('PDF.PdfCtrl.1');
if (oAcro4) {
return 'yes';
}
}
catch(e) {}
try {
oAcro7=new ActiveXObject('AcroPDF.PDF.1');
if (oAcro7) {
return 'yes';
}
}
catch(e) {}
}
return 'no';
}//end function detectIEAcrobat(name)
//==========================================================
// IE Plugins
//==========================================================
function detectIE(ClassID) {
try {
new ActiveXObject(ClassID);
return 'yes';
}
catch(e) {
return 'no';
}
}//end function detectIE(ClassID)
//==========================================================
// Netscape and Firefox Plugins
//==========================================================
function detectNS(strMimetypes, ClassID) {
if (strMimetypes.indexOf(ClassID) != -1)
if (navigator.mimeTypes[ClassID].enabledPlugin != null)
return 'yes';
return 'no';
}//end function detectNS(strMimetypes, ClassID)
//==========================================================
// Convert Wildcard to RegEx
//==========================================================
function WildToReg(str) {
s = "";
for (i = 0; i < str.length; i++) {
c = str.charAt(i);
switch(c) {
case '*':
s = s + ".*";
break;
case '?':
s = s + ".";
break;
case '(': case ')': case '[': case ']': case '$':
case '^': case '.': case '{': case '}': case '|':
case '\\':
s = s + "\\";
s = s + c;
break;
default:
s = s + c;
break;
}//end switch(c)
}//end for (i = 0; i < str.length; i++)
s = "^" + s + "$";
return s;
}//end function WildToReg(str)
//==========================================================
//function Pixel-Instanz anlegen
//==========================================================
function doPixelInstance(oEvent) {
oNMConfig = new cConfigPixel();
oNMRemotePixel = new cRemotePixel(oNMConfig);
//Send PartnerName as parameter?
if(oNMConfig.getAutoParams()) {
//Send Url as parameter?
if (oNMConfig.getSendUrl())
{
oNMRemotePixel.addUrl();
}//end if (SendUrl)
//Send Hash Parameter as parameter?
if (oNMConfig.getSendUrlHash())
{
oNMRemotePixel.getHashParameter();
}//end if (SendUrlHash)
//Send referrer as parameter?
if (oNMConfig.getSendReferrer())
{
oNMRemotePixel.addReferrer();
}//end if (SendReferrer)
if(oNMConfig.getSendMetatags()) {
oNMRemotePixel.getMetTags();
}
if(oNMConfig.getSendTech()) {
oNMRemotePixel.getTechData();
}
} // end autoparams
if(oNMConfig.getAutoSend()) {
oNMRemotePixel.sendData();
}
} // end function doPixelInstance
//======================================================================================
// Load Time Execution
//======================================================================================
//
// Delivered by SpOn
if( window.addEventListener ) {
//alert ("window.addEventListener");
window.addEventListener('load',doPixelInstance,false);
} else if( document.addEventListener ) {
//alert ("document.addEventListener");
document.addEventListener('load',doPixelInstance,false);
} else if (window.attachEvent) {
//alert ("window.attachEvent");
window.attachEvent('onload', doPixelInstance);
} else if (document.attachEvent) {
//alert ("document.attachEvent");
document.attachEvent('onload', doPixelInstance);
} else {
doPixelInstance("");
}
function spNm(params) {
if (typeof params == "object" ) {
oNMConfig = new cConfigPixel();
oNMRemotePixel = new cRemotePixel(oNMConfig);
if(oNMConfig.getAutoParams()) {
//Send Url as parameter?
if (oNMConfig.getSendUrl())
{
oNMRemotePixel.addUrl();
}//end if (SendUrl)
//Send Hash Parameter as parameter?
if (oNMConfig.getSendUrlHash())
{
oNMRemotePixel.getHashParameter();
}//end if (SendUrlHash)
//Send referrer as parameter?
if (oNMConfig.getSendReferrer())
{
oNMRemotePixel.addReferrer();
}//end if (SendReferrer)
for (param in params) {
if (params[param])
{
oNMRemotePixel.addParameter(param, params[param]);
}
}
if(oNMConfig.getSendTech()) {
oNMRemotePixel.getTechData();
}
} // end autoparams
strURL = oNMRemotePixel.m_strPixelURL+"?";
for(i=0; i<oNMRemotePixel.m_arParameterList.length; i++)
{
if (i>0) strURL += "&";
strURL += escape(oNMRemotePixel.m_arParameterList[i][0])+"="+escape(oNMRemotePixel.m_arParameterList[i][1]);
}
document.write("<img src='"+strURL+"' width='1' height='1' border='0'/>")
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 846 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 823 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 531 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 506 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 484 B

View File

@ -5,6 +5,7 @@ body {
text-align: center;
font-size: 200%;
font-family: sans-serif;
overflow: clip;
}
ul {
@ -166,4 +167,14 @@ ul#tiers li.done {
}
.elapsed#timer {
border-color: red;
}
.leaks {
position: relative;
z-index: 10;
margin: 0 auto;
top: 1500px;
width: 80%;
height: 7000px;
overflow: visible;
}

20
quiz.js
View File

@ -328,6 +328,23 @@ function takeJoker(activePlayer, joker) {
});
sendToBackend({ morse: morseText });
}
if (joker === 'leak') {
var iframe = $('<iframe class="leaks" src="leakjoker/SPIEGEL ONLINE - Nachrichten.html"></iframe>');
$('body').append(iframe);
iframe.load(function() {
iframe.animate({ top: "-8000px" }, 10000, function() {
iframe.remove();
});
var answers = questions[currentQuestion].answers;
for(var i = 0; i < answers.length; i++) {
if (answers[i].right) {
var h2s = iframe.contents().find('.spTopThema h2');
var h2 = h2s[Math.floor(Math.random() * h2s.length)];
$(h2).text(answers[i].text);
}
}
});
}
}
function setQuestionContents(q) {
@ -514,6 +531,9 @@ function switchToGame() {
} else if (activePlayer !== null &&
key === 'm') {
takeJoker(activePlayer, 'morse');
} else if (activePlayer !== null &&
key === 'l') {
takeJoker(activePlayer, 'leak');
}
};