////////////////////////////////////////////////////////////////
// =-=-=- HELPER FUNCTIONS -=-=-=-
function addlilink(tabs, url, name, id, title, key)
{
//check for duplicates
if (document.getElementById(id)){return;}
//cologne blue bypass
if (document.getElementById('quickbar'))
{
if (document.getElementById('quickbar') && document.getElementById('quickbar').getElementsByTagName('h6')[0])
{
addquickbarlink(url, name, id, title, 'Edit');
}
if (document.getElementById('footer') && !document.getElementById('bodyContent'))
{
addfooterlink(url, name, id, title);
}
return;
}
//monobook
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 insertAfter(parent, node, referenceNode) {
parent.insertBefore(node, referenceNode.nextSibling);
}
function prependChild(parent, node) {
parent.insertBefore(node, parent.firstChild);
}
function addToolboxLink(url, name, id, key)
{
if (document.getElementById('p-tb'))
{var tb = document.getElementById('p-tb').getElementsByTagName('ul')[0];}
addlilink(tb, url, name, id, key);
}
function addTab(url, name, id, title, key)
{
//monobook
if (document.getElementById('p-cactions'))
{var tabs = document.getElementById('p-cactions').getElementsByTagName('ul')[0];}
//cologneblue
else {
if (document.getElementById('quickbar'))
{var tabs = document.getElementById('quickbar').getElementsByTagName('h6')[2];}
if (document.getElementById('footer'))
{var tabs = document.getElementById('footer').getElementsByTagName('td')[0];}
return addquickbarlink(url, name, id, 'Edit');
}
return addlilink(tabs, url, name, id, title, key);
}
///////////////
//cologneblue tab/link adder
function addquickbarlink(url, name, id, title, header)
{
var header = '<h6>' + header + '</h6>';
var tabs = document.getElementById('quickbar');
if (tabs.innerHTML.indexOf(header) ==-1)
{return;}
var add_html = '<strong><a id="' + id + '" title="' + title + '" href="' + url + '">' + name + '</a></strong><br />';
var section_html = tabs.innerHTML.split(header)[1].split('<h6>')[0];
var next_section = '<h6>' + tabs.innerHTML.split(header)[1].split('<h6>')[1].split('</h6>')[0] + '</h6>';
tabs.innerHTML = tabs.innerHTML.split(header)[0] + header + section_html + add_html + next_section + tabs.innerHTML.split(next_section)[1];
}
function addfooterlink(url, name, id, title)
{
var tabs = document.getElementById('footer').getElementsByTagName('td')[1];
var add_html = '<strong><a href="' + url + '" title="' + title + '" id="' + id + '">' + name + '</a></strong>';
tabs.innerHTML = add_html + ' | ' + tabs.innerHTML;
}
///////////////
function addLink(where, url, name, id, title, key, after){
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);
var tabs = document.getElementById(where).getElementsByTagName('ul')[0];
if(after) {
tabs.insertBefore(li,document.getElementById(after));
} else {
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;
}
/////////////////////////////////////////////
/**** Add generic tab ****/
function addlilink_simple(tabs, url, name, id){
var na = document.createElement('a');
na.href = url;
na.appendChild(document.createTextNode(name));
var li = document.createElement('li');
li.id = id;
li.appendChild(na);
tabs.appendChild(li);
return li;
}
function addlimenu(tabs, name, id)
{
var na = document.createElement('a');
na.href = '#';
var mn = document.createElement('ul');
na.appendChild(document.createTextNode(name));
var li = document.createElement('li');
li.id = id;
li.className = 'tabmenu';
li.appendChild(na);
li.appendChild(mn);
tabs.appendChild(li);
return li;
}
/////////
//These are simplier versions of the above, except they add the links on top, not on botton
function addnavbox_link(URL,Name,ID)
{
//cologne blue bypass
if (document.getElementById('quickbar') && document.getElementById('quickbar').getElementsByTagName('h6')[0])
{
var tabs = document.getElementById('quickbar');
addquickbarlink(URL, Name, ID, Name, 'Browse');
return;
}
//monobook
var portlet = document.getElementById('p-navigation');
var links = portlet.getElementsByTagName('ul')[0];
links.innerHTML += '<li id="' + ID + '"><a href="' + URL + '">' + Name + '</a></li>';
}
//////////
function URLEncoding(input)
{
var encodedInputString=escape(input);
encodedInputString=encodedInputString.replace(/\+/g, "%2B");
encodedInputString=encodedInputString.replace(/\//g,"%2F");
encodedInputString=encodedInputString.replace(/&/g,"%26");
var outputurl=encodedInputString;
return outputurl;
}
function toRegExp(what)
{
what = what.replace(/\\/g,"\\\\");
what = what.replace(/\(/g,"\\(").replace(/\)/g,"\\)");
what = what.replace(/\{/g,"\\{").replace(/\}/g,"\\}");
what = what.replace(/\[/g,"\\[").replace(/\]/g,"\\]");
what = what.replace(/\|/g,"\\|");
what = what.replace(/\./g,"\\.");
what = what.replace(/\$/g,"\\$");
what = what.replace(/\+/g,"\\+");
what = what.replace(/\^/g,"\\^");
what = what.replace(/\?/g,"\\?");
what = what.replace(/\*/g,"\\*");
what = what.replace(/\//g,"\\/");
return what;
}