User:Korath/blockip.js

// Returns <li><a href="url">name</a></li>function addlilink(url, name){  var na = document.createElement('a');  na.setAttribute('href', url);  var txt = document.createTextNode(name);  na.appendChild(txt);  var li = document.createElement('li');  li.appendChild(na);  return li;}// Adds a "blocklog" tab and fills in the username field on Special:Blockip, if a "&faketarget=username" is present.function do_blockip_stuff(){  // focus on Reason field  document.getElementsByName('wpBlockReason')[0].focus();  // Look for a &faketarget= for the username/ip  var l = location.search.substring(1).split('&');  var target = '';  for (var i = 0; i < l.length; ++i)    {      var n = l[i].indexOf('=');      if (l[i].substring(0, n) == 'faketarget'){  target = l[i].substring(n + 1);  break;}    }  if (target == '')    return;  // put account name in "IP Address/username" field  var addr = document.getElementsByName('wpBlockAddress')[0];  addr.value = unescape(target);  // add "blocklog" tab  var c1 = document.getElementById('column-one');  var tabs = c1.getElementsByTagName('div')[0].getElementsByTagName('ul')[0];  tabs.appendChild(addlilink('/w/index.php?title=Special%3ALog&type=block&user=&page=User%3A' + target, 'blocklog'));}// Opens the block log in the current window, and Special:Blockip in a popup.// Width, height, top, and left are chosen for a 1600x1200 display.//function blockpage_and_log(target)//{//  window.open('Special_Blockip.html?foo=blarg&faketarget=' + target, 'Block', 'width=1600,height=600,top=600,left=0');//  document.location.href = 'http:https://www.search.com.vn/wiki/index.php?lang=en&q=Special%3ALog&type=block&user=&page=User%3A' + target;//}// Adds "block" and "blocklog" tabs to User: and User talk: pages.function add_block_tab(){  var c1 = document.getElementById('column-one');  var tabs = c1.getElementsByTagName('div')[0].getElementsByTagName('ul')[0];  // use the "edit this page" tab to get already-tidied url  var editlk = document.getElementById('ca-edit').getElementsByTagName('a')[0].href;  // cut everything up to "title=" from the start and everything past "&action=edit" from the end  editlk = editlk.substring(editlk.indexOf('title=') + 6, editlk.lastIndexOf('&action=edit'));  editlk = editlk.substring(editlk.indexOf(':') + 1);  var slloc = editlk.indexOf('/');  if (slloc > 0)    editlk = editlk.substring(0, slloc);  // add "block" tab  tabs.appendChild(addlilink('/w/index.php?title=Special%3ABlockip&faketarget=' + editlk, 'block'));  // To open the block page and block log simultaneously, replace the above line with:  // tabs.appendChild(addlilink('javascript:blockpage_and_log("' + editlk + '")', 'Block'));  // and uncomment the blockpage_and_log() function above.  // add "blocklog" tab  tabs.appendChild(addlilink('/w/index.php?title=Special%3ALog&type=block&user=&page=User%3A' + editlk, 'blocklog'));}function do_onload(){  if (document.title.indexOf('User:') == 0      || document.title.indexOf('User talk:') == 0      || document.title.indexOf('Editing User:') == 0      || document.title.indexOf('Editing User talk:') == 0)    add_block_tab();  else if (document.title.indexOf('Block user') == 0) // could stand to be more robust    do_blockip_stuff();}if (window.addEventListener)   window.addEventListener("load", do_onload, false);else if (window.attachEvent)   window.attachEvent("onload", do_onload);