/*
* Split-screen talk page
* Author: User:Bradv
*/
splitTalk = {
enabled: true,
width: null
};
splitTalk.init = function() {
if (mw.config.get('wgAction') == "view" && mw.config.get('wgNamespaceNumber') == 1) {
// check to see if article exists
var li = document.getElementById('ca-nstab-main');
if (li) {
if (li.className != 'new') {
splitTalk.loadCookies();
if (splitTalk.enabled) {
splitTalk.draw();
}
}
}
}
};
splitTalk.loadCookies=function() {
function readCookie(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for(var i=0;i < ca.length;i++) {
var c = ca[i];
while (c.charAt(0)==' ') { c = c.substring(1,c.length); }
if (c.indexOf(nameEQ) === 0) { return c.substring(nameEQ.length,c.length); }
}
return '';
}
var w = readCookie('splitTalk_width');
if (w) {
splitTalk.width = w;
}
};
splitTalk.saveCookies=function() {
var cend = "; expires=Tue, 31-Dec-2030 23:59:59 GMT; path=/";
document.cookie = 'splitTalk_width=' + splitTalk.width.toString() + cend;
};
splitTalk.draw=function() {
var aj = sajax_init_object();
if (aj) {
var w = splitTalk.width;
if (!w) {
w = window.innerWidth / 3 + 'px';
}
//Make room
var topbar = document.evaluate('//div[@id="p-personal"]//div[@class="pBody"]',
document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null);
if (topbar.singleNodeValue) {
topbar = topbar.singleNodeValue;
topbar.style.marginRight=w;
}
//Find the container where the placeholder goes.
//This differs between monobook and modern skins.
var container = document.getElementById('content');
if (!container) {
container = document.getElementById('mw_content');
}
container.style.marginRight = w;
var ph = document.createElement('div');
with (ph) {
id='splitTalk_placeholder';
style.width=w;
style.top='0px';
style.right='0px';
style.bottom='0px';
style.zIndex=90;
style.position='fixed';
style.backgroundColor=document.defaultView.getComputedStyle(container, null).backgroundColor;
}
container.appendChild(ph);
var slider = document.createElement('div');
with (slider) {
id='splitTalk_slider';
style.position='absolute';
style.width='.5em';
style.top='0px';
style.left='0px';
style.bottom='0px';
style.borderLeft='1px solid #aaaaaa';
style.cursor='w-resize';
style.float='left';
}
ph.appendChild(slider);
slider.onmousedown=function(event) {
event.preventDefault();
slider.initialWidth = parseInt( window.innerWidth - event.clientX - ph.offsetWidth );
window.onmouseup=function(event) {
window.onmousemove=null;
window.onmouseup=null;
with (splitTalk) {
width=w;
saveCookies();
}
}
window.onmousemove=function(event) {
if (event.clientX > (window.innerWidth / 3)) {
w=window.innerWidth - event.clientX - slider.initialWidth+'px';
topbar.style.marginRight=w;
ph.style.width=w;
container.style.marginRight=w;
}
}
}
var content = document.createElement('div');
with (content) {
style.position='absolute';
style.top='0px';
style.left='0.5em';
style.right='0.5em';
style.bottom='0px';
style.float='right';
style.overflow='auto';
}
ph.appendChild(content);
aj.onreadystatechange = function() {
if(aj.readyState == 4 && aj.status == 200) {
var htm;
htm = aj.responseText;
content.innerHTML = htm;
// content.id = 'bodyContent'; //TODO: Find a better way to make the page format correctly
}
}
var url = mw.config.get('wgScript') + '?title=' + mw.config.get('wgTitle').replace(' ', '_', "g").replace('&', '%26', "g") + '&action=render';
// var url = mw.config.get('wgArticlePath').replace('$1', mw.config.get('wgTitle'));
aj.open("GET", url, true);
aj.send(null);
}
};
addOnloadHook(splitTalk.init);