skydrops
<!--{{{-->
<div class='toolbar' macro='toolbar [[ToolbarCommands::ViewToolbar]]'></div>
<div class='title' macro='view title'></div>
<div class='tagging' macro='tagging'></div>
<div class='tagged' macro='tags'></div>
<div class='viewer' macro='view versions wikified'></div>
<div class='viewer' macro='view text wikified'></div>
<div class='tagClear'></div>
<hr/>
<div class='comments' macro='comments'></div>
<!--}}}-->
[[/bg1|/bg1]]
//{{{
config.macros.importTiddlers.showAll = function (ev) {
	var target = resolveTarget(ev || window.event);
	var url = target.id.substring(3);
	var pel = target.parentNode;
	removeChildren(pel);
	config.macros.importTiddlers.serve(url, false, true, pel.id);
};

config.macros.importTiddlers.refresh = function (ev) {
	var target = resolveTarget(ev || window.event);
	var aurl = target.getAttribute('aurl');
	var filt = target.getAttribute('filter');
	var wrd = document.getElementById("wrdiv:" + aurl);
	var place = wrd.parentNode;
	place.removeChild(wrd);
	config.macros.importTiddlers.renderTL(place, aurl, filt, null, true);
	var libs = http.tiddlersFromUrl({ url: aurl, filter: filt || '', source: 'remote' }).sort(config.macros.importTiddlers.sortf);
};

config.macros.importTiddlers.onchange = function (target) {
	var idx = Number(target.id.substring(3));
	var libs = config.macros.importTiddlers.libs;
	var hidden = false;
	if (target.checked && store.hasTiddler(libs[idx].title, true)) {
		hidden = true;
		displayMessage(libs[idx].title + " will be hidden by existing tiddler");
	}
	libs[idx].current = target.checked;
	var reqmsg = false;
	if (libs[idx].current && hidden == false) {
		var reqs = libs[idx].requires;
		if (reqs) {
			reqs = reqs.readBracketedList();
			for (var rti = 0; rti < reqs.length; rti++) {
				if (!store.getTiddler(reqs[rti])) {
					displayMessage(libs[idx].title + " requires " + reqs[rti]);
					reqmsg = true;
					if (!libs[idx].pulls)
						libs[idx].pulls = [ reqs[rti] ];
					else
						libs[idx].pulls.push(reqs[rti]);
				}
			}
		}
	}
	if (reqmsg)
		displayMessage("Required tiddlers are also imported.");
	var cursel = [];
	for (var t = 0; t < libs.length; t++)
		if (libs[t].current) {
			cursel.push(libs[t].title);
			var pulls = libs[t].pulls;
			if (!pulls)
				continue;
			for (var lix = 0; lix < pulls.length; lix++) {
				if (cursel.indexOf(pulls[lix]) == -1) {
					cursel.push(pulls[lix]);
					var ctls = target.parentNode.parentNode.parentNode.childNodes;
					for (var cni = 0; cni < ctls.length; cni++) {
						if (ctls[cni].firstChild.childNodes[1].firstChild.nodeValue == pulls[lix])
							ctls[cni].firstChild.firstChild.checked = true;
					}
				}
			}
		}
	var aurl = config.macros.importTiddlers.aurl;
	if (aurl.startsWith('http:'))
		aurl = aurl.substring(5);
	var cmdincl = document.getElementById('cmdInclude');
	if (cmdincl) cmdincl.href = [window.location.path, '?include=', aurl, '|', cursel.join('|')].join('');
};

config.macros.importTiddlers.fetch = function (ev) {
	var target = resolveTarget(ev || window.event);
	var td = http.getTiddler({ id: target.getAttribute('title') + "#" + target.firstChild.nodeValue });
	if (store.getTiddler(td.title))
		if (!confirm("This will hide the existing tiddler by the same name"))
			return;

	var tiddler = new Tiddler(td.title, 0, td.text);
	tiddler.tags = td.tags.readBracketedList();
	tiddler.modifier = td.modifier;
	tiddler.modified = td.modified;
	var info = "Retrieved from " + target.getAttribute('title')
	tiddler.versions = '|' + info + '|'
	config.annotations[td.title] = info
	store.addTiddler(tiddler);
	story.displayTiddler(null, tiddler.title);
	story.focusTiddler(tiddler.title, "text");
};

config.macros.importTiddlers.serve = function (file, selected, override, where) {
	var ms = function (t) {
		t.version = t.currentVer = 0;
		t.hasShadow = true;
		t.modifier = config.views.wikified.shadowModifier;
		t.created = null;
		t.modified = null;
		return t;
	};
	if ((!store.fetchTiddler(file)) || override) {
		var bas = ['<<importTiddlers "', file, '" ',
					selected ? 'tiddlers' : '',
					' ', selected ? selected.toJSONString() : "", '>>'].join('');
		if (where) {
			dew = document.getElementById(where);
			if (dew)
				return wikify(bas, dew);
		}
		store.addTiddler(ms(new Tiddler(file, 0, bas)));
	}
	if (story.getTiddler(file))
		story.refreshTiddler(file, null, true);
	else
		story.displayTiddler(null, file);
};
//}}}
* html .tiddler {height:1%;}

body {font-size:.75em; font-family:arial,helvetica; margin:0; padding:0;}

h1,h2,h3,h4,h5,h6 {font-weight:bold; text-decoration:none;}
h1,h2,h3 {padding-bottom:1px; margin-top:1.2em;margin-bottom:0.3em;}
h4,h5,h6 {margin-top:1em;}
h1 {font-size:1.35em;}
h2 {font-size:1.25em;}
h3 {font-size:1.1em;}
h4 {font-size:1em;}
h5 {font-size:.9em;}

hr {height:1px;}

a {text-decoration:none;}

dt {font-weight:bold;}

ol {list-style-type:decimal;}
ol ol {list-style-type:lower-alpha;}
ol ol ol {list-style-type:lower-roman;}
ol ol ol ol {list-style-type:decimal;}
ol ol ol ol ol {list-style-type:lower-alpha;}
ol ol ol ol ol ol {list-style-type:lower-roman;}
ol ol ol ol ol ol ol {list-style-type:decimal;}

fieldset { padding:0px 8px 4px 4px; }

.txtOptionInput {width:11em;}

#contentWrapper .chkOptionInput {border:0;}

.externalLink {text-decoration:underline;}

.indent {margin-left:3em;}
.outdent {margin-left:3em; text-indent:-3em;}
code.escaped {white-space:nowrap;}

.tiddlyLinkExisting {font-weight:bold;}
.tiddlyLinkNonExisting {font-style:italic;}

/* the 'a' is required for IE, otherwise it renders the whole tiddler in bold */
a.tiddlyLinkNonExisting.shadow {font-weight:bold;}

#mainMenu .tiddlyLinkExisting,
#mainMenu .tiddlyLinkNonExisting,
#sidebarTabs .tiddlyLinkNonExisting {font-weight:normal; font-style:normal;}
#sidebarTabs .tiddlyLinkExisting {font-weight:bold; font-style:normal;}
#sidebarTabs .button {margin:0em 0.2em;	padding:0.2em 0.3em; display:block;}

#headerArea { margin: 0.5em; }
.siteTitle {font-size:3em;}
.siteSubtitle {font-size:1.2em;}

#topRightCorner { position:absolute; top:0.5em;right:0.9em; font-size: 1.1em; text-align: right; }

#mainMenu {position:absolute; left:0; width:10em; text-align:right; line-height:1.6em; padding:1.5em 0.5em 0.5em 0.5em; font-size:1.1em;}

#sidebar {position:absolute; right:3px; width:16em; font-size:.9em;}
#sidebarOptions {padding-top:0.3em;}
#sidebarOptions a {margin:0em 0.2em; padding:0.2em 0.3em; display:block;}
#sidebarOptions input {margin:0.4em 0.5em;}
#sidebarOptions .sliderPanel {margin-left:1em; padding:0.5em; font-size:.85em;}
#sidebarOptions .sliderPanel a {font-weight:bold; display:inline; padding:0;}
#sidebarOptions .sliderPanel input {margin:0 0 .3em 0;}
#sidebarTabs .tabContents {width:15em; overflow:hidden;}

.wizard {padding:0.1em 1em 0em 2em;}
.wizard h1 {font-size:2em; font-weight:bold; background:none; padding:0em 0em 0em 0em; margin:0.4em 0em 0.2em 0em;}
.wizard h2 {font-size:1.2em; font-weight:bold; background:none; padding:0em 0em 0em 0em; margin:0.4em 0em 0.2em 0em;}
.wizardStep {padding:1em 1em 1em 1em;}
.wizard .button {margin:0.5em 0em 0em 0em; font-size:1.2em;}
.wizardFooter {padding:0.8em 0.4em 0.8em 0em;}
.wizardFooter .status {padding:0em 0.4em 0em 0.4em; margin-left:1em;}
.wizard .button {padding:0.1em 0.2em 0.1em 0.2em;}

#messageArea {position:fixed; top:2em; right:0em; margin:0.5em; padding:0.5em; z-index:2000; _position:absolute;}
.messageToolbar {display:block; text-align:right; padding:0.2em 0.2em 0.2em 0.2em;}
#messageArea a {text-decoration:underline;}

.tiddlerPopupButton {padding:0.2em 0.2em 0.2em 0.2em;}
.popupTiddler {position: absolute; z-index:300; padding:1em 1em 1em 1em; margin:0;}

.popup {position:absolute; z-index:300; font-size:.9em; padding:0; list-style:none; margin:0;}
.popup .popupMessage {padding:0.4em;}
.popup hr {display:block; height:1px; width:auto; padding:0; margin:0.2em 0em;}
.popup li.disabled {padding:0.4em;}
.popup li a {display:block; padding:0.4em; font-weight:normal; cursor:pointer;}
.listBreak {font-size:1px; line-height:1px;}

.listBreak div {margin:2px 0;}
.tabset {padding:1em 0em 0em 0.5em;}
.tab {margin:0em 0em 0em 0.25em; padding:2px;}
.tabContents {padding:0.5em;}
.tabContents ul, .tabContents ol {margin:0; padding:0;}
.txtMainTab .tabContents li {list-style:none;}
.tabContents li.listLink { margin-left:.75em;}
.tabContents .tiddler {padding:0.1em 0.5em 0.5em 0.5em}

#contentWrapper {display:block;}
#splashScreen {display:none;}

#displayArea {margin:1em 17em 0em 14em;}

.toolbar {text-align:right; font-size:.9em;}
.commentToolbar {text-align:left; font-size:.9em;}

.tiddler {padding:1em 1em 0em 1em;}

.missing .viewer,.missing .title {font-style:italic;}

.title {font-size:1.6em; font-weight:bold;}

.missing .subtitle {display:none;}
.subtitle {font-size:1.1em;}

.tiddler .button {padding:0.2em 0.4em;}
.tiddler .disabled {padding:0.2em 0.6em;}

.tagging {margin:0.5em 0.5em 0.5em 0; float:left; display:none;}
.isTag .tagging {display:block;}
.tagged {margin:0.5em; float:right;}
.tagging, .tagged {font-size:0.9em; padding:0.25em;}
.tagging ul, .tagged ul {list-style:none; margin:0.25em; padding:0;}
.tagClear {clear:both;}

.footer {font-size:.9em;}
.footer li {display:inline;}

.annotation {padding:0.5em; margin:0.5em;}

* html .viewer pre {width:99%; padding:0 0 1em 0;}
.viewer {line-height:1.4em; padding-top:0.5em;}
.viewer .button {margin:0em 0.25em; padding:0em 0.25em;}
.viewer blockquote {line-height:1.5em; padding-left:0.8em;margin-left:2.5em;}
.viewer ul, .viewer ol {margin-left:0.5em; padding-left:1.5em;}

.viewer table, table.twtable {border-collapse:collapse; margin:0em 0em; 0em; 0em; font-size:1.0em;}
.viewer tr {vertical-align: top; }

.viewer th, .viewer td, .viewer tr,.viewer caption,.twtable th, .twtable td, .twtable tr,.twtable caption {padding:3px;}
table.listView {font-size:0.85em; margin:0.8em 1.0em;}
table.listView th, table.listView td, table.listView tr {padding:0px 3px 0px 3px;}

.viewer pre {padding:0.5em; margin-left:0.5em; font-size:1.2em; line-height:1.4em; overflow:auto;}
.viewer code {font-size:1.2em; line-height:1.4em;}

.editor {font-size:1.1em;}
.editor input, .editor textarea {display:block; width:100%; font:inherit;}
.editorFooter {padding:0.25em 0em; font-size:.9em;}
.editorFooter .button {padding-top:0px; padding-bottom:0px;}

.fieldsetFix {border:0; padding:0; margin:1px 0px 1px 0px;}

.sparkline {line-height:1em;}
.sparktick {outline:0;}

.zoomer {font-size:1.1em; position:absolute; overflow:hidden;}
.zoomer div {padding:1em;}

