Mello Auto Fullscreen

Auto click fullscreen when autoplay on Mello (need manual fullscreen window F11)

// ==UserScript==
// @name			Mello Auto Fullscreen
// @author			7-elephant
// @namespace   	iFantz7E.MelloAutoFullscreen
// @description 	Auto click fullscreen when autoplay on Mello (need manual fullscreen window F11)
// @version	 		0.05
// @match	  		*://mello.me/video/*
// @icon	  		https://mello.me/favicon.ico
// @run-at			document-start
// @grant	   		none
// @license			GPL-3.0-only
// @copyright		2018, 7-elephant
// @supportURL		https://steamcommunity.com/id/7-elephant/
// @contributionURL	https://www.paypal.me/iFantz7E
// ==/UserScript==

// License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html

// Since 27 May 2018
// https://greasyfork.org/scripts/368541/

// External variable:
//   jwplayer

// Sample:
//   https://mello.me/video/60553?autoplay=true

(function ()
{
	"use strict";
	// jshint multistr:true

function attachOnReady(callback)
{
	document.addEventListener("DOMContentLoaded", function (e)
	{
		callback();
	});
}

function getQueryByName(name, url)
{
	if (!url)
	{
		url = (!window.location) ? "" : window.location.search;
	}
	name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]");
	var regex = new RegExp("[\\?&]" + name + "=([^&#]*)");
	var results = regex.exec(url);
	var retVal = "";
	if (results)
	{
		retVal = results[1].replace(/\+/g, " ");
		try
		{
			retVal = decodeURIComponent(retVal);
		}
		catch (ex)
		{
			console.error("getQueryByName", ex.message);
		}
	}
	return retVal;
}

function triggerMouseEvent(ele, eventType)
{
	// Using:
	//   triggerMouseEvent(ele, "mouseover");
	//   triggerMouseEvent(ele, "mousedown");
	//   triggerMouseEvent(ele, "mouseup");
	//   triggerMouseEvent(ele, "click");
	
	if (ele)
	{
		var mouseEvent = document.createEvent("MouseEvents");
		mouseEvent.initEvent(eventType, true, true);
		ele.dispatchEvent(mouseEvent);
	}
}

function main()
{
	var url = document.documentURI;
	
	//if (getQueryByName("autoplay", url) === "true")
	{
		setTimeout(function()
		{		
			if (typeof jwplayer !== "undefined")
			{
				jwplayer().setFullscreen(true);
			}
			else
			{
				var eleFull = document.querySelector(".jw-icon-fullscreen");
				if (eleFull)
				{
					triggerMouseEvent(eleFull, "mousedown");
					triggerMouseEvent(eleFull, "mouseup");
				}
			}
		}, 3000);
	}
}

attachOnReady(main);

})();

// End