MediaWiki:Common.js

From OGame Wiki
(Difference between revisions)
Jump to: navigation, search
(DSVGO)
m (Reverted edits by Gfadmin (talk) to last revision by Francolino)
Line 113: Line 113:
 
document.cookie = cookieText;
 
document.cookie = cookieText;
 
}
 
}
 
 
(function () {
 
 
    var rem;
 
 
function setPixel(meta, container_id) {
 
try {
 
 
    injectEvaluationId(meta);
 
 
rem = (container_id && document.getElementById(container_id))
 
? document.getElementById(container_id)
 
: document.createElement("div");
 
document.body.appendChild(rem);
 
 
var iframe = document.createElement("iframe");
 
 
iframe.style.width = '0';
 
iframe.style.height = '0';
 
iframe.style.display = 'block';
 
iframe.style.border = 'none';
 
iframe.setAttribute("frameborder", "0");
 
rem.appendChild(iframe);
 
 
var firstFormContent = "<head></head><body>" + buildForm(meta) + "</body>";
 
 
iframe.contentWindow.document.open();
 
iframe.contentWindow.document.write(firstFormContent);
 
iframe.contentWindow.document.close();
 
 
} catch (e) { }
 
}
 
 
function setSecondPixel(meta, baseFingerprint) {
 
  // inject baseFP into meta
 
  meta.fingerprint = baseFingerprint;
 
 
 
  // overwrite original location
 
  meta.location = "fp_eval";
 
 
 
  // store config id
 
  meta.fp2_config_id = 1;
 
 
  var secondFrame = document.createElement("iframe");
 
           
 
      secondFrame.style.width = '0';
 
      secondFrame.style.height = '0';
 
      secondFrame.style.display = 'block';
 
      secondFrame.style.border = 'none';
 
      secondFrame.setAttribute("frameborder", "0");
 
      rem.appendChild(secondFrame);
 
     
 
      var secondFormContent = "<head></head><body>" + buildSecondForm(meta) + "</body>";
 
     
 
      secondFrame.contentWindow.document.open();
 
      secondFrame.contentWindow.document.write(secondFormContent);
 
      secondFrame.contentWindow.document.close();
 
}
 
 
function injectEvaluationId(meta) {
 
    var uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
 
    var r = Math.random()*16|0, v = c == 'x' ? r : (r&0x3|0x8);
 
    return v.toString(16);
 
});
 
meta.fp_eval_id = uuid;
 
}
 
 
function buildForm(meta) {
 
var url = (meta.pz_debug_url !== undefined)
 
? meta.pz_debug_url
 
: 'https://pixelzirkus.gameforge.com';
 
 
var form = '';
 
form += '<script>inDapIF = true;</script>';
 
form += '<script src="' + url + '/static/js/E6gg7P33.js"></script>';
 
 
var meta_json = ''; try { meta_json = JSON.stringify(meta); } catch (e) {}
 
form += '<script>var meta_json = \'' + meta_json + '\';</script>';
 
form += '<script>var meta = {}; try { meta = JSON.parse(meta_json); } catch (e) {}</script>';
 
 
form += '<form id="gf_pz_form" action="' + url + '/do/simple" method="POST" accept-charset="UTF-8">';
 
 
var key, value;
 
for (key in meta) {
 
if (key.indexOf('pz_debug') !== -1) {
 
continue;
 
}
 
 
value = meta[key];
 
value = value + "";
 
value = value.replace(/"/g, "");
 
form += '<input type="hidden" name="' + key + '" value="' + value + '" />';
 
}
 
 
if (!meta.page) {
 
form += '<input type="hidden" name="page" value="' + window.location + '" />';
 
}
 
if (!meta.referrer) {
 
form += '<input type="hidden" name="referrer" value="' + document.referrer + '" />';
 
}
 
 
form += '</form>';
 
form += '<script>';
 
form += 'var input_fp = document.createElement("input"); input_fp.type = "hidden"; input_fp.name = "fingerprint"; input_fp.value = "unknown"; document.getElementById("gf_pz_form").appendChild(input_fp);';
 
form += 'var input_fp_exec = document.createElement("input"); input_fp_exec.type = "hidden"; input_fp_exec.name = "fp_exec_time"; input_fp_exec.value = -1; document.getElementById("gf_pz_form").appendChild(input_fp_exec);';
 
form += 'try {';
 
form += '    var startTime = window.performance.now();';
 
form += '    var fp = new Fingerprint().get();';
 
form += '    var exec_time = window.performance.now() - startTime;';
 
form += '    input_fp.value = fp;';
 
        form += '    input_fp_exec.value = exec_time.toFixed(2);';
 
        form += '    parent.window.setSecondPixel(meta, fp);';
 
form += '} catch (e) {}';
 
form += 'document.getElementById("gf_pz_form").submit();';
 
form += '</script>';
 
 
return form;
 
}
 
 
    function buildSecondForm(meta) {
 
        var url = (meta.pz_debug_url !== undefined)
 
            ? meta.pz_debug_url
 
            : 'https://pixelzirkus.gameforge.com';
 
       
 
        var form = '';
 
        form += '<script>inDapIF = true;</script>';
 
        form += '<script src="' + url + '/static/js/GT7h68ox.js"></script>';
 
        form += '<form id="gf_pz_form" action="' + url + '/do/simple" method="POST" accept-charset="UTF-8">';
 
   
 
        var key, value;
 
        for (key in meta) {
 
            if (key.indexOf('pz_debug') !== -1) {
 
                continue;
 
            }
 
           
 
            value = meta[key];
 
            value = value + "";
 
            value = value.replace(/"/g, "");
 
            form += '<input type="hidden" name="' + key + '" value="' + value + '" />';
 
        }
 
   
 
        if (!meta.page) {
 
            form += '<input type="hidden" name="page" value="' + window.location + '" />';
 
        }
 
        if (!meta.referrer) {
 
            form += '<input type="hidden" name="referrer" value="' + document.referrer + '" />';
 
        }
 
       
 
        form += '</form>';
 
        form += '<script>';
 
        form += 'var input_fp = document.createElement("input"); input_fp.type = "hidden"; input_fp.name = "fp2_value"; document.getElementById("gf_pz_form").appendChild(input_fp);';
 
        form += 'var input_fp_exec = document.createElement("input"); input_fp_exec.type = "hidden"; input_fp_exec.name = "fp2_exec_time"; document.getElementById("gf_pz_form").appendChild(input_fp_exec);';
 
        form += 'try {';
 
        form += '    var startTime = window.performance.now();';
 
        form += '    new Fingerprint2().get(function(fingerprint) {';
 
        form += '        input_fp.value = fingerprint;';
 
        form += '        var exec_time = window.performance.now() - startTime;';
 
        form += '        input_fp_exec.value = exec_time.toFixed(2);';
 
        form += '        document.getElementById("gf_pz_form").submit();';
 
        form += '    })';
 
        form += '} catch (e) {}';
 
        form += '</script>';
 
   
 
        return form;
 
    }
 
   
 
    function capturePixel(meta) {
 
        if (!meta.page) {
 
            meta.page = window.location.href;
 
        }
 
       
 
        if (!meta.referrer) {
 
            meta.referrer = document.referrer;
 
        }
 
     
 
        return meta;
 
    }
 
   
 
    function firePixels(meta, container_id) {
 
        try {
 
            var container = (container_id !== undefined && document.getElementById(container_id))
 
                ? document.getElementById(container_id)
 
                : document.createElement("div");
 
   
 
            var iframe = document.createElement("iframe");
 
           
 
            iframe.style.width = '0';
 
            iframe.style.height = '0';
 
            iframe.style.display = 'block';
 
            iframe.style.border = 'none';
 
            iframe.setAttribute("frameborder", "0");
 
            document.body.appendChild(container);
 
            container.appendChild(iframe);
 
     
 
            iframe.contentWindow.document.open();
 
            iframe.contentWindow.document.write("<head></head><body>" + buildMultiForm(meta) + "</body>");
 
            iframe.contentWindow.document.close();
 
     
 
            if (window.location.search.indexOf("pz_debug") !== -1) {
 
                window.pz_debug = meta;
 
            }
 
        } catch (e) {}
 
    }
 
   
 
    function buildMultiForm(meta) {
 
        var url = 'https://pixelzirkus.gameforge.com';
 
       
 
        var form;
 
        form  = '<script src="' + url + '/static/js/E6gg7P33.js"></script>';
 
        form += '<form id="gf_pz_form" action="' + url + '/do/multi" method="POST" accept-charset="UTF-8">';
 
   
 
        form += '<input type="hidden" name="pixels" value="' + escapeHtml(JSON.stringify(meta)) + '" />';
 
       
 
        form += '</form>';
 
        form += '<script>';
 
        form += 'var input_fp = document.createElement("input"); input_fp.type = "hidden"; input_fp.name = "fingerprint"; input_fp.value = "unknown"; document.getElementById("gf_pz_form").appendChild(input_fp); ';
 
        form += 'try {';
 
        form += '    input_fp.value = new Fingerprint().get();';
 
        form += '} catch (e) {} ';
 
        form += 'document.getElementById("gf_pz_form").submit();';
 
        form += '</script>';
 
   
 
        return form;
 
    }
 
 
    function escapeHtml(unsafe) {
 
        return unsafe
 
            .replace(/&/g, "&amp;")
 
            .replace(/</g, "&lt;")
 
            .replace(/>/g, "&gt;")
 
            .replace(/"/g, "&quot;")
 
            .replace(/'/g, "&#039;");
 
    }
 
 
window.setPixel = setPixel;
 
window.setSecondPixel = setSecondPixel;
 
 
window.capturePixel = capturePixel;
 
    window.firePixels = firePixels;
 
})();
 
 
var script = document.createElement("script"); // Make a script DOM node
 
script.src = 'https://gf1.geo.gfsrv.net/static/cookie-banner/2018052311/cookiebanner.js'; // must be the url where the cookiebanner.js is located
 
document.head.appendChild(script); // Add it to the end of the head section of the page (could change 'head' to 'body' to add it to the end of the body section instead
 

Revision as of 10:01, 14 August 2018

/* Any JavaScript here will be loaded for all users on every page load. */

//*** Dynamic Navigation Bars

// set up the words in your language
var NavigationBarHide = 'Hide';
var NavigationBarShow = 'Show';
 
// set up max count of Navigation Bars on page,
// if there are more, all will be hidden
// NavigationBarShowDefault = 0; // all bars will be hidden
// NavigationBarShowDefault = 1; // on pages with more than 1 bar all bars will be hidden
if (typeof NavigationBarShowDefault == 'undefined' ) {
    var NavigationBarShowDefault = 0;
}
 
// adds show/hide-button to navigation bars
addOnloadHook(function() {
	// shows and hides content and picture (if available) of navigation bars
	// Parameters:
	//     indexNavigationBar: the index of navigation bar to be toggled
	function toggleNavigationBar(NavToggle, NavFrame)
	{
	   if (!NavFrame || !NavToggle) {
		   return false;
	   }
 
	   // if shown now
	   if (NavToggle.firstChild.data == NavigationBarHide) {
		   for (
				   var NavChild = NavFrame.firstChild;
				   NavChild != null;
				   NavChild = NavChild.nextSibling
			   ) {
			   if (NavChild.className == 'NavContent') {
				   NavChild.style.display = 'none';
			   }
			   if (NavChild.className == 'NavToggle') {
				   NavChild.firstChild.data = NavigationBarShow;
			   }
		   }
		   setCookie("NavFrame", "false");
	   // if hidden now
	   } else if (NavToggle.firstChild.data == NavigationBarShow) {
		   for (
				   var NavChild = NavFrame.firstChild;
				   NavChild != null;
				   NavChild = NavChild.nextSibling
			   ) {
			   if (NavChild.className == 'NavContent') {
				   NavChild.style.display = 'block';
			   }
			   if (NavChild.className == 'NavToggle') {
				   NavChild.firstChild.data = NavigationBarHide;
			   }
		   }
		   setCookie("NavFrame", "true");
	   }
	}
 
	function toggleNavigationBarFunction(NavToggle, NavFrame) {
		return function() {
			toggleNavigationBar(NavToggle, NavFrame);
			return false;
		};
	}
	// iterate over all NavFrames
	var content	= document.getElementById("content") || document.getElementById("mw_content");
	var NavFrames = getElementsByClassName(content, "div", "NavFrame");
	// if more Navigation Bars found and not template namespace than Default: hide all
	var initiallyToggle	= NavigationBarShowDefault < NavFrames.length && wgNamespaceNumber != 10;
	for (var i=0;  i<NavFrames.length; i++) {
		var NavFrame = NavFrames[i];
		var NavToggle = document.createElement("a");
		NavToggle.className = 'NavToggle';
		NavToggle.setAttribute('href', '#');
 
		var NavToggleText = document.createTextNode(NavigationBarHide);
		NavToggle.appendChild(NavToggleText);
 
		// add NavToggle-Button as first div-element
		// in < div class="NavFrame" >
		NavFrame.insertBefore(NavToggle, NavFrame.firstChild);
 
		NavToggle.onclick = toggleNavigationBarFunction(NavToggle, NavFrame);
		var NavHead = getElementsByClassName(NavFrame, "div", "NavHead");
		NavHead[0].onclick = NavToggle.onclick;

		if ((initiallyToggle) && (getCookie("NavFrame")!="true")) {
			toggleNavigationBar(NavToggle, NavFrame);
		}
	}
});

function getCookie(name)
{
	var value = null;
	if(document.cookie)
	{
		var arr = document.cookie.split((escape(name) + '=')); 
		if(2 <= arr.length)
		{
			var arr2 = arr[1].split(';');
			value  = unescape(arr2[0]);
		}
	}
	return value;
}

function setCookie(name, value)
{
	var cookieText = escape(name) + '=' + escape(value);
	document.cookie = cookieText;
}
Personal tools
Namespaces

Variants
Actions