.commentTable {width:100%; font-size:1.0em;}
.commentTable td {vertical-align:text-top;}
.commentArea {border:0px; width:100%; font:inherit;}
.commentToolbar { padding-bottom:5px;}
.replyTD { padding-left:1.25em }
.buttonftr {position:relative; top:0em; right:0em; }
.linkbutton { font-weight: bold }
.siteMapTags { color: #ff0000 }
a.fieldsLink { margin-left:10px; margin-bottom:8px;}

.diffout { font-size:1.0em; font-family: courier; }
.diffminus { background-color: #d0ffdd; color: blue; }
.diffplus { background-color: #ffd0dd; color: darkred; }

[[JavaCave.class|JavaCave.class]]
//{{{
config.macros.importTiddlerStatus = {
	handler: function (place, macroName, params, wikifier, paramString) {
		try { var evv = eval(params[0]) } catch (e) { return; }
		if (evv) {
			var list = evv.split('\n');
			var n = 0;
			var where = params[1] || '';
			for (var i = 0; i < list.length; i++)
				if (list[i].trim() != "") {
					var data = list[i].trim().split('#', 2);
					var wt = ['<script label="', data[0], '">config.macros.importTiddlers.serve(', data[0].toJSONString(), ',', data[1].toJSONString(), ',true,', where.toJSONString(), ')</script><br>'].join('');
					++n;  //if (++n == 1) wikify('<br>', place);
					wikify(wt, place);
				}
			if (n == 0)
				wikify(' (none)', place);
		}
	}
};
//}}}
/***
|Name|NestedSlidersPlugin|
|Source|http://www.TiddlyTools.com/#NestedSlidersPlugin|
|Documentation|http://www.TiddlyTools.com/#NestedSlidersPluginInfo|
|Version|2.4.9|
|Author|Eric Shulman|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.1|
|Type|plugin|
|Description|show content in nest-able sliding/floating panels, without creating separate tiddlers for each panel's content|
!!!!!Documentation
>see [[NestedSlidersPluginInfo]]
!!!!!Configuration
<<<
<<option chkFloatingSlidersAnimate>> allow floating sliders to animate when opening/closing
>Note: This setting can cause 'clipping' problems in some versions of InternetExplorer.
>In addition, for floating slider animation to occur you must also allow animation in general (see [[AdvancedOptions]]).
<<<
!!!!!Revisions
<<<
2008.11.15 - 2.4.9 in adjustNestedSlider(), don't make adjustments if panel is marked as 'undocked' (CSS class).  In onClickNestedSlider(), SHIFT-CLICK docks panel (see [[MoveablePanelPlugin]])
|please see [[NestedSlidersPluginInfo]] for additional revision details|
2005.11.03 - 1.0.0 initial public release.  Thanks to RodneyGomes, GeoffSlocock, and PaulPetterson for suggestions and experiments.
<<<
!!!!!Code
***/
//{{{
version.extensions.NestedSlidersPlugin= {major: 2, minor: 4, revision: 9, date: new Date(2008,11,15)};

// options for deferred rendering of sliders that are not initially displayed
if (config.options.chkFloatingSlidersAnimate===undefined)
	config.options.chkFloatingSlidersAnimate=false; // avoid clipping problems in IE

// default styles for 'floating' class
setStylesheet(".floatingPanel { position:absolute; z-index:10; padding:0.5em; margin:0em; \
	background-color:#eee; color:#000; border:1px solid #000; text-align:left; }","floatingPanelStylesheet");

// if removeCookie() function is not defined by TW core, define it here.
if (window.removeCookie===undefined) {
	window.removeCookie=function(name) {
		document.cookie = name+'=; expires=Thu, 01-Jan-1970 00:00:01 UTC; path=/;'; 
	}
}

config.formatters.push( {
	name: "nestedSliders",
	match: "\\n?\\+{3}",
	terminator: "\\s*\\={3}\\n?",
	lookahead: "\\n?\\+{3}(\\+)?(\\([^\\)]*\\))?(\\!*)?(\\^(?:[^\\^\\*\\@\\[\\>]*\\^)?)?(\\*)?(\\@)?(?:\\{\\{([\\w]+[\\s\\w]*)\\{)?(\\[[^\\]]*\\])?(\\[[^\\]]*\\])?(?:\\}{3})?(\\#[^:]*\\:)?(\\>)?(\\.\\.\\.)?\\s*",
	handler: function(w)
		{
			lookaheadRegExp = new RegExp(this.lookahead,"mg");
			lookaheadRegExp.lastIndex = w.matchStart;
			var lookaheadMatch = lookaheadRegExp.exec(w.source)
			if(lookaheadMatch && lookaheadMatch.index == w.matchStart)
			{
				var defopen=lookaheadMatch[1];
				var cookiename=lookaheadMatch[2];
				var header=lookaheadMatch[3];
				var panelwidth=lookaheadMatch[4];
				var transient=lookaheadMatch[5];
				var hover=lookaheadMatch[6];
				var buttonClass=lookaheadMatch[7];
				var label=lookaheadMatch[8];
				var openlabel=lookaheadMatch[9];
				var panelID=lookaheadMatch[10];
				var blockquote=lookaheadMatch[11];
				var deferred=lookaheadMatch[12];

				// location for rendering button and panel
				var place=w.output;

				// default to closed, no cookie, no accesskey, no alternate text/tip
				var show="none"; var cookie=""; var key="";
				var closedtext=">"; var closedtip="";
				var openedtext="<"; var openedtip="";

				// extra "+", default to open
				if (defopen) show="block";

				// cookie, use saved open/closed state
				if (cookiename) {
					cookie=cookiename.trim().slice(1,-1);
					cookie="chkSlider"+cookie;
					if (config.options[cookie]==undefined)
						{ config.options[cookie] = (show=="block") }
					show=config.options[cookie]?"block":"none";
				}

				// parse label/tooltip/accesskey: [label=X|tooltip]
				if (label) {
					var parts=label.trim().slice(1,-1).split("|");
					closedtext=parts.shift();
					if (closedtext.substr(closedtext.length-2,1)=="=")	
						{ key=closedtext.substr(closedtext.length-1,1); closedtext=closedtext.slice(0,-2); }
					openedtext=closedtext;
					if (parts.length) closedtip=openedtip=parts.join("|");
					else { closedtip="show "+closedtext; openedtip="hide "+closedtext; }
				}

				// parse alternate label/tooltip: [label|tooltip]
				if (openlabel) {
					var parts=openlabel.trim().slice(1,-1).split("|");
					openedtext=parts.shift();
					if (parts.length) openedtip=parts.join("|");
					else openedtip="hide "+openedtext;
				}

				var title=show=='block'?openedtext:closedtext;
				var tooltip=show=='block'?openedtip:closedtip;

				// create the button
				if (header) { // use "Hn" header format instead of button/link
					var lvl=(header.length>5)?5:header.length;
					var btn = createTiddlyElement(createTiddlyElement(place,"h"+lvl,null,null,null),"a",null,buttonClass,title);
					btn.onclick=onClickNestedSlider;
					btn.setAttribute("href","javascript:;");
					btn.setAttribute("title",tooltip);
				}
				else
					var btn = createTiddlyButton(place,title,tooltip,onClickNestedSlider,buttonClass);
				btn.innerHTML=title; // enables use of HTML entities in label

				// set extra button attributes
				btn.setAttribute("closedtext",closedtext);
				btn.setAttribute("closedtip",closedtip);
				btn.setAttribute("openedtext",openedtext);
				btn.setAttribute("openedtip",openedtip);
				btn.sliderCookie = cookie; // save the cookiename (if any) in the button object
				btn.defOpen=defopen!=null; // save default open/closed state (boolean)
				btn.keyparam=key; // save the access key letter ("" if none)
				if (key.length) {
					btn.setAttribute("accessKey",key); // init access key
					btn.onfocus=function(){this.setAttribute("accessKey",this.keyparam);}; // **reclaim** access key on focus
				}
				btn.setAttribute("hover",hover?"true":"false");
				btn.onmouseover=function(ev) {
					// optional 'open on hover' handling
					if (this.getAttribute("hover")=="true" && this.sliderPanel.style.display=='none') {
						document.onclick.call(document,ev); // close transients
						onClickNestedSlider(ev); // open this slider
					}
					// mouseover on button aligns floater position with button
					if (window.adjustSliderPos) window.adjustSliderPos(this.parentNode,this,this.sliderPanel);
				}

				// create slider panel
				var panelClass=panelwidth?"floatingPanel":"sliderPanel";
				if (panelID) panelID=panelID.slice(1,-1); // trim off delimiters
				var panel=createTiddlyElement(place,"div",panelID,panelClass,null);
				panel.button = btn; // so the slider panel know which button it belongs to
				btn.sliderPanel=panel; // so the button knows which slider panel it belongs to
				panel.defaultPanelWidth=(panelwidth && panelwidth.length>2)?panelwidth.slice(1,-1):"";
				panel.setAttribute("transient",transient=="*"?"true":"false");
				panel.style.display = show;
				panel.style.width=panel.defaultPanelWidth;
				panel.onmouseover=function(event) // mouseover on panel aligns floater position with button
					{ if (window.adjustSliderPos) window.adjustSliderPos(this.parentNode,this.button,this); }

				// render slider (or defer until shown) 
				w.nextMatch = lookaheadMatch.index + lookaheadMatch[0].length;
				if ((show=="block")||!deferred) {
					// render now if panel is supposed to be shown or NOT deferred rendering
					w.subWikify(blockquote?createTiddlyElement(panel,"blockquote"):panel,this.terminator);
					// align floater position with button
					if (window.adjustSliderPos) window.adjustSliderPos(place,btn,panel);
				}
				else {
					var src = w.source.substr(w.nextMatch);
					var endpos=findMatchingDelimiter(src,"+++","===");
					panel.setAttribute("raw",src.substr(0,endpos));
					panel.setAttribute("blockquote",blockquote?"true":"false");
					panel.setAttribute("rendered","false");
					w.nextMatch += endpos+3;
					if (w.source.substr(w.nextMatch,1)=="\n") w.nextMatch++;
				}
			}
		}
	}
)

function findMatchingDelimiter(src,starttext,endtext) {
	var startpos = 0;
	var endpos = src.indexOf(endtext);
	// check for nested delimiters
	while (src.substring(startpos,endpos-1).indexOf(starttext)!=-1) {
		// count number of nested 'starts'
		var startcount=0;
		var temp = src.substring(startpos,endpos-1);
		var pos=temp.indexOf(starttext);
		while (pos!=-1)  { startcount++; pos=temp.indexOf(starttext,pos+starttext.length); }
		// set up to check for additional 'starts' after adjusting endpos
		startpos=endpos+endtext.length;
		// find endpos for corresponding number of matching 'ends'
		while (startcount && endpos!=-1) {
			endpos = src.indexOf(endtext,endpos+endtext.length);
			startcount--;
		}
	}
	return (endpos==-1)?src.length:endpos;
}
//}}}
//{{{
window.onClickNestedSlider=function(e)
{
	if (!e) var e = window.event;
	var theTarget = resolveTarget(e);
	while (theTarget && theTarget.sliderPanel==undefined) theTarget=theTarget.parentNode;
	if (!theTarget) return false;
	var theSlider = theTarget.sliderPanel;
	var isOpen = theSlider.style.display!="none";

	// if SHIFT-CLICK, dock panel first (see [[MoveablePanelPlugin]])
	if (e.shiftKey && config.macros.moveablePanel) config.macros.moveablePanel.dock(theSlider,e);

	// toggle label
	theTarget.innerHTML=isOpen?theTarget.getAttribute("closedText"):theTarget.getAttribute("openedText");
	// toggle tooltip
	theTarget.setAttribute("title",isOpen?theTarget.getAttribute("closedTip"):theTarget.getAttribute("openedTip"));

	// deferred rendering (if needed)
	if (theSlider.getAttribute("rendered")=="false") {
		var place=theSlider;
		if (theSlider.getAttribute("blockquote")=="true")
			place=createTiddlyElement(place,"blockquote");
		wikify(theSlider.getAttribute("raw"),place);
		theSlider.setAttribute("rendered","true");
	}

	// show/hide the slider
	if(config.options.chkAnimate && (!hasClass(theSlider,'floatingPanel') || config.options.chkFloatingSlidersAnimate))
		anim.startAnimating(new Slider(theSlider,!isOpen,e.shiftKey || e.altKey,"none"));
	else
		theSlider.style.display = isOpen ? "none" : "block";

	// reset to default width (might have been changed via plugin code)
	theSlider.style.width=theSlider.defaultPanelWidth;

	// align floater panel position with target button
	if (!isOpen && window.adjustSliderPos) window.adjustSliderPos(theSlider.parentNode,theTarget,theSlider);

	// if showing panel, set focus to first 'focus-able' element in panel
	if (theSlider.style.display!="none") {
		var ctrls=theSlider.getElementsByTagName("*");
		for (var c=0; c<ctrls.length; c++) {
			var t=ctrls[c].tagName.toLowerCase();
			if ((t=="input" && ctrls[c].type!="hidden") || t=="textarea" || t=="select")
				{ try{ ctrls[c].focus(); } catch(err){;} break; }
		}
	}
	var cookie=theTarget.sliderCookie;
	if (cookie && cookie.length) {
		config.options[cookie]=!isOpen;
		if (config.options[cookie]!=theTarget.defOpen) window.saveOptionCookie(cookie);
		else window.removeCookie(cookie); // remove cookie if slider is in default display state
	}

	// prevent SHIFT-CLICK from being processed by browser (opens blank window... yuck!)
	// prevent clicks *within* a slider button from being processed by browser
	// but allow plain click to bubble up to page background (to close transients, if any)
	if (e.shiftKey || theTarget!=resolveTarget(e))
		{ e.cancelBubble=true; if (e.stopPropagation) e.stopPropagation(); }
	Popup.remove(); // close open popup (if any)
	return false;
}
//}}}
//{{{
// click in document background closes transient panels 
document.nestedSliders_savedOnClick=document.onclick;
document.onclick=function(ev) { if (!ev) var ev=window.event; var target=resolveTarget(ev);

	if (document.nestedSliders_savedOnClick)
		var retval=document.nestedSliders_savedOnClick.apply(this,arguments);
	// if click was inside a popup... leave transient panels alone
	var p=target; while (p) if (hasClass(p,"popup")) break; else p=p.parentNode;
	if (p) return retval;
	// if click was inside transient panel (or something contained by a transient panel), leave it alone
	var p=target; while (p) {
		if ((hasClass(p,"floatingPanel")||hasClass(p,"sliderPanel"))&&p.getAttribute("transient")=="true") break;
		p=p.parentNode;
	}
	if (p) return retval;
	// otherwise, find and close all transient panels...
	var all=document.all?document.all:document.getElementsByTagName("DIV");
	for (var i=0; i<all.length; i++) {
		 // if it is not a transient panel, or the click was on the button that opened this panel, don't close it.
		if (all[i].getAttribute("transient")!="true" || all[i].button==target) continue;
		// otherwise, if the panel is currently visible, close it by clicking it's button
		if (all[i].style.display!="none") window.onClickNestedSlider({target:all[i].button})
		if (!hasClass(all[i],"floatingPanel")&&!hasClass(all[i],"sliderPanel")) all[i].style.display="none";
	}
	return retval;
};
//}}}
//{{{
// adjust floating panel position based on button position
if (window.adjustSliderPos==undefined) window.adjustSliderPos=function(place,btn,panel) {
	if (hasClass(panel,"floatingPanel") && !hasClass(panel,"undocked")) {
		// see [[MoveablePanelPlugin]] for use of 'undocked'
		var rightEdge=document.body.offsetWidth-1;
		var panelWidth=panel.offsetWidth;
		var left=0;
		var top=btn.offsetHeight; 
		if (place.style.position=="relative" && findPosX(btn)+panelWidth>rightEdge) {
			left-=findPosX(btn)+panelWidth-rightEdge; // shift panel relative to button
			if (findPosX(btn)+left<0) left=-findPosX(btn); // stay within left edge
		}
		if (place.style.position!="relative") {
			var left=findPosX(btn);
			var top=findPosY(btn)+btn.offsetHeight;
			var p=place; while (p && !hasClass(p,'floatingPanel')) p=p.parentNode;
			if (p) { left-=findPosX(p); top-=findPosY(p); }
			if (left+panelWidth>rightEdge) left=rightEdge-panelWidth;
			if (left<0) left=0;
		}
		panel.style.left=left+"px"; panel.style.top=top+"px";
	}
}
//}}}
//{{{
// TW2.1 and earlier:
// hijack Slider stop handler so overflow is visible after animation has completed
Slider.prototype.coreStop = Slider.prototype.stop;
Slider.prototype.stop = function()
	{ this.coreStop.apply(this,arguments); this.element.style.overflow = "visible"; }

// TW2.2+
// hijack Morpher stop handler so sliderPanel/floatingPanel overflow is visible after animation has completed
if (version.major+.1*version.minor+.01*version.revision>=2.2) {
	Morpher.prototype.coreStop = Morpher.prototype.stop;
	Morpher.prototype.stop = function() {
		this.coreStop.apply(this,arguments);
		var e=this.element;
		if (hasClass(e,"sliderPanel")||hasClass(e,"floatingPanel")) {
			// adjust panel overflow and position after animation
			e.style.overflow = "visible";
			if (window.adjustSliderPos) window.adjustSliderPos(e.parentNode,e.button,e);
		}
	};
}
//}}}
<<login edit UserMenu "My stuff" m>><<slider chkSliderSearchPanel SearchPanel "search »" "Search page or site">><<closeAll>><<menu edit EditingMenu "Editing menu" e "!readOnly && config.owner">>
[[chex.png|chex.png]]
[[header|header]]
[[/header2.png|/header2.png]]
[[bg.png|bg.png]]
<html>
<applet code="JavaCave" alt="JavaApplet" width="128" height="160"></applet>
</html>
<<image '/bluebox.jpg' < 50%>>
<!--{{{-->
<img src='/TitleImage2.jpg' style='position:absolute; z-index:-1; top:0; height:60px; width:40000px'>
<img src='/TitleImage2.jpg' style='position:absolute; z-index:-1; top:0; height:60px; right:0;' >
<div id='headerArea'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
<span id='topRightCorner' refresh='content' tiddler='TopRightCorner'></span>
</div>
<div id='mainMenu' refresh='content' tiddler='MainMenu'></div>
<div id='sidebar'>
<div id='sidebarOptions' refresh='content' tiddler='SideBarOptions'></div>
<div id='sidebarTabs' refresh='macro' force='true' macro='slider chkSideBarTabs SideBarTabs "index »" "display lists of tiddlers"'></div>
</div>
<div id='displayArea'>
<div id='messageArea'></div>
<div id='tiddlerDisplay'></div>
</div>
<!--}}}-->
[[shadow.png|shadow.png]]
<<allTagsExcept systemConfig excludeLists excludeSearch>>
[[web.png|web.png]]
[[loading.gif|loading.gif]]
//{{{
config.macros.importTiddlers = {
	sortf: function(a,b) {
		a = a.title.toUpperCase();
		b = b.title.toUpperCase();
		if (a < b) return -1;
		if (a > b) return 1;
		return 0;
	},
	handler: function (place, macroName, params, wikifier, paramString) {
		if (params.length == 0)
			wikify("The importTiddlers macro lets you easily import from ~TiddlyWiki or giewiki documents on the web or on this web site. Usage:<br>    {{{<<importTiddlers URL>>}}}<br>substituting URL with the web address or filename of the library you want to use. Edit this tiddler to insert the parameter"
				+ config.macros.importTiddlers.menu(), place);
		else {
			var aurl = params.shift();
			var filt = params.shift();
			if (filt == 'all') {
				return wikify('all', place);
			}
			if (filt == 'tagged')
				var afilter = params.join(' ');
			else if (filt == 'tiddlers' && params.length)
				var tiddlers = params.length == 1 ? params[0].split('||') : params;
			config.macros.importTiddlers.renderTL(place,aurl,afilter,tiddlers);
		}
	}
};
	
config.macros.importTiddlers.menu = function () {
	var filelist = http.tiddlersFromUrl({ menu: true });
	if (filelist.length == 0)
		return ".";
	var mls = [" or select from the following previously retrieved files:"];
	for (var i = 0; i < filelist.length; i++)
		mls.push(['<script label="', filelist[i], '">config.macros.importTiddlers.serve(', filelist[i].toJSONString(), ')</script>'].join(''));
	return mls.join('<br>');
};
	
config.macros.importTiddlers.importSelected = function (ev, tidlr) {
	var importByMenu = function (url, tbl) {
		var selectList = [];
		var cls = config.macros.importTiddlers.tims[url];
		for (var mn in cls) {
			var e = cls[mn];
			var tn = e.nextSibling.firstChild.nodeValue;
			if (e.type == 'checkbox' && e.checked && tn)
				selectList.push(tn);
		}
		var result = http.tiddlersFromUrl({ url: url, select: selectList.length ? selectList.join('||') : 'void' });
	};

	if (!tidlr)
		tidlr = story.findContainingTiddler(resolveTarget(ev || window.event));
	var urls = document.getElementsByName('url')
	for (var i in urls) {
		var e = urls[i];
		if (isDescendant(e, tidlr)) {
			importByMenu(e.getAttribute("id"), e.nextSibling);
		}
	}
	return true;
};
//}}}
<!--{{{-->
<div class='toolbar' macro='toolbar [[ToolbarCommands::EditToolbar]]'></div>
<div class='title' macro='view title'></div>
<fieldset><legend>Title</legend><div class='editor' macro='edit title'></div></fieldset>
<div macro='annotations'></div>
<fieldset><legend>Text</legend><div class='editor' macro='edit text'></div>
<table style='width:100%;'><tr><td><div class='commentToolbar' macro='toolbar [[ToolbarCommands::TextToolbar]]'></td><td align='right'><div class='toolbar' macro='toolbar [[ToolbarCommands::EditToolbar]]'></div></td></tr></table> </fieldset>
<fieldset id='preview' style='display:none'><legend>Preview</legend><div class='viewer' ></div></fieldset>
<fieldset id='tag' class='tagFrame'><legend>Tags & attributes</legend><div class='editor' macro='edit tags'></div><div class='editorFooter'><span macro='message views.editor.tagPrompt'></span><span macro='tagChooser'></span></div></fieldset>
<div class='editorFooter' macro='deliciousTagging'></div>
<!--}}}-->
[[header_try.png|header_try.png]]
[[pattern-bg.png|pattern-bg.png]]
[[/bg.png|/bg.png]]
<<RefreshTiddler>>

<html><iframe src="https://lite.cnn.io/" width="100%" height="500px" scrolling="auto" frameborder="0" allowtransparency></iframe></html>
[img[http://chart.apis.google.com/chart?cht=tx&chf=bg,s,FFFFFF00&chco=AACCFF&chl=i\hbar\frac{\partial}{\partial%20t}%20\Psi%28\mathbf{r},\,t%29%20=%20\hat%20H%20\Psi%28\mathbf{r},t%29]]
<<tiddler Bear>>
[img[http://i.imgur.com/7iolUmN.png]]
[[bg_lines.png|bg_lines.png]]
<<image '/colorcircle.jpg' < 50%>>
PageSetup  (can access customization features from here)
SideBarOptions
PageTemplate : place to change header
ViewTemplate
DefaultTiddlers
MainMenu
----
SiteMap
RecentChanges
RecentComments
SideBarTabs
----
<<slider chkSliderOptionsPanel OptionsPanel "options »" "Change TiddlyWiki advanced options">>

''<<slider chkSideBarTabs SideBarTabs "panel »" "view">>''
<html><a
 href="javascript:void(0)" onclick="story.closeAllTiddlers(); story.displayTiddlers(null,store.getTiddlerText('DefaultTiddlers').readBracketedList())"
>Home</a></html>
TagCloud
<<slider chkMainTabs MainTags "Tags »" "Expand">>
<!--{{{-->
<img src='header2.png' style='position:absolute; z-index:-1; top:0; height:50px; width:100%'>
<div id='headerArea'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
<span id='topRightCorner' refresh='content' tiddler='TopRightCorner'></span>
</div>
<div id='mainMenu' refresh='content' tiddler='MainMenu'></div>
<div id='sidebar'>
<div id='sidebarOptions' refresh='content' tiddler='SideBarOptions'></div>
<!--  <div id='sidebarTabs' refresh='content' force='true' tiddler='SideBarTabs'></div> -->
</div>
<div id='displayArea'>
<div id='messageArea'></div>
<div id='tiddlerDisplay'></div>
</div>
<!--}}}-->
[[test.png|test.png]]
[[/header_city.png|/header_city.png]]
version.extensions.tagCloud = {major: 1, minor: 0 , revision: 1, date: new Date(2005,8,16)};

config.macros.tagCloud = {
 noTags: "No tag cloud created because there are no tags.",
 tooltip: "%1 tiddlers tagged with '%0'"
};

config.macros.tagCloud.handler = function(place,macroName,params) {
 
var tagCloudWrapper = createTiddlyElement(place,"div",null,"tagCloud",null);

var tags = store.getTags();
for (t=0; t<tags.length; t++) {
  for (p=0;p<params.length; p++) if (tags[t][0] == params[p]) tags[t][0] = "";
}

 if(tags.length == 0) 
   createTiddlyElement(tagCloudWrapper,"span",null,null,this.noTags);
 //Findout the maximum number of tags
 var mostTags = 0;
 for (t=0; t<tags.length; t++) if (tags[t][0].length > 0){
  if (tags[t][1] > mostTags) mostTags = tags[t][1];
 }
 //divide the mostTags into 4 segments for the 4 different tagCloud sizes
 var tagSegment = mostTags / 4;

  for (t=0; t<tags.length; t++) if (tags[t][0].length > 0){
 var tagCloudElement = createTiddlyElement(tagCloudWrapper,"span",null,null,null);
 tagCloudWrapper.appendChild(document.createTextNode(" "));
 var theTag = createTiddlyButton(tagCloudElement,tags[t][0],this.tooltip.format(tags[t]),onClickTag,"tagCloudtag tagCloud" + (Math.round(tags[t][1]/tagSegment)+1));
  theTag.setAttribute("tag",tags[t][0]);
 }

};

setStylesheet(".tagCloud span{height: 1.8em;margin: 3px;}.tagCloud1{font-size: 1.2em;}.tagCloud2{font-size: 1.4em;}.tagCloud3{font-size: 1.6em;}.tagCloud4{font-size: 1.8em;}.tagCloud5{font-size: 1.8em;font-weight: bold;}","tagCloudsStyles");
[[noise.png|noise.png]]
<<youtube 38peWm76l-U 400,62.5%>>
[[/bg2.png|/bg2.png]]
[[/bg3.png|/bg3.png]]
[[slate.png|slate.png]]
/***
|''Name:''|RefreshTiddlerPlugin|
|''Description:''|Refresh an entire tiddler with optional periodic re-refresh|
|''Date:''|Oct 3, 2006|
|''Source:''|http://solo.dc3.com/tw/index.html#RefreshTiddlerPlugin|
|''Author:''|Bob Denny ~DC-3 Dreams, SP|
|''License:''|[[Creative Commons Attribution-ShareAlike 2.5 License|http://creativecommons.org/licenses/by-sa/2.5/]]|
|''Version:''|1.0.4|
|''~CoreVersion:''|2.0.11, 2.1.0|
|''Browser:''|Firefox 1.5; Internet Explorer 6.0; Safari|
|''Require:''|CheckboxPlugin (http://www.TiddlyTools.com/#CheckboxPlugin)|
This macro provides a tiddler with refresh control. Why would you want this?  Perhaps for a webcam feed which is updated every 15, 30, 60 secs etc... or RSS feed from an active news site etc.

At a minimum, a refresh button appears at the location of the macro invocation. Clicking this button causes the contents of the tiddler to be refreshed. Optionally, a checkbox may also be displayed with which the user can enable and disable automatic periodic refresh of  the tiddler at a specified interval.

There are three optional parameters
|!Parameter|!Description|
|''1''|Button label, default "Refresh"|
|''2''|Button tooltip, default "Refresh this tiddler"|
|''3''|Periodic refresh interval, sec., default 0 (no periodic refresh checkbox)|
!!Revision History
<<<
''2006.09.13 [1.0.1]'' Initial creation, several days
''2006.09.22 [1.0.2]'' Make periodic refresh checkbox optional
''2006.09.29 [1.0.3]'' Refresh checkbox cookie names different from RefreshIframe.
''2006.10.03 [1.0.4]'' Lint check, validate on TW 2.1.0.
<<<
!!Code
***/
//{{{
version.extensions.RefreshTiddler = {
 major: 1, minor: 0, revision: 4,
 date: new Date(2006, 10, 3), 
 type: 'macro',
 source: "#RefreshTiddlerPlugin"
};

config.macros.RefreshTiddler = 
{
	states: { },													// Associative array of refresh states indexed by tiddler name
    
	handler: function(place, macroName, params, wikifier, paramString, tiddler)
	{
		var tidTitle = tiddler.title;								// Shortcut
		if(!this.states[tidTitle]) this.states[tidTitle] = {		// Array of state objects for refreshed tiddlers
				butLabel: "",
				butTooltip: "",
				refInterval: 0,
				doRefresh: false,
				initPerRef: false,
				timerId: 0,
				chkBox: null
				};
		var state = this.states[tidTitle];							// Shortcut
		state.butLabel = params[0] ? params[0] : "Refresh"; 		// Make these react to edits
		state.butTooltip = params[1] ? params[1] : "Refresh this tiddler";
		state.refInterval = params[2] ? params[2] : 0;				// 0 = no periodic refresh checkbox
		var btn = createTiddlyButton(place, state.butLabel, state.butTooltip, this.onButClick);
		btn.name = tidTitle;										// Set button name to tiddler name (see onButClick())
		if(state.refInterval > 0) 									// If periodic refresh wanted
		{
			wikify(" [ =chkPerRefTid" + tiddler.created.convertToYYYYMMDDHHMM() + // Uniquify chkbox ID
				"{config.macros.RefreshTiddler.states[\"" + tidTitle + "\"].chkBox = this;}" +
				"{config.macros.RefreshTiddler.onChkClick(\"" +  tidTitle + "\");}] " + 
				state.butLabel + " every " + state.refInterval + " seconds", place);
			state.timerId = 0;
			if(!state.initPerRef) this.onChkClick(tidTitle);		// Simulate checkbox click (state already from cookie)
		}
	},
    
	onButClick: function(e) 
	{
		if(!e) e = window.event;
		var tidTitle = resolveTarget(e).name;						// Name is the tiddler name!
		//displayMessage("but " + tidTitle);
		story.refreshTiddler(tidTitle, null, true);
		return false;
	},
    
	onChkClick: function(tidTitle) 
	{
		var state = this.states[tidTitle];
		if(state.chkBox.checked) {
			if(state.timerId) clearTimeout(state.timerId);
			this.startRefresh(tidTitle); 
		} else { 
			state.doRefresh = false;
		}
		state.initPerRef = true;
	},
    
	startRefresh: function(tidTitle) 
	{
		var state = this.states[tidTitle];
		state.doRefresh = true;
		//displayMessage("st " + tidTitle + " " + state.refInterval);
		state.timerId = setTimeout("config.macros.RefreshTiddler.reRefresh(\"" + 
						tidTitle + "\")", state.refInterval * 1000);
	},
    
	reRefresh: function(tidTitle)
	{
		var state = this.states[tidTitle];
		state.timerId = 0;
		if(!state.doRefresh) return;
		// Kill re-refresh cycle if tiddler closed or edited
		var tidElem = document.getElementById(story.idPrefix + tidTitle);  // DON'T GET CUTE! THIS IS CORRECT!
		//**BUGBUG** Hardwired to EditTemplate!
		if(!tidElem || tidElem.attributes['template'].value == "EditTemplate") // Prevent hidden or editing
		{
			state.initPerRef = false;
			return;
		}
		//displayMessage("re " + tidTitle + " " + state.refInterval);
		story.refreshTiddler(tidTitle, null, true);
		state.timerId = setTimeout("config.macros.RefreshTiddler.reRefresh(\"" + 
						tidTitle + "\")", state.refInterval * 1000);
	}
};
//}}}
//{{{
	
config.PageProperties.save = function () {
	if (!forms.PageProperties || !forms.PageProperties.owner)
		return displayMessage("You are not logged in");
	if (!forms.PageProperties.title)
		return displayMessage("You need to set the Title");
	var scripts = forms.PageProperties.scripts;
	var news = [];
	for (var i = 0; i < scripts.length; i++)
		if (forms.PageProperties[scripts[i]])
			news.push(scripts[i]);
	forms.PageProperties.scripts = news.join('|');

	var resp = http.pageProperties(forms.PageProperties);
	if (resp.success && config.macros.importTiddlers.importSelected(null, story.getTiddler('PageProperties'))) {
		if (config.PageProperties.tryingUpgrade())
			window.location.search = "";
		else {
			if (window.location.hash == "#Welcome")
				window.location.hash = "#";
			window.location.reload();
		}
	}
};

config.PageProperties.listLibrary = function (url, lines) {
	var liblistId = 'libList' + url;
	var ee = document.getElementById(liblistId);
	if (ee)
		ee.parentNode.removeChild(ee);
		
	var output = [['Library: <html><span id="', liblistId, '">', url, '</span></html> has:'].join('')];
	var urlParts = url.split('/');
	var qry = urlParts[urlParts.length-1];
	if (!qry.startsWith('?'))
		qry = '';
	for (var al = lines.shift(); al; al = lines.shift()) {
		if (urlParts.length > 1) {
			var ups = urlParts.slice(0, 3).join('/') + al + qry;
			al = al.split('/').pop();
		}
		else
			var ups = al;
		output.push(['<script label="', al, '">importFromDialog("', url, '","', ups, '");</script>'].join(''));
	}
	if (output.length == 1)
		output.push('(none)');
	var delc = document.getElementById('libraryCatalog');
	if (delc.firstChild && delc.firstChild.nodeValue)
		createTiddlyElement(delc, 'br');
	wikify(output.join('<br> '), delc);
};

config.PageProperties.openLibrary = function (url) {
	if (url == 'other') {
		var opts = config.options.txtExternalLibrary;
		if (!opts)
			config.PageProperties.externalLibrary = opts = window.prompt("URL of tiddlers to use", config.PageProperties.externalLibrary);
		if (!opts)
			return;
		var urls = opts.split(' ');
		this.listLibrary(url, urls);
	}
	else {
		var ld = http.openLibrary({ library: url });
		if (ld) {
			if (ld.text != null)
				this.listLibrary(url, ld.text.split('\n'));
			else
				this.listLibrary(url, ld.pages);
		}
	}
};

config.PageProperties.promptForUpload = function() {
	var delc = document.getElementById('libraryCatalog');
	createUploadFrame(delc,'tiddlers','upoadTiddlerFrame', 28, '/UploadTiddlers.htm');
};

config.PageProperties.promptToDeletePage = function() {
	if (!confirm("Do you really want to delete this page?")) return;
	if (http.deletePage(window.location.href).success) {
		story.closeAllTiddlers();
		story.displayTiddler(null, "SiteMap");
		displayMessage("This page has now been deleted");
	}
};

config.PageProperties.TemplateUpgrade = function() {
	var ti = forms.PageProperties.template_info;
	return ti ? (forms.PageProperties.template_info.page && !forms.PageProperties.template_info.current) : false;
};

config.PageProperties.UpgradeTemplate = function() {
	if (window.confirm("This requires reloading the page (you will lose unsaved changes) - proceed?")) {
		window.location.hash = "PageSetup";
		window.location.search = "upgradeTemplate=try";
	}
};

//}}}
<<image '/colorslices.jpg' < 50%>>
<script>return config.PageProperties.init();</script>
|>|>|Title<br><<input title text 88>>|
|>|>|Subtitle<br><<input subtitle text 88>>|
|Owner<br><<input owner text 35>>|Group(s) <<defineGroup>><br><<input groups text 30>>|Locked<br><<input locked checkbox false>>|
|>|>|''Access permissions''|
|Group<br><<input group select javascript:config.accessTypes>>|Authenticated<br><<input authenticated select javascript:config.accessTypes >>|Anonymous<br><<input anonymous select "javascript:config.accessTypes">>|
|>|>|''Use optional features'' - <script label="help">wikify("help: [[Template|PageTemplateHelp]], [[Tiddler libraries|LibraryUsageHelp]], [[External scripts|ExtScriptHelp]]",place.parentElement);place.parentNode.removeChild(place);</script>|
|Template<br><<input template select javascript:availableTemplates() >> - <<button "!config.PageProperties.isTemplate()" "examine it" "Examine the template" "/__templates/" "externalLink" "ExamineTemplate">><br><script if="config.PageProperties.TemplateUpgrade()" label="Try upgrade to current version"> config.PageProperties.UpgradeTemplate();</script>|Tiddler libraries:<br><script label="static" title="Statically installed files">config.PageProperties.openLibrary('static');</script> <script label="local" title="Local pages that are tagged library">config.PageProperties.openLibrary('local');</script> <script label="file" title="Files on your machine">config.PageProperties.promptForUpload();</script> <script label="uploads" title="Uploaded files">config.PageProperties.openLibrary('uploads');</script> <script label="giewiki" title="http://giewiki.appspot.com/lib/plugins/">config.PageProperties.openLibrary('http://giewiki.appspot.com/lib/plugins/?xsl=');</script> <script label="other..">config.PageProperties.openLibrary('other');</script>|<script label="External scripts">config.PageProperties.listScripts(place)</script><br><script>return config.PageProperties.usedScripts();</script>|
|>|>|<<importTiddlerStatus forms.PageProperties.systeminclude libraryImport>>|
|>|>|<html>  <span id='libraryCatalog' />  </html>|
|>|>|<html>  <span id='libraryImport' />  </html>|
|>|Page tags<br><<input tags text 74>><br>-type tags separated by spaces or apply special tags:<br><script label="hidden" title="Hide from SiteMap">config.PageProperties.addTag('hidden')</script> - <script label="library" title="Make content available via Tiddler library 'local'">config.PageProperties.addTag('library')</script> - <script label="template" title="Make page available as a template">config.PageProperties.addTag('template')</script> ( + <script label="version" title="See help: Template above">config.PageProperties.addTag('version')</script>, <script label="include" title="See help: Template above">config.PageProperties.addTag('include')</script>)|<<input foldindex checkbox false>>Fold-out index<br>''Read-only options''<br><<input showbyline checkbox true>>Show byline<br><<input viewprior checkbox true>>Prior versions<br><<input viewbutton checkbox true>>"view" button|
|>|>|Predefined tiddler tags<br><<input tiddlertags text 88>>|
<<submitButton forms.PageProperties.updateaccess 'Save' 'Save your changes' config.PageProperties.save() explanation 'Only the owner can alter page properties'>> | <<submitButton 'forms.PageProperties.updateaccess && window.location.pathname != "/"' 'Move page' 'Change address of this page' story.displayTiddler(null,'MoveThisPage')>>| <<submitButton config.PageProperties.DeleteAccess() 'Delete page' 'Delete this page and its contents' config.PageProperties.promptToDeletePage()>>
<script>return config.PageProperties.activated();</script>
	
<<image 'loading.gif' < 40%>>
<<list filter [tag[systemConfig]]>>
[[Welcome]]
[[background.png|background.png]]
[[sunburst.png|sunburst.png]]
[[striped.png|striped.png]]
| [img[click to enlarge|http://farm2.static.flickr.com/1076/617974566_dfb26cc7ea_t.jpg][http://farm2.static.flickr.com/1076/617974566_dfb26cc7ea.jpg]]<<imagebox>> | [img[click to enlarge|http://farm2.static.flickr.com/1114/617522705_dc85eeddc4_t.jpg][http://farm2.static.flickr.com/1114/617522705_dc85eeddc4.jpg]]<<imagebox>> | [img[click to enlarge|http://farm2.static.flickr.com/1390/617747183_88bed01118_t.jpg][http://farm2.static.flickr.com/1390/617747183_88bed01118.jpg]]<<imagebox>> | [img[click to enlarge|http://farm2.static.flickr.com/1431/618399642_2e4097acd0_t.jpg][http://farm2.static.flickr.com/1431/618399642_2e4097acd0.jpg]]<<imagebox>> | [img[click to enlarge|http://farm2.static.flickr.com/1140/618448420_b8ef966190_t.jpg][http://farm2.static.flickr.com/1140/618448420_b8ef966190.jpg]]<<imagebox>> |
| 1 | 2 | 3 | 4 | 5 |
[[/bg4.png|/bg4.png]]
/***
|''Name:''|TiddlyLightBox|
|''Date:''|Jan 1, 2006|
|''Version:''|1.0 beta|
|''Author:''|Saq Imtiaz|
|''Location:''|http://tw.lewcid.org/#TiddlyLightBoxPlugin|
|''Documentation:''|http://tw.lewcid.org/#TiddlyLightBoxDocs|
|''License:''|[[Creative Commons Attribution-ShareAlike 3.0 License|http://creativecommons.org/licenses/by-sa/3.0/]]|
|''Based on:''|DC3.LightBox<br>Light Box Gone Wild <br>Ibox|

!!Code
***/
//{{{
config.macros.imagebox ={};
config.macros.imagebox.handler = function (place,macroName,params,wikifier,paramString,tiddler)
{
    var e = place.lastChild;
    e.onclick = function(){TiddlyLightBox.initBox('image',this,params[1],params[2],params[0]);return false;};
}

config.macros.divbox ={};
config.macros.divbox.handler = function (place,macroName,params,wikifier,paramString,tiddler)
{
    if (params[0]!=".")
        createTiddlyButton(place,params[0],params[0],function(){TiddlyLightBox.initBox('html',params[1],params[3],params[4],params[2]);return false;});
    else
        {
        var e = place.lastChild;
        e.onclick = function(){TiddlyLightBox.initBox('html',params[1],params[3],params[4],params[2]);return false;};
        }
}

config.macros.tiddlerbox ={}
config.macros.tiddlerbox.handler = function (place,macroName,params,wikifier,paramString,tiddler)
{
    config.macros.divbox.handler(place,macroName,[params[0],"tiddler:"+params[1],params[2],params[3],params[4]]);
    return false;
}

store.addNotification("TiddlyLightBoxStyles",refreshStyles);

if (!window.TiddlyLightBox)
    window.TiddlyLightBox = {};
    var loadingImage = "loading.gif";
    window.TiddlyLightBox =
    {
    _curBox: null, // [sentinel]

    lightBoxHtml : '<div id="lightBoxOverlay" onclick="TiddlyLightBox.hideBox()" style="display:none"></div><div id="lightboxprogress" style="display:none;"><img src=\''+loadingImage+'\' alt=\'loading\' style="width:128px;height:128px;"></div><div class="lightBox" id="lightBox" style="display:none"><div id="lightBoxContent"></div><div id="lightBoxTitle">This is a title</div><div id="lightBoxClose"><a href:"#" onclick="TiddlyLightBox.hideBox();return false;">Click to close</a></div></div>',

    createBoxWrapper : function()
        {
        var wrapper = createTiddlyElement(document.getElementsByTagName("body")[0],"div","tiddlyLightBoxWrapper");
        wrapper.innerHTML = this.lightBoxHtml;
        },

    initBox : function(contentType,url,w,h,text)
        {
        if (this._curBox)
            return;
        this.showProgress();
        this.hideSelects("hidden");
        this.showBg();
        this._curBox = true;
        this.sizeTheBox(contentType,w,h);
        if (contentType == 'image')
            this.showImage(url,text);
        else if (contentType == 'html')
            this.showHtml(url,text);
        return false;
        },
        
    sizeTheBox : function(contentType,w,h)
        {
        var box = document.getElementById("lightBoxContent");
        if (w && isNaN(parseInt(w)))
            {
            addClass(box,w);
            }
        else if (w ||h || contentType == 'html')
            {
            box.style.width = w? w+ "px" : "450px";
            box.style.height = h? h+ "px" : "280px";
            if (contentType=='image')
                setStylesheet("#lightBoxContent img{height:100%;width:100%;}","lightBoxImageSizeHack");
            }
        },

    showProgress : function()
        {
        var progress = document.getElementById("lightboxprogress");
        progress.style.display='';
        this._center(progress);
        },
    
    hideProgress: function()
        {
        var progress = document.getElementById("lightboxprogress");
        progress.style.display='none';
        },

    //this function lifted from Lightbox Gone Wild
    hideSelects: function(visibility)
        {
        var selects = document.getElementsByTagName('select');
        for(i = 0; i < selects.length; i++)
            {
            selects[i].style.visibility = visibility;
            }
        },

    showBg: function()
        {
        var overlay = document.getElementById('lightBoxOverlay');
        if (config.browser.isIE)
            {
            overlay.style.height = Math.max(document.documentElement.scrollHeight,document.documentElement.offsetHeight);
            overlay.style.width = document.documentElement.scrollWidth;
            }
        overlay.style.display = 'block';
        },

    showImage: function (url,text)
        {
        imgPreloader = new Image();
        imgPreloader.onload = function ()
            {
            var lb = document.getElementById("lightBoxContent");
            lb.innerHTML = "<img src="+url+">";
            lb.onclick = function(){TiddlyLightBox.hideBox();return false;};
            TiddlyLightBox.posBox(text);
            };
        imgPreloader.src = url;
        },
        
    showHtml : function(theID,text)
        {
        var lb = document.getElementById("lightBoxContent");
        if (theID.indexOf("tiddler:")==-1)
             lb.innerHTML = document.getElementById(theID).innerHTML;
        else
            { 
             wikify(store.getTiddlerText(theID.replace("tiddler:","")),lb);
             lb.className='tiddler';
            }
        lb.style.overflow = "auto";
        this.posBox(text);
        },

    posBox: function(text)
       {
       this.setTitle(text);
       this.hideProgress();
       var lb = document.getElementById("lightBox");
       lb.style.display = "";
       lb.style.visibilty = "hidden";
       lb.style.position = "absolute";
       this._center(lb);
       if(!TiddlyLightBox._curBox) return;
       lb.style.visibility = "visible";
       lb.style.display = "block";
       },

     setTitle: function(text)
        {
        document.getElementById("lightBoxTitle").innerHTML=  (text==undefined)? '': text;
        },

    _center: function(lb)
       {
       var lbSize = new TiddlyLightBox.getElementSize(lb);
       lb.style.left = (Math.round(findWindowWidth()/2) - (lbSize.width /2) + findScrollX())+'px';
       lb.style.top = (Math.round(findWindowHeight()/2) - (lbSize.height /2) + findScrollY())+'px';
       },

    //this function lifted from Ibox
    getElementSize : function(elem)
       {
       this.width = elem.offsetWidth || elem.style.pixelWidth;
       this.height = elem.offsetHeight || elem.style.pixelHeight;
       },

     hideBox: function()
         {
         if(!this._curBox)
             return;
         document.getElementById("tiddlyLightBoxWrapper").innerHTML= this.lightBoxHtml;
         setStylesheet("","lightBoxImageSizeHack");
         this._curBox = null;
         return false;
         }
}

TiddlyLightBox.createBoxWrapper();

Story.prototype.findContainingTiddler = function(e)
{
    while(e && (!hasClass(e,"tiddler") || !e.getAttribute("tiddler")))
        e = e.parentNode;
    return(e);
}

config.shadowTiddlers.TiddlyLightBoxStyles="/*{{{*/\n#lightBoxOverlay {\n position:absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 90; \n background-color: #000;\n -moz-opacity: 0.75;\n opacity: .75;\n filter: alpha(opacity=75);\n}\n#lightBoxOverlay[id]{ \n position: fixed;\n}\n\n#lightboxprogress { \n margin:0;padding:0;\n position: absolute;\n z-index:95;\n}\n\ndiv.lightBox {\n background: #fff;\n color: #fff;\n border: 4px solid #525252;\npadding:20px 20px 25px 20px; position:absolute; z-index:99;\n}\n\n#lightBoxClose {text-align:right; color:#000; font-size:1.0em; position:absolute; bottom:6px; right:20px;}\n#lightBoxClose a{color:#666; border-bottom:1px solid #666;cursor:pointer;}\n#lightBoxClose a:hover {color:#111; border-bottom:1px solid #666; cursor:pointer; background:transparent;}\n\n#lightBoxContent {border:1px solid #525252;color:#000; background:#fff;}\n#lightBox .tiddler {background:#fff;}\n\n#lightBoxContent img {border:0;margin:0;padding:0;display:block;cursor:pointer;}\n\n#lightBoxTitle {padding:0px; font-weight:bold; position:absolute; left:20px;bottom:6px; font-size:1.1em; color:#000;}\n\n/*}}}*/";
//}}}
<<tagCloud systemConfig excludeLists excludeSearch>>
[img[http://lh5.ggpht.com/TzB_a7S7XVUfVma-QuY9r_PQcgS2wYYKKjIAzKph9kcxCN4K6ulWLNMd16OeJSD27jIr3XnYbOJkPWtu7GbWBFxgRdqP-TUf-AMd-ET0=s0]]

[img[http://lh3.ggpht.com/fj3PKfGHndQZoe10VPmYMdWG2VHf6Fqg9LxZq1SdGBmWsGrb7uRPbvH5GF5VZV3NQEO-FqMBGPR6k4e0n9CJ2kyG4t2nS1-g1-o7E7Y5=s0]]

[img[http://lh6.ggpht.com/SGCZcX8XQekBi0i4m0oZ0tqyOuKPgdVRpJCG9gowm3dUJY6Ne5CB1ay7NselP99kK6Fdb0Rf0BfjOBLeudH8SLvP8in6oLn4W2QBd7BV=s0]]

https://www.google.com/doodles/holidays-2014-day-3
<<image '/TitleImage2.jpg' < 50%>>
/***
|''Name:''|DeliciousTaggingPlugin|
|''Version:''|0.1|
|''Source''|http://jackparke.googlepages.com/jtw.html#DeliciousTaggingPlugin ([[del.icio.us|http://del.icio.us/post?url=http://jackparke.googlepages.com/jtw.html%DeliciousTaggingPlugin]])|
|''Author:''|[[Jack]]|
!Description
Allows easy 'del.icio.us'-like tagging in the EditTemplate by showing all tags as a list of link-buttons.
!Usage
Replace your the editorFooter div in your [[EditTemplate]] with the following:
{{{
<div class='editorFooter' macro='deliciousTagging'></div>
}}}
!Code
***/
//{{{
version.extensions.deliciousTagging = {major: 0, minor: 1, revision: 0, date: new Date("June 11, 2007")};

config.macros.deliciousTagging= {};

config.macros.deliciousTagging.onTagClick = function(e)
{
 if(!e) var e = window.event;
 var tag = this.getAttribute("tag");
 var title = this.getAttribute("tiddler");
 if(!readOnly)
  story.setTiddlerTag(title,tag,0);
 return false;
};

config.macros.deliciousTagging.handler = function(place,macroName,params,wikifier,paramString,tiddler)
{
 if(tiddler instanceof Tiddler) {
  var title = tiddler.title;
  if(!e) var e = window.event;
  var tags = store.getTags();
  var lingo = config.views.editor.tagChooser;
  for(var t=0; t<tags.length; t++) {
   var theTag = createTiddlyButton(place,tags[t][0],lingo.tagTooltip.format([tags[t][0]]),config.macros.deliciousTagging.onTagClick);
   theTag.setAttribute("tag",tags[t][0]);
   theTag.setAttribute("tiddler",tiddler.title);
   place.appendChild(document.createTextNode(" "));
  }
 }
};
//}}}
/***
|''Name:''|SWFObjectPlugin|
|''Description:''|Adobe Flash Embedding|
|''Version:''|1.0.0|
|''Date:''|Aug 22, 2010|
|''Source:''|http://giewiki.appspot.com/plugins/YoutubePlugin#SWFObjectPlugin|
|''License:''|[[MIT open source license]]|
|''~CoreVersion:''|2.1.0|
|''Browser:''|Chrome; Safari; Firefox; InternetExplorer 6.0|
***/

//{{{

//	SWFObject v2.2 (http://code.google.com/p/swfobject/)
//	is released under the MIT License (http://www.opensource.org/licenses/mit-license.php)

var swfobject=function(){var D="undefined",r="object",S="Shockwave Flash",W="ShockwaveFlash.ShockwaveFlash",q="application/x-shockwave-flash",R="SWFObjectExprInst",x="onreadystatechange",O=window,j=document,t=navigator,T=false,U=[h],o=[],N=[],I=[],l,Q,E,B,J=false,a=false,n,G,m=true,M=function(){var aa=typeof j.getElementById!=D&&typeof j.getElementsByTagName!=D&&typeof j.createElement!=D,ah=t.userAgent.toLowerCase(),Y=t.platform.toLowerCase(),ae=Y?/win/.test(Y):/win/.test(ah),ac=Y?/mac/.test(Y):/mac/.test(ah),af=/webkit/.test(ah)?parseFloat(ah.replace(/^.*webkit\/(\d+(\.\d+)?).*$/,"$1")):false,X=!+"\v1",ag=[0,0,0],ab=null;if(typeof t.plugins!=D&&typeof t.plugins[S]==r){ab=t.plugins[S].description;if(ab&&!(typeof t.mimeTypes!=D&&t.mimeTypes[q]&&!t.mimeTypes[q].enabledPlugin)){T=true;X=false;ab=ab.replace(/^.*\s+(\S+\s+\S+$)/,"$1");ag[0]=parseInt(ab.replace(/^(.*)\..*$/,"$1"),10);ag[1]=parseInt(ab.replace(/^.*\.(.*)\s.*$/,"$1"),10);ag[2]=/[a-zA-Z]/.test(ab)?parseInt(ab.replace(/^.*[a-zA-Z]+(.*)$/,"$1"),10):0}}else{if(typeof O.ActiveXObject!=D){try{var ad=new ActiveXObject(W);if(ad){ab=ad.GetVariable("$version");if(ab){X=true;ab=ab.split(" ")[1].split(",");ag=[parseInt(ab[0],10),parseInt(ab[1],10),parseInt(ab[2],10)]}}}catch(Z){}}}return{w3:aa,pv:ag,wk:af,ie:X,win:ae,mac:ac}}(),k=function(){if(!M.w3){return}if((typeof j.readyState!=D&&j.readyState=="complete")||(typeof j.readyState==D&&(j.getElementsByTagName("body")[0]||j.body))){f()}if(!J){if(typeof j.addEventListener!=D){j.addEventListener("DOMContentLoaded",f,false)}if(M.ie&&M.win){j.attachEvent(x,function(){if(j.readyState=="complete"){j.detachEvent(x,arguments.callee);f()}});if(O==top){(function(){if(J){return}try{j.documentElement.doScroll("left")}catch(X){setTimeout(arguments.callee,0);return}f()})()}}if(M.wk){(function(){if(J){return}if(!/loaded|complete/.test(j.readyState)){setTimeout(arguments.callee,0);return}f()})()}s(f)}}();function f(){if(J){return}try{var Z=j.getElementsByTagName("body")[0].appendChild(C("span"));Z.parentNode.removeChild(Z)}catch(aa){return}J=true;var X=U.length;for(var Y=0;Y<X;Y++){U[Y]()}}function K(X){if(J){X()}else{U[U.length]=X}}function s(Y){if(typeof O.addEventListener!=D){O.addEventListener("load",Y,false)}else{if(typeof j.addEventListener!=D){j.addEventListener("load",Y,false)}else{if(typeof O.attachEvent!=D){i(O,"onload",Y)}else{if(typeof O.onload=="function"){var X=O.onload;O.onload=function(){X();Y()}}else{O.onload=Y}}}}}function h(){if(T){V()}else{H()}}function V(){var X=j.getElementsByTagName("body")[0];var aa=C(r);aa.setAttribute("type",q);var Z=X.appendChild(aa);if(Z){var Y=0;(function(){if(typeof Z.GetVariable!=D){var ab=Z.GetVariable("$version");if(ab){ab=ab.split(" ")[1].split(",");M.pv=[parseInt(ab[0],10),parseInt(ab[1],10),parseInt(ab[2],10)]}}else{if(Y<10){Y++;setTimeout(arguments.callee,10);return}}X.removeChild(aa);Z=null;H()})()}else{H()}}function H(){var ag=o.length;if(ag>0){for(var af=0;af<ag;af++){var Y=o[af].id;var ab=o[af].callbackFn;var aa={success:false,id:Y};if(M.pv[0]>0){var ae=c(Y);if(ae){if(F(o[af].swfVersion)&&!(M.wk&&M.wk<312)){w(Y,true);if(ab){aa.success=true;aa.ref=z(Y);ab(aa)}}else{if(o[af].expressInstall&&A()){var ai={};ai.data=o[af].expressInstall;ai.width=ae.getAttribute("width")||"0";ai.height=ae.getAttribute("height")||"0";if(ae.getAttribute("class")){ai.styleclass=ae.getAttribute("class")}if(ae.getAttribute("align")){ai.align=ae.getAttribute("align")}var ah={};var X=ae.getElementsByTagName("param");var ac=X.length;for(var ad=0;ad<ac;ad++){if(X[ad].getAttribute("name").toLowerCase()!="movie"){ah[X[ad].getAttribute("name")]=X[ad].getAttribute("value")}}P(ai,ah,Y,ab)}else{p(ae);if(ab){ab(aa)}}}}}else{w(Y,true);if(ab){var Z=z(Y);if(Z&&typeof Z.SetVariable!=D){aa.success=true;aa.ref=Z}ab(aa)}}}}}function z(aa){var X=null;var Y=c(aa);if(Y&&Y.nodeName=="OBJECT"){if(typeof Y.SetVariable!=D){X=Y}else{var Z=Y.getElementsByTagName(r)[0];if(Z){X=Z}}}return X}function A(){return !a&&F("6.0.65")&&(M.win||M.mac)&&!(M.wk&&M.wk<312)}function P(aa,ab,X,Z){a=true;E=Z||null;B={success:false,id:X};var ae=c(X);if(ae){if(ae.nodeName=="OBJECT"){l=g(ae);Q=null}else{l=ae;Q=X}aa.id=R;if(typeof aa.width==D||(!/%$/.test(aa.width)&&parseInt(aa.width,10)<310)){aa.width="310"}if(typeof aa.height==D||(!/%$/.test(aa.height)&&parseInt(aa.height,10)<137)){aa.height="137"}j.title=j.title.slice(0,47)+" - Flash Player Installation";var ad=M.ie&&M.win?"ActiveX":"PlugIn",ac="MMredirectURL="+O.location.toString().replace(/&/g,"%26")+"&MMplayerType="+ad+"&MMdoctitle="+j.title;if(typeof ab.flashvars!=D){ab.flashvars+="&"+ac}else{ab.flashvars=ac}if(M.ie&&M.win&&ae.readyState!=4){var Y=C("div");X+="SWFObjectNew";Y.setAttribute("id",X);ae.parentNode.insertBefore(Y,ae);ae.style.display="none";(function(){if(ae.readyState==4){ae.parentNode.removeChild(ae)}else{setTimeout(arguments.callee,10)}})()}u(aa,ab,X)}}function p(Y){if(M.ie&&M.win&&Y.readyState!=4){var X=C("div");Y.parentNode.insertBefore(X,Y);X.parentNode.replaceChild(g(Y),X);Y.style.display="none";(function(){if(Y.readyState==4){Y.parentNode.removeChild(Y)}else{setTimeout(arguments.callee,10)}})()}else{Y.parentNode.replaceChild(g(Y),Y)}}function g(ab){var aa=C("div");if(M.win&&M.ie){aa.innerHTML=ab.innerHTML}else{var Y=ab.getElementsByTagName(r)[0];if(Y){var ad=Y.childNodes;if(ad){var X=ad.length;for(var Z=0;Z<X;Z++){if(!(ad[Z].nodeType==1&&ad[Z].nodeName=="PARAM")&&!(ad[Z].nodeType==8)){aa.appendChild(ad[Z].cloneNode(true))}}}}}return aa}function u(ai,ag,Y){var X,aa=c(Y);if(M.wk&&M.wk<312){return X}if(aa){if(typeof ai.id==D){ai.id=Y}if(M.ie&&M.win){var ah="";for(var ae in ai){if(ai[ae]!=Object.prototype[ae]){if(ae.toLowerCase()=="data"){ag.movie=ai[ae]}else{if(ae.toLowerCase()=="styleclass"){ah+=' class="'+ai[ae]+'"'}else{if(ae.toLowerCase()!="classid"){ah+=" "+ae+'="'+ai[ae]+'"'}}}}}var af="";for(var ad in ag){if(ag[ad]!=Object.prototype[ad]){af+='<param name="'+ad+'" value="'+ag[ad]+'" />'}}aa.outerHTML='<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"'+ah+">"+af+"</object>";N[N.length]=ai.id;X=c(ai.id)}else{var Z=C(r);Z.setAttribute("type",q);for(var ac in ai){if(ai[ac]!=Object.prototype[ac]){if(ac.toLowerCase()=="styleclass"){Z.setAttribute("class",ai[ac])}else{if(ac.toLowerCase()!="classid"){Z.setAttribute(ac,ai[ac])}}}}for(var ab in ag){if(ag[ab]!=Object.prototype[ab]&&ab.toLowerCase()!="movie"){e(Z,ab,ag[ab])}}aa.parentNode.replaceChild(Z,aa);X=Z}}return X}function e(Z,X,Y){var aa=C("param");aa.setAttribute("name",X);aa.setAttribute("value",Y);Z.appendChild(aa)}function y(Y){var X=c(Y);if(X&&X.nodeName=="OBJECT"){if(M.ie&&M.win){X.style.display="none";(function(){if(X.readyState==4){b(Y)}else{setTimeout(arguments.callee,10)}})()}else{X.parentNode.removeChild(X)}}}function b(Z){var Y=c(Z);if(Y){for(var X in Y){if(typeof Y[X]=="function"){Y[X]=null}}Y.parentNode.removeChild(Y)}}function c(Z){var X=null;try{X=j.getElementById(Z)}catch(Y){}return X}function C(X){return j.createElement(X)}function i(Z,X,Y){Z.attachEvent(X,Y);I[I.length]=[Z,X,Y]}function F(Z){var Y=M.pv,X=Z.split(".");X[0]=parseInt(X[0],10);X[1]=parseInt(X[1],10)||0;X[2]=parseInt(X[2],10)||0;return(Y[0]>X[0]||(Y[0]==X[0]&&Y[1]>X[1])||(Y[0]==X[0]&&Y[1]==X[1]&&Y[2]>=X[2]))?true:false}function v(ac,Y,ad,ab){if(M.ie&&M.mac){return}var aa=j.getElementsByTagName("head")[0];if(!aa){return}var X=(ad&&typeof ad=="string")?ad:"screen";if(ab){n=null;G=null}if(!n||G!=X){var Z=C("style");Z.setAttribute("type","text/css");Z.setAttribute("media",X);n=aa.appendChild(Z);if(M.ie&&M.win&&typeof j.styleSheets!=D&&j.styleSheets.length>0){n=j.styleSheets[j.styleSheets.length-1]}G=X}if(M.ie&&M.win){if(n&&typeof n.addRule==r){n.addRule(ac,Y)}}else{if(n&&typeof j.createTextNode!=D){n.appendChild(j.createTextNode(ac+" {"+Y+"}"))}}}function w(Z,X){if(!m){return}var Y=X?"visible":"hidden";if(J&&c(Z)){c(Z).style.visibility=Y}else{v("#"+Z,"visibility:"+Y)}}function L(Y){var Z=/[\\\"<>\.;]/;var X=Z.exec(Y)!=null;return X&&typeof encodeURIComponent!=D?encodeURIComponent(Y):Y}var d=function(){if(M.ie&&M.win){window.attachEvent("onunload",function(){var ac=I.length;for(var ab=0;ab<ac;ab++){I[ab][0].detachEvent(I[ab][1],I[ab][2])}var Z=N.length;for(var aa=0;aa<Z;aa++){y(N[aa])}for(var Y in M){M[Y]=null}M=null;for(var X in swfobject){swfobject[X]=null}swfobject=null})}}();return{registerObject:function(ab,X,aa,Z){if(M.w3&&ab&&X){var Y={};Y.id=ab;Y.swfVersion=X;Y.expressInstall=aa;Y.callbackFn=Z;o[o.length]=Y;w(ab,false)}else{if(Z){Z({success:false,id:ab})}}},getObjectById:function(X){if(M.w3){return z(X)}},embedSWF:function(ab,ah,ae,ag,Y,aa,Z,ad,af,ac){var X={success:false,id:ah};if(M.w3&&!(M.wk&&M.wk<312)&&ab&&ah&&ae&&ag&&Y){w(ah,false);K(function(){ae+="";ag+="";var aj={};if(af&&typeof af===r){for(var al in af){aj[al]=af[al]}}aj.data=ab;aj.width=ae;aj.height=ag;var am={};if(ad&&typeof ad===r){for(var ak in ad){am[ak]=ad[ak]}}if(Z&&typeof Z===r){for(var ai in Z){if(typeof am.flashvars!=D){am.flashvars+="&"+ai+"="+Z[ai]}else{am.flashvars=ai+"="+Z[ai]}}}if(F(Y)){var an=u(aj,am,ah);if(aj.id==ah){w(ah,true)}X.success=true;X.ref=an}else{if(aa&&A()){aj.data=aa;P(aj,am,ah,ac);return}else{w(ah,true)}}if(ac){ac(X)}})}else{if(ac){ac(X)}}},switchOffAutoHideShow:function(){m=false},ua:M,getFlashPlayerVersion:function(){return{major:M.pv[0],minor:M.pv[1],release:M.pv[2]}},hasFlashPlayerVersion:F,createSWF:function(Z,Y,X){if(M.w3){return u(Z,Y,X)}else{return undefined}},showExpressInstall:function(Z,aa,X,Y){if(M.w3&&A()){P(Z,aa,X,Y)}},removeSWF:function(X){if(M.w3){y(X)}},createCSS:function(aa,Z,Y,X){if(M.w3){v(aa,Z,Y,X)}},addDomLoadEvent:K,addLoadEvent:s,getQueryParamValue:function(aa){var Z=j.location.search||j.location.hash;if(Z){if(/\?/.test(Z)){Z=Z.split("?")[1]}if(aa==null){return L(Z)}var Y=Z.split("&");for(var X=0;X<Y.length;X++){if(Y[X].substring(0,Y[X].indexOf("="))==aa){return L(Y[X].substring((Y[X].indexOf("=")+1)))}}}return""},expressInstallCallback:function(){if(a){var X=c(R);if(X&&l){X.parentNode.replaceChild(l,X);if(Q){w(Q,true);if(M.ie&&M.win){l.style.display="block"}}if(E){E(B)}}a=false}}}}();
//}}}
//{{{
window.searchHistory = function (offs) {
    var h = http.searchHistory({ offs: offs, limit: 10 });
    var we = document.getElementById('tiddlerSearchHistory');
    var cnl = getElementsByClassName('viewer', 'div', we);
    if (h.whats.length == 0)
        return wikify("No search history found.",cnl);
    var his = h.history.split('||');
    var hif = [];
    var j = 0;

    for (var i = 0; i < his.length; i++) {
        hif.push(his[i]);
        if (i < h.whats.length) {
            hif.push('|<script label="');
            hif.push(h.whats[i]);
            hif.push('">config.macros.search.searchSite("' + h.whats[i] + '",0,"' + h.wheres[i] + '")</script>|');
        }
    }
    wikify(hif.join(''), cnl);
    if (h.ended) {
        createTiddlyButton(cnl, '<<', "Earlier searches",
            function (ev) {
                var ce = clearParent(resolveTarget(ev || window.event), 'div');
                window.searchHistory(offs + 10);
            });
        }
    if (offs >= 10) {
        createTiddlyButton(cnl, '>>', 'Later searches',
            function (ev) {
                var ce = clearParent(resolveTarget(ev || window.event), 'div');
                window.searchHistory(offs - 10);
            });
        }
    }
//}}}
    
[[/bg-dots.png|/bg-dots.png]]
<<image 'header_cityfire.jpg' < 50%>>
WebLinks
[[PageSetup]]
[[SiteMap]]
[[RecentChanges]]
[[RecentComments]]
SideBarTabs
body {
background: #F9C37A url(#);
font-size: .84em; font-family: Lucida Grande, Arial, Helvetica, sans-serif;
}

.tiddler {
border-top: solid 1px #ccc;
border-left: solid 1px #ccc;
border-right: solid 3px #aaa;
border-bottom: solid 3px #aaa;
padding: 1em 1em 1em 1em;
margin: 0em 1em 2em 1em;
width: 95%;
background-color: [[ColorPalette::Background]];
-moz-border-radius: 1.0em;
}
version.extensions.allTagsExcept = {major: 0, minor: 1, revision: 0, date: new Date(2005,8,15)};
config.macros.allTagsExcept = {tooltip: "Show tiddlers tagged with '%0'",noTags: "There are no tags to display"};

//usage: < < allTagsExcept systemConfig systemTiddlers > > This will show all tags but those listed (e.g. systemConfig and systemTiddlers

config.macros.allTagsExcept.handler = function(place,macroName,params)
{
	var tags = store.getTags();
	var theTagList = createTiddlyElement(place,"ul",null,null,null);
	if(tags.length == 0)
		createTiddlyElement(theTagList,"li",null,"listTitle",this.noTags);
	for (var t=0; t<tags.length; t++) {
            var includeTag = true;
            for (var p=0;p<params.length; p++) if (tags[t][0] == params[p]) includeTag = false;
            if (includeTag){
		var theListItem =createTiddlyElement(theTagList,"li",null,null,null);
		var theTag = createTiddlyButton(theListItem,tags[t][0] + " (" + tags[t][1] + ")",this.tooltip.format([tags[t][0]]),onClickTag);
		theTag.setAttribute("tag",tags[t][0]);
           }
	}
}
[[gears.gif|gears.gif]]
//{{{
config.PageProperties = {
	init: function () {
		config.accessTypes = "admin|all|edit|add|tag|comment|view|none|";
		if (!forms.PageProperties)
			forms.PageProperties = http.pageProperties();
		forms.PageProperties.template_changed = function(f,id,val) {
			if (f)
				f[id] = val;
			var btn = document.getElementById('ExamineTemplate');
			if (btn)
				btn.setAttribute('href','/_templates/' + encodeURIComponent(val));
		};
		if (config.isLoggedIn()) {
			if (typeof forms.PageProperties.scripts === "string")
				forms.PageProperties.scripts = forms.PageProperties.scripts.split('|');
			var scripts = forms.PageProperties.scripts;
			for (var i = 0; i < scripts.length; i++)
				forms.PageProperties[scripts[i]] = true;
		}
		else {
			forms.PageProperties.scripts = [];
			return "''[As you are not logged in, this dialog is not functional]''";
		}
	},
	isTemplate: function() {
		return window.location.pathname.startsWith('/_templates/');
	},
	DeleteAccess: function() {
		return window.location.pathname.length > 1 && forms.PageProperties.updateaccess;
	},
	listScripts: function(place) {
		var tg = place;
		var scrlr = http.listScripts();
		var desHandler = function(e) {
			var ev = e || window.event;
			var cbc = resolveTarget(ev);
			var text = cbc.nextSibling.nodeValue;
			forms.PageProperties[text] = cbc.checked;
		};
		var selHandler = function(e) {
			var ev = e || window.event;
			var text = resolveTarget(ev).firstChild.nodeValue;
			var bre = document.createElement('br');
			insertAfter(tg,bre);
			var cb = document.createElement("input");
			cb.setAttribute("type", "checkbox");
			cb.checked = true;
			cb.onclick = desHandler;
			insertAfter(bre,cb);
			insertAfter(cb,document.createTextNode(text));
			forms.PageProperties.scripts.push(text);
			forms.PageProperties[text] = true;
		};
		if (scrlr.success) {
			var popup = Popup.create(tg);
			var values = scrlr.list.split('|');
			for (var i = 0; i < values.length; i++)
				createTiddlyButton(createTiddlyElement(popup, "li"), values[i], null, selHandler);
			Popup.show();
		}
	},
	usedScripts: function() {
		var scripts = forms.PageProperties.scripts;
		var arr = [];
		for (var i = 0; i < scripts.length; i++)
			if (scripts[i])
				arr.push( '<<input ' + scripts[i] + ' checkbox true>>' + scripts[i]);
		return arr.length > 0 ? arr.join('<br>') : "(none)";
	},
	tryingUpgrade: function() {
		return window.location.search == "?upgradeTemplate=try";
	},
	activated: function () {
		if (!config.isLoggedIn()) {
			forms.PageProperties.controls['title'].setAttribute("readOnly", "readOnly");
			forms.PageProperties.controls['subtitle'].setAttribute("readOnly", "readOnly");
		}
		forms.PageProperties.template_changed(null,null,forms.PageProperties.template);
		if (forms.PageProperties.message)
			displayMessage(forms.PageProperties.message);
		if (!forms.PageProperties || !forms.PageProperties.owner)
			return;
		forms.PageProperties.controls['title'].focus();
		if (!forms.PageProperties.template_info.current && config.PageProperties.tryingUpgrade()) {
			displayMessage("Save PageProperties to switch this version of the template");
			forms.PageProperties.upgradeTemplate = true;
		}
	},
	addTag: function (tag) {
		var tl = forms.PageProperties.tags.readBracketedList();
		if (tl.indexOf(tag) < 0)
			tl.push(tag)
		else if (tag == 'template') {
			if (window.confirm("Update template?")) {
				if (http.updateTemplate({ 'tags': forms.PageProperties.tags }).success)
					displayMessage("Template updated");
			}
			return;
		}
		setFormFieldValue(forms.PageProperties, 'tags', tl.join(' '))
	}
};
//}}}
// See also [[PagePropertiesScript2]]
//{{{
config.macros.importTiddlers.renderTL = function(place,aurl,afilter,tiddlers,remote) {
	var workMessage = "Getting <br>" + aurl + "</br>";
	displayMessage(workMessage);
	var custumUse = story.findContainingTiddler(place).getAttribute('id') != 'tiddlerPageProperties';
	var rqa = { url: aurl, filter: afilter || '' };
	if (remote)
		rqa.source = 'remote';
	var libs = http.tiddlersFromUrl(rqa).sort(config.macros.importTiddlers.sortf);
	clearMessage(workMessage);
	var nCurrent = 0;
	var nExcluded = 0;
	if (libs) {
		this.aurl = aurl;
		this.tims = this.tims || {};
		this.tims[aurl] = {};
		this.libs = libs;
		var wd = createTiddlyElement(place, "div", "wrdiv:" + aurl);
		var hta = ['<input name="url" type="hidden" id="', aurl, '"/><table border="0" cellspacing="0" cellpadding="0"><tbody>'];
		var links = [];
		for (var t = 0; t < libs.length; t++) {
			var lt = libs[t];

			if (tiddlers && tiddlers.indexOf(lt.title) == -1 || lt.title == "_MetaData")
				continue;
			if (lt.current) { var checked = 'checked="1"'; nCurrent++; }
			else { var checked = ''; nExcluded++; }
			var ltav = t;
			var line = ['<tr class="', t % 2 ? 'evenRow' : 'oddRow', '"><td><input type="checkbox" id="cht', ltav, '" ', checked, ' name="', ltav, '" value="1" /><a href="javascript:;" id="itl', ltav, '" title="', aurl, '">', lt.title.htmlEncode(), '</a></td><td>', lt.tags, '</td></tr>'].join('');
			links[t] = 'itl' + ltav;
			hta.push(line);
		}
		if (nCurrent + nExcluded > 1)
			hta.push(['<tr class="', t % 2 ? 'evenRow' : 'oddRow', '"><td colspan="2"><input type="checkbox" id="chkAll', aurl, '" name=chkAll" value="1" />', "Select all the above", '</td></tr>'].join(''));
		if (custumUse)
			hta.push('</tbody></table><a href="javascript:;" id="cmdImport">import (permanently)</a> or <a href="/" id="cmdInclude" target="_blank">include (once, via query string)</a>.');
		if (afilter)
			afilter = " tagged " + afilter;
		var resmsg = ['<a href="', aurl, '">', aurl, "</a> contains ", libs.length, " tiddlers.", afilter];
		if (tiddlers && nCurrent < libs.length)
			resmsg.push("Currently ", nCurrent > 0 ? nCurrent : "none", " are included.");
		if (tiddlers && libs.length > nCurrent + nExcluded)
			resmsg.push(' <a href="javascript:;" id="sea', aurl, '"> Show all</a>');
		else if (aurl.startsWith('http:'))
			resmsg.push(' <a href="javascript:;" id="rqs', aurl, '" title="Update your copy of this file"> Refresh cache</a>');
		wd.innerHTML = resmsg.join('') + hta.join('');
		if (nCurrent + nExcluded > 1)
			document.getElementById('chkAll' + aurl).onchange = function (ev) {
				var cke = resolveTarget(ev || window.event);
				var tbe = cke.parentNode.parentNode.parentNode;
				for (var tre = tbe.firstChild; tre; tre = tre.nextSibling) {
					var cksn = tre.firstChild.firstChild;
					cksn.checked = cke.checked;
					if (cksn != cke)
						config.macros.importTiddlers.onchange(cksn);
				}
			};
		if (tiddlers) {
			var seaUrl = document.getElementById('sea' + aurl);
			if (seaUrl)
				seaUrl.onclick = config.macros.importTiddlers.showAll;
		}
		var rqsUrl = document.getElementById('rqs' + aurl);
		if (rqsUrl) {
			rqsUrl.onclick = config.macros.importTiddlers.refresh;
			rqsUrl.setAttribute('aurl',aurl);
		}
		if (afilter)
			rqsUrl.setAttribute('filter',afilter);
		for (t in links) {
			if (isNaN(t)) continue;
			var chtid = 'cht' + t;
			var chtel = document.getElementById(chtid);
			this.tims[aurl][chtid] = chtel;
			chtel.onclick = function (ev) { config.macros.importTiddlers.onchange(resolveTarget(ev || window.event)); };
			document.getElementById(links[t]).onclick = config.macros.importTiddlers.fetch;
		}
		if (custumUse)
			document.getElementById('cmdImport').onclick = config.macros.importTiddlers.importSelected;
	}
}
//}}}
/***
|''Name:''|YouTubePlugin|
|''Description:''|Facilitates embedding youtube content with optional subtitles|
|''Documentation:''|[[YouTubePlugin documentation]]|
|''Requires:''|[[SWFObjectPlugin]]|
|''Version:''|1.1.3|
|''Date:''|Jan 22, 2011|
|''Source:''|http://giewiki.appspot.com/plugins/YoutubePlugin|
|''Author:''|PoulStaugaard (poul (dot) staugaard (at) gmail (dot) com)|
|''License:''|[[BSD open source license]]|
|''~CoreVersion:''|2.1.0|
|''Browser:''|Chrome; Safari; Firefox; InternetExplorer 6.0|
***/

//{{{
config.macros.youtube = {
	textLocation: {},
	paused: {},
	handler: function (place, macroName, params, wikifier, paramString) {
		if (params.length == 0)
			throw("Missing required parameter: youtube video id");
		var vid = params.shift(); // parameter 1: youtube video id
		var t = place;
		while (t.tagName != 'td' && !t.className.startsWith('tiddler') && t.parentNode)
			t = t.parentNode;
		var cw = t.offsetWidth;
		var w = cw;
		var rh = 80;
		if (params.length > 0) { // parameter 2: width,relative-height%
			var a2 = params[0];
			if (a2 == 'text-location') {
				var tn = story.findContainingTiddler(place).getAttribute('tiddler');
				config.macros.youtube.textLocation[vid] = createTiddlyElement(place,'span', tn + 'textViewer');
				return;
			} else {
				var dims = a2.split(',');
				var da = dims.shift();
				var na = parseInt(da);
				if (!isNaN(na)) {
					params.shift();
					if (da.right(1) != '%') {
						w = na; da = dims.shift();
						}
					if (da && da.right(1) == '%')
						rh = da.slice(0,da.length-1);
				}
			}
			if (w < 0) {
				w = 0 - w;
				if (w > cw)
					w = cw;
			}
		}
		var h = w * rh / 100;
		var playButton = false;
		var ats = {};
		var aus = {};
		var tstn = null;
		var plwdClass = 'youtubePlayer';
		var nochrome = false;
		var altLabel = "YouTube/" + vid;
		for (var opt = params.shift(); opt; opt = params.shift()) {
			if (opt == 'class') // Player wrapper div class
				plwdClass = params.shift();
			else if (opt == 'chromeless')
				nochrome = true;
			else if (opt == 'altlabel')
				altLabel = params.shift();
			else if (opt == 'pause') {
				var player = document.getElementById(vid);
				var when = config.macros.youtube.paused[vid];
				var cpt = player && player.getCurrentTime();
				if (player == null)
					wikify("//Player " + vid + " will stop at this point//",place);
				else if (!when || cpt < when || cpt > when + 0.2 )
				{
					//debugger;
					player.pauseVideo();
					config.macros.youtube.paused[vid] = player.getCurrentTime();
					if (params.length && params.shift() == "resume")
						createTiddlyButton(place, params.length ? params.shift() : "resume", null, function(ev) 
						{ 
							var target = resolveTarget(ev || window.event);
							target.parentNode.removeChild(target);
							//config.macros.youtube.paused[vid] = false;
							debugger;
							player.playVideo(); 
						});
				}
				return;
			}
			else if (opt == 'play' || opt  == 'time' || opt == 'text') { // options: auto-play / transcript
				aus[opt] = true;
				if (opt == 'time' || opt == 'text') {
					tstn = params.shift(); // transcript TiddlerName
					if (!tstn)
						return displayMessage("Missing parameter: TextTiddlerName");
				}
				var vpid = null;
				var iv = window.setInterval(function() {
					try {
						if (tstn && !aus.textLocation)
							config.macros.youtube.setupData(aus,tstn,ats,config.macros.youtube.textLocation[vid],vid);
							 
						var player = document.getElementById(vid);
						if (!player)
							return window.clearInterval(iv); // stop working
						var ps = player.getPlayerState();
						//if (ps != aus.ps) { displayMessage("State " + ps); aus.ps = ps; }
						switch (ps) {
							case -1: // unstarted
							case 5:
								config.macros.youtube.paused[vid] = false;
								if (aus.play)
									player.playVideo();
								if (!aus.transcript && !aus.text) break;
								return;
							case 0: // ended
								clearMessage();
								if (aus.changes) config.macros.youtube.updateTiming(aus);
								break;
							case 1: // playing
								var t = player.getCurrentTime();
								for (at in ats) {
									fat = parseFloat(at);
									if (t > fat && t < fat + 0.1) {
										removeChildren(aus.textLocation);
										wikify(ats[at],aus.textLocation); //-or-: aus.textLocation.innerHTML = ats[at];
										break;
									}
								}
								return;
							case 2: // paused
								if (aus.changes) config.macros.youtube.updateTiming(aus);
								return;
							case 3: // buffering
								return;
							//case 5: // cued
								return;
						}
						window.clearInterval(iv);
						} catch (x) {
						}
					},33);
			}
			else if (opt == 'label' && macroName == 'youtube')
				playButton = params.shift();
		}
		if (playButton)
			return createTiddlyButton(place, playButton, null, config.macros.youtube.onClick, "linkbutton", null, null, { args: paramString });

		var pen = 'pd'+vid;
		var wd = createTiddlyElement(place,"div",pen,plwdClass,null);
		if (!swfobject.getFlashPlayerVersion().major)
			wd.innerHTML = '<a href="http://www.youtube.com/v/' + vid + '">' + altLabel + '</a>';
		else {
			var pUrl = nochrome ? 'http://www.youtube.com/apiplayer?video_id=' + vid + '&version=3&enablejsapi=1&playerapiid=ytplayer'
						: 'http://www.youtube.com/v/' + vid + '?enablejsapi=1&playerapiid=ytplayer';
			swfobject.embedSWF( pUrl, pen, w, h, '8', null, null, { allowScriptAccess: 'always' }, { id: vid });
		}
	},
	onClick: function(ev) {
		var t = resolveTarget(ev || window.event);
		var args = t.getAttribute('args');
		config.macros.youtube.handler(t, 'youtubePlay',args.readMacroParams(), null, args);
	},
	setupData: function(aus,tstn,ats,tl,vid) {
		if (!tl) {
			var evid = document.getElementById(vid);
			if (!evid.nextSibling)
				insertAfter(evid,document.createElement('br'));
			tl = insertAfter(evid.nextSibling,document.createElement('span'));
		}
		aus.textLocation = tl;
		var tstext = store.getTiddlerText(tstn);
		if (tstext == null)
			return displayMessage("Tiddler '" + tstn + "' not found");
		var tsls = tstext.split('\n');
		for (var i=0; i < tsls.length; i++) {
			var tsl = tsls[i];
			if (aus.text && tsl.startsWith('|')) { // build timing array from table of lines: |time|Text|
				var lps = tsl.split('|');
				if (lps.length > 2) {
					var it = parseInt(lps[1]);
					if (it > 0) ats[it] = lps[2];
				}
			}
			else if (aus.time) {
				if (!aus.transcript) {
					aus.transcript = tstn;
					aus.time = {};
					story.displayTiddler(null,tstn,DEFAULT_EDIT_TEMPLATE);
				}
				var tsde = aus.textLocation; //document.getElementById(tsDiv);
				if (tsde == null)
					return displayMessage("text-location not found"); //"Element " + tsDiv + " not found");
				var lid = vid + '_' + i;
				var lel = createTiddlyElement(tsde,'a',lid,null,tsl, { 'href': 'javascript:;' });
				aus.time[lid] = { text: tsl };
				lel.onclick = function(ev) {
					var me = resolveTarget(ev || window.event);
					var player = document.getElementById(vid);
					aus.time[me.id].time = player.getCurrentTime();
					aus.changes = true;
					displayMessage(aus.time[me.id].time + ": " + aus.time[me.id].text);
				}
				createTiddlyElement(tsde,'br');
			}
		}
	},
	updateTiming: function(aus) {
		var tta = aus.time;
		var atb = [];
		for (ali in tta) {
			var time = tta[ali].time;
			var text = tta[ali].text;
			if (time && time > 0) {
				var tlps = text.split('|');
				if (tlps.length == 4) {
					tlps[1] = time;
					atb.push(tlps.join('|'));
				} else
					atb.push('|' + time + '|' + text + '|');
			} else
				atb.push(text);
		}
		var tstn = aus.transcript;
		if (tstn) {
			var tiddlerElem = story.getTiddlerField(tstn,'text');
			if (tiddlerElem) {
				tiddlerElem.value = atb.join('\n');
				displayMessage(tstn + " updated");
			} else
				displayMessage(atb.join("<br>"));
			aus.changes = false;
		}
	}
}
//}}}
Background: #f4f3f2
Foreground: #000
PrimaryPale: #8cf
PrimaryLight: #18f
PrimaryMid: #04b
PrimaryDark: #014
SecondaryPale: #ffc
SecondaryLight: #fe8
SecondaryMid: #db4
SecondaryDark: #841
TertiaryPale: #eee
TertiaryLight: #ccc
TertiaryMid: #999
TertiaryDark: #666
Error: #f88
/*{{{*/
body {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];}

a {color:[[ColorPalette::PrimaryMid]];}
a:hover {background-color:[[ColorPalette::PrimaryMid]]; color:[[ColorPalette::Background]];}
a img {border:0;}

h1,h2,h3,h4,h5,h6 {color:[[ColorPalette::SecondaryDark]]; background:transparent;}
h1 {border-bottom:2px solid [[ColorPalette::TertiaryLight]];}
h2,h3 {border-bottom:1px solid [[ColorPalette::TertiaryLight]];}

.button {color:[[ColorPalette::PrimaryDark]]; border:1px solid [[ColorPalette::Background]];}
.button:hover {color:[[ColorPalette::PrimaryDark]]; background:[[ColorPalette::SecondaryLight]]; border-color:[[ColorPalette::SecondaryMid]];}
.button:active {color:[[ColorPalette::Background]]; background:[[ColorPalette::SecondaryMid]]; border:1px solid [[ColorPalette::SecondaryDark]];}

.cxtoggle {color:[[ColorPalette::TertiaryMid]];}
.cxtoggle:hover {color:[[ColorPalette::Foreground]];}

.header {background:[[ColorPalette::PrimaryMid]];}
.headerShadow {color:[[ColorPalette::Foreground]];}
.headerShadow a {font-weight:normal; color:[[ColorPalette::Foreground]];}
.headerForeground {color:[[ColorPalette::Background]];}
.headerForeground a {font-weight:normal; color:[[ColorPalette::PrimaryPale]];}

.tabSelected{color:[[ColorPalette::PrimaryDark]];
background:[[ColorPalette::TertiaryPale]];
border-left:1px solid [[ColorPalette::TertiaryLight]];
border-top:1px solid [[ColorPalette::TertiaryLight]];
border-right:1px solid [[ColorPalette::TertiaryLight]];
}
.tabUnselected {color:[[ColorPalette::Background]]; background:[[ColorPalette::TertiaryMid]];}
.tabContents {color:[[ColorPalette::PrimaryDark]]; background:[[ColorPalette::TertiaryPale]]; border:1px solid [[ColorPalette::TertiaryLight]];}
.tabContents .button {border:0; padding: 0.2em 0.4em;}

#sidebar {}
#sidebarOptions input {border:1px solid [[ColorPalette::PrimaryMid]];}
#sidebarOptions .sliderPanel {background:[[ColorPalette::PrimaryPale]];}
#sidebarOptions .sliderPanel a {border:none;color:[[ColorPalette::PrimaryMid]];}
#sidebarOptions .sliderPanel a:hover {color:[[ColorPalette::Background]]; background:[[ColorPalette::PrimaryMid]];}
#sidebarOptions .sliderPanel a:active {color:[[ColorPalette::PrimaryMid]]; background:[[ColorPalette::Background]];}

.wizard {background:[[ColorPalette::PrimaryPale]]; border:1px solid [[ColorPalette::PrimaryMid]];}
.wizard h1 {color:[[ColorPalette::PrimaryDark]]; border:none;}
.wizard h2 {color:[[ColorPalette::Foreground]]; border:none;}
.wizardStep {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];
border:1px solid [[ColorPalette::PrimaryMid]];}
.wizardStep.wizardStepDone {background:[[ColorPalette::TertiaryLight]];}
.wizardFooter {background:[[ColorPalette::PrimaryPale]];}
.wizardFooter .status {background:[[ColorPalette::PrimaryDark]]; color:[[ColorPalette::Background]];}
.wizard .button {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::SecondaryLight]]; border: 1px solid;
border-color:[[ColorPalette::SecondaryPale]] [[ColorPalette::SecondaryDark]] [[ColorPalette::SecondaryDark]] [[ColorPalette::SecondaryPale]];}
.wizard .button:hover {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::Background]];}
.wizard .button:active {color:[[ColorPalette::Background]]; background:[[ColorPalette::Foreground]]; border: 1px solid;
border-color:[[ColorPalette::PrimaryDark]] [[ColorPalette::PrimaryPale]] [[ColorPalette::PrimaryPale]] [[ColorPalette::PrimaryDark]];}

.wizard .notChanged {background:transparent;}
.wizard .changedLocally {background:#80ff80;}
.wizard .changedServer {background:#8080ff;}
.wizard .changedBoth {background:#ff8080;}
.wizard .notFound {background:#ffff80;}
.wizard .putToServer {background:#ff80ff;}
.wizard .gotFromServer {background:#80ffff;}

#messageArea {border:1px solid [[ColorPalette::SecondaryMid]]; background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]];}
#messageArea .button {color:[[ColorPalette::PrimaryMid]]; background:[[ColorPalette::SecondaryPale]]; border:none;}

.popupTiddler {background:[[ColorPalette::TertiaryPale]]; border:2px solid [[ColorPalette::TertiaryMid]];}

.popup {background:[[ColorPalette::TertiaryPale]]; color:[[ColorPalette::TertiaryDark]]; border-left:1px solid [[ColorPalette::TertiaryMid]]; border-top:1px solid [[ColorPalette::TertiaryMid]]; border-right:2px solid [[ColorPalette::TertiaryDark]]; border-bottom:2px solid [[ColorPalette::TertiaryDark]];}
.popup hr {color:[[ColorPalette::PrimaryDark]]; background:[[ColorPalette::PrimaryDark]]; border-bottom:1px;}
.popup li.disabled {color:[[ColorPalette::TertiaryMid]];}
.popup li a, .popup li a:visited {color:[[ColorPalette::Foreground]]; border: none;}
.popup li a:hover {background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]]; border: none;}
.popup li a:active {background:[[ColorPalette::SecondaryPale]]; color:[[ColorPalette::Foreground]]; border: none;}
.popupHighlight {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];}
.listBreak div {border-bottom:1px solid [[ColorPalette::TertiaryDark]];}

.tiddler .defaultCommand {font-weight:bold;}

.shadow .title {color:[[ColorPalette::TertiaryDark]];}

.title {color:[[ColorPalette::SecondaryDark]];}
.subtitle {color:[[ColorPalette::TertiaryDark]];}

.toolbar {color:[[ColorPalette::PrimaryMid]];}
.commentToolbar {color:[[ColorPalette::PrimaryMid]];}
.toolbar a {color:[[ColorPalette::TertiaryLight]];}
.commentToolbar a {color:[[ColorPalette::TertiaryDark]];}
.selected .toolbar a {color:[[ColorPalette::TertiaryMid]];}
.selected .commentToolbar a {color:[[ColorPalette::TertiaryDark]];}
.selected .toolbar a:hover {color:[[ColorPalette::Foreground]];}
.selected .commentToolbar a:hover {color:[[ColorPalette::Foreground]];}

.tagging, .tagged {border:1px solid [[ColorPalette::TertiaryPale]]; background-color:[[ColorPalette::TertiaryPale]];}
.selected .tagging, .selected .tagged {background-color:[[ColorPalette::TertiaryLight]]; border:1px solid [[ColorPalette::TertiaryMid]];}
.tagging .listTitle, .tagged .listTitle {color:[[ColorPalette::PrimaryDark]];}
.tagging .button, .tagged .button {border:none;}

.tagmenu {padding:0.2em 0.4em 0.2em 0.4em; font-weight:bold; color:[[ColorPalette::TertiaryMid]]}
.selected .tagmenu {color:black;}
.selected .tagmenu:hover {background-color:white;}

.footer {color:[[ColorPalette::TertiaryLight]];}
.selected .footer {color:[[ColorPalette::TertiaryMid]];}

.sparkline {background:[[ColorPalette::PrimaryPale]]; border:0;}
.sparktick {background:[[ColorPalette::PrimaryDark]];}

.error, .errorButton {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::Error]];}
.warning {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::SecondaryPale]];}
.lowlight {background:[[ColorPalette::TertiaryLight]];}

.zoomer {background:none; color:[[ColorPalette::TertiaryMid]]; border:3px solid [[ColorPalette::TertiaryMid]];}

.imageLink, #displayArea .imageLink {background:transparent;}

.annotation {background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]]; border:2px solid [[ColorPalette::SecondaryMid]];}

.viewer .listTitle {list-style-type:none; margin-left:-2em;}
.viewer .button {border:1px solid [[ColorPalette::SecondaryMid]];}
.tabContents .button {border:1px solid [[ColorPalette::TertiaryPale]];}
.tabContents .button:hover {border-color:[[ColorPalette::SecondaryMid]];}
.viewer blockquote {border-left:3px solid [[ColorPalette::TertiaryDark]];}

.viewer table, table.twtable {border:2px solid [[ColorPalette::TertiaryDark]];}
.viewer th, .viewer thead td, .twtable th, .twtable thead td {background:[[ColorPalette::SecondaryMid]]; border:1px solid [[ColorPalette::TertiaryDark]]; color:[[ColorPalette::Background]];}
.viewer td, .viewer tr, .twtable td, .twtable tr {border:1px solid [[ColorPalette::TertiaryDark]];}

.viewer pre {border:1px solid [[ColorPalette::SecondaryLight]]; background:[[ColorPalette::SecondaryPale]];}
.viewer code {color:[[ColorPalette::SecondaryDark]];}
.viewer hr {border:0; border-top:solid 1px [[ColorPalette::TertiaryDark]]; color:[[ColorPalette::TertiaryDark]];}
.viewer table { border: 0px }
.viewer td {border: 1px solid #fff;} .oddRow {color: #333; background: #ddd;} .evenRow { color: #222; background: #eee;} 
.oddRowComment {color: #332; background: #ddc;} .evenRowComment { color: #222; background: #eec;}
.oddRowMessage {color: #223; background: #dcf;} .evenRowMessage { color: #223; background: #def;}
.oddRowNote {color: #332; background: #dec;} .evenRowNote { color: #222; background: #efc;}

.highlight, .marked {background:[[ColorPalette::SecondaryLight]];}

.editor input {border:0px solid [[ColorPalette::PrimaryMid]];}
.editor textarea {border:0px solid [[ColorPalette::PrimaryMid]]; width:100%;}
.editorFooter {color:[[ColorPalette::TertiaryMid]];}

.commentArea {background:[[ColorPalette::Background]];}
.commentTD {background:[[ColorPalette::Background]];}
.btnReplies {border:0; margin-right: 0.5em}
.btnCommentTool {border:0; margin-right: 0.3em}

.redbutton { color: #cc0000 }
.redbutton:hover { color: #ff0000 }

/*}}}*/
/*{{{*/
* html .tiddler {height:1%;}

body {font-size:.75em; font-family:arial,helvetica; margin:0; padding:0;}

h1,h2,h3,h4,h5,h6 {font-weight:bold; text-decoration:none;}
h1,h2,h3 {padding-bottom:1px; margin-top:1.2em;margin-bottom:0.3em;}
h4,h5,h6 {margin-top:1em;}
h1 {font-size:1.35em;}
h2 {font-size:1.25em;}
h3 {font-size:1.1em;}
h4 {font-size:1em;}
h5 {font-size:.9em;}

hr {height:1px;}

a {text-decoration:none;}

dt {font-weight:bold;}

ol {list-style-type:decimal;}
ol ol {list-style-type:lower-alpha;}
ol ol ol {list-style-type:lower-roman;}
ol ol ol ol {list-style-type:decimal;}
ol ol ol ol ol {list-style-type:lower-alpha;}
ol ol ol ol ol ol {list-style-type:lower-roman;}
ol ol ol ol ol ol ol {list-style-type:decimal;}

fieldset { padding:0px 8px 4px 4px; }

.txtOptionInput {width:11em;}

#contentWrapper .chkOptionInput {border:0;}

.externalLink {text-decoration:underline;}

.indent {margin-left:3em;}
.outdent {margin-left:3em; text-indent:-3em;}
code.escaped {white-space:nowrap;}

.tiddlyLinkExisting {font-weight:bold;}
.tiddlyLinkNonExisting {font-style:italic;}

/* the 'a' is required for IE, otherwise it renders the whole tiddler in bold */
a.tiddlyLinkNonExisting.shadow {font-weight:bold;}

#mainMenu .tiddlyLinkExisting,
#mainMenu .tiddlyLinkNonExisting,
#sidebarTabs .tiddlyLinkNonExisting {font-weight:normal; font-style:normal;}
#sidebarTabs .tiddlyLinkExisting {font-weight:bold; font-style:normal;}
#sidebarTabs .button {margin:0em 0.2em;	padding:0.2em 0.3em; display:block;}

#headerArea { margin: 0.5em; }
.siteTitle {font-size:3em;}
.siteSubtitle {font-size:1.2em;}

#topRightCorner { position:absolute; top:0.5em;right:0.9em; font-size: 1.1em; text-align: right; }

#leftSidebar {position:absolute; left:0; width:10em; padding:0.5em 0.5em 0.5em 0.5em;}
#mainMenu {text-align:right; line-height:1.6em; font-size:1.1em;}

#sidebar {position:absolute; right:3px; width:16em; margin-top:1em; font-size:.9em;}
#sidebarOptions {padding-top:0em;}
#sidebarOptions a {margin:0em 0.2em; padding:0.2em 0.3em; display:block;}
#sidebarOptions input {margin:0.4em 0.5em;}
#sidebarOptions .sliderPanel {margin-left:1em; padding:0.5em; font-size:.85em;}
#sidebarOptions .searchButton {font-size: 1.11em;}
#sidebarOptions .sliderPanel a {font-weight:bold; display:inline; padding:0;}
#sidebarOptions .sliderPanel input {margin:0 0 .3em 0;}
#sidebarTabs .tabContents {width:15em; overflow:hidden;}

.wizard {padding:0.1em 1em 0em 2em;}
.wizard h1 {font-size:2em; font-weight:bold; background:none; padding:0em 0em 0em 0em; margin:0.4em 0em 0.2em 0em;}
.wizard h2 {font-size:1.2em; font-weight:bold; background:none; padding:0em 0em 0em 0em; margin:0.4em 0em 0.2em 0em;}
.wizardStep {padding:1em 1em 1em 1em;}
.wizard .button {margin:0.5em 0em 0em 0em; font-size:1.2em;}
.wizardFooter {padding:0.8em 0.4em 0.8em 0em;}
.wizardFooter .status {padding:0em 0.4em 0em 0.4em; margin-left:1em;}
.wizard .button {padding:0.1em 0.2em 0.1em 0.2em;}

#messageArea {position:fixed; top:2em; right:0em; margin:0.5em; padding:0.5em; z-index:2000; _position:absolute;}
.messageToolbar {display:block; text-align:right; padding:0.2em 0.2em 0.2em 0.2em;}
#messageArea a {text-decoration:underline;}

.tiddlerPopupButton {padding:0.2em 0.2em 0.2em 0.2em;}
.popupTiddler {position: absolute; z-index:300; padding:1em 1em 1em 1em; margin:0;}

.popup {position:absolute; z-index:300; font-size:.9em; padding:0; list-style:none; margin:0;}
.popup .popupMessage {padding:0.4em;}
.popup hr {display:block; height:1px; width:auto; padding:0; margin:0.2em 0em;}
.popup li.disabled {padding:0.4em;}
.popup li a {display:block; padding:0.4em; font-weight:normal; cursor:pointer;}
.listBreak {font-size:1px; line-height:1px;}

.listBreak div {margin:2px 0;}
.tabset {padding:1em 0em 0em 0.5em;}
.tab {margin:0em 0em 0em 0.25em; padding:2px;}
.tabContents {padding:0.5em;}
.tabContents ul, .tabContents ol {margin:0; padding:0;}
.txtMainTab .tabContents li {list-style:none;}
.tabContents li.listLink { margin-left:.75em;}
.tabContents .tiddler {padding:0.1em 0.5em 0.5em 0.5em}

#contentWrapper {display:block;}
#splashScreen {display:none;}

#displayArea {margin:1em 17em 0em 12em;}
#wideArea {margin:1em 1em 0em 12em;}

.toolbar {text-align:right; font-size:.9em; float:right }
.commentToolbar {text-align:left; font-size:.9em;}

.tiddler {padding:0em 1em 1em 0em;}

.missing .viewer,.missing .title {font-style:italic;}

.title {font-size:1.6em; font-weight:bold;}
.cxtoggle {width:1.0em; font-size:1.10em;}
.vttable td { padding: 0 0 0 0 }
.tdtoggle {width: 1.25em;}

.missing .subtitle {display:none;}
.subtitle {font-size:1.1em;}

.tiddler .button {padding:0.2em 0.4em;}
.tiddler .disabled {padding:0.2em 0.6em;}

.tagging {margin:0.5em 0.5em 0.5em 0; float:left; display:none;}
.isTag .tagging {display:block;}
.tagged {margin:0.5em; float:right;}
.tagging, .tagged {font-size:0.9em; padding:0.25em;}
.tagging ul, .tagged ul {list-style:none; margin:0.25em; padding:0;}
.tagClear {clear:both;}

.footer {font-size:.9em;}
.footer li {display:inline;}

.annotation {padding:0.5em; margin:0.5em;}

* html .viewer pre {width:99%; padding:0 0 1em 0;}
.viewer {line-height:1.4em; padding-top:0.5em;}
.viewer .button {margin:0em 0.25em; padding:0em 0.25em;}
.viewer blockquote {line-height:1.5em; padding-left:0.8em;margin-left:2.5em;}
.viewer ul, .viewer ol {margin-left:0.5em; padding-left:1.5em;}

.viewer table, table.twtable {border-collapse:collapse; margin:0em 0em; 0em; 0em; font-size:1.0em;}
.viewer tr {vertical-align: top; }

.viewer th, .viewer td, .viewer tr,.viewer caption,.twtable th, .twtable td, .twtable tr,.twtable caption {padding:3px;}
table.listView {font-size:0.85em; margin:0.8em 1.0em;}
table.listView th, table.listView td, table.listView tr {padding:0px 3px 0px 3px;}

.viewer pre {padding:0.5em; margin-left:0.5em; font-size:1.2em; line-height:1.4em; overflow:auto;}
.viewer code {font-size:1.2em; line-height:1.4em;}

.editor {font-size:1.1em;}
.editor input, .editor textarea {display:block; width:100%; font:inherit;}
.editorFooter {padding:0.25em 0em; font-size:.9em;}
.editorFooter .button {padding-top:0px; padding-bottom:0px;}

.fieldsetFix {border:0; padding:0; margin:1px 0px 1px 0px;}

.sparkline {line-height:1em;}
.sparktick {outline:0;}

.zoomer {font-size:1.1em; position:absolute; overflow:hidden;}
.zoomer div {padding:1em;}

.commentTable {width:100%; font-size:1.0em;}
.commentTable td {vertical-align:text-top;}
.commentArea {border:0px; width:100%; font:inherit;}
.commentToolbar { padding-bottom:5px;}
.replyTD { padding-left:1.25em }
.buttonftr {position:relative; top:0em; right:0em; }
.linkbutton { font-weight: bold }
.siteMapTags { color: #ff0000 }
a.fieldsLink { margin-left:10px; margin-bottom:8px;}

.diffout { font-size:1.0em; font-family: courier; }
.diffminus { background-color: #d0ffdd; color: blue; }
.diffplus { background-color: #ffd0dd; color: darkred; }
/*}}}*/
/***
StyleSheet for use when a translation requires any css style changes.
This StyleSheet can be used directly by languages such as Chinese, Japanese and Korean which need larger font sizes.
***/
/*{{{*/
body {font-size:0.8em;}
#sidebarOptions {font-size:1.05em;}
#sidebarOptions a {font-style:normal;}
#sidebarOptions .sliderPanel {font-size:0.95em;}
.subtitle {font-size:0.8em;}
.viewer table.listView {font-size:0.95em;}
/*}}}*/
		/*{{{*/
		@media print {
		#mainMenu, #sidebar, #messageArea, .toolbar, #backstageButton, #backstageArea {display: none ! important;}
		#displayArea {margin: 1em 1em 0em 1em;}
		/* Fixes a feature in Firefox 1.5.0.2 where print preview displays the noscript content */
		noscript {display:none;}
		}
		/*}}}*/
	
<!--{{{-->
<div id='headerArea'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
<span id='topRightCorner' refresh='content' tiddler='TopRightCorner'></span>
</div>
<div id='leftSidebar'>
<div id='mainMenu' refresh='content' tiddler='MainMenu'></div>
<div id='leftBottom'></div>
</div>
<div id='wideArea'></div>
<div id='sidebar'>
<div id='sidebarOptions' refresh='content' tiddler='SideBarOptions'></div>
<div id='sidebarTabs' refresh='content' force='true' tiddler='SideBarTabs'></div>
</div>
<div id='displayArea'>
<div id='messageArea'></div>
<div id='tiddlerDisplay'></div>
</div>
<!--}}}-->
<!--{{{-->
<table width='100%' class='vttable'><tr valign='top'>
<td class='tdtoggle'>
<a class='cxtoggle button' title='collapse' href='javascript:;'>▼</a>
<a class='cxtoggle button' title='expand' href='javascript:;' style='display:none'>►</a></td>
<td><div class='toolbar' macro='toolbar [[ToolbarCommands::ViewToolbar]]'></div>
<div class='title' macro='view title'></div>
</td></tr>
<tr><td></td><td>
<div class='subtitle'><span macro='author'></span><span macro='view modified date "DD MMM YYYY" ", "'></span> <span macro='history'></span></div>
<div class='tagging' macro='tagging'></div>
<div class='tagged' macro='tags'></div>
<div class='viewer' macro='if config.options.chkListPrevious view versions wikified'></div>
<div class='viewer' macro='view text wikified'></div>
<div class='tagClear'></div>
<hr/>
<div class='comments' macro='comments'></div>
</td></tr>
</table>
<!--}}}-->
<!--{{{-->
<table width='100%' class='vttable'><tr valign='top'>
<td class='tdtoggle'>
<a class='cxtoggle button' title='collapse' href='javascript:;'>▼</a>
<a class='cxtoggle button' title='expand' href='javascript:;' style='display:none'>►</a></td>
<td><div class='toolbar' macro='toolbar [[ToolbarCommands::EditToolbar]]'></div>
<div class='title' macro='view title'></div>
</td></tr>
<tr><td></td><td>
<fieldset><legend>Title</legend><div class='editor' macro='edit title'></div></fieldset>
<div macro='annotations'></div>
<fieldset><legend>Text</legend><div class='editor' macro='edit text'></div>
<table style='width:100%;'><tr><td><div class='commentToolbar' macro='toolbar [[ToolbarCommands::TextToolbar]]'></td><td align='right'><div class='toolbar' macro='toolbar [[ToolbarCommands::EditToolbar]]'></div></td></tr></table> </fieldset>
<fieldset id='preview' style='display:none'><legend>Preview</legend><div class='viewer' ></div></fieldset>
<fieldset id='tag' class='tagFrame'><legend>Tags & attributes</legend><div class='editor' macro='edit tags'></div><div class='editorFooter'><span macro='message views.editor.tagPrompt'></span><span macro='tagChooser'></span></div></fieldset>
</td></tr>
</table>
<!--}}}-->
<!--{{{-->
<div class='editor' macro='edit text'></div>
<span class='tagFrame' > <div class='editor' macro='edit tags'></div></span>
<span class='commentToolbar' macro='toolbar [[ToolbarCommands::SpecialEditToolbar]]'></span>
<div class='history' ></div>
<div class='viewer special' macro='view text wikified'></div>
<!--}}}-->
<div class='viewer' macro='view text wikified'></div>
<!--{{{-->
<div class='toolbar' macro='toolbar [[ToolbarCommands::MiniToolbar]]'></div>
<div class='title' macro='view title'></div>
<div class='viewer' macro='view text wikified'></div>
<div class='tagClear'></div>
<!--}}}-->
<!--{{{-->
<div class='viewer' macro='view text wikified'></div>
<div class='tagClear'></div>
<!--}}}-->
<!--{{{-->
<table width='100%' class='vttable'><tr valign='top'>
<td class='tdtoggle'>
<a class='cxtoggle button' title='collapse' href='javascript:;'>▼</a>
<a class='cxtoggle button' title='expand' href='javascript:;' style='display:none'>►</a></td>
<td><div class='toolbar' macro='toolbar [[ToolbarCommands::MiniToolbar]]'></div>
<div class='title' macro='view title'></div>
</td></tr>
<tr><td></td><td>
<div class='viewer' macro='view text wikified'></div>
<div class='tagClear'></div>
</td></tr>
</table>
<!--}}}-->
macro|login|
macro|logout|
tiddler|UserProfile|my profile|Edit my profile|
link|http://localhost:8000/datastore?kind=Page|DataStore|config.admin
<<tabs chkPageSetup 
'PageProperties' 'Title, access, template/includes' 'js;editTiddlerHere;PageProperties;SpecialViewTemplate'
'MainMenu' 'The left column' 'js;editTiddlerHere;MainMenu'
'DefaultTiddlers' 'Middle column initial content' 'js;editTiddlerHere;DefaultTiddlers'
'ColorPalette' 'Color palette' 'js;editTiddlerHere;ColorPalette'
'StyleSheet' 'Custom styles' 'js;editTiddlerHere;StyleSheet'
'All..' 'Other special tiddlers' 'js;editTiddlerHere;SpecialTiddlers;SpecialViewTemplate'
>>
!Common tweaks
* <script label="Remove">CommonTasks.RemoveText('[[PageSetup]]\n','MainMenu')&&CommonTasks.RemoveThisLi(place)</script> PageSetup from MainMenu (it is available from the editing menu).
* <script label="Remove">CommonTasks.RemoveText('[[PageSetup]]','DefaultTiddlers')&&CommonTasks.RemoveThisLi(place)</script> PageSetup from DefaultTiddlers.
macro|newTiddler|
macro|newJournal|"DD MMM YYYY" "journal"
macro|tiwinate|
tiddler|CreateNewPage|new page|Create new page or folder|p
tiddler|UploadDialog|upload file|Upload a local file|u
tiddler|PageSetup|page setup|Edit page properties and presentation|p
tiddler|File list|file list|list of uploaded files|f
tiddler|Recycle bin|recycle bin|List of 'deleted' tiddlers|r
macro|pasteTiddler|
<<fileList>>
<<recycleBin *>>
<<option chkAutoSyncAddress>> <<permaview>> - <script label="help" title="Information on address bar sync">story.displayTiddler(null, "Help on address bar sync features");</script>
<<option chkRegExpSearch>> Regular expression search
<<option chkCaseSensitiveSearch>> Case-sensitive search
<<option chkAnimate>> Enable animations
''Edit mode:''
<<option chkAutoSave>> Auto-save changes while editing
<<option chkInsertTabs>> Tab key inserts tab character
''//The server saves these and your// AdvancedOptions //in your profile//''
----
<<downloadAsTiddlyWiki>>
Please <<login>> to read this page.
<<siteMap>>
<<recentChanges>>
<<recentComments>>
<<uploadDialog>>
<script>accessTypes = "all|edit|add|comment|view|none|"
var fn = formName(place);
forms[fn] = http.createPage({defaults:"get"});
if (fn != "CreateNewPage") {
	forms[fn].title = fn;
	forms[fn].address = CheckNewAddress(fn);
	}
forms[fn].template = "normal";
forms[fn].title_changed = function(f,id,v) { f.title = v; setFormFieldValue(f,"address",CheckNewAddress(v)); }
;</script>
|>|>|Title<br><<input title text 70>>|
|>|>|Subtitle<br><<input subtitle text 70>>|
|>|>|Address (<script label="end with a /">MakePathAFolder('address');</script> to make a folder)<br><<input address text 70>>|
|>|>|Access permissions|
|Group<br><<input group select javascript:accessTypes>>|Authenticated<br><<input authenticated select javascript:accessTypes>>|Anonymous<br><<input anonymous select "javascript:accessTypes">>|
|>|>|Template<br><<input template select javascript:availableTemplates() >>|
|>|>|<script label="Create new page" title="Create new page">OnCreatePage(http.createPage(GetForm(place)));</script><script>forms[formName(place)].controls['title'].focus();</script>|
<script>
var fn = formName(place);
var fn = formName(place);
forms[fn] = http.createPage({defaults:"get"}); // for updateAccess
forms[fn].address = window.location.pathname;
</script><html><div class='title'>Move this page</div></html>
|>|>|Address <br><<input address text 70>>|
|<<input redirect checkbox false>>Redirect current address|
|>|>|<script label="Move page" title="Move page to a different address">OnCreatePage(http.moveThisPage(GetForm(place)));</script><script>forms[formName(place)].controls['address'].focus();</script>|
	<script>
var fn = formName(place);
listOfAllGroups = http.getGroups();
if (!listOfAllGroups.length)
	listOfAllGroups[0] = "(none defined)";
else
	listOfAllGroups.unshift("Select...");
listOfAllGroups = listOfAllGroups.join('|');
forms[fn] = { 'updateaccess': true };
	</script>
|Group<br><<input groupname select javascript:listOfAllGroups "" ListGroupMembers()>>|New group<br><<input name text 36>> <script label="Create" title="Create group">OnCreateGroup(http.createGroup(forms.DefineGroup));</script>|
|Members:|<html><div id="groupMemberList"></html>|
||>|Add user as member<br><<input user text 36>> <script label="Add" title="Add user">OnAddMember(http.addGroupMember(forms.DefineGroup));</script>|