Mudanças entre as edições de "MediaWiki:Common.js"
Ir para navegação
Ir para pesquisar
Linha 1: | Linha 1: | ||
− | /* SOPA */ |
||
− | (function (){ |
||
− | var root = this; |
||
− | |||
− | var SopaBlackout = function(){}; |
||
− | var addEvent = function(obj, type, fn, ref_obj){ |
||
− | if (obj.addEventListener){ |
||
− | obj.addEventListener(type, fn, false); |
||
− | }else if (obj.attachEvent){ |
||
− | obj["e"+type+fn] = fn; |
||
− | obj[type+fn] = function(){ |
||
− | obj["e"+type+fn](window.event,ref_obj); |
||
− | }; |
||
− | obj.attachEvent("on"+type, obj[type+fn]); |
||
− | } |
||
− | }; |
||
− | // Thanks http://javascript.nwbox.com/IEContentLoaded/ |
||
− | // for this |
||
− | var IEContentLoaded = function(w, fn) { |
||
− | var d = w.document, done = false, |
||
− | init = function () { |
||
− | if (!done) { |
||
− | done = true; |
||
− | fn(); |
||
− | } |
||
− | }; |
||
− | (function () { |
||
− | try { |
||
− | d.documentElement.doScroll('left'); |
||
− | } catch (e) { |
||
− | setTimeout(arguments.callee, 50); |
||
− | return; |
||
− | } |
||
− | init(); |
||
− | })(); |
||
− | d.onreadystatechange = function() { |
||
− | if (d.readyState == 'complete') { |
||
− | d.onreadystatechange = null; |
||
− | init(); |
||
− | } |
||
− | }; |
||
− | } |
||
− | var onDomReady = function(fn){ |
||
− | if (document.addEventListener){ |
||
− | document.addEventListener('DOMContentLoaded', fn, false); |
||
− | }else{ |
||
− | IEContentLoaded(window, fn); |
||
− | } |
||
− | }; |
||
− | var getStyle = function(e, prop){ |
||
− | if (e.currentStyle){ |
||
− | return e.currentStyle[prop]; |
||
− | }else if (document.defaultView && document.defaultView.getComputedStyle){ |
||
− | return document.defaultView.getComputedStyle(e, "")[prop]; |
||
− | }else{ |
||
− | return e.style[prop]; |
||
− | } |
||
− | }; |
||
− | var findPos = function(obj){ |
||
− | var curleft = 0; |
||
− | var curtop = 0; |
||
− | if (obj.offsetParent){ |
||
− | do{ |
||
− | curleft += obj.offsetLeft; |
||
− | curtop += obj.offsetTop; |
||
− | }while(obj = obj.offsetParent); |
||
− | } |
||
− | return [curleft, curtop]; |
||
− | }; |
||
− | var txt = function(s){ |
||
− | return document.createTextNode(s); |
||
− | }; |
||
− | var create = function(e, props){ |
||
− | var elem = document.createElement(e); |
||
− | var props = props !== null ? props : {}; |
||
− | for (var key in props){ |
||
− | if (key == 'href'){ |
||
− | elem.href = props[key]; |
||
− | }else{ |
||
− | elem.style[key] = props[key]; |
||
− | } |
||
− | } |
||
− | l = arguments.length; |
||
− | for (var i=2; i<l; i++){ |
||
− | elem.appendChild(arguments[i]); |
||
− | } |
||
− | return elem; |
||
− | }; |
||
− | var getOpts = function(){ |
||
− | var ret = {}; |
||
− | for (var key in SopaBlackout.DEFAULTS){ |
||
− | var k = 'sopablackout_' + key; |
||
− | ret[key] = (typeof window[k] === 'undefined') ? SopaBlackout.DEFAULTS[key] : window[k]; |
||
− | } |
||
− | return ret; |
||
− | }; |
||
− | var dateMatches = function(spec){ |
||
− | spec.push(false); spec.push(false); spec.push(false); |
||
− | var today = new Date(); |
||
− | if ((spec[0] !== false && today.getFullYear() !== spec[0]) || |
||
− | (spec[1] !== false && today.getMonth() + 1 !== spec[1]) || |
||
− | (spec[2] !== false && today.getDate() !== spec[2])){ |
||
− | return false; |
||
− | } |
||
− | return true; |
||
− | }; |
||
− | |||
− | SopaBlackout.VERSION = '0.2.0'; |
||
− | SopaBlackout.MIN_HEIGHT = 100; |
||
− | SopaBlackout.HEADER_TEXT = "É assim que a web pode ficar se o \"Stop Online Piracy Act\" for aprovado."; |
||
− | |||
− | SopaBlackout.CONTENT_TEXT = "\nDois projetos de lei em tramitação no Congresso norteamericano têm provocado reações e críticas de grandes empresas de tecnologia (como Google e Facebook), além de setores da comunidade técnica, academia e sociedade civil.\nEsses projetos, chamados SOPA (Stop Online Piracy Act) e PIPA (Protect Intellectual Property Act), se forem aprovados, instituirão ferramentas de controle de conteúdo na web que alteram de forma crucial o funcionamento da própria rede. Eles impõem medidas severas para impedir violações a direitos autorais, como alterações no sistema de nomes de domínio, filtragem em mecanismos de busca para que sites não sejam encontrados, além de instruções de bloqueio a operações financeiras, como doações feitas em apoio ao site supostamente infrator.\nLegislações como as propostas nos EUA, mais do que uma questão interna de cada país, desafiam a própria arquitetura da rede como uma infra-estrutura aberta que incentiva a participação e a criação colaborativa.\nSegundo o Centro de Tecnologia e Sociedade da Escola de Direito da Fundação Getulio Vargas/RJ, a tutela dos direitos intelectuais não deve ser exercida em detrimento de outros direitos fundamentais, como a privacidade, a liberdade de expressão, e principalmente o acesso ao conhecimento e à informação. Mesmo com a recente declaração da Casa Branca contra o SOPA, e com todos os esforços na rede até agora, a ameaça ainda não cessou. Wikipedia, Reddit e vários outros sites promoveram um blecaute da Internet como forma de protesto.\n\nConsiderando que, mesmo sendo uma legislação de outro país, essas medidas podem afetar-nos diretamente, o Garoa Hacker Clube, por determinação do Conselho Manda-chuva, publica essa mensagem de protesto e esclarecimento em seu site.\nPara continuar acessando nosso conteúdo normalmente, clique em qualquer lugar para continuar."; |
||
− | |||
− | SopaBlackout.CONTINUE_TEXT = "(clique em qualquer lugar para continuar)"; |
||
− | SopaBlackout.ZINDEX = Math.pow(2, 31) - 2; |
||
− | SopaBlackout.DEFAULTS = { |
||
− | 'id': false, |
||
− | 'srsbzns': false, |
||
− | 'on': false |
||
− | }; |
||
− | SopaBlackout.blackout = function(opts){ |
||
− | var obj; |
||
− | var body = document.body; |
||
− | if (opts['id'] === false){ |
||
− | obj = body; |
||
− | height = "100%"; |
||
− | }else{ |
||
− | obj = document.getElementById(opts['id']); |
||
− | var height = parseInt(getStyle(obj, 'height'), 10); |
||
− | height = height > SopaBlackout.MIN_HEIGHT ? height : SopaBlackout.MIN_HEIGHT; |
||
− | } |
||
− | var offsets = findPos(obj); |
||
− | |||
− | var blackout = create('div', { |
||
− | position: 'absolute', |
||
− | top: offsets[1], |
||
− | width: '100%', |
||
− | backgroundColor: 'black', |
||
− | textAlign: 'center', |
||
− | paddingTop: '10px', |
||
− | zIndex: SopaBlackout.ZINDEX, |
||
− | height: height, |
||
− | color: '#999'}, |
||
− | create('h1', {color: '#006837'}, txt(SopaBlackout.HEADER_TEXT)), |
||
− | create('h2', {color: '#00ff00'}, txt(SopaBlackout.CONTENT_TEXT)), |
||
− | create('p', null, |
||
− | txt("Ajude a manter a web livre!"), |
||
− | |||
− | create('a', {href: "http://sopablackout.org/learnmore"}, txt(" Saiba mais!"))) |
||
− | ); |
||
− | if (opts['srsbzns'] !== true){ |
||
− | blackout.appendChild(create('p', {paddingTop: '250px', color: '#333'}, txt(SopaBlackout.CONTINUE_TEXT))); |
||
− | addEvent(blackout, 'click', function(e){ |
||
− | body.removeChild(blackout); |
||
− | }); |
||
− | } |
||
− | body.appendChild(blackout); |
||
− | }; |
||
− | SopaBlackout.go = function(){ |
||
− | var opts = getOpts(); |
||
− | if (opts['on'] !== false && !dateMatches(opts['on'])){ |
||
− | return; |
||
− | } |
||
− | SopaBlackout.blackout(opts); |
||
− | }; |
||
− | |||
− | onDomReady(SopaBlackout.go); |
||
− | }).call(this); |
||
− | |||
(function(){ |
(function(){ |
||
Edição das 11h09min de 19 de janeiro de 2012
(function(){ function on_load(){ // Epoch 0: momento da fundação do Garoa Hacker Clube! // Veja http://garoa.net.br/w/index.php?title=Epoch0 var epoch = 1298244863; var garoa_div = document.createElement("div"); garoa_div.setAttribute("id", "garoa_msecs"); document.getElementsByTagName("body")[0].appendChild(garoa_div); function update_msecs(){ document.getElementById("garoa_msecs").innerHTML = "Garoando há "+ (new Date().getTime()-epoch*1000)+" milissegundos."; } function update_secs(){ document.getElementById("garoa_msecs").innerHTML = "Garoando há "+ Math.floor(new Date().getTime()/1000-epoch)+" segundos."; } //juca gosta do efeito dos milissegundos correndo. Além de ser mil vezes mais nerd :-D literalmente! (aritmeticamente!!!) //mas pitanga acha ruim mostrar milissegundos por que consumiria muita CPU... // window.setInterval(update_msecs, 1); window.setInterval(update_secs, 1000); } window.addEventListener("load", on_load, false); })();