1var SLogin = SLogin || { 2 initialize: function () { 3 var elements, block, identifiers; 4 for (identifiers = ["slogin-buttons", "slogin-buttons-attach", "slogin-buttons-attach-component"], i = 0; i < identifiers.length; i++) null !== (block = document.getElementById(identifiers[i])) && (elements = block.getElementsByTagName("a"), SLogin.initializeButtons(elements)) 5 }, initializeButtons: function (elements) { 6 for (var params = "resizable=yes,scrollbars=no,toolbar=no,menubar=no,location=no,directories=no,status=yes", id, onclick, i = 0; i < elements.length; i++) id = elements[i].getAttribute("id"), onclick = elements[i].getAttribute("onclick"), "uLogin" != id && null === onclick && (elements[i].onclick = function (e) { 7 "window" == typeof PopUpWindow && PopUpWindow.close(); 8 localStorage.removeItem('sloginAuth'); 9 var el = this.getElementsByTagName("span"), size = SLogin.getPopUpSize(el[0].className), 10 win_size = SLogin.WindowSize(), centerWidth = (win_size.width - size.width) / 2, 11 centerHeight = (win_size.height - size.height) / 2, 12 PopUpWindow = window.open(this.href, "LoginPopUp", "width=" + size.width + ",height=" + size.height + ",left=" + centerWidth + ",top=" + centerHeight + "," + params); 13 let interval = setInterval(function (){ 14 let url = localStorage.getItem('sloginAuth'); 15 if (url) { 16 localStorage.removeItem('sloginAuth'); 17 clearInterval(interval); 18 window.location = url; 19 PopUpWindow.close(); 20 } 21 }, 1000); 22 return PopUpWindow.focus(), !1 23 }) 24 }, WindowSize: function () { 25 var myWidth = 0, myHeight = 0, size = {width: 0, height: 0}; 26 return "number" == typeof window.innerWidth ? (myWidth = window.innerWidth, myHeight = window.innerHeight) : document.documentElement && (document.documentElement.clientWidth || document.documentElement.clientHeight) ? (myWidth = document.documentElement.clientWidth, myHeight = document.documentElement.clientHeight) : document.body && (document.body.clientWidth || document.body.clientHeight) && (myWidth = document.body.clientWidth, myHeight = document.body.clientHeight), size.width = myWidth, size.height = myHeight, size 27 }, getPopUpSize: function (el) { 28 var size = {width: 0, height: 0}; 29 switch (el) { 30 case"vkontakteslogin": 31 size = {width: 900, height: 550}; 32 break; 33 case"googleslogin": 34 size = {width: 450, height: 450}; 35 break; 36 case"facebookslogin": 37 size = {width: 1200, height: 600}; 38 break; 39 case"twitterslogin": 40 size = {width: 450, height: 550}; 41 break; 42 case"yandexslogin": 43 size = {width: 900, height: 550}; 44 break; 45 case"linkedinslogin": 46 size = {width: 350, height: 550}; 47 break; 48 case"odnoklassnikislogin": 49 size = {width: 550, height: 250}; 50 break; 51 case"mailslogin": 52 size = {width: 450, height: 325}; 53 break; 54 default: 55 size = {width: 900, height: 550} 56 } 57 return size 58 }, addListener: function (obj, type, listener) { 59 return obj.addEventListener ? (obj.addEventListener(type, listener, !1), !0) : !!obj.attachEvent && (obj.attachEvent("on" + type, listener), !0) 60 }, loadModuleAjax: function () { 61 SLogin.getUrl("/index.php?option=com_slogin&task=load_module_ajax") 62 }, printProviders: function (resp) { 63 document.getElementById("mod_slogin").innerHTML = resp, SLogin.initialize() 64 }, getXmlHttp: function () { 65 try { 66 return new ActiveXObject("Msxml2.XMLHTTP") 67 } catch (e) { 68 try { 69 return new ActiveXObject("Microsoft.XMLHTTP") 70 } catch (ee) { 71 } 72 } 73 if ("undefined" != typeof XMLHttpRequest) return new XMLHttpRequest 74 }, getUrl: function (url) { 75 var xmlhttp = SLogin.getXmlHttp(); 76 xmlhttp.open("GET", url), xmlhttp.onreadystatechange = function () { 77 if (4 == xmlhttp.readyState) { 78 var resp = xmlhttp.responseText; 79 SLogin.printProviders(resp) 80 } 81 }, xmlhttp.send(null) 82 }, changeLocation: function (url) { 83 window.location = url; 84 } 85}; 86SLogin.addListener(window, "load", (function () { 87 SLogin.initialize() 88})); 89 90window.changeLocation = function (url) { 91 window.location = url; 92}
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.