FOR MARXIST-LENINIST UNITY");
outputFrame.write("\n
\n");
outputFrame.write("\n");
outputFrame.write(prefixHTML + "\n\n");
if (treeData[1].target == "") {var targetFrame = defaultTargetFrame} else {var targetFrame = treeData[1].target}
if (treeData[1].icon == "") {var imageString = defaultImageURL + 'img-globe-' + structureStyle + '.gif'} else {imageString = defaultImageURL + treeData[1].icon}
outputFrame.write("" + treeData[1].name + " \n");
drawBranch("root","");
outputFrame.write("\n" + suffixHTML + "\n");
outputFrame.write("\n\n");
outputFrame.close();
window.status="Workers of the world, unite!";
}
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// drawBranch() - GENERAL FUNCTION - used by the drawTree() function to recursively draw all
// visable nodes in the tree structure.
function drawBranch(startNode,structureString) {
var children = extractChildrenOf(startNode);
var currentIndex = 1;
while (currentIndex <= children.length) {
outputFrame.write(structureString);
if (children[currentIndex].type == 'link') {
if (children[currentIndex].icon == "") {
var imageString = defaultImageURL + defaultLinkIcon;
}
else {var imageString = defaultImageURL + children[currentIndex].icon}
if (children[currentIndex].target == "") {
var targetFrame = defaultTargetFrame;
}
else {var targetFrame = children[currentIndex].target}
if (currentIndex != children.length) {
outputFrame.write("")
}
else {
outputFrame.write("")
}
outputFrame.write(" " + "" + children[currentIndex].name + "" + " \n")
}
else {
var newStructure = structureString;
if (children[currentIndex].iconClosed == "") {var iconClosed = "img-folder-closed-" + structureStyle + ".gif"} else {var iconClosed = children[currentIndex].iconClosed}
if (children[currentIndex].iconOpen == "") {var iconOpen = "img-folder-open-" + structureStyle + ".gif"} else {var iconOpen = children[currentIndex].iconOpen}
if (currentIndex != children.length) { //*** modified to create hyperlink
if (children[currentIndex].open == 0) {
outputFrame.write("")
outputFrame.write(" " + "" + children[currentIndex].name + " \n")
}
else {
outputFrame.write("");
outputFrame.write(" " + children[currentIndex].name + " \n");
newStructure = newStructure + "";
drawBranch(children[currentIndex].id,newStructure);
}
}
else {
if (children[currentIndex].open == 0) {
outputFrame.write("")
outputFrame.write(" " + "" + children[currentIndex].name + " \n")
}
else {
outputFrame.write("");
outputFrame.write(" " + children[currentIndex].name + " \n");
newStructure = newStructure + "";
drawBranch(children[currentIndex].id,newStructure);
}
}
}
currentIndex++;
}
}
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// toggleFolder() - GENERAL FUNCTION - opens/closes folder nodes.
function toggleFolder(id,status) {
var nodeIndex = indexOfNode(id);
treeData[nodeIndex].open = status;
timeOutId = setTimeout("drawTree()",100)}
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// indexOfNode() - GENERAL FUNCTION - finds the index in the treeData Collection of the node
// with the given id.
function indexOfNode(id) {
var currentIndex = 1;
while (currentIndex <= treeData.length) {
if ((treeData[currentIndex].type == 'root') || (treeData[currentIndex].type == 'folder')) {
if (treeData[currentIndex].id == id) {return currentIndex}}
currentIndex++}
return -1}
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// extractChildrenOf() - GENERAL FUNCTION - extracts and returns a Collection containing all
// of the node's immediate children nodes.
function extractChildrenOf(node) {
var children = new Collection();
var currentIndex = 1;
while (currentIndex <= treeData.length) {
if ((treeData[currentIndex].type == 'folder') || (treeData[currentIndex].type == 'link')) {
if (treeData[currentIndex].parent == node) {
children.add(treeData[currentIndex])}}
currentIndex++}
return children}
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Collection() - OBJECT - a dynamic storage structure similar to an Array.
function Collection() {
this.length = 0;
this.add = add;
return this}
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// add() - METHOD of Collection - adds an object to a Collection.
function add(object) {
this.length++;
this[this.length] = object}
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// RootNode() - OBJECT - represents the top-most node of the hierarchial tree.
function RootNode(id,name,url,target,icon) {
this.id = id;
this.name = name;
this.url = url;
this.target = target;
this.icon = icon;
this.type = 'root';
return this}
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// FolderNode() - OBJECT - represents a node which branches to contain other nodes.
function FolderNode(id,parent,name,iconClosed,iconOpen,url) {
this.id = id;
this.parent = parent;
this.name = name;
this.iconClosed = iconClosed;
this.iconOpen = iconOpen;
this.type = 'folder';
this.open = 0;
this.url = url;
return this}
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// LinkNode() - OBJECT - a node that represents a link using a URL.
function LinkNode(parent,name,url,target,icon) {
this.parent = parent;
this.name = name;
this.url = url;
this.target = target;
this.icon = icon;
this.type = 'link';
return this}
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// loadData() - GENERAL FUNCTION - user defined data and variables exist in this function.
function loadData() {
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Tree structure definitions:
// Syntax:
// ROOT NODE:
// treeData.add(new RootNode("","","","",""));
// NOTE: There must be only ONE root node, and it MUST be the FIRST node.
// and can be left null - defaults will be used.
// FOLDER NODE:
// treeData.add(new FolderNode("","","","","",""));
// NOTE: Folder nodes MUST have a valid parent node, and they SHOULD have children nodes.
// and can be left null - OmenTree will use the
// default images.
// LINK NODE:
// treeData.add(new LinkNode("","","","",""));
// NOTE: and may be left null - defaults specified in the user
// defined variables section will be used.
// Consult the OmenTree documentation for further assistance.
treeData = new Collection();
treeData.add(new RootNode('root',' CONTENTS','html/welcome.html','','earthspin.gif')); // Root Node MUST be first!
treeData.add(new LinkNode('root','About the Committee','html/about.html','','img-question.gif'));
treeData.add(new LinkNode('root','A Guide to this Site','html/guide.html','','img-help.gif'));
treeData.add(new LinkNode('root','Join the Campaign!','html/campaign.html','','img-globe-1.gif'));
treeData.add(new FolderNode('whatsnew','root',"What's New?",'','','html/whatsnews.html'));
treeData.add(new LinkNode('whatsnew','List of new items','html/whatsnews.html','',''));
treeData.add(new LinkNode('whatsnew','An ABC of Communism','html/abc.html','',''));
treeData.add(new LinkNode('whatsnew','National Question in Britain','html/natqbrit.html','',''));
treeData.add(new LinkNode('whatsnew','British Neo-Imperialism','html/britneo.html','',''));
treeData.add(new LinkNode('whatsnew','Marx and Impoverishment','html/impov.html','',''));
treeData.add(new LinkNode('whatsnew','Revolutionary Newspaper','html/revpaper.html','',''));
treeData.add(new LinkNode('whatsnew','Proletarian No. 1','html/prolet.html','',''));
treeData.add(new LinkNode('whatsnew','Marxism and Law','html/law.html','',''));
treeData.add(new LinkNode('whatsnew','Anarchism','html/anarchy.html','',''));
treeData.add(new LinkNode('whatsnew','Londons Mayor','html/mayor.html','',''));
treeData.add(new LinkNode('whatsnew','Command Centre','html/cmdcntr.html','',''));
treeData.add(new LinkNode('whatsnew','Socialist Labour Party','html/slp.html','',''))
treeData.add(new FolderNode('reviews','root','IML Review','','','html/guide.html#LB'));
treeData.add(new LinkNode('reviews','About our journal','html/revintro1.html','','img-page.gif'));
treeData.add(new FolderNode('Review1','reviews','Spring 1999','','','html/guide.html#LC'));
treeData.add(new LinkNode('Review1','Foreword','html/1foreword.html','',''));
treeData.add(new LinkNode('Review1','Revolutionary Newspaper','html/revpaper.html','',''));
treeData.add(new LinkNode('Review1','Why did the Soviet Union Collapse','html/collapse.html','',''));
treeData.add(new LinkNode('Review1','A Reply','html/replyted.html','',''));
treeData.add(new LinkNode('Review1','Uniting the movement','html/revis.html','',''));
treeData.add(new LinkNode('Review1','Dialectical Unity','html/diaunity.html','',''));
treeData.add(new LinkNode('Review1','United Front','html/unif.html','',''));
treeData.add(new LinkNode('Review1','Stalin As Antibureaucrat','html/antib.html','',''));
treeData.add(new LinkNode('Review1','The Struggle in Kosova','html/kstrug.html','',''));
treeData.add(new LinkNode('Review1','The Road Ahead','html/road.html','',''));
treeData.add(new FolderNode('Review2','reviews','Spring 2000','','','html/guide.html#LD'));
treeData.add(new LinkNode('Review2','Editorial','html/revforb.html','',''));
treeData.add(new LinkNode('Review2','Reply to Critics','html/critics.html','',''));
treeData.add(new LinkNode('Review2','WPKs Struggle','html/korea1.html','',''));
treeData.add(new LinkNode('Review2','WPK and Revisionism','html/korea2.html','',''));
treeData.add(new LinkNode('Review2','Ireland: The Way Forward','html/ireland.html','',''));
treeData.add(new FolderNode('Review3','reviews','Spring 2001','','','html/guide.html#LD'));
treeData.add(new LinkNode('Review3','Index','html/review3.html','',''));
treeData.add(new LinkNode('Review3','Editorial','html/r31fore.html','',''));
treeData.add(new LinkNode('Review3','Commemoration','html/r32bland.html','',''));
treeData.add(new LinkNode('Review3','United Front of Communists','html/r33ufc.html','',''));
treeData.add(new LinkNode('Review3','Ireland: Letter from a Comrade','html/r34let1.html','',''));
treeData.add(new LinkNode('Review3','Ireland: NCMLU Replies','html/r35ncmlu.html','',''));
treeData.add(new LinkNode('Review3','Ireland: Reply from a Comrade','html/r36let2.html','',''));
treeData.add(new LinkNode('Review3','British Neo-imperialism','html/britneo.html','',''));
treeData.add(new FolderNode('comment','root','Commentaries','','','html/guide.html#LE'));
treeData.add(new LinkNode('comment','Open Polemic','html/polemic.html','',''));
treeData.add(new LinkNode('comment','Socialist Labour','html/slp.html','',''));
treeData.add(new LinkNode('comment','Proletarian No. 1','html/prolet.html','',''));
treeData.add(new FolderNode('bbook','bbook','Restoration of Capitalism','','','html/guide.html#LF'));
treeData.add(new LinkNode('bbook','Foreword','html/ussrindex.html','','book2.gif'));
treeData.add(new LinkNode('bbook','Chapter 2','html/book/ussrchap2.html','',''));
treeData.add(new LinkNode('bbook','Chapter 3','html/book/ussrchap3.html','',''));
treeData.add(new LinkNode('bbook','Chapter 4','html/book/ussrchap4.html','',''));
treeData.add(new LinkNode('bbook','Chapter 5','html/book/ussrchap5.html','',''));
treeData.add(new LinkNode('bbook','Chapter 6','html/book/ussrchap6.html','',''));
treeData.add(new LinkNode('bbook','Chapter 7','html/book/ussrchap7.html','',''));
treeData.add(new LinkNode('bbook','Chapter 8','html/book/ussrchap8.html','',''));
treeData.add(new LinkNode('bbook','Chapter 9-12','html/book/ussrchap9-12.html','',''));
treeData.add(new LinkNode('bbook','Chapter 13-15','html/book/ussrchap13-15.html','',''));
treeData.add(new LinkNode('bbook','Chapter 16-18','html/book/ussrchap16-18.html','',''));
treeData.add(new LinkNode('bbook','Chapter 19-23','html/book/ussrchap19-23.html','',''));
treeData.add(new LinkNode('bbook','Chapter 24-26','html/book/ussrchap24-26.html','',''));
treeData.add(new LinkNode('bbook','Chapter 27-29','html/book/ussrchap27-29.html','',''));
treeData.add(new LinkNode('bbook','Chapter 30-31','html/book/ussrchap30-31.html','',''));
treeData.add(new LinkNode('bbook','Chapter 32-34','html/book/ussrchap32-34.html','',''));
treeData.add(new LinkNode('bbook','Chapter 35-end','html/book/ussrchap35-end.html','',''));
treeData.add(new LinkNode('bbook','Appendix 1-2','html/book/ussrappendix1-2.html','',''));
treeData.add(new LinkNode('bbook','The Leningrad Affair','html/book/ussrleningrad.html','',''));
treeData.add(new FolderNode('crse','root','Courses of Marxism','','','html/guide.html#LG'));
treeData.add(new LinkNode('crse','Introduction','html/marxism/Cl0.html','','img-help.gif'));
treeData.add(new LinkNode('crse','Class 1','html/marxism/Cl1.html','',''));
treeData.add(new LinkNode('crse','Class 2','html/marxism/Cl2.html','',''));
treeData.add(new LinkNode('crse','Class 3','html/marxism/Cl3.html','',''));
treeData.add(new LinkNode('crse','Class 4','html/marxism/Cl4.html','',''));
treeData.add(new LinkNode('crse','Class 5','html/marxism/Cl5.html','',''));
treeData.add(new LinkNode('crse','Class 6','html/marxism/Cl6.html','',''));
treeData.add(new LinkNode('crse','Class 7','html/marxism/Cl7.html','',''));
treeData.add(new LinkNode('crse','Class 8','html/marxism/Cl8.html','',''));
treeData.add(new LinkNode('crse','An ABC of Communism','html/abc.html','',''));
treeData.add(new FolderNode('debate','root','Interactive Debate','','','html/guide.html#LH'));
treeData.add(new LinkNode('debate','Introduction','html/Db0.html','',''));
treeData.add(new LinkNode('debate','Workers Party of Korea','html/korea1.html','',''));
treeData.add(new LinkNode('debate','Reply by Communist League','html/korea2.html','',''));
treeData.add(new LinkNode('debate','Reply by Salvador P.L.','html/korea3.html','',''));
treeData.add(new FolderNode('stat','root','Committee Statements','','','html/guide.html#LI'));
treeData.add(new LinkNode('stat','Kosova: Introduction','html/kos.html','','img-help.gif'));
treeData.add(new LinkNode('stat','Genocide in Kosova','html/kost1.html','',''));
treeData.add(new LinkNode('stat','Betrayal of the Kosovars','html/ncmlp-alliance.html','',''));
treeData.add(new LinkNode('stat','Ireland','html/ireland.html','',''));
treeData.add(new LinkNode('stat','Mayor of London','html/mayor.html','',''));
treeData.add(new FolderNode('research','root','Research','','','html/guide.html#LJ'));
treeData.add(new LinkNode('research','Revisionism','html/impov.html','','img-page.gif'));
treeData.add(new LinkNode('research','Anarchism','html/anarchy.html','','img-page.gif'));
treeData.add(new LinkNode('research','Marxism & Law','html/law.html','','img-page.gif'));
treeData.add(new LinkNode('research','Socialist Labour Party','html/slp.html','','img-page.gif'));
treeData.add(new LinkNode('research','Proletariat in Britain','html/prolbrit.html','','img-page.gif'));
treeData.add(new LinkNode('research','British Neo-Imperialism','html/britneo.html','','img-page.gif'));
treeData.add(new FolderNode('links','root','Links 1','img-folder-closed-fav.gif','img-folder-open-fav.gif','html/links.html'));
treeData.add(new LinkNode('links','Links Information','html/links.html','',''));
treeData.add(new LinkNode('links','Partisan (UK)','http://www.partisan.org.uk/','_top','img-page-globe-link.gif'));
treeData.add(new LinkNode('links','Communist League','http://www.communistleague.org.uk/','_top','img-page-globe-link.gif'));
treeData.add(new LinkNode('links','Alliance M-L (North America)','http://www.geocities.com/Athens/Atrium/1091/ALLIANCEML.HTML','_top','img-page-globe-link.gif'));
treeData.add(new LinkNode('links','International Struggle M-L','http://www.ism-l.org.uk','_top','img-page-globe-link.gif'));
treeData.add(new LinkNode('links','Communist Party of Germany (Marxist-Leninist)','http://members.xoom.com/cpgerml/','_top','img-page-globe-link.gif'));
treeData.add(new LinkNode('links','Workers Party of Belgium','http://www.wpb.be/','_top','img-page-globe-link.gif'));
treeData.add(new LinkNode('links','Progressive Labor Party','http://www.plp.org/','_top','img-page-globe-link.gif'));
treeData.add(new LinkNode('links','Korea Web Weekly','http://www.kimsoft.com/korea.htm','_top','img-page-globe-link.gif'));
treeData.add(new LinkNode('links','LALKAR','http://www.lalkar.demon.co.uk','_top','img-page-globe-link.gif'));
treeData.add(new LinkNode('links','La Nostra Lotta - Italy','http://www.lanostralotta.net','_top','img-page-globe-link.gif'));
treeData.add(new LinkNode('links','Left Directory','http://www.leftdirect.co.uk/','_top','img-page-globe-link.gif'));
treeData.add(new LinkNode('links','Communist Web Portal','http://www.ecadre.net','_top','img-page-globe-link.gif'));
treeData.add(new FolderNode('ptylinks','root','Links 2','img-folder-closed-fav.gif','img-folder-open-fav.gif','html/ptylinks.html'));
treeData.add(new LinkNode('ptylinks','Links Information','html/ptylinks.html','',''));
treeData.add(new LinkNode('ptylinks','New Communist Party of Britain.','http://www.newcommunistparty.org.uk','_top','img-page-globe-link.gif'));
treeData.add(new LinkNode('ptylinks','Revolutionary Communist Party of Britain (Marxist-Leninist)','http://www.rcpbml.org.uk/','_top','img-page-globe-link.gif'));
treeData.add(new LinkNode('ptylinks','Communist Party of Britain','http://www.communist-party.org.uk/','_top','img-page-globe-link.gif'));
treeData.add(new LinkNode('ptylinks','Communist Party of Scotland','http://www.cpscotland.fsnet.co.uk/','_top','img-page-globe-link.gif'));
treeData.add(new LinkNode('ptylinks','Search','html/cpsearch.html','','img-page-globe-link.gif'));
treeData.add(new FolderNode('stlinks','root','Study Links','img-folder-closed-fav.gif','img-folder-open-fav.gif','html/stlinks.html'));
treeData.add(new LinkNode('stlinks','Study Links Information','html/stlinks.html','',''));
treeData.add(new LinkNode('stlinks','Lenin Works Archive','http://csf.colorado.edu/mirrors/marxists.org/archive/lenin/works/date/index.htm','_top','img-page-globe-link.gif'));
treeData.add(new LinkNode('stlinks','Marx To Mao Index','http://gate.cruzio.com/~marx2mao/','_top','img-page-globe-link.gif'));
treeData.add(new LinkNode('stlinks','Lenin: Marx To Mao','http://gate.cruzio.com/~marx2mao/Lenin/Index.html','_top','img-page-globe-link.gif'));
treeData.add(new LinkNode('stlinks','Stalin: Marx To Mao','http://gate.cruzio.com/~marx2mao/Stalin/Index.html','_top','img-page-globe-link.gif'));
treeData.add(new LinkNode('stlinks','Marx & Engels WWW Library','http://www.ex.ac.uk/Projects/meia/Archive/','_top','img-page-globe-link.gif'));
treeData.add(new LinkNode('stlinks','Lenin Internet Archive','http://www.marxists.org/archive/lenin/index.htm','_top','img-page-globe-link.gif'));
treeData.add(new LinkNode('stlinks','Another View of Stalin','http://www.tiac.net/users/knut/Stalin/book.html','_top','img-page-globe-link.gif'));
treeData.add(new LinkNode('stlinks','Revolutionary Democracy','http://www.revolutionarydemocracy.org/','_top','img-page-globe-link.gif'));
treeData.add(new FolderNode('webring','root','Webrings','','','html/guide.html#LM'));
treeData.add(new LinkNode('webring','Class Struggle','html/webring1.html','',''));
treeData.add(new LinkNode('webring','Politics on the Web','html/webring2.html','',''));
treeData.add(new FolderNode('email','root','Write to Us!','','','html/guide.html#LN'));
treeData.add(new LinkNode('email','To: Secretary of NCMLU','mailto:secretary@oneparty.org.uk?subject=To the NCMLU Secretary...','','img-email.gif'));
treeData.add(new LinkNode('email','To: Editor of IML Review','mailto:editor@oneparty.org.uk?subject=To the NCMLU Editor...','','img-email.gif'));
treeData.add(new LinkNode('email','Submission Form','html/subform.html','',''));
;
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// User defined variables:
structureStyle = 1; // 0 for light background, 1 for dark background
backgroundColor = '#0F005F'; // sets the bgColor of the menu
textColor = '#FF00FF'; // sets the color of the text used in the menu
linkColor = '#FF00FF'; // sets the color of any text links (usually defined in additional HTML sources)
aLinkColor = '#FF0000'; // sets the active link color (when you click on the link)
vLinkColor = '#FF00FF'; // sets the visited link color
backgroundImage = ''; // give the complete path to a gif or jpeg to use as a background image
defaultTargetFrame = 'pageFrame'; // the name of the frame that links will load into by default
defaultImageURL = 'images/'; // the URL or path where the OmenTree images are located
defaultLinkIcon = 'img-page-globe.gif'; // the default icon image used for links
omenTreeFont = 'MS Sans Serif,Arial,Helvetica'; // the font used for the menu
omenTreeFontSize = 1; // its size - don't make it too big!
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Additional HTML sources:
suffixHTML = '
Click on a Folder to open or close it. The menu entries (above) link to the site guide