User:Joshurtree/talkthread.js

From Wikipedia, the free encyclopedia

Note: After saving, you have to bypass your browser's cache to see the changes. Firefox/Mozilla/Safari: hold down Shift while clicking Reload (or press Ctrl-Shift-R), Internet Explorer: press Ctrl-F5, Opera/Konqueror: press F5.

//<pre><nowiki>

function createMessage(section) {
  var edit = document.getElementById('wpTextBox1');
  var replyToPos = document.URL.lastIndexOf('replyto=');
  
  edit.value += '{{msg start|id=' + wgArticleId;
  if (replyToPos != -1) {
    var replyto = document.URL.slice(replyToPos + 8);
    edit.value += '|replyto=' + replyto;
    document.getElementById('wpSummary').value += 'Reply to ' + replyto;
  }

  edit.value += '}}\n';
  edit.value += '<!--- Insert message here --->\n';
  edit.value += '{{msg end|signature=~~~~|username=' 
                + wgUserName + '|section=' + section + '}}';
}

function addlilink(tabs, url, name, id, title, key){
    var na = document.createElement('a');
    na.href = url;
    na.appendChild(document.createTextNode(name));
    var li = document.createElement('li');
    if(id) li.id = id;
    li.appendChild(na);
    tabs.appendChild(li);
    if(id)
    {
        if(key && title)
        {
            ta[id] = [key, title];
        }
        else if(key)
        {
            ta[id] = [key, ''];
        }
        else if(title)
        {
            ta[id] = ['', title];
        }
    }
    // re-render the title and accesskeys from existing code in wikibits.js
    akeytt();
    return li;
}

function addTab(url, name, id, title, key){
    var tabs = document.getElementById('p-cactions').getElementsByTagName('ul')[0];
    return addlilink(tabs, url, name, id, title, key);
}

function collapseDescendants() {
  alert("collapseDescendants");
}

function showThisThread() {
  alert("showThread");
}


function setupCollapsing(collapsed) {
  var headers = document.getElementsByName("id");

  var collapseDesc = document.createElement("a");
  collapseDesc.href = "javascript::collapseDescendants()";
  collapseDesc.innerHTML = "↑";
  collapseDesc.title = "Collapse descendants";
  
  var showThread = document.createElement("a");
  showThread.href = "javascript::showThisThread()";
  showThread.innerHTML = "↓";
  showThread.title = "Show this thread only";

  for (var i = 0; i < headers.length; ++i) {
    headers[i].insertBefore(headers[i].firstChild, showThread);
    headers[i].insertBefore(headers[i].firstChild, collapseDesc);
  }
}


function countSections(url) {
    var article = window.open(url, "_blank", "directories=no, height=100, location=no, menubar=no, scrollbars=no, resizable=no, titlebar=no, statusbar=no, toolbar=no, width=no");
    return article.document.getElementsByTagName("h2").length + 1;
}


addOnloadHook(function() {
  window.alert("test");
  var addSection = document.getElementById('ca-addsection');
  var section = document.getElementsByName('wpSection');
  var edit = document.getElementById('wpTextBox1');

  if (addSection && edit == null) {
    var name = 'Start thread';
    addTab(url, name, 'usStartThread', name, null);
    setupCollapsing(false);
  } else if (document.URL.indexOf("replyto") != -1) {
    createMessage(section[0].value);
  } else if (document.URL.indexOf("sectionnum=") != -1) {
    var url = document.URL;
    var sectionNum = 
      url.slice(parseInt(url.indexOf("sectionnum=")) + 11);
    if (isFinite(sectionNum)) {
      var sectionName = prompt("Enter new section name", "");
      if (sectionName != null && sectionName != "") {
        edit.value += '\n== ' + sectionName + ' ==\n';
        document.getElementById("wpSummary").value 
            += "/* " + sectionName + " */";
        createMessage(sectionNum);
      }
    }
  }
});
//</nowiki></pre>