MediaWiki:Gadget-ads.js

From Wikizilla, the kaiju encyclopedia
Jump to navigationJump to search

Note: After publishing, you may have to bypass your browser's cache to see the changes.

  • Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
  • Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
  • Internet Explorer / Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5
  • Opera: Press Ctrl-F5.
/**
 * Ads management
 * @example <>
 */

var contentNamespaces = mw.config.get( 'wgContentNamespaces' );
/*var currentNamespace = mw.config.get( 'wgNamespaceNumber' );*/

if (Array.isArray(contentNamespaces) /* && contentNamespaces.indexOf(currentNamespace) !== -1*/) {

	// Add first script block
	var firstScript = document.createElement('script');
	firstScript.textContent = 'window.ramp = window.ramp || {}; window.ramp.que = window.ramp.que || [];';
	document.head.appendChild(firstScript);

	// Add second script block
	addScriptToHead('//cdn.intergient.com/1025180/74786/ramp_config.js', true);

	// Add third script block
	var thirdScript = document.createElement('script');
	thirdScript.textContent = "window._pwGA4PageviewId = '' + Date.now(); window.dataLayer = window.dataLayer || []; window.gtag = window.gtag || function () { dataLayer.push(arguments); }; gtag('js', new Date()); gtag('config', 'G-KBTZKS6LK0', { 'send_page_view': false }); gtag('event', 'ramp_js', { 'send_to': 'G-KBTZKS6LK0', 'pageview_id': window._pwGA4PageviewId });";
	document.head.appendChild(thirdScript);
	
	// Add footer script block
	addScriptToBody('//cdn.intergient.com/ramp_core.js', true);

	var resizeTimer;

	// Initial check for orientation
	followOrientation();

	// Check viewport orientation on window resize
	window.addEventListener('resize', function() {
		clearTimeout(resizeTimer);
		resizeTimer = setTimeout(function() {
    		followOrientation();
 		}, 150);
	});

}

// Skin and viewport dependent functions
function followOrientation() {
    var currentSkin = mw.config.get('skin');
    
    // Function to check if the device is in portrait orientation
    function isPortrait() {
        return window.innerHeight > window.innerWidth;
    }

    // Function to check if the device is a mobile device
    window.mobileCheck = function() {
    	var check = false;
    	(function(a) {
       		if(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(a) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(a.substr(0,4))) check = true;
    	})(navigator.userAgent || navigator.vendor || window.opera);
    	return check;
	}
    
    function isMobileDevice() {
        return window.mobileCheck();
    }
    
    if (isMobileDevice()) {
    	
       	if (isPortrait()) {    	

			var slotOneNotExists = document.querySelector('[data-pw-mobi="med_rect_btf"]') == null;
			
			if (slotOneNotExists) { 

				// A slot that appears on mobile portrait viewports ...
    			var slotOne = document.createElement('div');
    		
				// ... after the table of contents
    			var toc = document.getElementById('toc');
    			toc.insertAdjacentElement('afterend', slotOne);
    			slotOne.setAttribute('data-pw-mobi', 'med_rect_btf');
    			slotOne.setAttribute('id', 'pwMobiMedRectBtf1');

    			var scriptSlotOne = document.createElement('script');
    			scriptSlotOne.setAttribute('type', 'text/javascript');
    			scriptSlotOne.textContent = 'window.ramp=window.ramp||{},window.ramp.que=window.ramp.que||[],window.ramp.que.push(function(){window.ramp.addTag("pwMobiMedRectBtf1")});';
    			document.body.appendChild(scriptSlotOne);
			}
    	}
    	
    } else {
    	
        switch (currentSkin) {
        	
    	    case 'refreshed':

				var slotTwoNotExists = document.querySelector('[data-pw-mobi="sky_atf"]') == null;
				
				if (slotTwoNotExists) { 
					
					// A slot that appears on desktop viewport ...
	    			var slotTwo = document.createElement('div');

    				// ... at the bottom of sidebar (Refreshed)
    				var sidebar = document.getElementById('sidebar');
    				sidebar.appendChild(slotTwo);
    				slotTwo.setAttribute('data-pw-mobi', 'sky_atf');
    				slotTwo.setAttribute('id', 'pwMobiSkyAtf');
			
    				var scriptSlotTwo = document.createElement('script');
    				scriptSlotTwo.setAttribute('type', 'text/javascript');
    				scriptSlotTwo.textContent = 'window.ramp.que.push(function(){window.ramp.addTag("pwMobiSkyAtf");})';
    				document.body.appendChild(scriptSlotTwo);
				}
				
            	break;

        	case 'monobook':
        	
        		var slotThreeNotExists = document.querySelector('[data-pw-desk="sky_btf"]') == null;
        		
        		if (slotThreeNotExists) { 
        			
        			// A slot that appears on desktop viewport ...
    				var slotThree = document.createElement('div');
   			
    				// ... at the bottom of the page content (Monobook)
    				var content = document.getElementById('column-content');
    				content.appendChild(slotThree);
    				slotThree.setAttribute('data-pw-desk', 'sky_btf');
    				slotThree.setAttribute('id', 'pwDeskSkyBtf1');
    			
//    				var scriptSlotThree = document.createElement('script');
//    				scriptSlotThree.setAttribute('type', 'text/javascript');
//   				scriptSlotThree.textContent = 'window.ramp.que.push(function(){window.ramp.addTag("pwDeskSkyBtf1");})';
//   				document.body.appendChild(scriptSlotThree);
        		}
            	
            	break;
    	}
    }
}


// Function to add scripts to the head element
function addScriptToHead(src, async) {
    var scriptElement = document.createElement('script');
    scriptElement.setAttribute('data-cfasync', 'false');
    if (async) {
        scriptElement.setAttribute('async', '');
    }
    scriptElement.setAttribute('src', src);
    document.head.appendChild(scriptElement);
}

// Function to add scripts to the body element
function addScriptToBody(src, async) {
    var scriptElement = document.createElement('script');
    scriptElement.setAttribute('data-cfasync', 'false');
    if (async) {
        scriptElement.setAttribute('async', '');
    }
    scriptElement.setAttribute('src', src);
    document.body.appendChild(scriptElement);
}