User:Voice of All/Google/monobook.js

From Wikipedia, the free encyclopedia
Note: After saving, you have to bypass your browser's cache to see the changes. Google Chrome, Firefox, Microsoft Edge and Safari: Hold down the ⇧ Shift key and click the Reload toolbar button. For details and instructions about other browsers, see Wikipedia:Bypass your cache.
//<pre><nowiki>

/////////////////////Google search tabs/////////////////////
$(googletab)
function googletab()
{

    if (typeof addTab === 'undefined') return;
if(document.getElementById('ca-nstab-main'))
  {
  if (document.title.indexOf('Editing ') == -1)
    {
      if (location.href.search('\\&action=') == -1)
        {
     addTab("javascript:googlesrch('regular')", "?", "ca-google", "Google search", "");
        }
    } 
  }
}

//Google search
function googlesrch(type)
{
var rest = '';
var target = mw.config.get('wgTitle');
//for disambigged stuff
if (target.indexOf("(") !=-1 && target.indexOf(")") !=-1)
{
  rest = target.split(" (")[1].split(")")[0];
  target = target.split(" (")[0];
}
if (type == 'regular')
  {
  srch_window = window.open('http://www.google.com/search?hl=en&lr=&safe=on&q=%22' + escape(target) + '%22+' + escape(rest) + '&btnG=Search',
              'Googlesearch' + target,
              'status,toolbar,location,menubar,directories,resizeable,scrollbars,fullscreen=yes');
  }
}
/////////////////////

////////////////////////Reference (cite.php) Toggling////////////////////////
$(toggle_refs_add)
function toggle_refs_add()
{
if (document.title.indexOf('Editing ') == 0 && document.title.search('(Image:|Template:| talk:|Category:|Portal:|Wikipedia:|MediaWiki:|Help:|Talk:|User:|View and restore deleted pages)') == -1)
  {addToolboxLink("javascript:toggle_refs()","Toggle references","toggle-ref");}
}

function zreplace_refs()
{
  z_auto_ref_countup += 1;
  var string = '<<REF:' + z_auto_ref_countup + '>>';
  return string;
}

function zreturn_refs(match,number)
{
  if (ref_return_js_cache[number-1] != undefined)
  {var string = ref_return_js_cache[number-1];}
  else 
  {alert('Error parsing reference #' + number + '.'); var string = match;}
  return string;
}

function toggle_refs()
{
  if (document.editform.wpTextbox1.value.indexOf('<<REF:') == -1 && document.editform.wpTextbox1.value.search(/<[Rr]ef[> ]/) != -1)
  {
  txt = document.editform.wpTextbox1.value;
  ref_return_js_cache = txt.match(/<[Rr]ef[> ].+<\/[Rr]ef>/gm);
  z_auto_ref_countup = 0;
  document.editform.wpTextbox1.value = document.editform.wpTextbox1.value.replace(/<[Rr]ef[> ].+<\/[Rr]ef>/gm,zreplace_refs);
  if (edit_input) {lock_input();}
  else {unlock_input();}
  }
  else if (document.editform.wpTextbox1.value.indexOf('<<REF:') != -1)
  {
  if (document.getElementById('wpSummary') == undefined)
  {unlock_input();}
  document.editform.wpTextbox1.value = document.editform.wpTextbox1.value.replace(/<<REF:(\d+)>>/gm,zreturn_refs);
  }
  else if (document.getElementById('wpSummary'))
  {lock_input();}
  else
  {unlock_input();}
}

//
var input_locked_message='<br><strong>References abbreviated - (PRESS "TOGGLE REFERENCES" AGAIN TO BE ABLE SAVE/PREVIEW THE PAGE)</strong>';
var edit_input=true;
function lock_input()
{
edit_input=false;
document.getElementById('contentSub').innerHTML += input_locked_message;
var divs = document.getElementById('bodyContent').getElementsByTagName('div');
input_help_js_return_cache = document.getElementById('wpSummaryLabel').innerHTML;
document.getElementById('wpSummaryLabel').innerHTML = '';
for (i=0; i <divs.length; i++)
   {
   if (divs[i].className == 'editOptions')
     {input_form_js_return_cache = divs[i].innerHTML; divs[i].innerHTML = '';}
   }
}

function unlock_input()
{
document.getElementById('contentSub').innerHTML = document.getElementById('contentSub').innerHTML.replace(input_locked_message,'');
edit_input=true;
var page = document.title.replace('Editing ','').replace('Edit Conflict','').replace('Edit conflict','').split(' - ')[0];
var divs = document.getElementById('bodyContent').getElementsByTagName('div');
for (i=0; i <divs.length; i++)
   {
   if (divs[i].className == 'editOptions')
   {divs[i].innerHTML = input_form_js_return_cache;}
   }
document.getElementById('wpSummaryLabel').innerHTML = input_help_js_return_cache;
}
////////////////////////
//</nowiki></pre>