This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Old script for a jogger.pl blog that builds | |
// table of contents for comment section | |
var nickclass = 'commentNick'; | |
var headclass = 'commhead'; | |
var tocid = 'toc'; | |
var tocmenuid = 'tocmenu'; | |
var newcommid = 'newcomm'; | |
var oldcommid = 'oldcomm'; | |
var itemsclass = 'items'; | |
var menuitemclass = 'menuitem'; | |
function setCookie(name, value) | |
{ | |
expires = new Date(); | |
time = new Date(); | |
expires.setTime(time.getTime() + 3600000*24*7); | |
document.cookie = name + "=" + escape(value) + "; expires=" + expires.toGMTString(); | |
} | |
function getElementsByClassName(className) { | |
var children = document.getElementsByTagName('*') || document.all; | |
var elements = new Array(); | |
for (var i = 0; i < children.length; i++) { | |
var child = children[i]; | |
var classNames = child.className.split(' '); | |
for (var j = 0; j < classNames.length; j++) { | |
if (classNames[j] == className) { | |
elements.push(child); | |
break; | |
} | |
} | |
} | |
return elements; | |
} | |
function getCookie(name) | |
{ | |
var dc = document.cookie; | |
var prefix = name + "="; | |
var begin = dc.indexOf("; " + prefix); | |
if (begin == -1) { | |
begin = dc.indexOf(prefix); | |
if (begin != 0) return 0; | |
} | |
else { | |
begin += 2; | |
} | |
var end = document.cookie.indexOf(";", begin); | |
if (end == -1) { | |
end = dc.length; | |
} | |
return unescape(dc.substring(begin + prefix.length, end)); | |
} | |
function commids() | |
{ | |
sigs = getElementsByClassName(nickclass); | |
headers = getElementsByClassName(headclass); | |
tocel = document.getElementById(tocid); | |
if(sigs.length == 0) { | |
return null; | |
} | |
tocmenu = document.createElement('div'); | |
tocmenu.setAttribute('id', tocmenuid); | |
tocel.appendChild(tocmenu); | |
tocmenu = document.getElementById(tocmenuid); | |
url = document.URL; | |
eidbegin = url.indexOf("eid="); | |
eidend = url.indexOf("&", eidbegin); | |
if (eidend == -1) { | |
eidend = url.length; | |
} | |
eid = url.substring(eidbegin + 4, eidend); | |
lastcomm = getCookie(eid); | |
toctab = false; | |
comm = null; | |
for(i=0; i < sigs.length; i++) { | |
if(i < lastcomm && !toctab) | |
{ | |
itemsel = document.createElement('div') | |
itemsel.setAttribute('class', itemsclass); | |
itemsel.setAttribute('id', oldcommid); | |
comm = document.createElement('div'); | |
comm.setAttribute('class', menuitemclass); | |
comm.appendChild(document.createTextNode('Widziane:')); | |
comm.appendChild(itemsel); | |
tocmenu.appendChild(comm); | |
comm = document.getElementById(oldcommid); | |
toctab = true; | |
} | |
else if(i == lastcomm) | |
{ | |
itemsel = document.createElement('div') | |
itemsel.setAttribute('class', itemsclass); | |
itemsel.setAttribute('id', newcommid); | |
comm = document.createElement('div'); | |
comm.setAttribute('class', menuitemclass); | |
comm.appendChild(document.createTextNode('Nowe:')); | |
comm.appendChild(itemsel); | |
tocmenu.appendChild(comm); | |
comm = document.getElementById(newcommid); | |
} | |
y = i + 1; | |
sigs[i].setAttribute("id", "comm" + (y)); | |
newlink = document.createElement('a'); | |
newlink.setAttribute('href', '#comm' + (y)); | |
newlink.setAttribute('title', 'Komentarz numer ' + y); | |
newlink.appendChild(document.createTextNode('#')); | |
if(sigs[i].firstChild.firstChild){ | |
nodename = sigs[i].firstChild.firstChild.data; | |
} | |
else { | |
nodename = sigs[i].firstChild.data; | |
} | |
if(nodename.length > 10) { | |
nodename = nodename.substring(0, 10) + "..."; | |
} | |
toclink = document.createElement('a'); | |
toclink.setAttribute('href', '#comm' + (y)); | |
toclink.appendChild(document.createTextNode(nodename)); | |
newspan = document.createElement('span'); | |
newspan.appendChild(document.createTextNode(" | ")); | |
newspan.appendChild(newlink); | |
headers[i].appendChild(newspan); | |
comm.appendChild(document.createElement('br')); | |
comm.appendChild(toclink); | |
} | |
setCookie(eid, y); | |
} | |
//*** This code is copyright 2003 by Gavin Kistner, gavin@refinery.com | |
//*** It is covered under the license viewable at http://phrogz.net/JS/_ReuseLicense.txt | |
function AttachEvent(obj,evt,fnc,useCapture){ | |
if (!useCapture) useCapture=false; | |
if (obj.addEventListener){ | |
obj.addEventListener(evt,fnc,useCapture); | |
return true; | |
} else if (obj.attachEvent) return obj.attachEvent("on"+evt,fnc); | |
else{ | |
MyAttachEvent(obj,evt,fnc); | |
obj['on'+evt]=function(){ MyFireEvent(obj,evt) }; | |
} | |
} | |
function MyAttachEvent(obj,evt,fnc){ | |
if (!obj.myEvents) obj.myEvents={}; | |
if (!obj.myEvents[evt]) obj.myEvents[evt]=[]; | |
var evts = obj.myEvents[evt]; | |
evts[evts.length]=fnc; | |
} | |
function MyFireEvent(obj,evt){ | |
if (!obj || !obj.myEvents || !obj.myEvents[evt]) return; | |
var evts = obj.myEvents[evt]; | |
for (var i=0,len=evts.length;i<len;i++) evts[i](); | |
} | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment