<!--{{{-->
<link rel='alternate' type='application/rss+xml' title='RSS' href='index.xml'/>
<!--}}}-->
Background: #fff
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]];}

.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;}

#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]];}

#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]];}
.toolbar a {color:[[ColorPalette::TertiaryLight]];}
.selected .toolbar a {color:[[ColorPalette::TertiaryMid]];}
.selected .toolbar 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;}

.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]];}
.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:dashed 1px [[ColorPalette::TertiaryDark]]; color:[[ColorPalette::TertiaryDark]];}

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

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

#backstageArea {background:[[ColorPalette::Foreground]]; color:[[ColorPalette::TertiaryMid]];}
#backstageArea a {background:[[ColorPalette::Foreground]]; color:[[ColorPalette::Background]]; border:none;}
#backstageArea a:hover {background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]]; }
#backstageArea a.backstageSelTab {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];}
#backstageButton a {background:none; color:[[ColorPalette::Background]]; border:none;}
#backstageButton a:hover {background:[[ColorPalette::Foreground]]; color:[[ColorPalette::Background]]; border:none;}
#backstagePanel {background:[[ColorPalette::Background]]; border-color: [[ColorPalette::Background]] [[ColorPalette::TertiaryDark]] [[ColorPalette::TertiaryDark]] [[ColorPalette::TertiaryDark]];}
.backstagePanelFooter .button {border:none; color:[[ColorPalette::Background]];}
.backstagePanelFooter .button:hover {color:[[ColorPalette::Foreground]];}
#backstageCloak {background:[[ColorPalette::Foreground]]; opacity:0.6; filter:'alpha(opacity:60)';}
/*}}}*/
/*{{{*/
* 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;}

.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;}

.header {position:relative;}
.header a:hover {background:transparent;}
.headerShadow {position:relative; padding:4.5em 0em 1em 1em; left:-1px; top:-1px;}
.headerForeground {position:absolute; padding:4.5em 0em 1em 1em; left:0px; top:0px;}

.siteTitle {font-size:3em;}
.siteSubtitle {font-size:1.2em;}

#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;}

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

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

.toolbar {text-align:right; 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;}

.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:0.8em 1.0em;}
.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;}

* html #backstage {width:99%;}
* html #backstageArea {width:99%;}
#backstageArea {display:none; position:relative; overflow: hidden; z-index:150; padding:0.3em 0.5em 0.3em 0.5em;}
#backstageToolbar {position:relative;}
#backstageArea a {font-weight:bold; margin-left:0.5em; padding:0.3em 0.5em 0.3em 0.5em;}
#backstageButton {display:none; position:absolute; z-index:175; top:0em; right:0em;}
#backstageButton a {padding:0.1em 0.4em 0.1em 0.4em; margin:0.1em 0.1em 0.1em 0.1em;}
#backstage {position:relative; width:100%; z-index:50;}
#backstagePanel {display:none; z-index:100; position:absolute; margin:0em 3em 0em 3em; padding:1em 1em 1em 1em;}
.backstagePanelFooter {padding-top:0.2em; float:right;}
.backstagePanelFooter a {padding:0.2em 0.4em 0.2em 0.4em;}
#backstageCloak {display:none; z-index:20; position:absolute; width:100%; height:100px;}

.whenBackstage {display:none;}
.backstageVisible .whenBackstage {display:block;}
/*}}}*/
/***
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 class='header' macro='gradient vert [[ColorPalette::PrimaryLight]] [[ColorPalette::PrimaryMid]]'>
<div class='headerShadow'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
</div>
<div class='headerForeground'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
</div>
</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>
<!--}}}-->
<!--{{{-->
<div class='toolbar' macro='toolbar closeTiddler closeOthers +editTiddler > fields syncing permalink references jump'></div>
<div class='title' macro='view title'></div>
<div class='subtitle'><span macro='view modifier link'></span>, <span macro='view modified date'></span> (<span macro='message views.wikified.createdPrompt'></span> <span macro='view created date'></span>)</div>
<div class='tagging' macro='tagging'></div>
<div class='tagged' macro='tags'></div>
<div class='viewer' macro='view text wikified'></div>
<div class='tagClear'></div>
<!--}}}-->
<!--{{{-->
<div class='toolbar' macro='toolbar +saveTiddler -cancelTiddler deleteTiddler'></div>
<div class='title' macro='view title'></div>
<div class='editor' macro='edit title'></div>
<div macro='annotations'></div>
<div class='editor' macro='edit text'></div>
<div class='editor' macro='edit tags'></div><div class='editorFooter'><span macro='message views.editor.tagPrompt'></span><span macro='tagChooser'></span></div>
<!--}}}-->
To get started with this blank TiddlyWiki, you'll need to modify the following tiddlers:
* SiteTitle & SiteSubtitle: The title and subtitle of the site, as shown above (after saving, they will also appear in the browser title bar)
* MainMenu: The menu (usually on the left)
* DefaultTiddlers: Contains the names of the tiddlers that you want to appear when the TiddlyWiki is opened
You'll also need to enter your username for signing your edits: <<option txtUserName>>
These InterfaceOptions for customising TiddlyWiki are saved in your browser

Your username for signing your edits. Write it as a WikiWord (eg JoeBloggs)

<<option txtUserName>>
<<option chkSaveBackups>> SaveBackups
<<option chkAutoSave>> AutoSave
<<option chkRegExpSearch>> RegExpSearch
<<option chkCaseSensitiveSearch>> CaseSensitiveSearch
<<option chkAnimate>> EnableAnimations

----
Also see AdvancedOptions
<<importTiddlers>>
<<options>>
<<option chkSearchTitles>> Search in tiddler titles
<<option chkSearchText>> Search in tiddler text
<<option chkSearchTags>> Search in tiddler tags
<<option chkSearchFields>> Search in tiddler data fields
<<option chkSearchShadows>> Search in shadow tiddlers
<<option chkSearchTitlesFirst>> Search results show title matches first
<<option chkSearchList>> Search results show list of matching tiddlers
<<option chkSearchIncremental>> Incremental searching
<<option chkHoldSearches>> Hold search results
{{fourcolumns{<<list all>>}}}
|width:750px;{{floatleft{<<tiddler NumericalIndex>>}}}{{floatright{[[previous|TheScientificMethod]] @@color:#C06;''&laquo; 3 &raquo;'' @@  <<tiddler NextTiddler with: [[Astronomy]]  'next'>>}}}|
{{textjustify{
{{imgfloatleft textleft{
[img[http://img442.imageshack.us/img442/9661/maningarden300pxez5.jpg]]  
}}}
}}}
''The observation, measurement, and explanation of human variability'' in time and space. This includes both biological variability and the study of cultural, or learned, behavior among contemporary human societies. These studies are closely allied with the fields of archeology and linguistics. Studies range from rigorously scientific approaches, such as research into the physiology, demography, and ecology of hunter-gatherers, to more humanistic research on topics such as symbolism and ritual behavior. See also Archeology; Physical anthropology.

''Anthropology lacks a unified theory'' comparable to neo-Darwinian evolution in the biological sciences and is characterized, instead, by a wide variety of subfields that analyze and integrate studies of human behavior in different ways. Social-cultural anthropology examines the various ways in which learned techniques, values, and beliefs are transmitted from one generation to the next and acted upon in different situations. Most studies stress the historical development and internal structure and workings of particular cultural traditions, and anthropologists have amassed detailed bodies of documentation on different human societies. Significant, too, within social-cultural anthropology are cross-cultural studies that seek to identify essential structural or behavioral properties of human society. Modern scholars have sought to identify universal patterns of symbolic behavior and belief, and there are other social-cultural anthropologists actively testing these kinds of propositions in particular cases.
{{textjustify{
{{imgfloatright textcenter{
[img[http://img125.imageshack.us/img125/4518/leftmaincollagepm8.jpg]]  
}}}
}}}''Increasingly, social-cultural anthropologists have applied their training and skills to'' issues of contemporary importance such as economic development in third world countries, public policies affecting ethnic minorities, and changes arising from contact between different societies (especially Western and non-Western ones). Sometimes referred to as applied anthropology, such studies are often made in situations where conflicting social values or expectations may arise.

''Cultural linguistics is closely allied with'' both the goals and methods of social-cultural anthropology, especially with respect to the way in which linguists strive for a reliable understanding of how each different language works according to its own sound system (phonology) and grammatical structure. See also Psycholinguistics.

''There has been a developing tendency in anthropology toward'' integration of different subfields. For example, ethnoscience is a subject in which anthropologists apply approaches derived from linguistics to understand the grammatical structure and manipulation of cognitive perceptions by people in different societies of such things as color, weather, and biotic environment. Another growing subfield is ethnoarcheology, in which observations of material behavior (especially discard) in contemporary societies are used to interpret the archeological remains of prehistoric cultures. Modern anthropology is characterized by its breadth and diversity of approaches to the study of variability in human behavior.

Source: http://www.answers.com/

|width:750px;{{floatleft{<<tiddler NumericalIndex>>}}}{{floatright{[[previous|TheScientificMethod]] @@color:#C06;''&laquo; 3 &raquo;'' @@  <<tiddler NextTiddler with: [[Astronomy]]  'next'>>}}}|






|width:750px;{{floatleft{<<tiddler NumericalIndex>>}}}{{floatright{<<tiddler NextTiddler with: [[Anthropology]]  'previous'>> @@color:#C06;''&laquo; 4 &raquo;'' @@  <<tiddler NextTiddler with: [[TheElements]]  'next'>>}}}|

''Astronomy''

{{textjustify{
''The study of the universe'' and the objects in it through scientific investigation. Since much of contemporary astronomy uses the laws and methods of physics, the terms “astronomy” and “astrophysics” are usually used interchangeably. However, modern astronomy also uses techniques from many other scientific disciplines, including chemistry, geology, and biology, for which the terms astrochemistry, planetary science, and astrobiology are increasingly used.

''The use of geological knowledge'' and methods in analyzing close-up observations from spacecraft of planets and their satellites and of comets and{{imgfloatleft textcenter{[img[http://img139.imageshack.us/img139/5739/eaglenebulagw1.gif]]
Click here to enlarge <<tiddler EagleNebula>>
}}} asteroids closely links the disciplines of astronomy and planetary science. Indeed, the discovery of planets around distant stars holds for even closer relations in the future. Methods of studying molecules in interstellar clouds involve chemical knowledge. Planetary science and astrochemistry come together with astronomy in the search for life outside the solar system, part of the search for extraterrestrial intelligence (SETI). The National Aeronautics and Space Administration (NASA), the United States space agency, has placed a priority on astrobiology, including the investigation of Mars and the bringing of samples back to Earth from Mars. See also Asteroid; Comet; Cosmochemistry; Extraterrestrial intelligence; Interstellar matter; Planet; Planetary physics; Solar system.

''Astronomers often lead in employing new technologies'', pushing them to the limit in exploring extremely faint signals in various parts of the electromagnetic spectrum. Nearly all astronomical research is now heavily dependent on computers. Astronomical imagery is now dominated by light-sensitive silicon chips known as charge-coupled devices (CCDs), which are approximately 100 times more sensitive than film. Fiber optics are used for a variety of astronomical purposes, including the taking of hundreds of galaxy images simultaneously from the field of view of a telescope and bringing the light to a spectrograph that can produce simultaneous spectra of all the objects. The technology of active optics, in which the shape of a mirror is changed slightly at a high rate (often faster than 1 Hz) to compensate for the blurring of astronomical images caused by the Earth's atmosphere, is being increasingly pursued to eliminate the twinkling of stars. See also Adaptive optics; Fiber-optics imaging.

''The opening of the 5-m (200-in.) Hale telescope'' at the Palomar Observatory on Palomar Mountain, California, in 1948 marked the beginning of a great period of development in optical astronomy.{{imgfloatright textcenter{[img[http://img162.imageshack.us/img162/9374/hzhale04us2.jpg]]}}} The light-gathering power of this telescope allowed cosmological study that extended most of the way to the beginning of time in the universe.It was joined in the task by several 4-m-class (160-in.) telescopes and by one less successful larger telescope. In the 1990s, new techniques of telescope making allowed the completion of several telescopes in the 10-m (400-in.) class, twice the diameter and thus four times the collecting area of the Hale telescope. The large telescopes have proven useful in taking spectra of the optical counterparts of gamma-ray bursts, proving that they are very far away; and in analyzing the distances to faraway galaxies and in measuring the redshifts of their spectra, leading to the current cosmological models of the expansion of the universe and the tentative conclusion that the rate of expansion is accelerating. See also Cosmology; Hubble constant.

''The 1990s saw the thorough use of the vantage points'' of space for astronomical observation, exemplified by NASA's series of Great Observatories. In 1991 the Compton Gamma-Ray Observatory was launched, and in the following years mapped about one gamma-ray burst per day in addition to many other objects and events. The Hubble Space Telescope was launched in 1990 to study the ultraviolet and visible parts of the spectrum. Its repair in 1993, with secondary mirrors compensating for a focusing problem with the main mirror, brought it to full working order, and a 1996 upgrade included an improved two-dimensional spectrograph and infrared capability. The Chandra X-Ray Observatory, launched in 1999, provides high-resolution x-ray images, and is the same size and scope as Hubble. It studies various types of celestial objects and processes, such as black holes of stellar and galactic sizes. The Space Infrared Telescope Facility, the fourth of this series of Great Observatories, was launched in 2004 and renamed the Spitzer Space Telescope. Smaller spacecraft have also made valuable contributions. See also Black hole; Infrared astronomy; X-ray astronomy; X-ray telescope.

''The atmosphere blocks most of the electromagnetic spectrum'' from reaching the Earth's surface, leaving windows of transparency mostly in the optical and radio parts of the spectrum. {{imgfloatright textcenter{
[img[http://img411.imageshack.us/img411/6808/arecibodishnx0.jpg]]
''Arecibo dish-Puerto Rico''}}}}}} Radio astronomers have made the most of their window of transparency with such telescopes as the 100-m (328-ft) fully steerable telescope outside Bonn, Germany; ''the 330-m (1083-ft) Arecibo dish in Puerto Rico'', which has some limited tracking ability, the Very Large Array of radio telescopes in New Mexico, and the Very Long Baseline Array. The ozone layer and other constituents of the atmosphere block the shortest wavelengths from penetrating to the Earth's surface, so observations of gamma rays, x-rays, and most of the ultraviolet region require telescopes in space. See also Ozone; Radio astronomy; Radio telescope.

''Much of astronomy involves breaking down'' the incoming celestial radiation into its component wavelengths, a process known as spectroscopy. Spectroscopic studies can reveal the temperature of an object, the identity and proportions of its chemical elements, and the velocities of its constituents toward and away from the Earth. Light from the Sun and other objects is sometimes polarized, and studies of such polarization can tell about the magnetic fields present or about scattering processes. See also Astronomical spectroscopy; Polarimetry.

''The expansive definition of a telescope includes'' anything used in astronomy to observe the sky. Several neutrino telescopes have been used to detect neutrinos from the Sun and, in one instance, from a supernova. The pace of observation of secondary cosmic rays as well as the few primary cosmic rays that reach the Earth is increasing. A pair of interferometers are being built on Earth to attempt direct detection of such gravitational waves, which should result from such distant events as the merger of two neutron stars. See also Cosmic rays; Neutrino; Solar neutrinos.

''Theoretical calculations of the nature of'' astronomical objects or processes are known as theoretical astrophysics. The availability of supercomputers, powerful and fast computers capable of handling large amounts of data, has led to three-dimensional simulations of, for example, the formation of large-scale structure in the early universe. Models of the oscillations detectable on the Sun's surface through long-time-series observations are used to improve understanding of the solar interior, a process known as helioseismology. See also Helioseismology; Simulation; Supercomputer; Universe.

''Laboratory astrophysics involves'' the measurement of basic parameters that are used in calculations of physical or chemical processes relevant to astronomy, such as cross sections of atomic and molecular collisional excitation and ionization. See also Molecular structure and spectra.

Source: http://www.answers.com/
|width:750px;{{floatleft{<<tiddler NumericalIndex>>}}}{{floatright{<<tiddler NextTiddler with: [[Anthropology]]  'previous'>> @@color:#C06;''&laquo; 4 &raquo;'' @@  <<tiddler NextTiddler with: [[TheElements]]  'next'>>}}}|
config.messages.backstage = {
	open: {text: " ",tooltip: "Open the backstage tools." },
	close: {text: " ", tooltip: "Close the backstage area"},
	prompt: " ",
decal: {
		edit: {text: "edit", tooltip: "Edit the tiddler '%0'"}
}
};
/***
!!!<<gradient horiz #fc3 #fff >><<tiddler RefreshStyles>>&nbsp;BackstageCSS>>/%==================================================%/
***/



#backstageArea {background-color:#00b;}
#backstageArea a {background-color:#0cc;color:#c06; border:none;}
#backstageArea a:hover {background:#fff; color:#f00; }
#backstageArea a.backstageSelTab {background:#fff; color:#000;}
#backstageButton {background:transparent; }
#backstageButton a {background:transparent; color:#c06; border:none;}
#backstageButton a:hover {background:#fff;color:#f00; border:none;}
#backstagePanel {background:#abf; color:#000; border-color:#fcf ;width:50em;}
#backstagePanel a {color:#00f;}
#backstagePanel a:hover {background:#eee;color:#f00;  border:#f00 solid 1px;}
.backstagePanelFooter .button {border:none; color:#fcf ;}
.backstagePanelFooter .button:hover {color:#0f0;}


#backstageCloak {background:[[ColorPalette::Foreground]]; opacity:0.5; filter:'alpha(opacity:50)';}
#backstageArea { width:640px;display:none; position:relative; overflow: hidden; z-index:150; padding:0.2em 0.5em 0.2em 0.5em;margin-left:auto;margin-right:auto;}

#backstageToolbar {position:relative; width:60%;margin-left:0;margin-right:auto;}
#backstageButton {display:none; position:absolute; z-index:175; top:0em; right:16em; padding:0.1em 0.5em 0.2em 0.5em;}

#backstageArea a {font-weight:normal; margin-left:0.5em; padding:0.2em 0.5em 0.2em 0.5em;}

#backstage {position:relative; width:100%;}

#backstagePanel {display:none; z-index:100; position:absolute; margin:0em 3em 0em 3em; padding:1em 1em 1em 1em;}
.backstagePanelFooter {padding-top:0.2em; float:right;}
.backstagePanelFooter a {padding:0.2em 0.4em 0.2em 0.4em;}
#backstageCloak {display:none; z-index:50; position:absolute; width:100%; height:100px;}

.contentWrapper {margin-top:0em;
}



.popup {position: absolute;  z-index:0; font-size:.9em; padding:0; list-style-type: decimal; margin:-1.0em;}

!!!BackstageCSSOrig


#backstageArea {background-color:#00b;}
#backstageArea a {background-color:#abf;color:#fff; border:none;}
#backstageArea a:hover {background:#fff; color:#f00; }
#backstageArea a.backstageSelTab {background:#fff; color:#000;}
#backstageButton {background:transparent; }
#backstageButton a {background:transparent; color:#fff; border:none;}
#backstageButton a:hover {background:#fff;color:#f00; border:none;}
#backstagePanel {background:#abf; color:#000; border-color:#fcf ;width:50em;}
#backstagePanel a {color:#00f;}
#backstagePanel a:hover {background:#eee;color:#f00;  border:#f00 solid 1px;}
.backstagePanelFooter .button {border:none; color:#fcf ;}
.backstagePanelFooter .button:hover {color:#0f0;}


#backstageCloak {background:[[ColorPalette::Foreground]]; opacity:0.5; filter:'alpha(opacity:50)';}

#backstageArea {display:none; position:relative; overflow: hidden; z-index:150; padding:0.2em 0.5em 0.2em 0.5em;}
#backstageToolbar {position:relative;}
#backstageArea a {font-weight:normal; margin-left:0.5em; padding:0.2em 0.5em 0.2em 0.5em;}
#backstageButton {display:none; position:absolute; z-index:175; top:0em; right:0em; padding:0.2em 0.5em 0.2em 0.5em;}
#backstage {position:relative; width:100%;}
#backstagePanel {display:none; z-index:100; position:absolute; margin:0em 3em 0em 3em; padding:1em 1em 1em 1em;}
.backstagePanelFooter {padding-top:0.2em; float:right;}
.backstagePanelFooter a {padding:0.2em 0.4em 0.2em 0.4em;}
#backstageCloak {display:none; z-index:50; position:absolute; width:100%; height:100px;}

.contentWrapper{
margin-top:0em;
}



.popup {position: absolute;  z-index:0; font-size:.9em; padding:0; list-style-type: decimal; margin:-1.0em;}

config.tasks.sidebaroptions = {
	text: "SideBarOptions",
	tooltip: "A custom backstage tab",
	content: "|width:30em;<<tiddler SideBarOptions>><<tiddler Options>><<tiddler SideBarTabs>>|"
};
config.backstageTasks.push("sidebaroptions");
/***
!!!<<gradient horiz #fc3 #fff >><<tiddler RefreshStyles>>&nbsp;ButtonStyle>>/%==================================================%/
***/


input.btn{
   color:#008;
   font-family:Trebuchet MS,aerial,helvetica,sans-serif;
   font-size:85%;
   font-weight:normal;
   background-color:#fcf;
   border:1px solid;
   border-top-color:#00f;
   border-left-color:#00f;
   border-right-color:#00f;
   border-bottom-color:#00f;}


input.btnhov{
   color:#f00;
   border-top-color:#c06;
   border-left-color:#c06;
   border-right-color:#c06;
   border-bottom-color:#c06;}
/***
!!!<<gradient horiz #fc3 #fff >><<tiddler RefreshStyles>>&nbsp;CenterBoxCSS>>/%==================================================%/
***/

/* Layout Stylesheet */ 

#logo {
 margin: 0; 
 text-align: center
 }

#bar-top {
 width: 100%; 
 height: 30px; 
 background: #c0c0c0;
 color: #333333;
 border: solid #000000;
 border-width: 2px 0; 
 margin: 0;
}

#bar-bottom {
 width: 100%; 
 height: 30px;
 position:relative; 
 background: #c0c0c0; 
 color: #333333;
 border: solid #000000; 
 border-width: 2px 0;
 }

#content { 
 height: 350px; 
 width: 100%; 
 position:relative;
 border: solid #000000; 
 border-width: 0px 0px; 
 background: #ffffff;
 color: #333333;
 overflow: auto;
 margin:0 0% 0 0;
 }

/* Presentation Stylesheet */ 
 
p {
 margin:0;
 padding:10px 20px 0px 20px;
 text-align:left;
 }

p:first-letter {
 font-size: 80%; 
 font-weight: bold;
 color:blue;
 }
 
h4 {
 margin:0; 
 padding: 5px 0;
 }

pre {
 text-align:left;
 margin:0;
 padding:20px 0;
 }
<html><hide linebreaks>
<div id="logo" align="center"><<tiddler ElectricBlue>></div>
<div id="bar-top" align="center"><<tiddler SlantedMenu>></div>
<div id="content"><<tiddler MainContent>>
<div align="center" style="color:red;">Ver 2.4</div>

</div>
<div id="bar-bottom"></div>
<div id="copy"><<tiddler contentFooter>></div>
</html>
<script label="$2">
	var tiddler=story.findContainingTiddler(place);
	story.displayTiddler(tiddler,"$1");
	story.closeTiddler(tiddler.id.substr(7)); // close self
	return false;
</script>
/***
|Name|ConfirmSavePlugin|
|Source|http://www.TiddlyTools.com/#ConfirmSavePlugin|
|Documentation|http://www.TiddlyTools.com/#ConfirmSavePlugin|
|Version|1.1.0|
|Author|Eric Shulman - ELS Design Studios|
|License|http://www.TiddlyTools.com/#LegalStatements <br>and [[Creative Commons Attribution-ShareAlike 2.5 License|http://creativecommons.org/licenses/by-sa/2.5/]]|
|~CoreVersion|2.1|
|Type|plugin|
|Requires||
|Overrides|window.saveChanges()|
|Description|if tiddlers are being edited, or there are no unsaved changes, ask before saving|
When <<saveChanges>> command link is clicked, if there are tiddlers still being edited or there are no changes unsaved changes, then ask for confirmation before saving the document to the file.
!!!!!Configuration
<<<
:
<<option chkConfirmSaveIfEditing>> confirm saving if tiddlers are still being edited
<<option chkConfirmSaveIfNoChanges>> confirm saving if there are no unsaved tiddler changes
<<<
!!!!!Revisions
<<<
2008.03.15 [1.1.0] added option settings and check for 'no unsaved changes'
2008.03.15 [1.0.0] Initial Release.
<<<
!!!!!Code
***/
//{{{
version.extensions.ConfirmSave= {major: 1, minor: 1, revision: 0, date: new Date(2008,3,15)};
//}}}
//{{{
if (config.options.chkConfirmSaveIfEditing==undefined) config.options.chkConfirmSaveIfEditing=true;
if (config.options.chkConfirmSaveIfNoChanges==undefined) config.options.chkConfirmSaveIfNoChanges=true;
//}}}
//{{{
if (config.macros.saveChanges.confirmSave_onClick==undefined) 
	config.macros.saveChanges.confirmSave_onClick=config.macros.saveChanges.onClick
config.macros.saveChanges.onClick=function(e) {
	var msg="";
	var editing=[];	// check for tiddlers being edited
	if (config.options.chkConfirmSaveIfEditing)
		story.forEachTiddler(function(tid,elem) { if (elem.getAttribute("dirty")=="true") editing.push(tid);});
	if (editing.length) {
		msg+="There "+(editing.length>1?"are ":"is ")+editing.length;
		msg+=" tiddler"+(editing.length>1?"s":"")+" currently being edited:\n\n";
		msg+=editing.join(", ")+"\n\n";
		msg+="Changes to "+(editing.length>1?"these tiddlers":"this tiddler");
		msg+=" cannot be saved until editing is completed.";
	} else if (config.options.chkConfirmSaveIfNoChanges && !store.isDirty())
		msg+="There are no unsaved tiddler changes";
	if (msg.length) {
		msg+="\n\nPress OK to save the document anyway.";
		if (!confirm(msg)) return false;
	}
	return config.macros.saveChanges.confirmSave_onClick.apply(this,arguments); // let core save
}
//}}}
{{textcenter{
@@color:#c06;''Sole Agency in Australia & New Zealand''@@
''Augejar Trade Pty Ltd''
Tel: (02) 9789-1132
Int'l: +612-9789-1132
http://www.herbalmagics.com
email: orders@herbalmagics.com
}}}




@@color:#c06;
{{textcenter{
!!!Two Column Fixed Width with Header & FooterVer 2.3
}}}
{{textleftM{
This template is actually a replica of one of my other websites which uses tables for the very same layout. I wanted to see could it be done and it seems to work perfect.


This is basically set up as follows: there is a main outer div which centers the page and is a fixed width. There are 4 main div's within this outer div; header (#hdr), bar (#bar), body (#body) and footer (#ftr). The body div holds 2 more divs, the left div which is for navigation and the right div which is for our content.

One drawback we see immediatly is getting equal heights for the left navigation div and right content div. The work around I use for this is: whichever is likely to be the shortest (in height) div, probably the left navigation div, set the background of the #body div the same as this, also the border separating the two divs - that should be on the right content div.

Another problem discovered recently was that when you use the float property it can cause the floated divs to "jump out" of their container block. The workaround I found for this was simply to specify a height for the container div.

This template has been tested in:

    * Mozilla 1.5b & Firebird 0.6.1
    * Internet Explorer 6
    * Netscape 7.1
    * Opera 7.11

Changes in this version:

   1. removed box hack
   2. added margin:auto; to #outer div for centering.
   3. big problem in moz/ns was the bodyblock div,with both the left col and content col floated they were "lifted" out of the bodyblock with then collapsed. IE and Opera were ok. removed float left from content div, added align="right" to the html of the bodyblock and then text-align:left; to the content div to bring the content back. it's ugly but works. using text-align:right; instead of align="right" will not work in moz/ns


Filler Content

Dáig alta in mac sin i tig a athar & a mathar icon airdig i m-Maig Muirthemne, ocus adfeta dó scéla na maccaemi i n-Emain. Dáig is amlaid domeill Conchobar in rigi, o ro gab rígi in rí, .i. mar atraig fóchetóir césta & cangni in choicid d'ordugud. In lá do raind i trí asa athlil: cetna trian de fóchetóir ic fegad na maccaem ic imbirt chless cluchi & immanae, in trian tanaise dond ló ic imbirt brandub & fidchell, & in trian dedenach ic tochathim bíd & lenna, con-dageib cotlud for cách, aes cíuil & airfitid dia thalgud fri sodain. Ciataim ane ar longais riam reme dabiur bréthir, ar Fergus, na fuil in hErind no i n-Albain óclach macsamla Conchobair.

Ocus adfeta don mac sin scéla na maceáem & na maccraide i n-Emain, & radis in mac bec ria mathair ar co n-digsed dá chluchi do chluchemaig na Emna. Romoch duitsiu sain a meic bic, ar a mathair, co n-deoch anruth do anrothaib. Ulad lett no choimthecht ecin do chaimthechtaib Conchobair, do chor th' aesma & t'imdegla for in maccraid. Cían lim-sa di sodain a mathair, ar in mac bec, & ni biu-sa oca idnaide acht tecoisc-siu dam-sa cia airm itá Emain. Is cían uait, ar a mathair, airm in-das-fil. Sliab Fúait etrut & Emain. Dobér-sa ardmes furri amne, ar esium.@@
}}}
/***
|''Name:''|CryptoFunctionsPlugin|
|''Description:''|Support for cryptographic functions|
***/
//{{{
if(!version.extensions.CryptoFunctionsPlugin) {
version.extensions.CryptoFunctionsPlugin = {installed:true};

//--
//-- Crypto functions and associated conversion routines
//--

// Crypto "namespace"
function Crypto() {}

// Convert a string to an array of big-endian 32-bit words
Crypto.strToBe32s = function(str)
{
	var be = Array();
	var len = Math.floor(str.length/4);
	var i, j;
	for(i=0, j=0; i<len; i++, j+=4) {
		be[i] = ((str.charCodeAt(j)&0xff) << 24)|((str.charCodeAt(j+1)&0xff) << 16)|((str.charCodeAt(j+2)&0xff) << 8)|(str.charCodeAt(j+3)&0xff);
	}
	while (j<str.length) {
		be[j>>2] |= (str.charCodeAt(j)&0xff)<<(24-(j*8)%32);
		j++;
	}
	return be;
};

// Convert an array of big-endian 32-bit words to a string
Crypto.be32sToStr = function(be)
{
	var str = "";
	for(var i=0;i<be.length*32;i+=8)
		str += String.fromCharCode((be[i>>5]>>>(24-i%32)) & 0xff);
	return str;
};

// Convert an array of big-endian 32-bit words to a hex string
Crypto.be32sToHex = function(be)
{
	var hex = "0123456789ABCDEF";
	var str = "";
	for(var i=0;i<be.length*4;i++)
		str += hex.charAt((be[i>>2]>>((3-i%4)*8+4))&0xF) + hex.charAt((be[i>>2]>>((3-i%4)*8))&0xF);
	return str;
};

// Return, in hex, the SHA-1 hash of a string
Crypto.hexSha1Str = function(str)
{
	return Crypto.be32sToHex(Crypto.sha1Str(str));
};

// Return the SHA-1 hash of a string
Crypto.sha1Str = function(str)
{
	return Crypto.sha1(Crypto.strToBe32s(str),str.length);
};

// Calculate the SHA-1 hash of an array of blen bytes of big-endian 32-bit words
Crypto.sha1 = function(x,blen)
{
	// Add 32-bit integers, wrapping at 32 bits
	add32 = function(a,b)
	{
		var lsw = (a&0xFFFF)+(b&0xFFFF);
		var msw = (a>>16)+(b>>16)+(lsw>>16);
		return (msw<<16)|(lsw&0xFFFF);
	};
	// Add five 32-bit integers, wrapping at 32 bits
	add32x5 = function(a,b,c,d,e)
	{
		var lsw = (a&0xFFFF)+(b&0xFFFF)+(c&0xFFFF)+(d&0xFFFF)+(e&0xFFFF);
		var msw = (a>>16)+(b>>16)+(c>>16)+(d>>16)+(e>>16)+(lsw>>16);
		return (msw<<16)|(lsw&0xFFFF);
	};
	// Bitwise rotate left a 32-bit integer by 1 bit
	rol32 = function(n)
	{
		return (n>>>31)|(n<<1);
	};

	var len = blen*8;
	// Append padding so length in bits is 448 mod 512
	x[len>>5] |= 0x80 << (24-len%32);
	// Append length
	x[((len+64>>9)<<4)+15] = len;
	var w = Array(80);

	var k1 = 0x5A827999;
	var k2 = 0x6ED9EBA1;
	var k3 = 0x8F1BBCDC;
	var k4 = 0xCA62C1D6;

	var h0 = 0x67452301;
	var h1 = 0xEFCDAB89;
	var h2 = 0x98BADCFE;
	var h3 = 0x10325476;
	var h4 = 0xC3D2E1F0;

	for(var i=0;i<x.length;i+=16) {
		var j,t;
		var a = h0;
		var b = h1;
		var c = h2;
		var d = h3;
		var e = h4;
		for(j = 0;j<16;j++) {
			w[j] = x[i+j];
			t = add32x5(e,(a>>>27)|(a<<5),d^(b&(c^d)),w[j],k1);
			e=d; d=c; c=(b>>>2)|(b<<30); b=a; a = t;
		}
		for(j=16;j<20;j++) {
			w[j] = rol32(w[j-3]^w[j-8]^w[j-14]^w[j-16]);
			t = add32x5(e,(a>>>27)|(a<<5),d^(b&(c^d)),w[j],k1);
			e=d; d=c; c=(b>>>2)|(b<<30); b=a; a = t;
		}
		for(j=20;j<40;j++) {
			w[j] = rol32(w[j-3]^w[j-8]^w[j-14]^w[j-16]);
			t = add32x5(e,(a>>>27)|(a<<5),b^c^d,w[j],k2);
			e=d; d=c; c=(b>>>2)|(b<<30); b=a; a = t;
		}
		for(j=40;j<60;j++) {
			w[j] = rol32(w[j-3]^w[j-8]^w[j-14]^w[j-16]);
			t = add32x5(e,(a>>>27)|(a<<5),(b&c)|(d&(b|c)),w[j],k3);
			e=d; d=c; c=(b>>>2)|(b<<30); b=a; a = t;
		}
		for(j=60;j<80;j++) {
			w[j] = rol32(w[j-3]^w[j-8]^w[j-14]^w[j-16]);
			t = add32x5(e,(a>>>27)|(a<<5),b^c^d,w[j],k4);
			e=d; d=c; c=(b>>>2)|(b<<30); b=a; a = t;
		}

		h0 = add32(h0,a);
		h1 = add32(h1,b);
		h2 = add32(h2,c);
		h3 = add32(h3,d);
		h4 = add32(h4,e);
	}
	return Array(h0,h1,h2,h3,h4);
};


}
//}}}
/***
!!!<<gradient horiz #fc3 #fff >><<tiddler RefreshStyles>>&nbsp;CustomCSS>>/%==================================================%/
***/

/***CustomCSS is a style sheet that contains the "custom class" CSS to customize special features in TW Help.  It is placed in StyleSheet as a [[NestedStyleSheet|NestedStyleSheets]] and is an essential component.***/

/***There may be extra nested stylesheets at the end of this stylesheet***/

/***
!!!<<gradient horiz #FF8888 #ffffff >>&nbsp;~CustomTable>>/%==================================================%/
***/

/*{{{*/



.scroll{overflow: scroll}
.scrollauto {overflow: auto}

.nowrap {white-space:nowrap;}
.wrap{wrap;}

.liststyleNone{list-style:none;}

.doubleborder {
    border: 4px double #099;
    margin: 8px;
}

.tableright  table {border:0 !important;td.vertical-align:top;margin-left:auto ; margin-right:0  auto !important; text-align:left; padding:0px;}


.tablecenter  table { border:0 !important;td.vertical-align:top;margin-left: auto; margin-right: auto; text-align:left; padding:0px;}
.tablecenterpad17 table { td.vertical-align:top;margin-left: auto; margin-right: auto; text-align:
left; padding:17px;}

.borderless, .borderless table, .borderless td, .borderless tr, .borderless th, .borderless tbody
	{ border:0 !important; margin:0 !important; padding:3px !important; td.vertical-align:top !important;margin-left: auto !important; margin-right: auto !important;}

.borderless5px, .borderless5px table, .borderless5px td, .borderless5px tr, .borderless5px th, .borderless5px tbody { border:0 !important; margin:0 !important; padding:5px !important; td.vertical-align:top !important;margin-left: auto !important; margin-right: auto !important;}

.borderlessL, .borderlessL table, .borderlessL td, .borderlessL tr, .borderlessL th, .borderlessL tbody
	{ border:0 !important; margin:0 !important; padding:7px !important; td.vertical-align:top !important;margin-left: 0 !important; margin-right: auto !important;}

.borderlessL0, .borderlessL 0table, .borderlessL0 td, .borderlessL0 tr, .borderlessL0 th, .borderlessL0 tbody
	{ border:0 !important; margin:0 !important; padding:0px !important; td.vertical-align:top !important;margin-left: 0 !important; margin-right: auto !important;}

.borderlessR, .borderlessR table, .borderlessR td, .borderlessR tr, .borderlessR th, .borderlessR tbody
	{ border:0 !important; margin:0 !important; padding:7px !important; td.vertical-align:top !important;margin-left: auto !important; margin-right: 0 !important;}


.viewer tr.oddRow { background-color: #eaeaea;}
.viewer tr.evenRow { background-color:#fff; } 

/%row code for html%/
tr.d0 td {background-color: #ccc; color: black;}
tr.d1 td {background-color: #eaeaea; color: black;}


/*}}}*/
/***
!!!<<gradient horiz #FF8888 #ffffff >>&nbsp;~CustomText>>/%==================================================%/
***/
/*{{{*/

.textleft { display:block;text-align:left; }
.textright { display:block;text-align:right; }
.textcenter { display:block;text-align:center; }
.textjustify { display:block;text-align:justify; }
.textindent { display:block;margin:0;padding:0;border:0;margin-left:2em; }

.wrap { white-space:normal; }
.nowrap	{ white-space:nowrap; }

.headingcolor{color:#FFF;background:#ff8888;}
.wrappingClass{padding: 0px 0.5em 0px 0.5em;color: #FFF; background: #06f;}



.firstletter{
display:block;
float:left;
width:1.0em;
font-size:400%;
font-family:times,courier;
line-height:80%;
}

.firstletterK{
display:block;
float:left;
width:0.75em;
font-size:400%;
font-family:times,courier;
line-height:80%;
}

.firstletterT{
display:block;
float:left;
width:0.65em;
font-size:300%;
font-family:times,courier;
line-height:95%;
}

.headline{
color:#c06;
font-size:180%;
font-family:times,arial;
line-height:60%;
}



/*}}}*/
/***
!!!<<gradient horiz #FF8888 #ffffff >>&nbsp;Layout>>/%==================================================%/
***/
/*{{{*/

.twocolumns { display:block; -moz-column-count:2; -moz-column-gap:1em; -moz-column-
width:50%;}
.threecolumns { display:block; -moz-column-count:3; -moz-column-gap:1em; -moz-column-
width:33%}
.fourcolumns { display:block; -moz-column-count:4; -moz-column-gap:1em; -moz-column-
width:25%}



.floatboxright {
    float: right;
    width: 20em;
    border: solid 1px;
    padding:3px;
    background-color:#fcf;
    /* whatever other styling you want.. */
} 


.floatboxleft {
    float: left;
    width: 20em;
    border: solid 1px;
    padding:3px;
    background-color:#fcf;
    /* whatever other styling you want.. */
} 

.floatleft{ float:left; }
.floatright{ float:right; }

.moveovermainmenu{margin-left:7px;}
.textleftpad5{text-align:left;padding: 0px 5px 0px 5px;}
.textindent25 {text-indent:25px;}
.smallform{ white-space:nowrap; }

.imgfloatright{display:block;float:right;padding:1em;}
.imgfloatleft{display:block;float:left;padding:1em;}
.imgfloatcenter{display:block;margin-left: auto;margin-right: auto;padding:0.3em;}

.alt { background-color:#abf; }
.fdfbackground {background:#fdf;} 

/*}}}*/
/***
!!!<<gradient horiz #FF8888 #ffffff >>&nbsp;Links>>/%==================================================%/
***/
/*{{{*/

.boldLink a {font-weight:bold;}
.unboldLink a {font-weight:normal;}

.bigLink a { font-size:10pt;font-weight:bold;}
.whiteLink a { color: #fff;font-weight:normal; } 
.twLink a { color: #090;font-weight:normal; }
.locLink a { color: #f6f;font-weight:normal; }
.remLink a { color: #c90;font-weight:normal; } 
.blueLink a {color:#00f;}
.grayLink a {color:#ccc;}

.wrappingLinks{color: #000; background: #B3FFB3;}
.wrappingLinksAlt{color: #000; background: #C0FFFF;}

/*}}}*/
/***
!!!<<gradient horiz #FF8888 #ffffff >>Tiddler Specific Custom CSS>>/%=================================================%/
***/
/*{{{*/

{{{
#tiddlerNew\000020Tiddler a {
	color: #f00;
}
}}}

#tiddlerTabTimeline {list-style:none;}

#tiddlerScience .firstletter{
float:left;
width:0.75em;
margin-right:0.2em;
font-size:400%;
font-family:times,arial;
line-height:70%;
}


#tiddlerEditTemplate .button {color: #000;text-decoration:none;}


#tiddlerTWHelp-SearchResults .viewer {
overflow: auto;
}

#tiddlerTranslate .viewer {
overflow: auto;
}

#tiddlerSlantedMenu {
border-top: 1px solid #fcf:
}

#tiddlerSideBarOptions {
color:#ffc;
background: transparent;
}

#tiddlerNewWelcome .viewer .tabContents {
background: transparent;
border-top: 1px solid #999;
border-right: 0px solid #999;
border-bottom: 0px solid #999;
border-left: 0px solid #999;
}

#tiddlerTWHelpSiteLinks ol { list-style-type: decimal }

#tiddlerIndex .title {
visibility: hidden; 
}


#tiddlerBorderlessIframe .viewer {
background:#fff;
}



#mainMenu a:hover{
	background: #FFF;
	color: #F00;
}

#tiddlerMargin_Properties.viewer th{
        border: 1px solid #000;
	padding: 0px;
        vertical-align:top;
}

#tiddlerFormattingPageIntro .viewer th, .viewer td, .viewer tr,.viewer caption{
        border: 1px solid #F6F;
	padding: 0px;
        vertical-align:top;
}

#tiddlerTWHelp-SearchResults .viewer table, .viewer td{
border: 1px solid #F6F;
padding-left: 5px;
padding-right: 5px;
vertical-align:top;
td.vertical-align:top;
margin-left: auto;
margin-right: auto;
}

#tiddlerTables .viewer td.even{
background:#ccc;
}

#tiddlerTWHelp-SearchResults .viewer a {
color:#04b;
text-decoration:none;

}


#tiddlerAlpha .viewer tr.oddRow { background-color: #abf;}
#tiddlerAlpha .viewer tr.evenRow { background-color:#eaeaea; } 

#tiddlerNewWelcome .viewer tr.oddRow { background-color: #eaeaea;}
#tiddlerNewWelcome .viewer tr.evenRow { background-color:#fff; } 

#tiddlerImages img {
    border: 5px double #999;
    margin: 4px;

} 

#searchBar {
	float: right;
	font-size: 0.9em;
        padding-right: 1.5em;
        padding-bottom: 0em;
}

#searchBar .button {
	padding-right: 0.5em;
	border: none;
}

.gotoBar {
	float: right;
	font-size: 0.9em;
        padding-right: 1.5em;
        padding-top: 1.0em;
}


/*}}}*/
/***
!!!<<gradient horiz #FF8888 #ffffff >>Footer >>/%==================================================%/
***/
/*{{{*/

#ContentFooter {
  text-align: center;
 clear: both;
 color:#ccc;
 background: transparent;
 padding: 1em 2em;
 font-weight:normal;
}


#ContentFooter a {
 color:#ccc;
}

/*}}}*/
/***
!!!<<gradient horiz #090 #fff>>&nbsp;@@color:#fff;End@@>>/%==================================================%/
***/
/*{{{*/

function onClickDefaultHome(e) {
story.closeAllTiddlers();
config.options.txtDefaultTiddlers = "";
saveOptionCookie('txtDefaultTiddlers');
var start = store.getTiddlerText("EditingTiddlers");
if(start)
story.displayTiddlers(null,start.readBracketedList());
}
config.macros["defaultHome"] = {label: "Home", prompt: "Show the default tiddlers", title: "Home"};
config.macros.defaultHome.handler = function(place) {
createTiddlyButton(place,this.label,this.prompt,onClickDefaultHome);
}
[[ForCouples]]
[[ForMen]]
[[ForWomen]]
[[Prices]]
[[Instructions]]
[[ContactUs]]





/***
|''Name:''|DeprecatedFunctionsPlugin|
|''Description:''|Support for deprecated functions removed from core|
***/
//{{{
if(!version.extensions.DeprecatedFunctionsPlugin) {
version.extensions.DeprecatedFunctionsPlugin = {installed:true};

//--
//-- Deprecated code
//--

// @Deprecated: Use createElementAndWikify and this.termRegExp instead
config.formatterHelpers.charFormatHelper = function(w)
{
	w.subWikify(createTiddlyElement(w.output,this.element),this.terminator);
};

// @Deprecated: Use enclosedTextHelper and this.lookaheadRegExp instead
config.formatterHelpers.monospacedByLineHelper = function(w)
{
	var lookaheadRegExp = new RegExp(this.lookahead,"mg");
	lookaheadRegExp.lastIndex = w.matchStart;
	var lookaheadMatch = lookaheadRegExp.exec(w.source);
	if(lookaheadMatch && lookaheadMatch.index == w.matchStart) {
		var text = lookaheadMatch[1];
		if(config.browser.isIE)
			text = text.replace(/\n/g,"\r");
		createTiddlyElement(w.output,"pre",null,null,text);
		w.nextMatch = lookaheadRegExp.lastIndex;
	}
};

// @Deprecated: Use <br> or <br /> instead of <<br>>
config.macros.br = {};
config.macros.br.handler = function(place)
{
	createTiddlyElement(place,"br");
};

// Find an entry in an array. Returns the array index or null
// @Deprecated: Use indexOf instead
Array.prototype.find = function(item)
{
	var i = this.indexOf(item);
	return i == -1 ? null : i;
};

// Load a tiddler from an HTML DIV. The caller should make sure to later call Tiddler.changed()
// @Deprecated: Use store.getLoader().internalizeTiddler instead
Tiddler.prototype.loadFromDiv = function(divRef,title)
{
	return store.getLoader().internalizeTiddler(store,this,title,divRef);
};

// Format the text for storage in an HTML DIV
// @Deprecated Use store.getSaver().externalizeTiddler instead.
Tiddler.prototype.saveToDiv = function()
{
	return store.getSaver().externalizeTiddler(store,this);
};

// @Deprecated: Use store.allTiddlersAsHtml() instead
function allTiddlersAsHtml()
{
	return store.allTiddlersAsHtml();
}

// @Deprecated: Use refreshPageTemplate instead
function applyPageTemplate(title)
{
	refreshPageTemplate(title);
}

// @Deprecated: Use story.displayTiddlers instead
function displayTiddlers(srcElement,titles,template,unused1,unused2,animate,unused3)
{
	story.displayTiddlers(srcElement,titles,template,animate);
}

// @Deprecated: Use story.displayTiddler instead
function displayTiddler(srcElement,title,template,unused1,unused2,animate,unused3)
{
	story.displayTiddler(srcElement,title,template,animate);
}

// @Deprecated: Use functions on right hand side directly instead
var createTiddlerPopup = Popup.create;
var scrollToTiddlerPopup = Popup.show;
var hideTiddlerPopup = Popup.remove;

// @Deprecated: Use right hand side directly instead
var regexpBackSlashEn = new RegExp("\\\\n","mg");
var regexpBackSlash = new RegExp("\\\\","mg");
var regexpBackSlashEss = new RegExp("\\\\s","mg");
var regexpNewLine = new RegExp("\n","mg");
var regexpCarriageReturn = new RegExp("\r","mg");

}
//}}}
/***
|!''Name:''|!''E''asily ''A''daptable ''S''ource ''E''ditor|
|''Description:''|this framework allows you to easily create commands that work on the current tiddler text selection in edit mode|
|''Version:''|0.1.0|
|''Date:''|13/01/2007|
|''Source:''|http://yann.perrin.googlepages.com/twkd.html#E.A.S.E|
|''Author:''|[[Yann Perrin|YannPerrin]]|
|''License:''|[[BSD open source license]]|
|''~CoreVersion:''|2.x|
|''Browser:''|Firefox 1.0.4+; Firefox 1.5; InternetExplorer 6.0|
***/
////Messages Definition
//{{{
config.messages.Ease = {
noselection:"nothing selected",
asktitle:"enter the new tiddler title",
exists:" already exists, please enter another title",
askForTagsLabel:"enter the new tiddler tags",
tiddlercreated:" tiddler created"
}
//}}}
////
//{{{
if (!window.TWkd) window.TWkd={context:{}};
if (!TWkd.Ease)
 TWkd.Ease = function (text,tooltip){
 this.text = text;
 this.tooltip = tooltip;
 this.modes = [];
 this.addMode = function(modeDefinition) {this.modes.push(modeDefinition);};
 this.handler = function(event,src,title) {
 TWkd.context.command = this;
 TWkd.context.selection=this.getSelection(title);
 if (this.modes.length==1) {
 this.modes[0].operation();
 }
 else {
 var popup = Popup.create(src);
 if(popup) {
 for (var i=0; i<this.modes.length; i++) {
 createTiddlyButton(createTiddlyElement(popup,"li"), this.modes[i].name, this.modes[i].tooltip, this.OperateFromButton, null, 'id'+i, null);
 }
 Popup.show(popup,false);
 event.cancelBubble = true;
 if (event.stopPropagation) event.stopPropagation();
 return false;
 }
 }
 };
 };

TWkd.Ease.prototype.OperateFromButton = function(e){
 var commandMode=this.getAttribute('Id').replace('id','');
 TWkd.context.command.modes[commandMode].operation();
};

TWkd.Ease.prototype.getTiddlerEditField = function(title,field){
 var tiddler = document.getElementById(story.idPrefix + title);
 if(tiddler != null){
 var children = tiddler.getElementsByTagName("*")
 var e = null;
 for (var t=0; t<children.length; t++){
 var c = children[t];
 if(c.tagName.toLowerCase() == "input" || c.tagName.toLowerCase() == "textarea"){
 if(!e) {e = c;}
 if(c.getAttribute("edit") == field){e = c;}
 }
 }
 if(e){return e;}
 }
} // closes getTiddlerEditField function definition
 
TWkd.Ease.prototype.getSelection = function(title,quiet) {
 var tiddlerTextArea = this.getTiddlerEditField(title,"text");
 var result = {};
 if (document.selection != null && tiddlerTextArea.selectionStart == null) {
 tiddlerTextArea.focus();
 var range = document.selection.createRange();
 var bookmark = range.getBookmark();
 var contents = tiddlerTextArea.value;
 var originalContents = contents;
 var marker = "##SELECTION_MARKER_" + Math.random() + "##";
 while(contents.indexOf(marker) != -1) {
 marker = "##SELECTION_MARKER_" + Math.random() + "##";
 }
 var selection = range.text;
 range.text = marker + range.text + marker;
 contents = tiddlerTextArea.value;
 result.start = contents.indexOf(marker);
 contents = contents.replace(marker, "");
 result.end = contents.indexOf(marker);
 tiddlerTextArea.value = originalContents;
 range.moveToBookmark(bookmark);
 range.select();
 }
 else {
 result.start=tiddlerTextArea.selectionStart;
 result.end=tiddlerTextArea.selectionEnd;
 }
 result.content=tiddlerTextArea.value.substring(result.start,result.end);
 result.source=title;
 if (!result.content&&!quiet) displayMessage(config.messages.Ease.noselection);
 return(result);
}//closes getSelection function definition

// replace selection or insert new content
TWkd.Ease.prototype.putInPlace=function(content,workplace) {
 var tiddlerText = this.getTiddlerEditField(workplace.source,"text");
 tiddlerText.value = tiddlerText.value.substring(0,workplace.start)+content+tiddlerText.value.substring(workplace.end);
}

// asking for title
TWkd.Ease.prototype.askForTitle = function(suggestion) {
 if (!suggestion)
 suggestion = "";
 var newtitle;
 while (!newtitle||store.tiddlerExists(newtitle))
 {
 if (store.tiddlerExists(newtitle))
 displayMessage(newtitle+config.messages.Ease.exists);
 newtitle = prompt(config.messages.Ease.asktitle,suggestion);
 if (newtitle==null)
 {
 displayMessage(config.messages.Ease.titlecancel);
 return(false);
 }
 }
 return(newtitle);
}//closes askForTitle function definition

// creation of a new tiddler
TWkd.Ease.prototype.newTWkdLibTiddler = function(title,content,from,askForTags){
 var tiddler = new Tiddler();
 tiddler.title = title;
 tiddler.modifier = config.options.txtUserName;
 tiddler.text = content;
 (from) ? tiddler.tags = [from] : tiddler.tags=[];
 if (askForTags)
 tiddler.tags = prompt(config.messages.Ease.askForTagsLabel,'[['+from+']]').readBracketedList();
 store.addTiddler(tiddler);
 //store.notifyAll();
 displayMessage(title+config.messages.Ease.tiddlercreated);
}

if (!TWkd.Mode)
 TWkd.Mode = function (name,tooltip,ask,operation) {
 this.name = name;
 this.tooltip = tooltip;
 this.ask = ask;
 this.operation = operation;
 };
//}}}
<!--{{{-->
<div class='toolbar' macro='toolbar +saveTiddler -cancelTiddler deleteTiddler'></div>
<div class='title' macro='view title'></div>
<div class='editor' macro='edit title'></div>
<div class="editLabel">.</div>
<div class='editor' macro='edit tags'></div><div class='editorFooter'><span macro='message views.editor.tagPrompt'></span><span macro='tagChooser'></span></div>
<div macro='annotations'></div>
<span macro='toolbar format slice'></span> 
<div class='editor' macro='edit text'></div>

<!--}}}-->
<!--{{{-->
<div class='toolbar' macro='toolbar +saveTiddler -cancelTiddler deleteTiddler'></div>
<div class='title' macro='view title'></div>
<div class='editor' macro='edit title'></div>
<div class="editLabel">.</div>
<div class='editor' macro='edit tags'></div><div class='editorFooter><span macro='message views.editor.tagPrompt'></span><span macro='tagChooser'></span></div>
<div macro='annotations'></div>
<div class='editor' macro='edit text'></div>

<!--}}}-->
[[BackstageCSS]]
[[ButtonStyle]]
[[CenterBoxCSS]]
[[CustomCSS]]
[[CustomCSS]]
[[EditingTiddlers]]
[[EditTemplate]]
[[PageCSS]]
[[PageTemplate]]
[[SlantedStyle]]
[[StyleSheet]]
[[StyleSheetTiddlersBar]]
[[ViewTemplate]]
[[WebPageTLCF]]
[[WebStyleSheet]]
<<gradient vert #00c #0ff #008>><br>@@color:#000;font-size:24pt;~ElectricBlue@@<br>@@color:#f00;an experiment in web site design@@>>
 @@color:#C06;''&raquo; &raquo;'' @@ Tabs excluded From Lists
----
<script>
// get all tiddlers tagged with "excludeLists"
var tids=store.getTaggedTiddlers("excludeLists");
// keep only tiddlers *also* tagged with New
var list=[];
for (var t=0; t<tids.length; t++)
   if (tids[t].isTagged("excludeLists")) list.push(tids[t]);
// create output list of tiddler titles, one per line
var out="";
for (var t=0; t<list.length; t++) out+="#[["+list[t].title+"]]\n";
return out;
</script> 
 @@color:#C06;''&raquo; &raquo;'' @@ Tabs excluded from searches.
----
<script>
// get all tiddlers tagged with "excludeSearch"
var tids=store.getTaggedTiddlers("excludeSearch");
// keep only tiddlers *also* tagged with New
var list=[];
for (var t=0; t<tids.length; t++)
   if (tids[t].isTagged("excludeSearch")) list.push(tids[t]);
// create output list of tiddler titles, one per line
var out="";
for (var t=0; t<list.length; t++) out+="#[["+list[t].title+"]]\n";
return out;
</script> 
<br/>
{{textjustify{@@color:#c06;''Plant Viagra Niagara Rejuvenation ~MERIDIAN-MAGIC MASSAGE FLUID''@@
{{imgfloatleft doubleborder{[img[loving_couple.jpg]]
}}}
The human body's blood circulation is affected by space rule of universal certification. Blood flow of bottom of feet is related to all kinds of stimulations, including mechanical and biological stimulations. When the stimulation information transfer to the heart, the sensory system of sensitive heart cavity and wall would radiate corresponding bio-electric impulse simultaneously and pinch alternately, which would strengthen blood-beating function of the heart and stimulate rhythm agitation of the heart. Because of integral movement of central nerve and heart's reflection energy, abundant artery blood input would drive sexual agitation.
{{imgfloatright doubleborder{[img[043-300H.jpg]]}}}<br>

@@color:#c06;''~MERIDIAN-MAGIC MASSAGE FLUID''@@ is based on traditional Chinese medicines meridian theory and modern neurological biology theory, which is derived from dozens of pure natural plant and extracted by modern biological oxidation technology. It has Life Energy Factor ingredient. Under the double effect of massage and natural plant distilled fluid, it can smooth meridian, accelerate Qi and blood circulation, adjust organ's condition, balance Yin and Yang disorder, activate sexual nerve, and improve sexual ability.
<br><br>


----
<html><hide linebreaks><div align="center">''Meridian Magic for Couples''<br>One each Meridian Magic for @@color:#c06;__him and her__@@. $66.00 Postage Paid<br><br>
<form action="https://www.paypal.com/cgi-bin/webscr" method="post">
<input type="hidden" name="cmd" value="_xclick">
<input type="hidden" name="business" value="mmorders@y7mail.com">
<input type="hidden" name="item_name" value="Meridian Magic for Couples (1) for him (1) for her">
<input type="hidden" name="item_number" value="C001">
<input type="hidden" name="amount" value="66.00">
<input type="hidden" name="shipping" value="0.00">
<input type="hidden" name="no_shipping" value="0">
<input type="hidden" name="no_note" value="1">
<input type="hidden" name="currency_code" value="AUD">
<input type="hidden" name="weight" value="1">
<input type="hidden" name="weight_unit" value="kgs">
<input type="hidden" name="lc" value="AU">
<input type="hidden" name="bn" value="PP-BuyNowBF">
<input type="image" src="https://www.paypal.com/en_AU/i/btn/btn_buynowCC_LG.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online.">
<img alt="" border="0" src="https://www.paypal.com/en_AU/i/scr/pixel.gif" width="1" height="1">
</form></div></html>
----

@@color:#c06;''Main Ingredients''@@ Edible alcohol, clove, dodder, Fleeceflower, Common Curculigo Rhizome, Epimedium Herb, etc, natural plant distilled fluid.

@@color:#c06;''Application Range''@@
Improve male and female sexual agitation, and improve quality of sexual life.

@@color:#c06;''Applicable Users''@@
1.Male pathological and mental impotence ED
2.Female asexuality, no orgasm, vagina atrophy
3.ED patients who are forbidden to take viagra or who are ineffective to viagra or western heracles or other products
4.Healthy male and female who want to strengthen sexual ability and desire to improve sexual life quality.

@@color:#c06;''Usage''@@
1.Massage 2~3 minutes nearby vola Yongquan acupuncture point Yongquan acupuncture point is boundary center of 1/3 and 2/3
2.Open the bottle cap, spray the product towards Yongquan acupuncture point. After the skin has dried, repeat spray 7~8 times about 2ml with 2 minutes intermission.
3.Use before sleep, continuous use for 5 days as a course of treatment 10ml 1~3 days would work
4.When below 20c degree, washing feet with 47c degree water, the efficacy would be more distinct
5.If want to become effective soon, only need to spray the product to female and male s sensitive position, 2~3 times, half hour it would work.

@@color:#c06;''Precautions''@@
1.People with heart disease should follow doctor's advice
2.During use the product, do avoid taking bitter cold consumption of yang food
3.External use only
Specification 10 ml
}}}
<html><a
 href="javascript:void(0)"
 onclick="story.closeAllTiddlers();story.displayTiddlers(null,store.getTiddlerText('EditingTiddlers').readBracketedList())"
>Home</a></html> 
<br/>
{{textjustify{@@color:#c06;''Plant Viagra Niagara Rejuvenation ~MERIDIAN-MAGIC MASSAGE FLUID''@@
{{imgfloatleft doubleborder{[img[loving_couple.jpg]]
}}}
The human body's blood circulation is affected by space rule of universal certification. Blood flow of bottom of feet is related to all kinds of stimulations, including mechanical and biological stimulations. When the stimulation information transfer to the heart, the sensory system of sensitive heart cavity and wall would radiate corresponding bio-electric impulse simultaneously and pinch alternately, which would strengthen blood-beating function of the heart and stimulate rhythm agitation of the heart. Because of integral movement of central nerve and heart's reflection energy, abundant artery blood input would drive sexual agitation.
{{imgfloatright doubleborder{[img[043-300H.jpg]]}}}<br>

@@color:#c06;''~MERIDIAN-MAGIC MASSAGE FLUID''@@ is based on traditional Chinese medicines meridian theory and modern neurological biology theory, which is derived from dozens of pure natural plant and extracted by modern biological oxidation technology. It has Life Energy Factor ingredient. Under the double effect of massage and natural plant distilled fluid, it can smooth meridian, accelerate Qi and blood circulation, adjust organ's condition, balance Yin and Yang disorder, activate sexual nerve, and improve sexual ability.
<br><br>


----
<html><hide linebreaks><div align="center">''Meridian Magic Men''<br>One Meridian Magic for @@color:#c06;__him__@@. $33.00 Postage Paid<br><br>
<form action="https://www.paypal.com/cgi-bin/webscr" method="post">
<input type="hidden" name="cmd" value="_xclick">
<input type="hidden" name="business" value="mmorders@y7mail.com">
<input type="hidden" name="item_name" value="Meridian Magic for Men">
<input type="hidden" name="item_number" value="M001">
<input type="hidden" name="amount" value="33.00">
<input type="hidden" name="no_shipping" value="0">
<input type="hidden" name="no_note" value="1">
<input type="hidden" name="currency_code" value="AUD">
<input type="hidden" name="weight" value="1">
<input type="hidden" name="weight_unit" value="kgs">
<input type="hidden" name="lc" value="AU">
<input type="hidden" name="bn" value="PP-BuyNowBF">
<input type="image" src="https://www.paypal.com/en_AU/i/btn/btn_buynowCC_LG.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online.">
<img alt="" border="0" src="https://www.paypal.com/en_AU/i/scr/pixel.gif" width="1" height="1">
</form></div></html>
----

@@color:#c06;''Main Ingredients''@@ Edible alcohol, clove, dodder, Fleeceflower, Common Curculigo Rhizome, Epimedium Herb, etc, natural plant distilled fluid.

@@color:#c06;''Application Range''@@
Improve male and female sexual agitation, and improve quality of sexual life.

@@color:#c06;''Applicable Users''@@
1.Male pathological and mental impotence ED
2.Female asexuality, no orgasm, vagina atrophy
3.ED patients who are forbidden to take viagra or who are ineffective to viagra or western heracles or other products
4.Healthy male and female who want to strengthen sexual ability and desire to improve sexual life quality.

@@color:#c06;''Usage''@@
1.Massage 2~3 minutes nearby vola Yongquan acupuncture point Yongquan acupuncture point is boundary center of 1/3 and 2/3
2.Open the bottle cap, spray the product towards Yongquan acupuncture point. After the skin has dried, repeat spray 7~8 times about 2ml with 2 minutes intermission.
3.Use before sleep, continuous use for 5 days as a course of treatment 10ml 1~3 days would work
4.When below 20c degree, washing feet with 47c degree water, the efficacy would be more distinct
5.If want to become effective soon, only need to spray the product to female and male s sensitive position, 2~3 times, half hour it would work.

@@color:#c06;''Precautions''@@
1.People with heart disease should follow doctor's advice
2.During use the product, do avoid taking bitter cold consumption of yang food
3.External use only
Specification 10 ml
}}}
<br/>
{{textjustify{@@color:#c06;''Plant Viagra Niagara Rejuvenation ~MERIDIAN-MAGIC MASSAGE FLUID''@@

{{imgfloatleft doubleborder{[img[loving_couple.jpg]]}}}
@@color:#c06;''Give a Sensual Foot Massage''@@

Are the bottoms of your feet ticklish? Feet contain a higher number of nerve endings than most other parts of your body, making them especially sensitive to touch. Add some massage lotion and a few long, languorous strokes, and you've found a sensual way to connect with your partner after a long day.

However, foot massage doesn't just feel good -- it can actually improve your sex life. Massage relaxes you and increases the flow of blood within your body, making it easier for you to become aroused. Foot massage also plays into our human tendency to eroticize the unfamiliar; because feet are often neglected, paying special attention to them can make for an extremely sensual experience for both the mind and the body.

At night, after your partner showers (or, if they are a morning bather, soak your partner's feet in a pan of warm water), have them lie down on the sofa or sit in a cozy chair. Turn down the lights, put on some soft music and sit near your partner's feet. Using a @@color:#c06;''~MERIDIAN-MAGIC MASSAGE FLUID''@@, slowly rub each of your lover's feet using long, sensual strokes. Be sure to first warm the lotion in your hands, then rub it into ''meridian'' (according to the instructions) of each foot, later using your thumbs to massage the arches and balls of the feet. Don't neglect the toes - spend time caressing each one. By the time you're finished, your partner should be happy, relaxed and in just the right mood to "go to bed" early! 

{{imgfloatright doubleborder{[img[043-300H.jpg]]
}}}

<html><hide linebreaks><div align="center">''Meridian Magic for Women''<br>One Meridian Magic for @@color:#c06;__her__.@@ $33.00 Postage Paid<br><br>
<form action="https://www.paypal.com/cgi-bin/webscr" method="post">
<input type="hidden" name="cmd" value="_xclick">
<input type="hidden" name="business" value="mmorders@y7mail.com">
<input type="hidden" name="item_name" value="Merdian Magic for Women">
<input type="hidden" name="item_number" value="W001">
<input type="hidden" name="amount" value="33.00">
<input type="hidden" name="shipping" value="0.00">
<input type="hidden" name="no_shipping" value="0">
<input type="hidden" name="no_note" value="1">
<input type="hidden" name="currency_code" value="AUD">
<input type="hidden" name="weight" value="1">
<input type="hidden" name="weight_unit" value="kgs">
<input type="hidden" name="lc" value="AU">
<input type="hidden" name="bn" value="PP-BuyNowBF">
<input type="image" src="https://www.paypal.com/en_AU/i/btn/btn_buynowCC_LG.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online.">
<img alt="" border="0" src="https://www.paypal.com/en_AU/i/scr/pixel.gif" width="1" height="1">
</form></div></html>

@@color:#c06;''~MERIDIAN-MAGIC MASSAGE FLUID''@@ is based on traditional Chinese medicine s meridian theory and modern neurological biology theory, which is derived from dozens of pure natural plant and extracted by modern biological oxidation technology. It has Life Energy Factor ingredient. Under the double effect of massage and natural plant distilled fluid, it can smooth meridian, accelerate Qi and blood circulation, adjust organ s condition, balance Yin and Yang disorder, activate sexual nerve, and improve sexual ability.


@@color:#c06;''Main Ingredients''@@ Edible alcohol, clove, dodder, Fleeceflower, Common Curculigo Rhizome, Epimedium Herb, etc, natural plant distilled fluid.

@@color:#c06;''Application Range''@@
Improve male and female sexual agitation, and improve quality of sexual life.

@@color:#c06;''Applicable Users''@@
1.Male pathological and mental impotence ED
2.Female asexuality, no orgasm, vagina atrophy
3.ED patients who are forbidden to take viagra or who are ineffective to viagra or western heracles or other products
4.Healthy male and female who want to strengthen sexual ability and desire to improve sexual life quality.

@@color:#c06;''Usage''@@
1.Massage 2~3 minutes nearby vola Yongquan acupuncture point Yongquan acupuncture point is boundary center of 1/3 and 2/3
2.Open the bottle cap, spray the product towards Yongquan acupuncture point. After the skin has dried, repeat spray 7~8 times about 2ml with 2 minutes intermission.
3.Use before sleep, continuous use for 5 days as a course of treatment 10ml 1~3 days would work
4.When below 20c degree, washing feet with 47c degree water, the efficacy would be more distinct
5.If want to become effective soon, only need to spray the product to female and male s sensitive position, 2~3 times, half hour it would work.

@@color:#c06;''Precautions''@@
1.People with heart disease should follow doctor's advice
2.During use the product, do avoid taking bitter cold consumption of yang food
3.External use only
Specification 10 ml
}}}
/***
|Name|FullScreenPlugin|
|Created by|SaqImtiaz|
|Location|http://tw.lewcid.org/#FullScreenPlugin|
|Version|1.1|
|Requires|~TW2.x|
!Description:
Toggle between viewing tiddlers fullscreen and normally. Very handy for when you need more viewing space.

!Demo:
Click the ↕ button in the toolbar for this tiddler. Click it again to turn off fullscreen.

!Installation:
Copy the contents of this tiddler to your TW, tag with systemConfig, save and reload your TW.
Edit the ViewTemplate to add the fullscreen command to the toolbar.

!History:
*25-07-06: ver 1.1
*20-07-06: ver 1.0

!Code
***/
//{{{
var lewcidFullScreen = false;

config.commands.fullscreen =
{
            text:"«FullScreen»",
            tooltip:"Fullscreen mode"
};

config.commands.fullscreen.handler = function (event,src,title)
{
            if (lewcidFullScreen == false)
               {
                lewcidFullScreen = true;
                setStylesheet('#sidebar, .header, #mainMenu{display:none;} #displayArea{margin:0em 0 0 0 !important;}',"lewcidFullScreenStyle");
               }
            else
               {
                lewcidFullScreen = false;
                setStylesheet(' ',"lewcidFullScreenStyle");
               }
}

config.macros.fullscreen={};
config.macros.fullscreen.handler =  function(place,macroName,params,wikifier,paramString,tiddler)
{
        var label = params[0]||" «FullScreen» ";
        var tooltip = params[1]||"Fullscreen mode";
        createTiddlyButton(place,label,tooltip,config.commands.fullscreen.handler);
}

var lewcid_fullscreen_closeTiddler = Story.prototype.closeTiddler;
Story.prototype.closeTiddler =function(title,animate,slowly)
{
           lewcid_fullscreen_closeTiddler.apply(this,arguments);
           if (story.isEmpty() && lewcidFullScreen == true)
              config.commands.fullscreen.handler();
}


Slider.prototype.lewcidStop = Slider.prototype.stop;
Slider.prototype.stop = function()
{
           this.lewcidStop();
           if (story.isEmpty() && lewcidFullScreen == true)
              config.commands.fullscreen.handler();
}
//}}}
/***
|Name|HTMLFormattingPlugin|
|Source|http://www.TiddlyTools.com/#HTMLFormattingPlugin|
|Version|2.1.4|
|Author|Eric Shulman - ELS Design Studios|
|License|http://www.TiddlyTools.com/#LegalStatements <<br>>and [[Creative Commons Attribution-ShareAlike 2.5 License|http://creativecommons.org/licenses/by-sa/2.5/]]|
|~CoreVersion|2.1|
|Type|plugin|
|Requires||
|Overrides||
|Description|Use wiki syntax formatting inside of HTML content|

The shorthand Wiki-style formatting syntax of ~TiddlyWiki is very convenient and enables most content to be reasonably well presented. However, there are times when tried-and-true HTML formatting syntax allows more more precise control of the content display.

When HTML formatting syntax is embedded within a tiddler (in between {{{<}}}{{{html>}}} and {{{<}}}{{{/html>}}} markers) TiddlyWiki passes this content to the browser for processing as 'native' HTML.  However, TiddlyWiki does not also process the HTML source content for any embedded wiki-formatting syntax it may contain.  This means that while you can use HTML formatted content, you cannot mix wiki-formatted content within the HTML formatting.
!!!!!Usage
<<<
The ~HTMLFormatting plugin allows you to freely ''mix wiki-style formatting syntax within HTML formatted content'' by extending the action of the standard TiddlyWiki formatting handler.

When a tiddler is about to be displayed, ~TiddlyWiki looks for tiddler content contained within ''<{{{html}}}>'' and ''<{{{/html}}}>'' HTML tags.  This content (if any) is passed directly to the browser's internal "rendering engine" to process as ~HTML-formatted content.  Once the HTML formatting has been processed, all the pieces of text occuring in between the HTML formatting are then processed by the ~TiddlyWiki rendering engine, one piece at a time, so that normal wiki-style formatting can be applied to the individual text pieces.
<<<
!!!!!Line breaks
<part Linebreaks hidden>
<<<
One major difference between Wiki formatting and HTML formatting is how "line breaks" are processed. Wiki formatting treats all line breaks as literal content to be displayed //as-is//. However, because HTML normally ignores line breaks and actually processes them as simple "word separators" instead, many people who write HTML include extra line breaks in their documents, just to make the "source code" easier to read.

Even though you can use HTML tags within your tiddler content, the default treatment for line breaks still follows the Wiki-style rule (i.e., all new lines are displayed as-is). When adding HTML content to a tiddler (especially if you cut-and-paste it from another web page), you should take care to avoid adding extra line breaks to the text.

If removing all the extra line breaks from your HTML content would be a big hassle, you can quickly //override the default Wiki-style line break rule// so that the line breaks use the standard HTML rules instead.  Placing a ''<{{{hide linebreaks}}}>'' tag within the tiddler's HTML content changes all line breaks to spaces before rendering the content, so that the literal line breaks will be processed as simple word-breaks instead.

Note: this does //not// alter the actual tiddler content that is stored in the document, just the manner in which it is displayed. Any line breaks contained in the tiddler will still be there when you edit its content. Also, to include a literal line break when the ''<{{{hide linebreaks}}}>'' tag is present, you will need to use a ''<{{{br}}}>'' or ''<{{{p}}}>'' HTML tag instead of simply typing a line break.
<<<
</part>
!!!!!How it works
<<<
The TW core support for HTML does not let you put ANY wiki-style syntax (including TW macros) *inside* the {{{<html>...</html>}}} block.  Everything between {{{<html>}}} and {{{</html>}}} is handed to the browser for processing and that is it.  Fortunately, this plugin ADDS the ability to let you put wiki-syntax (including macros) inside the html.  It does this by first giving the tiddler source content to the browser to process the HTML, and then handling any wiki-based syntax that remains afterward.

However, not all wiki syntax can be safely passed through the browser's parser. Specifically, any TW macros inside the HTML will get 'eaten' by the browser since the macro brackets, {{{<<...>>}}} use the "<" and ">" that normally delimit the HTML/XML syntax recognized by the browser's parser.

Similarly, you can't use InlineJavascript within the HTML because the {{{<script>...</script>}}} syntax will also be consumed by the browser and there will be nothing left to process afterward.  Note: unfortunately, even though the browser removes the {{{<script>...</script>}}} sequence, it doesn't actually execute the embedded javascript code that it removes, so any scripts contained inside of <html> blocks in TW are currently being ignored. :-(

As a work-around to allow TW *macros* (but not inline scripts) to exist inside of <html> formatted blocks of content, the plugin first converts the {{{<<}}} and {{{>>}}} into "%%(" and ")%%", making them "indigestible" so they can pass unchanged through the belly of the beast (the browser's HTML parser).

After the browser has done its job, the wiki syntax sequences (including the "undigested" macros) are contained in #text nodes in the browser-generated DOM elements.  The plugin then recursively locates and processes each #text node, converts the %%( and )%% back into {{{<<}}} and {{{>>}}}, passes the result to wikify() for further rendering of the wiki-formatted syntax into a containing SPAN that replaces the previous #text node.  At the end of this process, none of the encoded %%( and )%% sequences remain in the rendered tiddler output.
<<<
!!!!!Installation
<<<
import (or copy/paste) the following tiddlers into your document:
''HTMLFormattingPlugin'' (tagged with <<tag systemConfig>>)
^^documentation and javascript for HTMLFormatting handling^^
<<<
!!!!!Revision History
<<<
''2006.09.10 [2.1.4]'' update formatter for 2.1 compatibility (use this.lookaheadRegExp instead of temp variable)
''2006.05.28 [2.1.3]'' in wikifyTextNodes(), decode the *value* of TEXTAREA nodes, but don't wikify() its children.  (thanks to "ayj" for bug report)
''2006.02.19 [2.1.2]'' in wikifyTextNodes(), put SPAN element into tiddler DOM (replacing text node), BEFORE wikifying the text content.  This ensures that the 'place' passed to any macros is correctly defined when the macro is evaluated, so that calls to story.findContainingTiddler(place) will work as expected. (Thanks for bug report from GeoffSlocock)
''2006.02.05 [2.1.1]'' wrapped wikifier hijack in init function to eliminate globals and avoid FireFox 1.5.0.1 crash bug when referencing globals
''2005.12.01 [2.1.0]'' don't wikify #TEXT nodes inside SELECT and TEXTAREA elements
''2005.11.06 [2.0.1]'' code cleanup
''2005.10.31 [2.0.0]'' replaced hijack wikify() with hijack config.formatters["html"] and simplified recursive WikifyTextNodes() code
''2005.10.09 [1.0.2]'' combined documentation and code into a single tiddler
''2005.08.05 [1.0.1]'' moved HTML and CSS definitions into plugin code instead of using separate tiddlers
''2005.07.26 [1.0.1]'' Re-released as a plugin. Added <{{{html}}}>...</{{{nohtml}}}> and <{{{hide newlines}}}> handling
''2005.07.20 [1.0.0]'' Initial Release (as code adaptation)
<<<
!!!!!Credits
<<<
This feature was developed by EricShulman from [[ELS Design Studios|http:/www.elsdesign.com]]
<<<
!!!!!Code
***/
//{{{
version.extensions.HTMLFormatting = {major: 2, minor: 1, revision: 4, date: new Date(2006,9,10)};

// find the formatter for HTML and replace the handler
initHTMLFormatter();
function initHTMLFormatter()
{
	for (var i=0; i<config.formatters.length && config.formatters[i].name!="html"; i++);
	if (i<config.formatters.length)	config.formatters[i].handler=function(w) {
		if (!this.lookaheadRegExp)  // fixup for TW2.0.x
			this.lookaheadRegExp = new RegExp(this.lookahead,"mg");
		this.lookaheadRegExp.lastIndex = w.matchStart;
		var lookaheadMatch = this.lookaheadRegExp.exec(w.source)
		if(lookaheadMatch && lookaheadMatch.index == w.matchStart) {
			var html=lookaheadMatch[1];
			// optionally suppress wiki-style literal handling of newlines
			// strip any carriage returns added by Internet Explorer's textarea edit field
			// encode newlines as \n so Internet Explorer's HTML parser won't eat them
			// encode macro brackets (<< and >>) so HTML parser won't eat them
			if (html.indexOf('<hide linebreaks>')!=-1) html=html.replace(regexpNewLine,' ');
			html=html.replace(regexpCarriageReturn,'');
			html=html.replace(regexpNewLine,'\\n');
			html=html.replace(/<</g,'%%(').replace(/>>/g,')%%');
			// create span to hold HTML
			// parse HTML and normalize the results
			// walk node tree and call wikify() on each text node
			var e = createTiddlyElement(w.output,"span");
			e.innerHTML=html;
			e.normalize(); 
			wikifyTextNodes(e);
			// advance to next parse position
			w.nextMatch = this.lookaheadRegExp.lastIndex;
		}
	}
}

// wikify text nodes remaining after HTML content is processed (pre-order recursion)
function wikifyTextNodes(theNode)
{
	// textarea node doesn't get wikified, just decoded... 
	if (theNode.nodeName.toLowerCase()=='textarea')
		theNode.value=theNode.value.replace(/\%%\(/g,'<<').replace(/\)\%%/g,'>>').replace(regexpBackSlashEn,'\n');
	else for (var i=0;i<theNode.childNodes.length;i++) {
		var theChild=theNode.childNodes.item(i);
		if (theChild.nodeName.toLowerCase()=='option') continue;
		if (theChild.nodeName.toLowerCase()=='select') continue;
		wikifyTextNodes(theChild);
		if (theChild.nodeName=='#text') {
			var txt=theChild.nodeValue;
			// decode macro brackets and newlines
			txt=txt.replace(/\%%\(/g,'<<').replace(/\)\%%/g,'>>').replace(regexpBackSlashEn,'\n');
			// replace text node with wikified() span
			var newNode=createTiddlyElement(null,"span");
			theNode.replaceChild(newNode,theChild);
			wikify(txt,newNode);
		}
	}
}
//}}}
<<gradient  vert   #0000C8 #003>>[img[Science Matters|http://img512.imageshack.us/img512/2316/sciencematterslogokl1.gif]]<br>@@color:#abf;an experiment in web site design<br><br>@@>>
/***
!!!<<gradient horiz #fc3 #fff >><<tiddler RefreshStyles>>&nbsp;HideToolbarCSS>>/%==================================================%/
***/

#tiddlerForWomen .toolbar {
visibility: hidden; 
}

#tiddlerForMen .toolbar {
visibility: hidden; 
}

#tiddlerForCouples .toolbar {
visibility: hidden; 
}

#tiddlerPrices .toolbar {
visibility: hidden; 
}

#tiddlerContactUs .toolbar {
visibility: hidden; 
}

#tiddlerInstructions .toolbar {
visibility: hidden; 
}
 @@color:#C06;''&raquo; &raquo;'' @@ History of Tabslisted by date of last modification.
----
{{fourcolumns{<<timeline>>}}}
<<search>>
config.options.chkSearchIncremental=false;
/***
|Name|InlineJavascriptPlugin|
|Source|http://www.TiddlyTools.com/#InlineJavascriptPlugin|
|Version|1.6.0|
|Author|Eric Shulman - ELS Design Studios|
|License|http://www.TiddlyTools.com/#LegalStatements <<br>>and [[Creative Commons Attribution-ShareAlike 2.5 License|http://creativecommons.org/licenses/by-sa/2.5/]]|
|~CoreVersion|2.1|
|Type|plugin|
|Requires||
|Overrides||
|Description|Insert Javascript executable code directly into your tiddler content.|

''Call directly into TW core utility routines, define new functions, calculate values, add dynamically-generated TiddlyWiki-formatted output'' into tiddler content, or perform any other programmatic actions each time the tiddler is rendered.
!!!!!Usage
<<<
When installed, this plugin adds new wiki syntax for surrounding tiddler content with {{{<script>}}} and {{{</script>}}} markers, so that it can be treated as embedded javascript and executed each time the tiddler is rendered.

''Deferred execution from an 'onClick' link''
By including a {{{label="..."}}} parameter in the initial {{{<script>}}} marker, the plugin will create a link to an 'onclick' script that will only be executed when that specific link is clicked, rather than running the script each time the tiddler is rendered.  You may also include a {{{title="..."}}} parameter to specify the 'tooltip' text that will appear whenever the mouse is moved over the onClick link text

''External script source files:''
You can also load javascript from an external source URL, by including a src="..." parameter in the initial {{{<script>}}} marker (e.g., {{{<script src="demo.js"></script>}}}).  This is particularly useful when incorporating third-party javascript libraries for use in custom extensions and plugins.  The 'foreign' javascript code remains isolated in a separate file that can be easily replaced whenever an updated library file becomes available.

''Display script source in tiddler output''
By including the keyword parameter "show", in the initial {{{<script>}}} marker, the plugin will include the script source code in the output that it displays in the tiddler.

''Defining javascript functions and libraries:''
Although the external javascript file is loaded while the tiddler content is being rendered, any functions it defines will not be available for use until //after// the rendering has been completed.  Thus, you cannot load a library and //immediately// use it's functions within the same tiddler.  However, once that tiddler has been loaded, the library functions can be freely used in any tiddler (even the one in which it was initially loaded).

To ensure that your javascript functions are always available when needed, you should load the libraries from a tiddler that will be rendered as soon as your TiddlyWiki document is opened.  For example, you could put your {{{<script src="..."></script>}}} syntax into a tiddler called LoadScripts, and then add {{{<<tiddler LoadScripts>>}}} in your MainMenu tiddler.

Since the MainMenu is always rendered immediately upon opening your document, the library will always be loaded before any other tiddlers that rely upon the functions it defines.  Loading an external javascript library does not produce any direct output in the tiddler, so these definitions should have no impact on the appearance of your MainMenu.

''Creating dynamic tiddler content''
An important difference between this implementation of embedded scripting and conventional embedded javascript techniques for web pages is the method used to produce output that is dynamically inserted into the document:
* In a typical web document, you use the document.write() function to output text sequences (often containing HTML tags) that are then rendered when the entire document is first loaded into the browser window.
* However, in a ~TiddlyWiki document, tiddlers (and other DOM elements) are created, deleted, and rendered "on-the-fly", so writing directly to the global 'document' object does not produce the results you want (i.e., replacing the embedded script within the tiddler content), and completely replaces the entire ~TiddlyWiki document in your browser window.
* To allow these scripts to work unmodified, the plugin automatically converts all occurences of document.write() so that the output is inserted into the tiddler content instead of replacing the entire ~TiddlyWiki document.

If your script does not use document.write() to create dynamically embedded content within a tiddler, your javascript can, as an alternative, explicitly return a text value that the plugin can then pass through the wikify() rendering engine to insert into the tiddler display.  For example, using {{{return "thistext"}}} will produce the same output as {{{document.write("thistext")}}}.

//Note: your script code is automatically 'wrapped' inside a function, {{{_out()}}}, so that any return value you provide can be correctly handled by the plugin and inserted into the tiddler.  To avoid unpredictable results (and possibly fatal execution errors), this function should never be redefined or called from ''within'' your script code.//

''Accessing the ~TiddlyWiki DOM''
The plugin provides one pre-defined variable, 'place', that is passed in to your javascript code so that it can have direct access to the containing DOM element into which the tiddler output is currently being rendered.

Access to this DOM element allows you to create scripts that can:
* vary their actions based upon the specific location in which they are embedded
* access 'tiddler-relative' information (use findContainingTiddler(place))
* perform direct DOM manipulations (when returning wikified text is not enough)
<<<
!!!!!Examples
<<<
an "alert" message box:
><script show>
	alert('InlineJavascriptPlugin: this is a demonstration message');
</script>
dynamic output:
><script show>
	return (new Date()).toString();
</script>
wikified dynamic output:
><script show>
	return "link to current user: [["+config.options.txtUserName+"]]";
</script>
dynamic output using 'place' to get size information for current tiddler:
><script show>
   if (!window.story) window.story=window;
   var title=story.findContainingTiddler(place).id.substr(7);
   return title+" is using "+store.getTiddlerText(title).length+" bytes";
</script>
creating an 'onclick' button/link that runs a script:
><script label="click here" title="clicking this link will show an 'alert' box" show>
   if (!window.story) window.story=window;
   alert("Hello World!\nlinktext='"+place.firstChild.data+"'\ntiddler='"+story.findContainingTiddler(place).id.substr(7)+"'");
</script>
loading a script from a source url:
>http://www.TiddlyTools.com/demo.js contains:
>>{{{function demo() { alert('this output is from demo(), defined in demo.js') } }}}
>>{{{alert('InlineJavascriptPlugin: demo.js has been loaded'); }}}
><script src="demo.js" show>
	return "loading demo.js..."
</script>
><script label="click to execute demo() function" show>
	demo()
</script>
<<<
!!!!!Installation
<<<
import (or copy/paste) the following tiddlers into your document:
''InlineJavascriptPlugin'' (tagged with <<tag systemConfig>>)
<<<
!!!!!Revision History
<<<
''2007.02.19 [1.6.0]'' added support for title="..." to specify mouseover tooltip when using an onclick (label="...") script
''2006.10.16 [1.5.2]'' add newline before closing '}' in 'function out_' wrapper.  Fixes error caused when last line of script is a comment.
''2006.06.01 [1.5.1]'' when calling wikify() on script return value, pass hightlightRegExp and tiddler params so macros that rely on these values can render properly
''2006.04.19 [1.5.0]'' added 'show' parameter to force display of javascript source code in tiddler output
''2006.01.05 [1.4.0]'' added support 'onclick' scripts.  When label="..." param is present, a button/link is created using the indicated label text, and the script is only executed when the button/link is clicked.  'place' value is set to match the clicked button/link element.
''2005.12.13 [1.3.1]'' when catching eval error in IE, e.description contains the error text, instead of e.toString().  Fixed error reporting so IE shows the correct response text.  Based on a suggestion by UdoBorkowski
''2005.11.09 [1.3.0]'' for 'inline' scripts (i.e., not scripts loaded with src="..."), automatically replace calls to 'document.write()' with 'place.innerHTML+=' so script output is directed into tiddler content.  Based on a suggestion by BradleyMeck
''2005.11.08 [1.2.0]'' handle loading of javascript from an external URL via src="..." syntax
''2005.11.08 [1.1.0]'' pass 'place' param into scripts to provide direct DOM access 
''2005.11.08 [1.0.0]'' initial release
<<<
!!!!!Credits
<<<
This feature was developed by EricShulman from [[ELS Design Studios|http:/www.elsdesign.com]]
<<<
!!!!!Code
***/
//{{{
version.extensions.inlineJavascript= {major: 1, minor: 6, revision: 0, date: new Date(2007,2,19)};

config.formatters.push( {
	name: "inlineJavascript",
	match: "\\<script",
	lookahead: "\\<script(?: src=\\\"((?:.|\\n)*?)\\\")?(?: label=\\\"((?:.|\\n)*?)\\\")?(?: title=\\\"((?:.|\\n)*?)\\\")?( show)?\\>((?:.|\\n)*?)\\</script\\>",

	handler: function(w) {
		var lookaheadRegExp = new RegExp(this.lookahead,"mg");
		lookaheadRegExp.lastIndex = w.matchStart;
		var lookaheadMatch = lookaheadRegExp.exec(w.source)
		if(lookaheadMatch && lookaheadMatch.index == w.matchStart) {
			if (lookaheadMatch[1]) { // load a script library
				// make script tag, set src, add to body to execute, then remove for cleanup
				var script = document.createElement("script"); script.src = lookaheadMatch[1];
				document.body.appendChild(script); document.body.removeChild(script);
			}
			if (lookaheadMatch[5]) { // there is script code
				if (lookaheadMatch[4]) // show inline script code in tiddler output
					wikify("{{{\n"+lookaheadMatch[0]+"\n}}}\n",w.output);
				if (lookaheadMatch[2]) { // create a link to an 'onclick' script
					// add a link, define click handler, save code in link (pass 'place'), set link attributes
					var link=createTiddlyElement(w.output,"a",null,"tiddlyLinkExisting",lookaheadMatch[2]);
					link.onclick=function(){try{return(eval(this.code))}catch(e){alert(e.description?e.description:e.toString())}}
					link.code="function _out(place){"+lookaheadMatch[5]+"\n};_out(this);"
					link.setAttribute("title",lookaheadMatch[3]?lookaheadMatch[3]:"");
					link.setAttribute("href","javascript:;");
					link.style.cursor="pointer";
				}
				else { // run inline script code
					var code="function _out(place){"+lookaheadMatch[5]+"\n};_out(w.output);"
					code=code.replace(/document.write\(/gi,'place.innerHTML+=(');
					try { var out = eval(code); } catch(e) { out = e.description?e.description:e.toString(); }
					if (out && out.length) wikify(out,w.output,w.highlightRegExp,w.tiddler);
				}
			}
			w.nextMatch = lookaheadMatch.index + lookaheadMatch[0].length;
		}
	}
} )
//}}}
<br/>
@@font-size:14pt;color:#0cc;''~MERIDIAN-MAGIC''@@
----
@@font-size:10pt;color:#c06;''FOOT SPRAY FOR ADULTS''@@

''It has long been known that the flow of the blood through'' the soles of the feet has a great bearing on the overall human circulation and the healthy function of other areas of the body, and likewise it has long been recognized that stimulating a key meridian point on the soles of the feet can refresh, revitalize and rebalance the sexual centre in both men and women.

@@color:#c06;''USAGE''@@
1. ''At night before sleeping,'' begin by massaging the “yongquan” point (shown)
for 2-3 minutes.

2. ''Spray “yongquan” point with'' ~Meridian-Magic, leave for two minutes, then spray five or six more times at two-minute intervals (or until the sole of the foot is dry) until 2ml of ~Meridian-Magic (one fifth of course) in total is applied.

3. ''Use continuously for five nights until'' course of 10ml is finished.

4. ''When temperature is below'' 20 degrees C, wash feet with warm water
(47 degrees C) for better effect.

----
@@color:#c06;''PRECAUTIONS AND WARNINGS''@@

1. The efficacy of this product may be affected if the user is taking or ingesting drugs or food which diminish sexual ability, such as chiordiazepoxide, Diaz pine, atropine, indometacin, cimetidine, metoclopramide, clofibrate, guanethvdine, reserpine, benzene, dimethylguanidine, methyldopa, rhizome coptidis, mung beans, bitter gourd, broadleaf holly leaf and deep-sea fish oil.
2. External use only. Not to be taken orally. Do not apply to broken skin. Do not apply if a rash or any skin disorder is present. 
3. Patients with severe heart disease, hypertension and diabetes should seek and follow medical advice before using this product.
4. Do not use past date of expiry.
5. Menstruating women and pregnant women should not use this product.

@@color:#c06;''Sole Agency in Australia & New Zealand''@@
''Augejar  Trade Pty Ltd''
Tel: (02) 9789-1132 
Int'l: +612-9789-1132
http://www.herbalmagics.com
email:orders@herbalmagics.com

/***
|''Name:''|LoadRemoteFileThroughProxy (previous LoadRemoteFileHijack)|
|''Description:''|When the TiddlyWiki file is located on the web (view over http) the content of [[SiteProxy]] tiddler is added in front of the file url. If [[SiteProxy]] does not exist "/proxy/" is added. |
|''Version:''|1.1.0|
|''Date:''|mar 17, 2007|
|''Source:''|http://tiddlywiki.bidix.info/#LoadRemoteFileHijack|
|''Author:''|BidiX (BidiX (at) bidix (dot) info)|
|''License:''|[[BSD open source license|http://tiddlywiki.bidix.info/#%5B%5BBSD%20open%20source%20license%5D%5D ]]|
|''~CoreVersion:''|2.2.0|
***/
//{{{
version.extensions.LoadRemoteFileThroughProxy = {
 major: 1, minor: 1, revision: 0, 
 date: new Date("mar 17, 2007"), 
 source: "http://tiddlywiki.bidix.info/#LoadRemoteFileThroughProxy"};

if (!window.bidix) window.bidix = {}; // bidix namespace
if (!bidix.core) bidix.core = {};

bidix.core.loadRemoteFile = loadRemoteFile;
loadRemoteFile = function(url,callback,params)
{
 if ((document.location.toString().substr(0,4) == "http") && (url.substr(0,4) == "http")){ 
  url = store.getTiddlerText("SiteProxy", "/proxy/") + url;
 }
 return bidix.core.loadRemoteFile(url,callback,params);
}
//}}}
{{textleftM{
<<tiddler SideBarTabs>><<slider "chkCookieName" "MainMenu" "Menu »" "tooltip" >>
}}}
<<tiddler ContentOne>>
<<tiddler ContentOne>>
[[WelcomeToTiddlyspot]]
 GettingStarted
<!-- Start of StatCounter Code -->
<script type="text/javascript">
var sc_project=3877533; 
var sc_invisible=1; 
var sc_partition=47; 
var sc_click_stat=1; 
var sc_security="74bfef9d"; 
</script>

<script type="text/javascript" src="http://www.statcounter.com/counter/counter.js"></script><noscript><div class="statcounter"><a href="http://www.statcounter.com/" target="_blank"><img class="statcounter" src="http://c.statcounter.com/3877533/0/74bfef9d/1/" alt="free webpage counters" ></a></div></noscript>
<!-- End of StatCounter Code -->

{{textleftM unboldLink{
[[TheElements]]
[[Anthropology]]
[[Astronomy]]
WebPage
WebPageTwo
PageTemplate
MarkupPreBody
StyleSheet
ToggleHeaderMacro
ToggleEditingMacro
ToggleSideBarMacroOrig
SlantedMenu
<<tiddler MainMenu>>
}}}
<<tiddler SideBarTabsSlider>>
<html><div id="cont"><<tiddler ForCouples>></div></html>
<html><div id="cont"><<tiddler ForMen>></div></html>
/***
!!!<<gradient horiz #fc3 #fff >><<tiddler RefreshStyles>>&nbsp;PageCSS>>/%==================================================%/
***/

body {background:#099;}

#outer {
 width:850px;
 margin:auto;
 }

#hdr {
 height:100%;
 background:#eeeeee;
 color: #333333;
 }

#bar {
 height:0px;
 line-height:2.2em;
 background:#c0c0c0;
}

#bodyblock {
 position:relative;
 background: #dcdcdc;
 color: #333333;
 width:650px;
 padding:0;
 }

#l-col {
 float:left;
 background:#dcdcdc;
 color: #333333;
 width:145px;
 }

#cont {
 width:100%;
 background:#ffffff;
 color: #333333;

 text-align:left;
 margin:auto;
 }

#ftr {
 height:45px;
 background:#fff;
 color: #333333;
 border:solid black;
 border-width:1px 0 0 0;
 margin-top:1em;
 }


/* Presentation Stylesheet */ 

h3, p {
 margin:0;
 padding:15px;
 }

h4 {
 margin:0; 
 padding: 5px 0;
 }
 
p:first-letter {
 font-size: 80%; 
 font-weight: bold;
 color:blue;
 }
<<gradient vert #e00 #509>><br>@@color:#eee;font-variant:small-caps;font-size:24pt;font-weight:bold;letter-spacing: 0.3em;Meridian&nbsp;&nbsp;Magic@@<br>@@color:#fcf;Intimate Foot Spray For Adults@@>>
<<gradient vert #fa0 #eee #fa0>><br>@@color:#000;font-size:24pt;~MondoOrange@@<br>@@color:#f00;an experiment in web site design@@>>
/***
|Name|NestedSlidersPlugin|
|Source|http://www.TiddlyTools.com/#NestedSlidersPlugin|
|Version|2.3.2|
|Author|Eric Shulman - ELS Design Studios|
|License|http://www.TiddlyTools.com/#LegalStatements <br>and [[Creative Commons Attribution-ShareAlike 2.5 License|http://creativecommons.org/licenses/by-sa/2.5/]]|
|~CoreVersion|2.1|
|Type|plugin|
|Requires||
|Overrides|Slider.prototype.stop|
|Description|show content in nest-able 'slider' or 'floating' panels, without needing to create separate tiddlers for each panel|

!!!!!Configuration
<<<
Enable animation for slider panels
<<option chkFloatingSlidersAnimate>> allow sliders to animate when opening/closing
>(note: This setting is in //addition// to the general option for enabling/disabling animation effects:
><<option chkAnimate>> enable animations (entire document)
>For slider animation to occur, you must also allow animation in general.

Debugging messages for 'lazy sliders' deferred rendering:
<<option chkDebugLazySliderDefer>> show debugging alert when deferring slider rendering
<<option chkDebugLazySliderRender>> show debugging alert when deferred slider is actually rendered
<<<
!!!!!Usage
<<<
When installed, this plugin adds new wiki syntax for embedding 'slider' panels directly into tiddler content.  Use {{{+++}}} and {{{===}}} to delimit the slider content.  You can also 'nest' these sliders as deep as you like (see complex nesting example below), so that expandable 'tree-like' hierarchical displays can be created.  This is most useful when converting existing in-line text content to create in-line annotations, footnotes, context-sensitive help, or other subordinate information displays.

Additional optional syntax elements let you specify
*default to open
*cookiename
*heading level
*floater (with optional CSS width value)
*transient display (clicking elsewhere closes panel)
*custom class/label/tooltip/accesskey
*alternate label/tooltip (displayed when panel is open)
*panelID (for later use with {{{<<DOM>>}}} macro.  See [[DOMTweaksPlugin]])
*automatic blockquote style on panel
*deferred rendering of panel content
The complete syntax, using all options, is:
//{{{
++++(cookiename)!!!!!^width^*{{class{[label=key|tooltip][altlabel|alttooltip]}}}#panelID:>...
content goes here
===
//}}}
where:
* {{{+++}}} (or {{{++++}}}) and {{{===}}}<br>marks the start and end of the slider definition, respectively.  When the extra {{{+}}} is used, the slider will be open when initially displayed.
* {{{(cookiename)}}}<br>saves the slider opened/closed state, and restores this state whenever the slider is re-rendered.
* {{{!}}} through {{{!!!!!}}}<br>displays the slider label using a formatted headline (Hn) style instead of a button/link style
* {{{^width^}}} (or just {{{^}}})<br>makes the slider 'float' on top of other content rather than shifting that content downward.  'width' must be a valid CSS value (e.g., "30em", "180px", "50%", etc.).  If omitted, the default width is "auto" (i.e., fit to content)
* {{{"*"}}} //(without the quotes)//<br>denotes "transient display": when a click occurs elsewhere in the document, the slider/floating panel will be automatically closed.  This is useful for creating 'pulldown menus' that automatically go away after they are used.  //Note: using SHIFT-click on a slider label will open/close that slider without triggering the automatic closing of any transient slider panels that are currently displayed, permitting ''temporary'' display of several transient panels at once.//
* """{{class{[label=key|tooltip][altlabel|alttooltip]}}}"""<br>uses label/tooltip/accesskey.  """{{class{...}}}""", """=key""", """|tooltip""" and """[altlabel|alttooltip]""" are optional.  'class' is any valid CSS class name, used to style the slider label text.  'key' must be a ''single letter only''.  altlabel/alttooltip specifiy alternative label/tooltip for use when slider/floating panel is displayed.
* {{{#panelID:}}}<br>defines a unique DOM element ID that is assigned to the panel element used to display the slider content.  This ID can then be used later to reposition the panel using the {{{<<DOM move id>>}}} macro (see [[DOMTweaksPlugin]]), or to access/modify the panel element through use of {{{document.getElementById(...)}}}) javascript code in a plugin or inline script.
* {{{">"}}} //(without the quotes)//<br>automatically adds blockquote formatting to slider content
* {{{"..."}}} //(without the quotes)//<br>defers rendering of closed sliders until the first time they are opened.  //Note: deferred rendering may produce unexpected results in some cases.  Use with care.//

//Note: to make slider definitions easier to read and recognize when editing a tiddler, newlines immediately following the {{{+++}}} 'start slider' or preceding the {{{===}}} 'end slider' sequence are automatically supressed so that excess whitespace is eliminated from the output.//
<<<
!!!!!Examples
<<<
simple in-line slider: 
{{{
+++
   content
===
}}}
+++
   content
===
----
use a custom label and tooltip: 
{{{
+++[label|tooltip]
   content
===
}}}
+++[label|tooltip]
   content
===
----
content automatically blockquoted: 
{{{
+++>
   content
===
}}}
+++>
   content
===
----
all options combined //(default open, cookie, heading, sized floater, transient, class, label/tooltip/key, blockquoted, deferred)//
{{{
++++(testcookie)!!!^30em^*{{big{[label=Z|click or press Alt-Z to open]}}}>...
   content
===
}}}
++++(testcookie)!!!^30em^*{{big{[label=Z|click or press Alt-Z to open]}}}>...
   content
===
----
complex nesting example:
{{{
+++[get info...=I|click for information or press Alt-I]
	put some general information here,
	plus a floating panel with more specific info:
	+++^10em^[view details...|click for details]
		put some detail here, which could in turn contain a transient panel,
		perhaps with a +++^25em^*[glossary definition]explaining technical terms===
	===
===
}}}
+++[get info...=I|click for information or press Alt-I]
	put some general information here,
	plus a floating panel with more specific info:
	+++^10em^[view details...|click for details]
		put some detail here, which could in turn contain a transient panel,
		perhaps with a +++^25em^*[glossary definition]explaining technical terms===
	===
===
<<<
!!!!!Installation
<<<
import (or copy/paste) the following tiddlers into your document:
''NestedSlidersPlugin'' (tagged with <<tag systemConfig>>)
<<<
!!!!!Revision History
<<<
''2007.11.14 - 2.3.2'' in onClickNestedSlider(), prevent SHIFT-click events from opening a new, empty browser window by setting "cancelBubble=true" and calling "stopPropagation()".  Note: SHIFT-click is still processed as a normal click (i.e., it toggles the slider panel display).  Also, using SHIFT-click will prevent 'transient' sliders from being automatically closed when another slider is opened, allowing you to *temporarily* display several transient sliders at once.
''2007.07.26 - 2.3.1'' in document.onclick(), propagate return value from hijacked core click handler to consume OR bubble up click as needed.  Fixes "IE click disease", whereby nearly every mouse click causes a page transition.
|please see [[NestedSlidersPluginHistory]] for additional revision details|
''2005.11.03 - 1.0.0'' initial public release
<<<
!!!!!Credits
<<<
This feature was implemented by EricShulman from [[ELS Design Studios|http:/www.elsdesign.com]] with initial research and suggestions from RodneyGomes, GeoffSlocock, and PaulPetterson.
<<<
!!!!!Code
***/
//{{{
version.extensions.nestedSliders = {major: 2, minor: 3, revision: 2, date: new Date(2007,11,14)};
//}}}

//{{{
// options for deferred rendering of sliders that are not initially displayed
if (config.options.chkDebugLazySliderDefer==undefined) config.options.chkDebugLazySliderDefer=false;
if (config.options.chkDebugLazySliderRender==undefined) config.options.chkDebugLazySliderRender=false;
if (config.options.chkFloatingSlidersAnimate==undefined) config.options.chkFloatingSlidersAnimate=false;

// 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");
//}}}

//{{{
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 class=lookaheadMatch[6]
				// var label=lookaheadMatch[7]
				// var openlabel=lookaheadMatch[8]
				// var panelID=lookaheadMatch[9]
				// var blockquote=lookaheadMatch[10]
				// var deferred=lookaheadMatch[11]

				// 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 (lookaheadMatch[1]) show="block";

				// cookie, use saved open/closed state
				if (lookaheadMatch[2]) {
					cookie=lookaheadMatch[2].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 (lookaheadMatch[7]) {
					var parts=lookaheadMatch[7].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 (lookaheadMatch[8]) {
					var parts=lookaheadMatch[8].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 (lookaheadMatch[3]) { // use "Hn" header format instead of button/link
					var lvl=(lookaheadMatch[3].length>6)?6:lookaheadMatch[3].length;
					var btn = createTiddlyElement(createTiddlyElement(place,"h"+lvl,null,null,null),"a",null,lookaheadMatch[6],title);
					btn.onclick=onClickNestedSlider;
					btn.setAttribute("href","javascript:;");
					btn.setAttribute("title",tooltip);
				}
				else
					var btn = createTiddlyButton(place,title,tooltip,onClickNestedSlider,lookaheadMatch[6]);
				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=lookaheadMatch[1]!=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.onmouseover=function(event) // mouseover on button aligns floater position with button
					{ if (window.adjustSliderPos) window.adjustSliderPos(this.parentNode,this,this.sliderPanel,this.sliderPanel.className); }

				// create slider panel
				var panelClass=lookaheadMatch[4]?"floatingPanel":"sliderPanel";
				var panelID=lookaheadMatch[9]; 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=(lookaheadMatch[4] && lookaheadMatch[4].length>2)?lookaheadMatch[4].slice(1,-1):"";
				panel.setAttribute("transient",lookaheadMatch[5]=="*"?"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,this.className); }

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

// TBD: ignore 'quoted' delimiters (e.g., "{{{+++foo===}}}" isn't really a slider)
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);
	var theLabel = theTarget.firstChild.data;
	var theSlider = theTarget.sliderPanel
	var isOpen = theSlider.style.display!="none";

	// 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") {
		if (config.options.chkDebugLazySliderRender)
			alert("rendering '"+theLabel+"':\n\n"+theSlider.getAttribute("raw"));
		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 && (theSlider.className!='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,theSlider.className);
	// 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")
				{ ctrls[c].focus(); break; }
		}
	}
	var cookie=theTarget.sliderCookie;
	if (cookie && cookie.length) {
		config.options[cookie]=!isOpen;
		if (config.options[cookie]!=theTarget.defOpen)
			saveOptionCookie(cookie);
		else { // remove cookie if slider is in default display state
			var ex=new Date(); ex.setTime(ex.getTime()-1000);
			document.cookie = cookie+"=novalue; path=/; expires="+ex.toGMTString();
		}
	}
	// prevent SHIFT-CLICK from being processed by browser (opens blank window... yuck!)
	// but allow plain click to bubble up to page background (to dismiss open popup, if any)
	if (e.shiftKey) { e.cancelBubble=true; if (e.stopPropagation) e.stopPropagation(); }
	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);
	// call original click handler
	if (document.nestedSliders_savedOnClick)
		var retval=document.nestedSliders_savedOnClick.apply(this,arguments);
	// if click was inside transient panel (or something contained by a transient panel)... leave it alone
	var p=target;
	while (p)
		if ((p.className=="floatingPanel"||p.className=="sliderPanel")&&p.getAttribute("transient")=="true") break;
		else 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}) 
	}
	return retval;
};
//}}}

//{{{
// adjust floating panel position based on button position
if (window.adjustSliderPos==undefined) window.adjustSliderPos=function(place,btn,panel,panelClass) {
	if (panelClass=="floatingPanel") {
		var left=0;
		var top=btn.offsetHeight; 
		if (place.style.position!="relative") {
			var left=findPosX(btn);
			var top=findPosY(btn)+btn.offsetHeight;
			var p=place; while (p && p.className!='floatingPanel') p=p.parentNode;
			if (p) { left-=findPosX(p); top-=findPosY(p); }
		}
		if (findPosX(btn)+panel.offsetWidth > getWindowWidth())  // adjust position to stay inside right window edge
			left-=findPosX(btn)+panel.offsetWidth-getWindowWidth()+15; // add extra 15px 'fudge factor'
		panel.style.left=left+"px"; panel.style.top=top+"px";
	}
}

function getWindowWidth() {
	if(document.width!=undefined)
		return document.width; // moz (FF)
	if(document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) )
		return document.documentElement.clientWidth; // IE6
	if(document.body && ( document.body.clientWidth || document.body.clientHeight ) )
		return document.body.clientWidth; // IE4
	if(window.innerWidth!=undefined)
		return window.innerWidth; // IE - general
	return 0; // unknown
}
//}}}

//{{{
// TW2.1 and earlier:
// hijack Slider animation handler '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 animation handler 'stop' handler so 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); this.element.style.overflow = "visible"; }
}
//}}}
!!!!Create @@color:#C06;''&raquo; &raquo;'' @@ <<newTiddler>><<newJournal "DD MMM YYYY" "journal">>
<<tabs tabsCookie [[Intro ]] "tooltip 1" [[TheScientificMethod]]  [[Astronomy ]] "" [[Astronomy]]  [[Anthropology]] "" [[Anthropology]] [[TheElements ]] "" [[TheElements]] >>
!!!!Create @@color:#C06;''&raquo; &raquo;'' @@ <<newTiddler>><<newJournal "DD MMM YYYY" "journal">>
/%
|Name|NextTiddler|
|Source|http://www.TiddlyTools.com/#NextTiddler|
|Version|0.0.0|
|Author|Eric Shulman - ELS Design Studios|
|License|http://www.TiddlyTools.com/#LegalStatements <br>and [[Creative Commons Attribution-ShareAlike 2.5 License|http://creativecommons.org/licenses/by-sa/2.5/]]|
|~CoreVersion|2.1|
|Type|script|
|Requires|InlineJavascriptPlugin|
|Overrides||
|Description|insert a link that, when clicked, closes the current tiddler and opens another one in its place|

usage: <<tiddler NextTiddler with: NewTiddlerTitle linktext>>


%/<script label="$2">
	var tiddler=story.findContainingTiddler(place);
	story.displayTiddler(tiddler,"$1");
	story.closeTiddler(tiddler.getAttribute("tiddler")); // close self
	return false;
</script>
 [[1|Science]] &#149; [[2|TheScientificMethod]] &#149; [[3|Anthropology]] &#149; [[4|Astronomy]] &#149; [[5|TheElements]] &#149; 6
<<slider chkSliderOptionsPanel OptionsPanel "options »" "Change TiddlyWiki advanced options">>
#JIEcont {
 width:100%;
 background:#ffffff;
 text-align:left;
 margin:auto;
 }

/***
!!!<<gradient horiz #fc3 #fff >><<tiddler RefreshStyles>>&nbsp;PageCSS>>/%==================================================%/
***/

body {background:#000;}

#outer {
 width:850px;
 margin:auto;
 }

#hdr {
 height:100%;
 background:#eeeeee;
 color: #333333;
 }

#bar {
 height:0px;
 line-height:2.2em;
 background:#c0c0c0;
}

#bodyblock {
 position:relative;
 background: #dcdcdc;
 color: #333333;
 width:650px;
 padding:0;
 }

#l-col {
 float:left;
 background:#dcdcdc;
 color: #333333;
 width:145px;
 }

#cont {
 width:100%;
 background:#ffffff;
color:#050;


 text-align:left;
 margin:auto;
 }

#ftr {
 height:45px;
 background:#fff;
 color: #333333;
 border:solid black;
 border-width:1px 0 0 0;
 margin-top:1em;
 }


/* Presentation Stylesheet */ 

h3, p {
 margin:0;
 padding:15px;
 }

h4 {
 margin:0; 
 padding: 5px 0;
 }
 
p:first-letter {
 font-size: 80%; 
 font-weight: bold;
 color:blue;
 }
<!--{{{-->
<div id="outer"><div id='hdr' align='center' refresh='content'  tiddler='MondoGreen'></div>
<div id='tiddlersBar' refresh='none' ondblclick='config.macros.tiddlersBar.onTiddlersBarAction(event)'></div><div id="cont">
<div id='displayArea'><div id='tiddlerDisplay'></div>
<div id='messageArea'></div>
</div><div id="ftr" align="center" refresh='content'  tiddler='contentFooter''>>Copyright (c) You 2003</div><div id='sidebar'></div></div></div

<!--}}}-->
<!--{{{-->
<div id="outer"><div id="TWHhdr" align="center"><span class='newHeader' refresh='content' force='true' tiddler='MondoGreen'></span><span class='slantedMenu' refresh='content' force='true' tiddler='SlantedMenu'></span>

<div id="TWHbar"><div id='tiddlersBar' refresh='none' ondblclick='config.macros.tiddlersBar.onTiddlersBarAction(event)'></div></div>

<div id="TWHl-col"><span class='something' tiddler='Menu'</span></div>
<div id="TWHcont"><span class='science' tiddler='ScienceContent'></span></div></div>
<div id='messageArea'></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='messageArea'></div>
<div id='tiddlerDisplay'></div><span style='display:none' macro='tiddler SetTiddlerHeight with:
85%'></span>
<div id="ftr" align="center"><span class="contentFooter" refresh='content'  tiddler='contentFooter'></span></div>
<!--}}}-->
<!--{{{-->
<div id="TWHouter"><div id="TWHhdr" align="center"><span class='newHeader' refresh='content' force='true' tiddler='WebPage'></span></div></div>

<div id='messageArea'></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='messageArea'></div>
<div id='tiddlerDisplay'><div id='tiddlersBar' refresh='none' ondblclick='config.macros.tiddlersBar.onTiddlersBarAction(event)'></div></div><span style='display:none' macro='tiddler SetTiddlerHeight with:
85%'></span>
<div id="ftr" align="center"><span class="contentFooter" refresh='content'  tiddler='contentFooter'></span></div>
<!--}}}-->
<!--{{{-->
<div id="outer"><div id='hdr' align='center' refresh='content'  tiddler='MondoGreen'></div>
<div id='slantedmenu' refresh='content'  tiddler='SlantedMenu'><div class="toolzbar"  refresh='content'  macro="slider 'CookieName' 'Tools' 'Tools' 'tooltip'"></div> </div><div id='tiddlersBar' refresh='none' ondblclick='config.macros.tiddlersBar.onTiddlersBarAction(event)'></div><div id="cont">
<div id='displayArea'><div id='tiddlerDisplay'></div>
<div id='messageArea'></div>
</div><div id="ftr" align="center" refresh='content'  tiddler='contentFooter''>>Copyright (c) You 2003</div><div id='sidebar'></div></div></div

<!--}}}-->
<div class="outer"><div class="hdr" align="center"><span class='something' refresh='content' tiddler='Header'></span><span class='somethingelse' refresh='content' tiddler='SlantedMenu'></span></div>
<div id="bar" macro='today'></div>
<div id="bodyblock" align="right">
<div id="l-col" align="left"><span class='somethingL' refresh='content' tiddler='Menu'></span>
</div>

<div id="cont" refresh='content' tiddler='MainContent'></div>
</div>
<div id="ftr" align="center">Copyright (c) You 2003</div>
</div>
<html><hide linebreaks>
<div id="pre-hdr"><<tiddler Anthropology>></div>
</html>
<html><hide linebreaks>
<div id="pre-hdr"><<tiddler Astronomy>></div>
</html>
<html><hide linebreaks>
<div id="pre-hdr"><<tiddler TheElements>></div>
</html>
/***
!!!<<gradient horiz #fc3 #fff >><<tiddler RefreshStyles>>&nbsp;PresentCSS>>/%==================================================%/
***/

#pre-hdr {
 width:100%;
 height:100%;
 background:#fef;
 color: #00f;
 }
|width:750px;{{floatleft{ [[1|Present1]] &#149; [[2|Present2]] &#149; 3 &#149; 4 &#149; 5 &#149; 6}}}{{floatright{[[previous|Present]] @@color:#C06;''&laquo; &raquo;'' @@  [[next|Present1]]}}}|

This is my first attempt at a presentation web site.
<html><hide linebreaks>
<div id="pre-hdr"><<tiddler PresentContents>></div>
</html>
*''Prices are in Australian dollars and include GST and postage anywhere in Australia''
*''Delivery: Same day shipping''
----
<html><hide linebreaks><div align="center">''Meridian Magic @@color:#c06;Men@@''<br>One Meridian Magic for him. $33.00 Postage Paid<br><br>
<form action="https://www.paypal.com/cgi-bin/webscr" method="post">
<input type="hidden" name="cmd" value="_xclick">
<input type="hidden" name="business" value="mmorders@y7mail.com">
<input type="hidden" name="item_name" value="Meridian Magic for Men">
<input type="hidden" name="item_number" value="M001">
<input type="hidden" name="amount" value="33.00">
<input type="hidden" name="no_shipping" value="0">
<input type="hidden" name="no_note" value="1">
<input type="hidden" name="currency_code" value="AUD">
<input type="hidden" name="weight" value="1">
<input type="hidden" name="weight_unit" value="kgs">
<input type="hidden" name="lc" value="AU">
<input type="hidden" name="bn" value="PP-BuyNowBF">
<input type="image" src="https://www.paypal.com/en_AU/i/btn/btn_buynowCC_LG.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online.">
<img alt="" border="0" src="https://www.paypal.com/en_AU/i/scr/pixel.gif" width="1" height="1">
</form></div></html>
----
<html><hide linebreaks><div align="center">''Meridian Magic for @@color:#c06;Women@@''<br>One Meridian Magic for her. $33.00 Postage Paid<br><br>
<form action="https://www.paypal.com/cgi-bin/webscr" method="post">
<input type="hidden" name="cmd" value="_xclick">
<input type="hidden" name="business" value="mmorders@y7mail.com">
<input type="hidden" name="item_name" value="Merdian Magic for Women">
<input type="hidden" name="item_number" value="W001">
<input type="hidden" name="amount" value="33.00">
<input type="hidden" name="shipping" value="0.00">
<input type="hidden" name="no_shipping" value="0">
<input type="hidden" name="no_note" value="1">
<input type="hidden" name="currency_code" value="AUD">
<input type="hidden" name="weight" value="1">
<input type="hidden" name="weight_unit" value="kgs">
<input type="hidden" name="lc" value="AU">
<input type="hidden" name="bn" value="PP-BuyNowBF">
<input type="image" src="https://www.paypal.com/en_AU/i/btn/btn_buynowCC_LG.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online.">
<img alt="" border="0" src="https://www.paypal.com/en_AU/i/scr/pixel.gif" width="1" height="1">
</form></div></html>
----
<html><hide linebreaks><div align="center">''Meridian Magic for @@color:#c06;Couples@@''<br>One each Meridian Magic for him and her. $66.00 Postage Paid<br><br>
<form action="https://www.paypal.com/cgi-bin/webscr" method="post">
<input type="hidden" name="cmd" value="_xclick">
<input type="hidden" name="business" value="mmorders@y7mail.com">
<input type="hidden" name="item_name" value="Meridian Magic for Couples (1) for him (1) for her">
<input type="hidden" name="item_number" value="C001">
<input type="hidden" name="amount" value="66.00">
<input type="hidden" name="shipping" value="0.00">
<input type="hidden" name="no_shipping" value="0">
<input type="hidden" name="no_note" value="1">
<input type="hidden" name="currency_code" value="AUD">
<input type="hidden" name="weight" value="1">
<input type="hidden" name="weight_unit" value="kgs">
<input type="hidden" name="lc" value="AU">
<input type="hidden" name="bn" value="PP-BuyNowBF">
<input type="image" src="https://www.paypal.com/en_AU/i/btn/btn_buynowCC_LG.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online.">
<img alt="" border="0" src="https://www.paypal.com/en_AU/i/scr/pixel.gif" width="1" height="1">
</form></div></html>
----
 @@color:#C06;''&raquo; &raquo;'' @@ Tabs containing programs written in ~JavaScript (if tagged as systemConfig begin running a startup.)
----
<script>
// get all tiddlers tagged with "systemConfig"
var tids=store.getTaggedTiddlers("systemConfig");
// keep only tiddlers *also* tagged with New
var list=[];
for (var t=0; t<tids.length; t++)
   if (tids[t].isTagged("systemConfig")) list.push(tids[t]);
// create output list of tiddler titles, one per line
var out="";
for (var t=0; t<list.length; t++) out+="#[["+list[t].title+"]]\n";
return out;
</script> 
<html><input type="button" value="Refresh Styles" onClick="javascript:refreshStyles('StyleSheet');" name="button" class="btn" onmouseover="this.className='btn btnhov'" onmouseout="this.className='btn'"/></html>
/***
|Name|SaveAsPlugin|
|Source|http://www.TiddlyTools.com/#SaveAsPlugin|
|Documentation|http://www.TiddlyTools.com/#SaveAsPlugin|
|Version|1.0.1|
|Author|Eric Shulman - ELS Design Studios|
|License|http://www.TiddlyTools.com/#LegalStatements <br>and [[Creative Commons Attribution-ShareAlike 2.5 License|http://creativecommons.org/licenses/by-sa/2.5/]]|
|~CoreVersion|2.1|
|Type|plugin|
|Requires||
|Overrides||
|Description|Save current document to a different path/filename|
!!!!!Documentation
<<<
Syntax: {{{<<saveAs>>}}}
<<saveAs>>
<<<
!!!!!Revisions
<<<
2008.04.12 [1.0.1] automatically add "saveAs" to backstage commands
2008.04.12 [1.0.0] initial release - derived from [[NewDocumentPlugin]]
<<<
!!!!!Code
***/
//{{{
version.extensions.SaveAsPlugin= {major: 1, minor: 0, revision: 1, date: new Date(2008,4,12)};

config.macros.saveAs = {
	label: "save as...",
	prompt: "Save current document to a different path/file",
	filePrompt: "Please select or enter a target path/filename",
	defaultFilename: "new.html",
	okmsg: "%0 tiddlers written to %1",
	failmsg: "An error occurred while creating %0",
	handler: function(place,macroName,params)
		{ var btn=createTiddlyButton(place,this.label,this.prompt,this.go); },
	go: function() {
		// make sure we are local
		if (window.location.protocol!="file:") {
			alert(config.messages.notFileUrlError); 
			if (store.tiddlerExists(config.messages.saveInstructions))
				story.displayTiddler(null,config.messages.saveInstructions);
			return;
		}
		// get current saved file
		var currPath=getLocalPath(window.location.href);
		var original=loadFile(currPath);
		if (!original) {
			alert(config.messages.cantSaveError); 
			if (store.tiddlerExists(config.messages.saveInstructions))
				story.displayTiddler(null,config.messages.saveInstructions);
			return;
		}

		// get new target path/filename
		var newPath=currPath;
		var slashpos=newPath.lastIndexOf("/"); if (slashpos==-1) slashpos=newPath.lastIndexOf("\\"); 
		if (slashpos!=-1) newPath=newPath.substr(0,slashpos+1); // trim filename
		var newFile=currPath.substr(newPath.length); // trim path
		if (!newFile.length) newFile=config.macros.saveAs.defaultFilename;
		var target=config.macros.saveAs.ask(config.macros.saveAs.filePrompt,newPath,newFile);
		if (!target) return; // cancelled by user
		// if specified file does not include a path, assemble fully qualified path and filename
		var slashpos=target.lastIndexOf("/"); if (slashpos==-1) slashpos=target.lastIndexOf("\\");
		if (slashpos==-1) target=target+config.macros.saveAs.defaultFilename;
		var link="file:///"+target.replace(/\\/g,'/'); // link for message text

		// write target
		if (saveFile(target,updateOriginal(original)))
			var msg=config.macros.saveAs.okmsg.format([store.getTiddlers("title").length,target]);
		else
			var msg=config.macros.saveAs.failmsg.format([target]);
		clearMessage(); displayMessage(msg,link);
	},
	ask: function(msg,path,file) {
		if(window.Components) { // moz
			try {
				netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
				var nsIFilePicker = window.Components.interfaces.nsIFilePicker;
				var picker = Components.classes['@mozilla.org/filepicker;1'].createInstance(nsIFilePicker);
				picker.init(window, msg, nsIFilePicker.modeSave);
				var thispath = Components.classes['@mozilla.org/file/local;1'].createInstance(Components.interfaces.nsILocalFile);
				thispath.initWithPath(path);
				picker.displayDirectory=thispath;
				picker.defaultExtension='html';
				picker.defaultString=file;
				picker.appendFilters(nsIFilePicker.filterAll|nsIFilePicker.filterText|nsIFilePicker.filterHTML);
				if (picker.show()!=nsIFilePicker.returnCancel) var result=picker.file.persistentDescriptor;
			}
			catch(e) { alert('error during local file access: '+e.toString()) }
		}
		else { // IE
			try { // XP/Vista only
				var s = new ActiveXObject('UserAccounts.CommonDialog');
				s.Filter='All files|*.*|Text files|*.txt|HTML files|*.htm;*.html|';
				s.FilterIndex=3; // default to HTML files;
				s.InitialDir=path;
				s.FileName=file;
				if (s.showOpen()) var result=s.FileName;
			}
			catch(e) { var result=prompt(msg,path+file); } // fallback for non-XP IE
		}
		return result;
	}
};
//}}}
//{{{
// automatically add saveAs to backstage
config.tasks.saveAs = {
	text: "saveAs",
	tooltip: config.macros.saveAs.prompt,
	action: function(){ clearMessage(); config.macros.saveAs.go(); }
}
config.backstageTasks.splice(config.backstageTasks.indexOf("save")+1,0,"saveAs");
//}}}
|width:750px;{{floatleft{<<tiddler NumericalIndex>>}}}{{floatright{<<tiddler NextTiddler with: [[TheElements]]  'previous'>> @@color:#C06;''&laquo; 1 &raquo;'' @@  <<tiddler NextTiddler with: [[TheScientificMethod]]  'next'>>}}}|
The Scientific Method[[ Go there »» |TheScientificMethod]]

{{textjustify{
{{firstletter{
@@padding-right:0.6em;color:#c06;M@@
}}}@@color:#008;an observes the universe as a stranger, making imaginative guesses about its structure and workings. He cannot approach the world without such bold conjectures in the background, for every observed fact presupposes an interpretive focus.{{imgfloatright textcenter{
[img[http://img237.imageshack.us/img237/1408/spiralgalaxyngc4414ng0.jpg]]
{{locLink{[[Spiral Galaxy NGC 4414|Spiral Galaxy NGC 4414]]}}}
}}}


''In science'', these conjectures must be continually and systematically tested;  yet however many tests are successfully passed, any theory can never be viewed as more than an imperfectly corroborated conjecture.  At any time, a new test could __[[falsify|TheScientificMethod]]__ it.  No scientific truth is immune to such a possibility.  Even the basic facts are relatives, always potentially subject to a radical reinterpretation in a new framework.

''Man can  never claim'' to know the real essences of  things. Before the virtual infinitude of the world's phenomena, human ignorance itself is infinite.  The wisest strategy is to learn from one's mistakes and try to remain objective and humble.@@}}}


|width:750px;{{floatleft{<<tiddler NumericalIndex>>}}}{{floatright{<<tiddler NextTiddler with: [[TheElements]]  'previous'>> @@color:#C06;''&laquo; 1 &raquo;'' @@  <<tiddler NextTiddler with: [[TheScientificMethod]]  'next'>>}}}|
{{tablecenter table{
|>|bgcolor:#0cc;@@color:#000;'' /enter search/ ''@@|bgcolor:#0cc; @@color:#008;TW Ver: <<version>>@@|
|>|>|bgcolor(#E3FFE3):<<search>> <<option chkSearchTitles>> Titles <<option chkSearchText>> Text <<option chkSearchTags>>Tags <<option chkHoldSearches>> Hold <<option chkCaseSensitiveSearch>> ~CaseSensitive|
}}}
/***
|''Name:''|SearchOptionsPlugin|
|''Source:''|http://www.TiddlyTools.com/#SearchOptionsPlugin|
|''Author:''|Eric Shulman - ELS Design Studios|
|''License:''|[[Creative Commons Attribution-ShareAlike 2.5 License|http://creativecommons.org/licenses/by-sa/2.5/]]|
|''~CoreVersion:''|2.0.10|

The TiddlyWiki search function normally looks in both tiddler titles and tiddler body content ('text').  However, narrowing the search so that it examines only titles or only text, or expanding the search to include text contained in tiddler tags can be very helpful, especially when searching on common words or phrases.  In addition, it is often useful for the search results to show tiddlers with matching titles before tiddlers that contain matching text or tags.

!!!!!Usage
<<<
This plugin adds checkboxes (see below and in AdvancedOptions) to let you selectively configure the TiddlyWiki search function to just examine any combination of tiddler titles, text, or tags.  It also provides an option to switch the search results order between 'titles mixed in' (default) and 'titles shown first', as well as an option display the search results as a list of links (in an auto-generated "SearchResults" tiddler), rather than actually displaying all matching tiddlers.  You can also enable/disable the "incremental search" (key-by-key searching), so that a search is only initiated when you press the ENTER key or click on the "search:" prompt text.
<<<
!!!!!Configuration
<<<
In additional to the checkboxes in AdvancedOptions, a self-contained control panel is included here for your convenience:
<<option chkSearchTitles>> Search tiddler titles
<<option chkSearchText>> Search tiddler text
<<option chkSearchTags>> Search in tiddler tags
<<option chkSearchFields>> Search in tiddler data fields
<<option chkSearchShadows>> Search shadow tiddlers
<<option chkSearchTitlesFirst>> Show title matches first
<<option chkSearchList>> Show list of matching tiddlers
<<option chkSearchIncremental>> Incremental searching
<<<
!!!!!Installation
<<<
import (or copy/paste) the following tiddlers into your document:
''SearchOptionsPlugin'' (tagged with <<tag systemConfig>>)
^^documentation and javascript for SearchOptionsPlugin handling^^

When installed, this plugin automatically adds checkboxes in the AdvancedOptions shadow tiddler so you can enable/disable the extended search behavior.  However, if you have customized your AdvancedOptions, you will need to manually add {{{<<option chkSearchTitles>>}}},  {{{<<option chkSearchText>>}}} and {{{<<option chkSearchTitlesFirst>>}}}  (with suitable prompt text) to your customized tiddler.
<<<
!!!!!Revision History
<<<
''2007.01.17 [mgray]'' disabled 'no search on empty box' by adding Alert to doSearch() from older version.
''2006.10.10 [2.4.0]'' added support for "search in tiddler data" (tiddler.fields)  Default is to search extended data.
''2006.04.06 [2.3.0]'' added support for "search in shadow tiddlers".  Default is *not* to search in the shadows (i.e.standard TW behavior).  Note: if a shadow tiddler has a 'real' counterpart, only the real tiddler is searched, since the shadow is inaccessible for viewing/editing.
''2006.02.03 [2.2.1]'' rewrite timeout clearing code and blank search text handling to match 2.0.4 core release changes.  note that core no longer permits "blank=all" searches, so neither does this plugin.  To search for all, use "." with text patterns enabled.
''2006.02.02 [2.2.0]'' in search.handler(), KeyHandler() function clears 'left over' timeout when search input is < 3 chars.  Prevents searching on shorter text when shortened by rapid backspaces (<500msec)
''2006.02.01 [2.1.9]'' in Story.prototype.search(), correct inverted logic for using/not using regular expressions when searching
also, blank search text now presents "No search text.  Continue anyway?" confirm() message box, so search on blank can still be processed if desired by user.
''2006.02.01 [2.1.8]'' in doSearch(), added alert/return if search text is blank
''2006.01.20 [2.1.7]'' fixed setting of config.macros.search.reportTitle so that Tweaks can override it.
''2006.01.19 [2.1.6]'' improved SearchResults formatting, added a "search again" form to the report (based on a suggestion from MorrisGray)
define results report title using config.macros.search.reportTitle instead of hard-coding the tiddler title
''2006.01.18 [2.1.5]'' Created separate functions for reportSearchResults(text,matches) and discardSearchResults(), so that other developers can create alternative report generators.
''2006.01.17 [2.1.4]'' Use regExp.search() instead of regExp.test() to scan for matches.  Correctd the problem where only half the matching tiddlers (the odd-numbered ones) were being reported.
''2006.01.15 [2.1.3]'' Added information (date/time, username, search options used) to SearchResults output
''2006.01.10 [2.1.2]'' use displayTiddlers() to render matched tiddlers.  This lets you display multiple matching tiddlers, even if SinglePageModePlugin is enabled.
''2006.01.08 [2.1.1]'' corrected invalid variable reference, "txt.value" to "text" in story.search()
''2006.01.08 [2.1.0]'' re-write to match new store.search(), store.search.handler() and story.search() functions.
''2005.12.30 [2.0.0]'' Upgraded to TW2.0
when rendering SearchResults tiddler, closeTiddler() first to ensure display is refreshed.
''2005.12.26 [1.4.0]'' added option to search for matching text in tiddler tags
''2005.12.21 [1.3.7]'' use \\ to 'escape' single quotes in tiddler titles when generating "Open all matching tiddlers" link.  Also, added access key: "O", to trigger "open all" link.
Based on a suggestion by UdoBorkowski.
''2005.12.18 [1.3.6]'' call displayMessage() AFTER showing matching tiddlers so message is not cleared too soon
''2005.12.17 [1.3.5]'' if no matches found, just display message and delete any existing SearchResults tiddler.
''2005.12.17 [1.3.4]'' use {/%%/{/%%/{  and }/%%/}/%%/} to 'escape' display text in SearchResults tiddler to ensure that formatting contained in search string is not rendered 
Based on a suggestion by UdoBorkowski.
''2005.12.14 [1.3.3]'' tag SearchResults tiddler with 'excludeSearch' so it won't list itself in subsequent searches
Based on a suggestion by UdoBorkowski.
''2005.12.14 [1.3.2]'' added "open all matching tiddlers..." link to search results output.
Based on a suggestion by UdoBorkowski.
''2005.12.10 [1.3.1]'' added "discard search results" link to end of search list tiddler output for quick self-removal of 'SearchResults' tiddler.
''2005.12.01 [1.3.0]'' added chkSearchIncremental to enable/disable 'incremental' searching (i.e., search after each keystroke) (default is ENABLED).
added handling for Enter key so it can be used to start a search.
Based on a suggestion by LyallPearce
''2005.11.25 [1.2.1]'' renamed from SearchTitleOrTextPlugin to SearchOptionsPlugin
''2005.11.25 [1.2.0]'' added chkSearchList option
Based on a suggestion by RodneyGomes
''2005.10.19 [1.1.0]'' added chkSearchTitlesFirst option.
Based on a suggestion by ChristianHauck
''2005.10.18 [1.0.0]'' Initial Release
Based on a suggestion by LyallPearce.
<<<
!!!!!Credits
<<<
This feature was developed by EricShulman from [[ELS Design Studios|http:/www.elsdesign.com]].
<<<
!!!!!Code
***/
//{{{
version.extensions.SearchTitleOrText = {major: 2, minor: 4, revision: 0, date: new Date(2006,10,12)};
//}}}

//{{{
if (config.options.chkSearchTitles==undefined) config.options.chkSearchTitles=true;
if (config.options.chkSearchText==undefined) config.options.chkSearchText=true;
if (config.options.chkSearchTags==undefined) config.options.chkSearchTags=true;
if (config.options.chkSearchFields==undefined) config.options.chkSearchFields=true;
if (config.options.chkSearchTitlesFirst==undefined) config.options.chkSearchTitlesFirst=false;
if (config.options.chkSearchList==undefined) config.options.chkSearchList=false;
if (config.options.chkSearchIncremental==undefined) config.options.chkSearchIncremental=false;
if (config.options.chkSearchShadows==undefined) config.options.chkSearchShadows=false;

config.shadowTiddlers.AdvancedOptions += "\n<<option chkSearchTitles>> Search in tiddler titles";
config.shadowTiddlers.AdvancedOptions += "\n<<option chkSearchText>> Search in tiddler text";
config.shadowTiddlers.AdvancedOptions += "\n<<option chkSearchTags>> Search in tiddler tags";
config.shadowTiddlers.AdvancedOptions += "\n<<option chkSearchFields>> Search in tiddler data fields";
config.shadowTiddlers.AdvancedOptions += "\n<<option chkSearchShadows>> Search in shadow tiddlers";
config.shadowTiddlers.AdvancedOptions += "\n<<option chkSearchTitlesFirst>> Search results show title matches first";
config.shadowTiddlers.AdvancedOptions += "\n<<option chkSearchList>> Search results show list of matching tiddlers";
config.shadowTiddlers.AdvancedOptions += "\n<<option chkSearchIncremental>> Incremental searching";
//}}}

//{{{
if (config.macros.search.reportTitle==undefined)
	config.macros.search.reportTitle="SearchResults";
//}}}

//{{{
config.macros.search.handler = function(place,macroName,params)
{
	var lastSearchText = "";
	var searchTimeout = null;
	var doSearch = function(txt)
		{
		if (!txt.value.length && !confirm("No search text.  Continue anyway?")) { txt.focus(); return; }
			{
			story.search(txt.value,config.options.chkCaseSensitiveSearch,config.options.chkRegExpSearch);
			lastSearchText = txt.value;
			}
		};
	var clickHandler = function(e)
		{
		doSearch(this.nextSibling);
		return false;
		};
	var keyHandler = function(e)
		{
		if (!e) var e = window.event;
		switch(e.keyCode)
			{
			case 13: // ELS: handle enter key
				doSearch(this);
				break;
			case 27:
				this.value = "";
				clearMessage();
				break;
			}
		if (config.options.chkSearchIncremental)
			{
			if(this.value.length > 2)
				{
				if(this.value != lastSearchText)
					{
					if(searchTimeout) clearTimeout(searchTimeout);
					var txt = this;
					searchTimeout = setTimeout(function() {doSearch(txt);},500);
					}
				}
			else
				if(searchTimeout) clearTimeout(searchTimeout);
			}
		};
	var focusHandler = function(e)
		{
		this.select();
		};
	var btn = createTiddlyButton(place,this.label,this.prompt,clickHandler);
	var txt = createTiddlyElement(place,"input",null,null,null);
	if(params[0])
		txt.value = params[0];
	txt.onkeyup = keyHandler;
	txt.onfocus = focusHandler;
	txt.setAttribute("size",this.sizeTextbox);
	txt.setAttribute("accessKey",this.accessKey);
	txt.setAttribute("autocomplete","off");
	if(config.browser.isSafari)
		{
		txt.setAttribute("type","search");
		txt.setAttribute("results","5");
		}
	else
		txt.setAttribute("type","text");
}
//}}}

//{{{
Story.prototype.search = function(text,useCaseSensitive,useRegExp)
{
	highlightHack = new RegExp(useRegExp ? text : text.escapeRegExp(),useCaseSensitive ? "mg" : "img");
	var matches = store.search(highlightHack,"title","excludeSearch");
	var q = useRegExp ? "/" : "'";
	clearMessage();
	if (!matches.length) {
		if (config.options.chkSearchList) discardSearchResults();
		displayMessage(config.macros.search.failureMsg.format([q+text+q]));
	} else {
		if (config.options.chkSearchList) 
			reportSearchResults(text,matches);
		else {
			var titles = []; for(var t=0; t<matches.length; t++) titles.push(matches[t].title);
			this.closeAllTiddlers(); story.displayTiddlers(null,titles);
			displayMessage(config.macros.search.successMsg.format([matches.length, q+text+q]));
		}
	}
	highlightHack = null;
}
//}}}

//{{{
TiddlyWiki.prototype.search = function(searchRegExp,sortField,excludeTag)
{
	var candidates = this.reverseLookup("tags",excludeTag,false,sortField);

	// scan for matching titles first...
	var results = [];
	if (config.options.chkSearchTitles) {
		for(var t=0; t<candidates.length; t++)
			if(candidates[t].title.search(searchRegExp)!=-1)
				results.push(candidates[t]);
		if (config.options.chkSearchShadows)
			for (var t in config.shadowTiddlers)
				if ((t.search(searchRegExp)!=-1) && !store.tiddlerExists(t))
					results.push((new Tiddler()).assign(t,config.shadowTiddlers[t]));
	}
	// then scan for matching text, tags, or field data
	for(var t=0; t<candidates.length; t++) {
		if (config.options.chkSearchText && candidates[t].text.search(searchRegExp)!=-1)
			results.pushUnique(candidates[t]);
		if (config.options.chkSearchTags && candidates[t].tags.join(" ").search(searchRegExp)!=-1)
			results.pushUnique(candidates[t]);
		if (config.options.chkSearchFields && store.forEachField!=undefined) // requires TW2.1 or above
			store.forEachField(candidates[t],
				function(tid,field,val) { if (val.search(searchRegExp)!=-1) results.pushUnique(candidates[t]); },
				true); // extended fields only
	}
	// then check for matching text in shadows
	if (config.options.chkSearchShadows)
		for (var t in config.shadowTiddlers)
			if ((config.shadowTiddlers[t].search(searchRegExp)!=-1) && !store.tiddlerExists(t))
				results.pushUnique((new Tiddler()).assign(t,config.shadowTiddlers[t]));

	// if not 'titles first',  re-sort results to so titles, text, tag and field matches are mixed together
	if(!sortField) sortField = "title";
	var bySortField=function (a,b) {if(a[sortField] == b[sortField]) return(0); else return (a[sortField] < b[sortField]) ? -1 : +1; }
	if (!config.options.chkSearchTitlesFirst) results.sort(bySortField);

	return results;
}
//}}}

// // ''REPORT GENERATOR''
//{{{
if (!window.reportSearchResults) window.reportSearchResults=function(text,matches)
{
	var title=config.macros.search.reportTitle
	var q = config.options.chkRegExpSearch ? "/" : "'";
	var body="\n";

	// summary: nn tiddlers found matching '...', options used
	body+="''"+config.macros.search.successMsg.format([matches.length,q+"{{{"+text+"}}}"+q])+"''\n";
	body+="^^//searched in:// ";
	body+=(config.options.chkSearchTitles?"''titles'' ":"");
	body+=(config.options.chkSearchText?"''text'' ":"");
	body+=(config.options.chkSearchTags?"''tags'' ":"");
	body+=(config.options.chkSearchFields?"''fields'' ":"");
	body+=(config.options.chkSearchShadows?"''shadows'' ":"");
	if (config.options.chkCaseSensitiveSearch||config.options.chkRegExpSearch) {
		body+=" //with options:// ";
		body+=(config.options.chkCaseSensitiveSearch?"''case sensitive'' ":"");
		body+=(config.options.chkRegExpSearch?"''text patterns'' ":"");
	}
	body+="^^";

	// numbered list of links to matching tiddlers
	body+="\n<<<";
	for(var t=0;t<matches.length;t++) body+="\n# [["+matches[t].title+"]]";
	body+="\n<<<\n";

	// open all matches button
	body+="<html><input type=\"button\" href=\"javascript:;\" ";
	body+="onclick=\"story.displayTiddlers(null,["
	for(var t=0;t<matches.length;t++)
		body+="'"+matches[t].title.replace(/\'/mg,"\\'")+"'"+((t<matches.length-1)?", ":"");
	body+="],1);\" ";
	body+="accesskey=\"O\" ";
	body+="value=\"open all matching tiddlers\"></html> ";

	// discard search results button
	body+="<html><input type=\"button\" href=\"javascript:;\" ";
	body+="onclick=\"story.closeTiddler('"+title+"'); store.deleteTiddler('"+title+"'); store.notify('"+title+"',true);\" ";
	body+="value=\"discard "+title+"\"></html>";

	// search again
	body+="\n\n----\n";
	body+="<<search \""+text+"\">> ";
	body+="<<option chkSearchTitles>>titles ";
	body+="<<option chkSearchText>>text ";
	body+="<<option chkSearchTags>>tags";
	body+="<<option chkSearchFields>>fields";
	body+="<<option chkSearchShadows>>shadows";
	body+="<<option chkCaseSensitiveSearch>>case-sensitive ";
	body+="<<option chkRegExpSearch>>text patterns";

	// create/update the tiddler
	var tiddler=store.getTiddler(title); if (!tiddler) tiddler=new Tiddler();
	tiddler.set(title,body,config.options.txtUserName,(new Date()),"excludeLists excludeSearch");
	store.addTiddler(tiddler); story.closeTiddler(title);

	// use alternate "search again" label in <<search>> macro
	var oldprompt=config.macros.search.label;
	config.macros.search.label="search again";

	// render/refresh tiddler
	story.displayTiddler(null,title,1);
	store.notify(title,true);

	// restore standard search label
	config.macros.search.label=oldprompt;

}

if (!window.discardSearchResults) window.discardSearchResults=function()
{
	// remove the tiddler
	story.closeTiddler(config.macros.search.reportTitle);
	store.deleteTiddler(config.macros.search.reportTitle);
}
//}}}
{{{
/%
|Name|SetTiddlerHeight|
|Source|http://www.TiddlyTools.com/#SetTiddlerHeight|
|Version|1.1.0|
|Author|Eric Shulman - ELS Design Studios|
|License|http://www.TiddlyTools.com/#LegalStatements <br>and [[Creative Commons Attribution-ShareAlike 2.5 License|http://creativecommons.org/licenses/by-sa/2.5/]]|
|~CoreVersion|2.1|
|Type|script|
|Requires|InlineJavascriptPlugin|
|Overrides||
|Description|use CSS to set a fixed or percentage height for each tiddler|

usage: <<tiddler SetTiddlerHeight with: height>>
where 'height' is an *optional* param to override the current value (if any)

Put in PageTemplate
<span style='display:none' macro='tiddler SetTiddlerHeight with:
85%'></span>

revisions:
1.1.0 - added support for percentage height
1.0.1 - for non-IE browsers, use "max-height" CSS3 attribute instead of "height" attribute.

%/<script>
	if (config.options.txtTiddlerHeight==undefined) config.options.txtTiddlerHeight="auto";
	if ('$'+'1'!='$1') config.options.txtTiddlerHeight='$1';
	window.setTiddlerHeight=function() {
		// set tiddler height
		var h=config.options.txtTiddlerHeight; if (!h.length) h='auto';
		if (!h.replace(/[0-9]*/,"").length) h+="px"; // add "px" suffix if only numeric value entered
		config.options.txtTiddlerHeight=h;
		var top=findPosY(document.getElementById("tiddlerDisplay"));
		if (h.indexOf("%")!=-1)
			h=((findWindowHeight()-top)*parseInt(h.replace(/%/,""))/100)+"px";
		var heightParam=(config.browser.isIE?"height":"max-height")+":"+h;
		var css='.viewer { '+heightParam+'; overflow:'+(h!='auto'?'auto':'visible')+' !important; }';
		setStylesheet(css,"tiddlerHeightStyles");
		// sync any option field that is showing txtTiddlerHeight value
		var nodes = document.getElementsByTagName("input");
		for(var t=0; t<nodes.length; t++) 
			if(nodes[t].getAttribute("option")=="txtTiddlerHeight")
				nodes[t].value=config.options.txtTiddlerHeight;
	}
	setTimeout('window.setTiddlerHeight()',1); // initialize height
	if (window.addEventListener) window.addEventListener("resize",window.setTiddlerHeight,false);
</script>tiddler height: {{smallform{<<option txtTiddlerHeight>><script>
	var t=place.lastChild
	t.style.width="4em";
	t.style.textAlign="center";
	t.title="enter height using CSS dimensions (px, em, in, cm, %) or 'auto' to fit contents";
	t.onfocus=function(){this.select();};
	// hijack onchange for this field so CSS can be updated on the fly
	t.coreOnChange=t.onchange;
	t.onchange=function() {
		// call original core onchange handler
		if (this.coreOnChange) this.coreOnChange();
		window.setTiddlerHeight();
	};
</script>}}}
}}}
<<search>>
----
<<closeAll>>
<<permaview>>
<<newTiddler>>
<<newJournal "DD MMM YYYY" "journal">>
<<saveChanges>>
<<tiddler TspotSidebar>>

@@padding:0.6em;<<slider chkSliderSideBarTabs SideBarTabsSlider 'tabs »' 'tiddlers, timeline, all, tags, and more'>>@@
<<tabs txtMainTab "Timeline" "Timeline" TabTimeline "All" "All tiddlers" TabAll "Tags" "All tags" TabTags "More" "More lists" TabMore>>

@@color:#0cc;font-size:2.5em;Herbal Magics@@
<html><div id="slantedmenu" padding:top:2em;><ul><li>&nbsp;<a href="javascript:void(0)" onclick="story.closeAllTiddlers();story.displayTiddlers(null,store.getTiddlerText('DefaultTiddlers').readBracketedList())"><span title="Close all tiddlers and open Welcome" style="cursor:pointer">Home</span></a></li><li><<toggleSideBar "" "" hide>></li><li>[[View|SystemContents]]</li><li><span title="systemConfig tiddlers"><<tag New>></span></li><li>[[Tools|ToolTabs]]</li><li><<search>></li><li>[[options|Search]]</li><li><<newTiddler>></li></ul></div></html>
/***
!!!<<gradient horiz #fc3 #fff >><<tiddler RefreshStyles>>&nbsp;SlantedStyle>>/%==================================================%/
***/

/*Credits: Dynamic Drive CSS Library */
/*URL: http://www.dynamicdrive.com/style/ */

#slantedmenu{
  font-size: 95%;
  }

#slantedmenu:after{ /*Add margin between menu and rest of content in Firefox*/
content: "."; 
display: block; 
height: 0; 
clear: both; 
visibility: hidden;
}

#slantedmenu ul{
text-indent: 10px;
padding: 7px 0;
margin: 0;
background-color: #ccc; 
border: 0px solid #f6f;
text-align: center; /*set value to "center" for example to center items*/
}

#slantedmenu ul li{
display: inline;
}

#slantedmenu ul li a{
font-weight: bold;
color: #099;
padding: 3px 0;
padding-right: 5px;
padding-left: 5px;
margin: 0;
text-decoration: none;
background: transparent url("") top right no-repeat;
}

#slantedmenu ul li a:visited{
color: #fa0;
} 

#slantedmenu ul li a:hover{
color: #f00;
background:#fff;
}
{{borderless{
|vertical-align:bottom;<<toolbar fullscreen>><<toggleSideBar>>|<<tiddler NavButtons>>|vertical-align:bottom;[[Open in a new window|http://www.soutaraccountants.com.au]]&nbsp;&raquo;|
----
<html><div align="center"><iframe  src ="http://www.soutaraccountants.com.au" width="100%" align="center" height="600" scrolling="auto" frameborder="0" allowtransparency style="border:none;"></iframe></div></html>}}}
/***
|''Name:''|SparklinePlugin|
|''Description:''|Sparklines macro|
***/
//{{{
if(!version.extensions.SparklinePlugin) {
version.extensions.SparklinePlugin = {installed:true};

//--
//-- Sparklines
//--

config.macros.sparkline = {};
config.macros.sparkline.handler = function(place,macroName,params)
{
	var data = [];
	var min = 0;
	var max = 0;
	var v;
	for(var t=0; t<params.length; t++) {
		v = parseInt(params[t]);
		if(v < min)
			min = v;
		if(v > max)
			max = v;
		data.push(v);
	}
	if(data.length < 1)
		return;
	var box = createTiddlyElement(place,"span",null,"sparkline",String.fromCharCode(160));
	box.title = data.join(",");
	var w = box.offsetWidth;
	var h = box.offsetHeight;
	box.style.paddingRight = (data.length * 2 - w) + "px";
	box.style.position = "relative";
	for(var d=0; d<data.length; d++) {
		var tick = document.createElement("img");
		tick.border = 0;
		tick.className = "sparktick";
		tick.style.position = "absolute";
		tick.src = "data:image/gif,GIF89a%01%00%01%00%91%FF%00%FF%FF%FF%00%00%00%C0%C0%C0%00%00%00!%F9%04%01%00%00%02%00%2C%00%00%00%00%01%00%01%00%40%02%02T%01%00%3B";
		tick.style.left = d*2 + "px";
		tick.style.width = "2px";
		v = Math.floor(((data[d] - min)/(max-min)) * h);
		tick.style.top = (h-v) + "px";
		tick.style.height = v + "px";
		box.appendChild(tick);
	}
};


}
//}}}
/***
!!!<<gradient horiz #FF8888 #ffffff >>&nbsp;~StyleSheet>>/%==================================================%/
***/
/*{{{*/

body {background:#fff;}

.txtMainTab .tabContents #tiddlertimeline li {list-style:none;}
.popup li {list-style:none;}

.header {position:relative; height:60px;}
.header a:hover {background:transparent;}
/*.headerShadow {position: relative;padding: 0em 0em 0em 1em;left: 0px; top: 0px;}
.headerForeground {position:absolute;padding:0.0em 0em 1em 1em; left:0px; top:0px;}*/

.title {
	color:#509;
        font-variant:small-caps;
        font-size:1.4em;
        font-weight:bold; 
        padding-top: 0em;
        padding-left: 0.65em;
}

.editorFooter a {color:#f00;}
.editorFooter a:hover {color:#f00;background:#0cc;}

/*}}}*/
/***
!!!<<gradient horiz #FF8888 #ffffff >>&nbsp;Viewer>>/%==================================================%/
***/
/*{{{*/

.viewer {
        border:0px solid #F6F;
        padding-left: 1em;
        padding-right: 1em;
	padding-top: 0.0em;
        -moz-border-radius: 1em;
}

.viewer a {
color:#04b;
background: transparent;
padding-left:2px;
padding-right:2px;
text-decoration:none;
}

.viewer a:hover {
	background: #fff;
	color: #f00;
}

.viewer hr {
	border: 0px;
	border-top: solid 1px #c06;
	color: #c06;
}

.viewer .tabSelected {
        font-size:0.95em;
        font-weight:bold;
        color:#000;
	text-decoration:none;
        background: #eef;
        border: 1px 1px 0px 1px solid #999;
       
}

.viewer .tabUnselected {
        font-size:0.95em;
        font-weight:bold;
	color:#008;
        background:#adf;/% #f88;%/
        text-decoration:none;
        border:#000;
        border-left: 1px solid #999;
	border-top: 1px solid #999;
	border-right: 1px solid #999;

}

.viewer .button {
	border: 0px solid #fff;
color:#04b;
}


.viewer th, .viewer thead td, .twtable th, .twtable thead td {background:#47f;}

.viewer blockquote {
	border-left: 1px solid #c06;
}

.viewer tr.oddRow { background-color: #eaeaea;}
.viewer tr.evenRow { background-color:#fff; } 


.button {
	border: 0px solid #fff;
}

.textleft { display:block;text-align:left; }
.textleftM { display:block;text-align:left; margin:0;padding:0;border:0;margin-left:.95em; }

.textright { display:block;text-align:right; }
.textcenter { display:block;text-align:center; }
.textjustify { display:block;text-align:justify; }
.textindent { display:block;margin:0;padding:0;border:0;margin-left:2em; }



.whiteLink a { color: #fff;
font-weight:normal; } 
.unboldlink a {font-weight:normal;}
.twLink a { color: #090;
font-weight:normal; }
.locLink a { color: #c06;
font-weight:normal; }
.remLink a { color: #c90;
font-weight:normal; } 

.floatleft{ float:left; }
.floatright{ float:right; }

.firstletter{ float:left; width:0.40em; font-size:400%; font-family:times,arial; line-height:90%; }

#tiddlerTheBath img {
    border: 5px double #999;
    margin: 4px;} 


/***
!!!<<gradient horiz #FF8888 #ffffff >>&nbsp;Nested Style Sheets>>/%==================================================%/
***/

/*}}}*/

[[ButtonStyle]]
[[CustomCSS]]
[[SlantedStyle]]
[[BackstageCSS]]
[[StyleSheetTiddlersBar]]
[[WebStyleSheet]]
[[CenterBoxCSS]]
[[WebPageTLCF]]
[[PageCSS]]
[[PresentCSS]]
[[HideToolbarCSS]]

/*{{{*/

/***
!!!<<gradient horiz #FF8888 #ffffff >>&nbsp;Nested Style Sheets>>/%==================================================%/
***/



#messageArea { 
  background-color: #0ee; 
  border-color: #fa9;
  color:#FFF; 
  border-width: 4px; 
  border-style: dotted; 
  font-size: 90%; 
  padding: 0.5em; 
  -moz-border-radius: 1em; }

#messageArea .button { text-decoration:none; font-weight:bold; background:transparent; border:0px; }
#messageArea .button:hover {background: #F00; }


.header {display:none;}
#sidebar{display:none;}
#mainMenu{display:none;}

#contentWrapper  {margin:0em 0em 0em 0em;padding:0em 0em 0em 0em;}
#displayArea {margin:0em 0em 0em 0em;padding:0em 0em 0em 0em;}

#tiddlersBar {margin:0em 0em 0em 0em;padding:0em 0em 0em 0em;}

.button {color: #ffc;border: 0px solid #fff;}
.button:hover {color: #ffc;background: #60F;border-color: #db4;}
.button:active {color: #fff;background: #18f;border: 0px solid #841;}

/*}}}*/
/*{{{*/
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]];}

.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;}

#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]];}

#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]];}
.toolbar a {color:[[ColorPalette::TertiaryLight]];}
.selected .toolbar a {color:[[ColorPalette::TertiaryMid]];}
.selected .toolbar 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;}

.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]];}
.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:dashed 1px [[ColorPalette::TertiaryDark]]; color:[[ColorPalette::TertiaryDark]];}

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

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

#backstageArea {background:[[ColorPalette::Foreground]]; color:[[ColorPalette::TertiaryMid]];}
#backstageArea a {background:[[ColorPalette::Foreground]]; color:[[ColorPalette::Background]]; border:none;}
#backstageArea a:hover {background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]]; }
#backstageArea a.backstageSelTab {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];}
#backstageButton a {background:none; color:[[ColorPalette::Background]]; border:none;}
#backstageButton a:hover {background:[[ColorPalette::Foreground]]; color:[[ColorPalette::Background]]; border:none;}
#backstagePanel {background:[[ColorPalette::Background]]; border-color: [[ColorPalette::Background]] [[ColorPalette::TertiaryDark]] [[ColorPalette::TertiaryDark]] [[ColorPalette::TertiaryDark]];}
.backstagePanelFooter .button {border:none; color:[[ColorPalette::Background]];}
.backstagePanelFooter .button:hover {color:[[ColorPalette::Foreground]];}
#backstageCloak {background:[[ColorPalette::Foreground]]; opacity:0.6; filter:'alpha(opacity:60)';}
/*}}}*/
/*{{{*/
* 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;}

.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;}

.header {position:relative;}
.header a:hover {background:transparent;}
.headerShadow {position:relative; padding:4.5em 0em 1em 1em; left:-1px; top:-1px;}
.headerForeground {position:absolute; padding:4.5em 0em 1em 1em; left:0px; top:0px;}



.siteTitle {font-size:3em;}
.siteSubtitle {font-size:1.2em;}


#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;}

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

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

.toolbar {text-align:right; 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;}

.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:0.8em 1.0em;}
.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;}

* html #backstage {width:99%;}
* html #backstageArea {width:99%;}
#backstageArea {display:none; position:relative; overflow: hidden; z-index:150; padding:0.3em 0.5em 0.3em 0.5em;}
#backstageToolbar {position:relative;}
#backstageArea a {font-weight:bold; margin-left:0.5em; padding:0.3em 0.5em 0.3em 0.5em;}
#backstageButton {display:none; position:absolute; z-index:175; top:0em; right:0em;}
#backstageButton a {padding:0.1em 0.4em 0.1em 0.4em; margin:0.1em 0.1em 0.1em 0.1em;}
#backstage {position:relative; width:100%; z-index:50;}
#backstagePanel {display:none; z-index:100; position:absolute; margin:0em 3em 0em 3em; padding:1em 1em 1em 1em;}
.backstagePanelFooter {padding-top:0.2em; float:right;}
.backstagePanelFooter a {padding:0.2em 0.4em 0.2em 0.4em;}
#backstageCloak {display:none; z-index:20; position:absolute; width:100%; height:100px;}

.whenBackstage {display:none;}
.backstageVisible .whenBackstage {display:block;}
/*}}}*/
/***
!!!<<gradient horiz #fc3 #fff >><<tiddler RefreshStyles>>&nbsp;StyleSheetTiddlersBar>>/%==================================================%/
***/

#tiddlersBar .button {border:1px; color:#000;}
#tiddlersBar .tab {white-space:nowrap; }
#tiddlersBar {padding : 1em 0.5em 0.05em 1.0em;margin-left:0em;margin-right:0em}
#tiddlersBar {margin-bottom:0px;}

.tabSelected .button:hover {font-size:0.95em;font-weight:bold;color: #f00;background: #fff;padding : 0px 0px 0px 2px;}
.tabUnselected .button:hover {font-size:0.95em;color: #f00;background: #fff; padding : 0px 0px 0px 2px;}

.tabUnselected .button {font-size:0.95em;font-weight:bold;color: #066; padding : 0px 0px 0px 2px;}
.tabSelected .button {font-size:0.95em;font-weight:bold;color: #333;padding : 0px 0px 0px 2px;}

.tabUnselected {
background:url("http://img520.imageshack.us/img520/8688/mainmenugray7ef.gif") repeat-x top left;top left;
background-color:#eee;border:1px #eee solid; border-bottom:0px;font-size:0.95em;font-weight:bold; padding : 2px 5px 2px 7px;margin-left:4px;margin-right:4px;}

.tabSelected {
background:url("http://img258.imageshack.us/img258/8210/selectedbuttonbggi0.gif") repeat-x top left;top left;
background-color:#fcb;color: #a00;border: 1px #c06 solid;border-bottom:0px; font-size:0.95em;font-weight:bold;padding : 2px 5px 2px 7px;margin-left:4px;margin-right:4px;}


.tabUnselected .tabButton {font-weight:bold;font-size:0.75em;color:#333;background:transparent; padding : 0px 2px 0px 2px; margin: 0 0 0 1px;}
.tabSelected .tabButton {font-weight:bold;font-size:0.75em;color:#000;background:transparent;padding : 0px 2px 0px 2px; margin: 0 0 0 1px;}

.tabSelected .tabButton:hover {font-weight:bold;color: #f00;background: #fff;}
.tabUnselected .tabButton:hover {font-weight:bold;color: #f00;background: #fff;}


.tiddler, .tabContents {border-top:0px #fa0 solid;margin-left:0.5em;margin-right:0.5em;}
#tiddlersBar .tab {-moz-border-radius : 0.4em 0.4em 0 0;}

#tiddlersBar  {background: url("http://img299.imageshack.us/img299/9844/vaulttabbarbgvc6.gif"); background-repeat: repeat;line-height: 1.45em;}
.tiddlerDisplay {margin-top:2.0em;margin-right:1em;}




@@color:#C06;''&raquo; &raquo;'' @@   Tabs containing CSS styling code (controls layout and visual style)
|This link closes all open Tabs and loads all stylesheets into new Tabs <html><a href="javascript:void(0)" onclick="story.closeAllTiddlers();story.displayTiddlers(null,store.getTiddlerText('EditingTiddlers').readBracketedList().reverse())"><span title="Close all tiddlers and open all stylesheets" style="cursor:pointer">Load ~StyleSheets</span></a></html>|
----
<script>
// get all tiddlers tagged with "css"
var tids=store.getTaggedTiddlers("css");
// keep only tiddlers *also* tagged with New
var list=[];
for (var t=0; t<tids.length; t++)
   if (tids[t].isTagged("css")) list.push(tids[t]);
// create output list of tiddler titles, one per line
var out="";
for (var t=0; t<list.length; t++) out+="#[["+list[t].title+"]]\n";
return out;
</script> 
<html><hide linebreaks><div id="content"><<tiddler ViewTabs>></html>
@@color:#C06;''&raquo; &raquo;'' @@ Tabs with reserved names (can be 'over-written' with Tabs of the same name making the originals silent; but, they remain unchanged in the core code)
----
{{threecolumns{<<list shadowed>>}}}
|>|bgcolor(#8af):@@color(#000080):''11 tiddlers found matching /{{{backstage}}}/''@@|bgcolor(#8af):  @@color(#A00000): SearchHelp@@ |
|>|>|bgcolor(#E3FFE3):<<search>> <<option chkSearchTitles>> Titles <<option chkSearchText>> Text <<option chkSearchTags>>Tags <<option chkHoldSearches>> Hold |

|&nbsp;|bgcolor(#8af): @@color(#000080):sort by: ''Titles''@@ |bgcolor(#8af): @@color(#000080): ''Size'' (bytes)@@ |bgcolor(#8af): @@color(#000080): ''Tags''@@ |h
| 1|[[BackstageButtonConfig]]| 231|@@systemConfig@@|
| 2|[[BackstageCSS]]| 1918|@@css,system@@|
| 3|[[BackstageCSSOrig]]| 1700|@@@@|
| 4|[[BackstageSidebarTab]]| 235|@@systemConfig@@|
| 5|[[EditingTiddlers]]| 252|@@@@|
| 6|[[SaveAsPlugin]]| 4515|@@systemConfig@@|
| 7|[[StyleSheet]]| 4162|@@css@@|
| 8|[[StyleSheetColors]]| 8511|@@@@|
| 9|[[StyleSheetLayout]]| 6864|@@@@|
| 10|[[TspotSetupPlugin]]| 4271|@@systemConfig@@|
| 11|[[UploadPlugin]]| 21452|@@systemConfig@@|
 @@color:#C06;''&raquo; &raquo;'' @@ ''Click on the tabs above to view''
----
*''AllTabs''  @@color:#C06;''&raquo; &raquo;'' @@ All tabs in alphabetical order
*''[[History]]''  @@color:#C06;''&raquo; &raquo;'' @@ Tabs with history of activity in reverse date order
* [[SystemTabs]] @@color:#C06;''&raquo; &raquo;'' @@ Tabs with reserved names (can be 'on top' appended but not changed)
*[[Programs]]  @@color:#C06;''&raquo; &raquo;'' @@  Tabs containing programs written in ~JavaScript (if tagged as systemConfig begin running a startup.)
*[[Styling]]  @@color:#C06;''&raquo; &raquo;'' @@ Tabs containing CSS styling code (controls layout and visual style)
*ExcludedFromSearches  @@color:#C06;''&raquo; &raquo;'' @@ Tabs not required (or desired) in searches
*ExcludedFromLists  @@color:#C06;''&raquo; &raquo;'' @@ Tabs not required (or desired) in lists
<<tag css>>
/***
|Name|TaggedTemplateTweak|
|Source|http://www.TiddlyTools.com/#TaggedTemplateTweak|
|Version|1.1.0|
|Author|Eric Shulman - ELS Design Studios|
|License|http://www.TiddlyTools.com/#LegalStatements <<br>>and [[Creative Commons Attribution-ShareAlike 2.5 License|http://creativecommons.org/licenses/by-sa/2.5/]]|
|~CoreVersion|2.1|
|Type|plugin|
|Requires||
|Overrides|Story.prototype.chooseTemplateForTiddler()|
|Description|use alternative ViewTemplate/EditTemplate for tiddler's tagged with specific tag values|

The core function, "story.chooseTemplateForTiddler(title,template)" is essentially a "pass-thru" that returns the same template it was given, and is provided by the core so that plugins can customize the template selection logic to select alternative templates, based on whatever programmatic criteria is appropriate.  This tweak extends story.chooseTemplateForTiddler() so that ''whenever a tiddler is marked with a specific tag value, it can be viewed and/or edited using alternatives to the standard tiddler templates.'' 
!!!!!Usage
<<<
Each alternative template is associated with a specific tiddler tag value by using that tag value as a prefix added to the standard TiddlyWiki template titles, [[ViewTemplate]] and [[EditTemplate]].

For example, any tiddlers that are tagged with ''<<tag media>>'' will look for alternative templates named [[mediaViewTemplate]] and [[mediaEditTemplate]].  Additionally, in order to find templates that have proper WikiWord tiddler titles (e.g., [[MediaViewTemplate]] and [[MediaEditTemplate]]), the plugin will also attempt to use a capitalized form of the tag value (e.g., ''Media'') as a prefix.  //This capitalization is for comparison purposes only and will not alter the actual tag values that are stored in the tiddler.//

If no matching alternative template can be found by using //any// of the tiddler's tags (either "as-is" or capitalized), the tiddler defaults to using the appropriate standard [[ViewTemplate]] or [[EditTemplate]] definition.

''To add your own custom templates:''
>First, decide upon a suitable tag keyword to uniquely identify your custom templates and create custom view and/or edit templates using that keyword as a prefix (e.g., "KeywordViewTemplate" and "KeywordEditTemplate").  Then, simply create a tiddler and tag it with your chosen keyword... that's it!  As long as the tiddler is tagged with your keyword, it will be displayed using the corresponding alternative templates.  If you remove the tag or rename/delete the alternative templates, the tiddler will revert to using the standard viewing and editing templates.
<<<
!!!!!Examples
<<<
|Sample tiddler| tag | view template | edit template |
|[[MediaSample - QuickTime]]| <<tag media>> | [[MediaViewTemplate]] | [[MediaEditTemplate]] |
|[[MediaSample - Windows]]| <<tag media>> | [[MediaViewTemplate]] | [[MediaEditTemplate]] |
|[[CDSample]]| <<tag CD>> | [[CDViewTemplate]] | [[CDEditTemplate]] |
|<<newTiddler label:"create new task..." title:SampleTask tag:task text:"Type some text and then press DONE to view the task controls">> | <<tag task>> | [[TaskViewTemplate]] | [[EditTemplate]] |

//(note: if these samples are not present in your document, please visit// http://www.TiddlyTools.com/ //to view these sample tiddlers on-line)//
<<<
!!!!!Installation
<<<
import (or copy/paste) the following tiddlers into your document:
[[WikifyPlugin]]
<<<
!!!!!Revision History
<<<
''2007.06.23 [1.1.0]'' re-written to use automatic 'tag prefix' search instead of hard coded check for each tag.  Allows new custom tags to be used without requiring code changes to this plugin.
''2007.06.11 [1.0.0]'' initial release
<<<
!!!!!Credits
<<<
This feature was developed by Eric L Shulman / ELS Design Studios
<<<
!!!!!Code
***/
//{{{
version.extensions.taggedTemplate= {major: 1, minor: 1, revision: 0, date: new Date(2007,6,18)};
Story.prototype.taggedTemplate_chooseTemplateForTiddler = Story.prototype.chooseTemplateForTiddler
Story.prototype.chooseTemplateForTiddler = function(title,template)
{
	// get default template from core
	var template=this.taggedTemplate_chooseTemplateForTiddler.apply(this,arguments);

	// if the tiddler to be rendered doesn't exist yet, just return core result
	var tiddler=store.getTiddler(title); if (!tiddler) return template;

	// look for template whose prefix matches a tag on this tiddler
	for (t=0; t<tiddler.tags.length; t++) {
		var tag=tiddler.tags[t];
		if (store.tiddlerExists(tag+template)) { template=tag+template; break; }
		// try capitalized tag (to match WikiWord template titles)
		var cap=tag.substr(0,1).toUpperCase()+tag.substr(1);
		if (store.tiddlerExists(cap+template)) { template=cap+template; break; }
	}

	return template;
}
//}}}
|width:750px;{{floatleft{<<tiddler NumericalIndex>>}}}{{floatright{<<tiddler NextTiddler with: [[Astronomy]]  'previous'>> @@color:#C06;''&laquo; 5 &raquo;'' @@  <<tiddler NextTiddler with: [[Science]]  'next'>>}}}|

{{textcenter{
@@color:#00f;&dagger;@@+++[Note About Elements]
{{textleft{
<<<
There are between 88 and 92 elements that appear in nature; figures vary, because a handful of the elements with atomic numbers less than 92 have not actually been found in nature, but were produced in laboratories. (All elements with an atomic number higher than that of uranium, which is 92, are artificial.)
<<<
}}}
===
}}}
{{tablecenter{
|>|>|>|>| !Chemical series of the periodic table |h
|bgcolor:#ff6666; [[Alkali metals|http://www.answers.com/Alkali%20metals]] |bgcolor:#ffdead; [[Alkaline earth metals|http://www.answers.com/topic/alkaline-earth-metal]] |bgcolor:#ffbfff; [[Lanthanides|http://www.answers.com/Lanthanides]] |bgcolor:#ff99cc; [[Actinides|http://www.answers.com/Actinides]] |bgcolor:#ffc0c0; [[Transition metals|http://www.answers.com/Transition%20metals]] |
|bgcolor:#cccccc; [[Poor metals|http://www.answers.com/Poor%20metals]] |bgcolor:#cccc99; [[Metalloids|http://www.answers.com/Metalloids]] |bgcolor:#a0ffa0; [[Nonmetals|http://www.answers.com/Nonmetals]] |bgcolor:#ffff99; [[Halogens|http://www.answers.com/Halogens]] |bgcolor:#c0ffff; [[Noble gases|http://www.answers.com/Noble%20gases]] |
}}}
----
{{tablecenter{
| !Name | !Symbol | !Atomic Number | !Atomic Mass | !Group | !Period |h
|[[Actinium|http://www.answers.com/topic/actinium]]|background-color:#ff99cc; Ac | 89 | [227] |  | 7 |
|[[Aluminium|http://www.answers.com/topic/aluminium]] (@@color:#C06;Aluminum@@) |background-color:#cccccc; Al | 13 | 26.9815386 | 13 | 3 |
|[[Americium|http://www.answers.com/topic/americium]]  |background-color:#ff99cc; Am | 95 | [243] | | 7 |
|[[Antimony|http://www.answers.com/topic/antimony]] (@@color:#C06;Stibium@@)|background-color:#cccc99; Sb | 51 | 121.760 | 15 | 5 |
|@@color:#C06;Argentum&mdash;see Silver@@ | Ag |||||
|[[Argon|http://www.answers.com/topic/argon]]|background-color:#c0ffff; Ar | 18 | 39.948 | 18 | 3 |
|[[Arsenic|http://www.answers.com/topic/arsenic]]|background-color:#cccc99; As | 33 | 74.92160 | 15 | 4 |
|[[Astatine|http://www.answers.com/topic/astatine]]|background-color:#ffff99; At | 85 | [210] | 17 | 6 |
|@@color:#C06;Aurum&mdash;see Gold@@ | Au |||||
|[[Barium|http://www.answers.com/topic/barium]]|background-color:#ffdead; Ba | 	56 | 137.327 | 2 | 6 |
|[[Berkelium |http://www.answers.com/topic/berkelium]]|background-color:#ff99cc; Bk | 97 | [247] || 7 |
|[[Beryllium |http://www.answers.com/topic/beryllium]]|background-color:#ffdead; Be | 4 | 9.012182 | 2 | 2 |
|[[Bismuth |http://www.answers.com/topic/bismuth]]|background-color:#cccccc; Bi | 83 | 208.98040 | 15 | 6 |
|[[Bohrium |http://www.answers.com/topic/bohrium]]|background-color:#ffc0c0; Bh | 107 | [264] | 7 | 7 |
|[[Boron |http://www.answers.com/topic/boron]]|background-color:#cccc99; B | 5 | 10.811 | 13 | 2 |
|[[Bromine |http://www.answers.com/topic/bromine]]|background-color:#ffff99; Br | 35 | 79.904 | 17 | 4 |
|[[Cadmium |http://www.answers.com/topic/cadmium]]|background-color:#ffc0c0; Cd | 48 | 112.411 | 12 | 5 |
|[[Caesium|http://www.answers.com/topic/caesium]] (@@color:#C06;Cesium@@)|background-color:#ff6666; Cs | 55 | 132.9054519 | 1 | 6 |
|[[Calcium |http://www.answers.com/topic/calcium]]|background-color:#ffdead; Ca | 20 | 40.078 | 2 | 4 |
|[[Californium |http://www.answers.com/topic/californium]]|background-color:#ff99cc; Cf | 98 | [251] | | 7 |
|[[Carbon ||http://www.answers.com/topic/carbon]]|background-color:#a0ffa0; C | 6 | 12.010 | 14 | 2 |
|[[Cerium |http://www.answers.com/topic/cerium]]|background-color:#ffbfff; Ce | 58 | 140.116 || 6 |
|[[Chlorine |http://www.answers.com/topic/chlorine]]|background-color:#ffff99; Cl | 17 | 35.453 | 17 | 3 |
|[[Chromium |http://www.answers.com/topic/chromium]]|background-color:#ffc0c0; Cr | 24 | 51.9961 | 6 | 4 |
|[[Cobalt|http://www.answers.com/topic/cobalt]] |background-color:#ffc0c0; Co | 27 | 58.933195 | 9 | 4 |
|[[Copper |http://www.answers.com/topic/copper-3]](@@color:#C06;Cuprum@@) |background-color:#ffc0c0; Cu | 29 | 63.546 | 11 | 4 |
|[[Curium |http://www.answers.com/topic/curium]]|background-color:#ff99cc; Cm | 96 | [247] || 7 |
|[[Darmstadtium |http://www.answers.com/topic/darmstadtium]] |background-color:#ffc0c0; Ds | 110 | [271] | 10 | 7 |
|[[Dubnium |http://www.answers.com/topic/dubnium]] |background-color:#ffc0c0; Db | 105 | [262] | 5 | 7 |
|[[Dysprosium |http://www.answers.com/topic/dysprosium]] |background-color:#ffbfff; Dy | 66 | 162.500 || 6 |
|[[Einsteinium |http://www.answers.com/topic/einsteinium]] |background-color:#ff99cc; Es | 99 | [252] || 7 |
|[[Erbium |http://www.answers.com/topic/erbium]] |background-color:#ffbfff; Er | 68 | 167.259 || 6 |
|[[Europium |http://www.answers.com/topic/europium]] |background-color:#ffbfff; Eu | 63 | 151.964 | | 6 |
|[[Fermium |http://www.answers.com/topic/fermium]] |background-color:#ff99cc; Fm | 100 | [257] || 7 |
|@@color:#C06;Ferrum&mdash;see Iron@@ | Fe ||||
|[[Fluorine |http://www.answers.com/topic/fluorine]] |background-color:#ffff99; F | 9 | 18.9984032 | 17 | 2 |
|[[Francium |http://www.answers.com/topic/francium]] |background-color:#ff6666; Fr | 87 | [223] | 1 | 7 |
|[[Gadolinium |http://www.answers.com/topic/gadolinium]] |background-color:#ffbfff; Gd | 64 | 157.25 || 6 |
|[[Gallium |http://www.answers.com/topic/gallium]] |background-color:#cccccc; Ga | 31 | 69.723 | 13 | 4 |
|[[Germanium |http://www.answers.com/topic/germanium]] |background-color:#cccc99; Ge | 32 | 72.64 | 14 | 4 |
|[[Gold |http://www.answers.com/topic/gold]] (@@color:#C06;Aurum@@) |background-color:#ffc0c0; Au | 79 | 196.966569 | 11 | 6 |
|[[Hafnium |http://www.answers.com/topic/hafnium]]|background-color:#ffc0c0; Hf | 72 | 178.49 | 4 | 6 |
|[[Hassium |http://www.answers.com/topic/hassium]]|background-color:#ffc0c0; Hs | 108 | [277] | 8 | 7 |
|[[Helium |http://www.answers.com/topic/helium]]|background-color:#c0ffff; He | 2 | 4.002602 | 18 | 1 |
|[[Holmium |http://www.answers.com/topic/holmium]]|background-color:#ffbfff; Ho | 67 | 164.930 | | 6 |
|@@color:#C06;Hydrargyrum&mdash;see Mercury@@ | Hg |||||
|[[Hydrogen |http://www.answers.com/topic/hydrogen]]|background-color:#a0ffa0; H | 1 | 1.00794 | 1 | 1 |
|[[Indium |http://www.answers.com/topic/indium]] |background-color:#cccccc; In | 49 | 114.818 | 13 | 5 |
|[[Iodine |http://www.answers.com/topic/iodine]] |background-color:#ffff99; I | 53 | 126.90447 | 17 | 5 |
|[[Iridium |http://www.answers.com/topic/iridium]] |background-color:#ffc0c0; Ir | 77 | 192.217 | 9 | 6 |
|[[Iron |http://www.answers.com/topic/iron]] (@@color:#C06;Ferrum@@) |background-color:#ffc0c0; Fe | 26 | 55.845 | 8 | 4 |
|@@color:#C06;Kalium&mdash;see Potassium@@ | K |||||
|[[Krypton |http://www.answers.com/topic/krypton]] |background-color:#c0ffff; Kr | 36 | 83.798 | 18 | 4 |
|[[Lanthanum |http://www.answers.com/topic/lanthanum]] |background-color:#ffbfff; La | 57 | 138.90547 | | 6 |
|[[Lawrencium |http://www.answers.com/topic/lawrencium]] |background-color:#ff99cc; Lr | 103 | [262] | 3 | 7 |
|[[Lead |http://www.answers.com/topic/lead-10]] (@@color:#C06;Plumbum@@) |background-color:#cccccc; Pb | 82 | 207.2 | 14 | 6 |
|[[Lithium |http://www.answers.com/topic/lithium]] |background-color:#ff6666; Li | 3 | 6.941 | 1 | 2 |
|[[Lutetium |http://www.answers.com/topic/lutetium]] |background-color:#ffbfff; Lu | 71 | 174.967 | 3 | 6 |
|[[Magnesium |http://www.answers.com/topic/magnesium]] |background-color:#ffdead; Mg | 12 | 24.3050 | 2 | 3 |
|[[Manganese |http://www.answers.com/topic/manganese]] |background-color:#ffc0c0; Mn | 25 | 54.938045 | 7 | 4 |
|[[Meitnerium |http://www.answers.com/topic/meitnerium]] |background-color:#ffc0c0; Mt | 109 | [268] | 9 | 7 |
|[[Mendelevium |http://www.answers.com/topic/mendelevium]] |background-color:#ff99cc; Md | 101 | [258] || 7 |
|[[Mercury |http://www.answers.com/topic/mercury]] (@@color:#C06;Hydrargyrum@@)|background-color:#ffc0c0; Hg | 80 | 200.59 | 12 | 6 |
|[[Molybdenum |http://www.answers.com/topic/molybdenum]] |background-color:#ffc0c0; Mo | 42 | 95.94 | 6 | 5 |
|@@color:#C06;Natrium&mdash;see Sodium@@ | Na |||||
|[[Neodymium |http://www.answers.com/topic/neodymium]] |background-color:#ffbfff; Nd | 60 | 144.242 || 6 |
|[[Neon |http://www.answers.com/topic/neon]] |background-color:#c0ffff; Ne | 10 | 20.1797 | 18 | 2 |
|[[Neptunium |http://www.answers.com/topic/neptunium]] |background-color:#ff99cc; Np | 93 | [237] || 7 |
|[[Nickel |http://www.answers.com/topic/nickel]] |background-color:#ffc0c0; Ni | 28 | 58.6934 | 10 | 4 |
|[[Niobium |http://www.answers.com/topic/niobium]] |background-color:#ffc0c0; Nb | 41 | 92.906 | 5 | 5 |
|[[Nitrogen |http://www.answers.com/topic/nitrogen]] |background-color:#a0ffa0; N | 7 | 14.0067 | 15 | 2 |
|[[Nobelium |http://www.answers.com/topic/nobelium]] |background-color:#ff99cc; No | 102 | [259] || 7 |
|[[Osmium |http://www.answers.com/topic/osmium ]]|background-color:#ffc0c0; Os | 76 | 190.23 | 8 | 6 |
|[[Oxygen |http://www.answers.com/topic/oxygen ]]|background-color:#a0ffa0; O | 8 | 15.9994 | 16 | 2 |
|[[Palladium |http://www.answers.com/topic/palladium ]]|background-color:#ffc0c0; Pd | 46 | 106.42 | 10 | 5 |
|@@color:#C06;Plumbum&mdash;see Lead@@ | Pb |||||
|[[Phosphorus |http://www.answers.com/topic/phosphorus ]]|background-color:#a0ffa0; P | 15 | 30.973762 | 15 | 3 |
|[[Platinum |http://www.answers.com/topic/platinum ]]|background-color:#ffc0c0; Pt | 78 | 195.084 | 10 | 6 |
|[[Plutonium |http://www.answers.com/topic/plutonium ]]|background-color:#ff99cc; Pu | 94 | [244] | | 7 |
|[[Polonium |http://www.answers.com/topic/polonium ]]|background-color:#cccc99; Po | 84 | [210] | 16 | 6 |
|[[Potassium(Kalium) |http://www.answers.com/topic/potassium ]]|background-color:#ff6666; K | 19 | 39.0983 | 1 | 4 |
|[[Praseodymium |http://www.answers.com/topic/praseodymium ]]|background-color:#ffbfff; Pr | 59 | 140.90765 || 6 |
|[[Promethium |http://www.answers.com/topic/promethium ]]|background-color:#ffbfff; Pm | 61 | [145] | | 6 |
|[[Protactinium |http://www.answers.com/topic/protactinium ]]|background-color:#ff99cc; Pa | 91 | 231.03588 || 7 |
|[[Radium |http://www.answers.com/topic/radium ]]|background-color:#ffdead; Ra | 88 | [226] | 2 | 7 |
|[[Radon |http://www.answers.com/topic/radon ]]|background-color:#c0ffff; Rn | 86 | [220] || 6 |
|[[Rhenium |http://www.answers.com/topic/rhenium ]]|background-color:#ffc0c0; Re | 75 | 186.207 | 7 | 6 |
|[[Rhodium |http://www.answers.com/topic/rhodium ]]|background-color:#ffc0c0; Rh | 45 | 102.905 | 9 | 5 |
|[[Roentgenium |http://www.answers.com/topic/roentgenium ]]|background-color:#ffc0c0; Rg | 111 | [272] | 11 | 7 |
|[[Rubidium |http://www.answers.com/topic/rubidium ]]|background-color:#ff6666; Rb | 37 | 85.4678 | 1 | 5 |
|[[Ruthenium |http://www.answers.com/topic/ruthenium ]]|background-color:#ffc0c0; Ru | 44 | 101.07 | 8 | 5 |
|[[Rutherfordium |http://www.answers.com/topic/rutherfordium ]]|background-color:#ffc0c0; Rf | 104 | 261 | 4 | 7 |
|[[Samarium |http://www.answers.com/topic/samarium ]]|background-color:#ffbfff; Sm | 62 | 150.36 || 6 |
|[[Scandium |http://www.answers.com/topic/scandium ]]|background-color:#ffc0c0; Sc | 21 | 44.955912 | 3 | 4 |
|[[Seaborgium |http://www.answers.com/topic/seaborgium ]]|background-color:#ffc0c0; Sg | 106 | [266] | 6 | 7 |
|[[Selenium |http://www.answers.com/topic/selenium ]]|background-color:#a0ffa0; Se | 34 | 78.96 | 16 | 4 |
|[[Silicon |http://www.answers.com/topic/silicon ]]|background-color:#cccc99; Si | 14 | 28.0855 | 14 | 3 |
|[[Silver |http://www.answers.com/topic/silver]](@@color:#C06;Argentum@@)|background-color:#ffc0c0; Ag | 47 | 107.8682 | 11 | 5 |
|[[Sodium |http://www.answers.com/topic/sodium]](@@color:#C06;Natrium@@) |background-color:#ff6666; Na | 11 | 22.98976928 | 1 | 3 |
|@@color:#C06;Stannum&mdash;see Tin@@ | Sn |||||
|@@color:#C06;Stibium&mdash;see Antimony@@ | Sb |||||
|[[Strontium |http://www.answers.com/topic/strontium]]|background-color:#ffdead; Sr | 38 | 87.62 | 2 | 5 |
|[[Sulfur |http://www.answers.com/topic/sulfur ]]|background-color:#a0ffa0; S | 16 | 32.065 | 16 | 3 |
|[[Tantalum |http://www.answers.com/topic/tantalum]]|background-color:#ffc0c0; Ta | 73 | 180.94788 | 5 | 6 |
|[[Technetium |http://www.answers.com/topic/technetium ]]|background-color:#ffc0c0; Tc | 43 | [98] | 7 | 5 |
|[[Tellurium |http://www.answers.com/topic/tellurium ]]|background-color:#cccc99; Te | 52 | 127.60 | 16 | 5 |
|[[Terbium |http://www.answers.com/topic/terbium ]]|background-color:#ffbfff; Tb | 65 | 158.92535 || 6 |
|[[Thallium |http://www.answers.com/topic/thallium ]]|background-color:#cccccc; Tl | 81 | 204.3833 | 13 | 6 |
|[[Thorium |http://www.answers.com/topic/thorium ]]|background-color:#ff99cc; Th | 90 | 232.03806 |  | 7 |
|[[Thulium |http://www.answers.com/topic/thulium ]]|background-color:#ffbfff; Tm | 69 | 168.93421 || 6 |
|[[Tin |http://www.answers.com/topic/tin]] (@@color:#C06;Stannum@@) |background-color:#cccccc; Sn | 50 | 118.710 | 14 | 5 |
|[[Titanium |http://www.answers.com/topic/titanium ]]|background-color:#ffc0c0; Ti | 22 | 47.867 | 4 | 4 |
|[[Tungsten |http://www.answers.com/topic/tungsten]](@@color:#C06;Wolfram@@) |background-color:#ffc0c0; W | 74 | 183.84 | 6 | 6 |
|[[Ununbium |http://www.answers.com/topic/ununbium]]|background-color:#ffc0c0; Uub | 112 | [285] | 12 | 7 |
|[[Ununhexium |http://www.answers.com/topic/ununhexium ]]|background-color:#cccccc; Uuh | 116 | [292] | 16 | 7 |
|[[Ununoctium |http://www.answers.com/topic/ununoctium ]]|background-color:#c0ffff; Uuo | 118 | [294] | 18 | 7 |
|[[Ununpentium |http://www.answers.com/topic/ununpentium ]]|background-color:#cccccc; Uup | 115 | [288] | 15 | 7 |
|[[Ununquadium |http://www.answers.com/topic/ununquadium ]]|background-color:#cccccc; Uuq | 114 | [289] | 14 | 7 |
|[[Ununseptium |http://www.answers.com/main/ntquery?s=Ununseptium&gwp=13]] |background-color:#ffff99; Uus | 117 | undiscovered | 17 | 7 |
|[[Ununtrium |http://www.answers.com/topic/ununtrium ]]|background-color:#cccccc; Uut | 113 | [284] | 13 | 7 |
|[[Uranium |http://www.answers.com/topic/uranium ]]|background-color:#ff99cc; U | 92 | 238.02891 || 7 |
|[[Vanadium |http://www.answers.com/topic/vanadium ]]|background-color:#ffc0c0; V | 23 | 50.9415 | 5 | 4 |
|@@color:#C06;Wolfram&mdash;see Tungsten@@ | W |&nbsp;|&nbsp;|&nbsp;|&nbsp;|
|[[Xenon |http://www.answers.com/topic/xenon ]]|background-color:#c0ffff; Xe | 54 | 131.293 | 18 | 5 |
|[[Ytterbium |http://www.answers.com/topic/ytterbium ]]|background-color:#ffbfff; Yb | 70 | 173.04 || 6 |
|[[Yttrium |http://www.answers.com/topic/yttrium  ]]|background-color:#ffc0c0; Y | 39 | 88.90585 | 3 | 5 |
|[[Zinc |http://www.answers.com/topic/zinc]]|background-color:#ffc0c0; Zn | 30 | 65.409 | 12 | 4 |
|[[Zirconium |http://www.answers.com/topic/zirconium ]]|background-color:#ffc0c0; Zr | 40 | 91.224 | 4 | 5 |
----
{{tablecenter{
|>|>|>|>| !Chemical series of the periodic table |h
|bgcolor:#ff6666; [[Alkali metals|http://www.answers.com/Alkali%20metals]] |bgcolor:#ffdead; [[Alkaline earth metals|http://www.answers.com/topic/alkaline-earth-metal]] |bgcolor:#ffbfff; [[Lanthanides|http://www.answers.com/Lanthanides]] |bgcolor:#ff99cc; [[Actinides|http://www.answers.com/Actinides]] |bgcolor:#ffc0c0; [[Transition metals|http://www.answers.com/Transition%20metals]] |
|bgcolor:#cccccc; [[Poor metals|http://www.answers.com/Poor%20metals]] |bgcolor:#cccc99; [[Metalloids|http://www.answers.com/Metalloids]] |bgcolor:#a0ffa0; [[Nonmetals|http://www.answers.com/Nonmetals]] |bgcolor:#ffff99; [[Halogens|http://www.answers.com/Halogens]] |bgcolor:#c0ffff; [[Noble gases|http://www.answers.com/Noble%20gases]] |
}}}
}}}
|width:750px;{{floatleft{<<tiddler NumericalIndex>>}}}{{floatright{<<tiddler NextTiddler with: [[Anthropology]]  'previous'>> @@color:#C06;''&laquo; 5 &raquo;'' @@  <<tiddler NextTiddler with: [[Science]]  'next'>>}}}|

|width:750px;{{floatleft{<<tiddler NumericalIndex>>}}}{{floatright{[[previous|Science]] @@color:#C06;''&laquo; 2 &raquo;'' @@  <<tiddler NextTiddler with: [[Anthropology]]  'next'>>}}}|
<html><div class="container">!!!<<gradient horiz #0cc #fff>>&nbsp;The Scientific Method>><div class="left">{{firstletter{
@@color:#c06;K@@
}}}''arl Popper'' CH, MA, Ph.D., D.LITT, FBA, FRS (July 28, 1902 – September 17, 1994), {{imgfloatright{
[img[Click to go to a web page on Popper.|http://img391.imageshack.us/img391/362/kpopperqk2.jpg][http://www.eeng.dcu.ie/~tkpw/]] }}} was an Austrian and later a British  philosopher and a professor at the London School of Economics. He is counted among the most wise and influential philosophers of science of the 20th century, and also wrote extensively on social and political philosophy Popper is perhaps best known 
for repudiating the classical observationalist-inductivist account of scientific method by advancing ''empirical falsifiability'' as the criterion for distinguishing scientific theory from non-science. 

In 1934 he published his first book, Logik der Forschung (The Logic of Scientific Discovery), in which he criticised psychologism, naturalism, inductionism, and logical positivism, and put forth his theory of potential ''falsifiability'' being the criterion for what should be considered science.<p>[[Karl Popper Links and Resources|http://lachlan.bluehaze.com.au/popper.html]]<br>[[Wikipedia on the scientific method|http://en.wikipedia.org/wiki/Scientific_method]]
</div><div class="content">|bgcolor:#fef;padding:5px;color:#f00;"Falsifiable" means subject to critical analysis and testing and capable of being disproved on the basis of such.|
|bgcolor:#FFF;padding:5px;@@color:#060;Falsifiability is an important concept in the philosophy of science that amounts to the apparently paradoxical idea that a proposition or theory cannot be scientific if it does not admit consideration of the possibility of its being false.@@|

<<<
''Falsifiable does not mean "false"''. For a proposition to be falsifiable, it must be possible in principle to make an observation that would show the proposition to be false, even if that observation has not been made. For example, the proposition "All crows are black" would be falsified by observing one white crow. 
<<<

{{textjustify{
''Wikipedia goes on to offer a well-known example of a non-falsifiable idea, solipsism:''
<<<
''In philosophy, solipsism is, in essence, non-falsifiable.'' Solipsism claims that the Universe exists entirely in one's own mind. This can straightforwardly be seen not to be falsifiable, because whatever evidence one might adduce that is contrary to solipsism can be, after all, dismissed as something that is "in one's mind." In other words, there is no evidence that one could possibly adduce that would be inconsistent with the proposition that everything that exists, exists in one's own mind.
<<<

''In his collection Conjectures and Refutations: The Growth of Scientific Knowledge''  Popper writes, "Science must begin with myths, and with the criticism of myths; neither with the collection of observations, nor with the invention of experiments, but with the critical discussion of myths, and of magical techniques and practices. The scientific tradition is distinguished from the pre-scientific tradition in having two layers. Like the latter, it passes on its theories; but it also passes on a critical attitude towards them. The theories are passed on, not as dogmas, but rather with the challenge to discuss them and improve upon them." 
}}}
</div>
</div>

<div class="footer">Copyright 2007 by M.S.Gray (all forms of plagiarism excepted)</div></div></div>
</html>
|width:750px;{{floatleft{<<tiddler NumericalIndex>>}}}{{floatright{[[previous|Science]] @@color:#C06;''&laquo; 2 &raquo;'' @@  <<tiddler NextTiddler with: [[Anthropology]]  'next'>>}}}|
/***
|''Name:''|TiddlersBarPlugin|
|''Description:''|A bar to switch between tiddlers through tabs (like browser tabs bar).|
|''Version:''|1.2.5|
|''Date:''|Jan 18,2008|
|''Source:''|http://visualtw.ouvaton.org/VisualTW.html|
|''Author:''|Pascal Collin|
|''License:''|[[BSD open source license|License]]|
|''~CoreVersion:''|2.1.0|
|''Browser:''|Firefox 2.0; InternetExplorer 6.0, others|
!Demos
On [[homepage|http://visualtw.ouvaton.org/VisualTW.html]], open several tiddlers to use the tabs bar.
!Installation
#import this tiddler from [[homepage|http://visualtw.ouvaton.org/VisualTW.html]] (tagged as systemConfig)
#save and reload
#''if you're using a custom [[PageTemplate]]'', add {{{<div id='tiddlersBar' refresh='none' ondblclick='config.macros.tiddlersBar.onTiddlersBarAction(event)'></div>}}} before {{{<div id='tiddlerDisplay'></div>}}}
#optionally, adjust StyleSheetTiddlersBar
!Tips
*Doubleclick on the tiddlers bar (where there is no tab) create a new tiddler.
*Tabs include a button to close {{{x}}} or save {{{!}}} their tiddler.
*By default, click on the current tab close all others tiddlers.
!Configuration options 
<<option chkDisableTabsBar>> Disable the tabs bar (to print, by example).
<<option chkHideTabsBarWhenSingleTab >> Automatically hide the tabs bar when only one tiddler is displayed. 
<<option txtSelectedTiddlerTabButton>> ''selected'' tab command button.
<<option txtPreviousTabKey>> previous tab access key.
<<option txtNextTabKey>> next tab access key.
!Code
***/
//{{{
config.options.chkDisableTabsBar = config.options.chkDisableTabsBar ? config.options.chkDisableTabsBar : false;
config.options.chkHideTabsBarWhenSingleTab  = config.options.chkHideTabsBarWhenSingleTab  ? config.options.chkHideTabsBarWhenSingleTab  : false;
config.options.txtSelectedTiddlerTabButton = config.options.txtSelectedTiddlerTabButton ? config.options.txtSelectedTiddlerTabButton : " ";
config.options.txtPreviousTabKey = config.options.txtPreviousTabKey ? config.options.txtPreviousTabKey : "";
config.options.txtNextTabKey = config.options.txtNextTabKey ? config.options.txtNextTabKey : "";
config.macros.tiddlersBar = {
	tooltip : "see ",
	tooltipClose : "click here to close this tab",
	tooltipSave : "click here to save this tab",
	promptRename : "Enter tiddler new name",
	currentTiddler : "",
	previousState : false,
	previousKey : config.options.txtPreviousTabKey,
	nextKey : config.options.txtNextTabKey,	
	tabsAnimationSource : null, //use document.getElementById("tiddlerDisplay") if you need animation on tab switching.
	handler: function(place,macroName,params) {
		var previous = null;
		if (config.macros.tiddlersBar.isShown())
			story.forEachTiddler(function(title,e){
				if (title==config.macros.tiddlersBar.currentTiddler){
					var d = createTiddlyElement(null,"span",null,"tab tabSelected");
					config.macros.tiddlersBar.createActiveTabButton(d,title);
					if (previous && config.macros.tiddlersBar.previousKey) previous.setAttribute("accessKey",config.macros.tiddlersBar.nextKey);
					previous = "active";
				}
				else {
					var d = createTiddlyElement(place,"span",null,"tab tabUnselected");
					var btn = createTiddlyButton(d,title,config.macros.tiddlersBar.tooltip + title,config.macros.tiddlersBar.onSelectTab);
					btn.setAttribute("tiddler", title);
					if (previous=="active" && config.macros.tiddlersBar.nextKey) btn.setAttribute("accessKey",config.macros.tiddlersBar.previousKey);
					previous=btn;
				}
				var isDirty =story.isDirty(title);
				var c = createTiddlyButton(d,isDirty ?" ":" ",isDirty?config.macros.tiddlersBar.tooltipSave:config.macros.tiddlersBar.tooltipClose, isDirty ? config.macros.tiddlersBar.onTabSave : config.macros.tiddlersBar.onTabClose,"tabButton");
				c.setAttribute("tiddler", title);
				if (place.childNodes) {
					place.insertBefore(document.createTextNode(" "),place.firstChild); // to allow break line here when many tiddlers are open
					place.insertBefore(d,place.firstChild); 
				}
				else place.appendChild(d);
			})
	}, 
	refresh: function(place,params){
		removeChildren(place);
		config.macros.tiddlersBar.handler(place,"tiddlersBar",params);
		if (config.macros.tiddlersBar.previousState!=config.macros.tiddlersBar.isShown()) {
			story.refreshAllTiddlers();
			if (config.macros.tiddlersBar.previousState) story.forEachTiddler(function(t,e){e.style.display="";});
			config.macros.tiddlersBar.previousState = !config.macros.tiddlersBar.previousState;
		}
	},
	isShown : function(){
		if (config.options.chkDisableTabsBar) return false;
		if (!config.options.chkHideTabsBarWhenSingleTab) return true;
		var cpt=0;
		story.forEachTiddler(function(){cpt++});
		return (cpt>1);
	},
	selectNextTab : function(){  //used when the current tab is closed (to select another tab)
		var previous="";
		story.forEachTiddler(function(title){
			if (!config.macros.tiddlersBar.currentTiddler) {
				story.displayTiddler(null,title);
				return;
			}
			if (title==config.macros.tiddlersBar.currentTiddler) {
				if (previous) {
					story.displayTiddler(null,previous);
					return;
				}
				else config.macros.tiddlersBar.currentTiddler=""; 	// so next tab will be selected
			}
			else previous=title;
			});		
	},
	onSelectTab : function(e){
		var t = this.getAttribute("tiddler");
		if (t) story.displayTiddler(null,t);
		return false;
	},
	onTabClose : function(e){
		var t = this.getAttribute("tiddler");
		if (t) {
			if(story.hasChanges(t) && !readOnly) {
				if(!confirm(config.commands.cancelTiddler.warning.format([t])))
				return false;
			}
			story.closeTiddler(t);
		}
		return false;
	},
	onTabSave : function(e) {
		var t = this.getAttribute("tiddler");
		if (!e) e=window.event;
		if (t) config.commands.saveTiddler.handler(e,null,t);
		return false;
	},
	onSelectedTabButtonClick : function(event,src,title) {
		var t = this.getAttribute("tiddler");
		if (!event) event=window.event;
		if (t && config.options.txtSelectedTiddlerTabButton && config.commands[config.options.txtSelectedTiddlerTabButton])
			config.commands[config.options.txtSelectedTiddlerTabButton].handler(event, src, t);
		return false;
	},
	onTiddlersBarAction: function(event) {
		var source = event.target ? event.target.id : event.srcElement.id; // FF uses target and IE uses srcElement;
		if (source=="tiddlersBar") story.displayTiddler(null,'New Tiddler',DEFAULT_EDIT_TEMPLATE,false,null,null);
	},
	createActiveTabButton : function(place,title) {
		if (config.options.txtSelectedTiddlerTabButton && config.commands[config.options.txtSelectedTiddlerTabButton]) {
			var btn = createTiddlyButton(place, title, config.commands[config.options.txtSelectedTiddlerTabButton].tooltip ,config.macros.tiddlersBar.onSelectedTabButtonClick);
			btn.setAttribute("tiddler", title);
		}
		else
			createTiddlyText(place,title);
	}
}

story.coreCloseTiddler = story.coreCloseTiddler? story.coreCloseTiddler : story.closeTiddler;
story.coreDisplayTiddler = story.coreDisplayTiddler ? story.coreDisplayTiddler : story.displayTiddler;

story.closeTiddler = function(title,animate,unused) {
	if (title==config.macros.tiddlersBar.currentTiddler)
		config.macros.tiddlersBar.selectNextTab();
	story.coreCloseTiddler(title,false,unused); //disable animation to get it closed before calling tiddlersBar.refresh
	var e=document.getElementById("tiddlersBar");
	if (e) config.macros.tiddlersBar.refresh(e,null);
}

story.displayTiddler = function(srcElement,tiddler,template,animate,unused,customFields,toggle){
	story.coreDisplayTiddler(config.macros.tiddlersBar.tabsAnimationSource,tiddler,template,animate,unused,customFields,toggle);
	var title = (tiddler instanceof Tiddler)? tiddler.title : tiddler;  
	if (config.macros.tiddlersBar.isShown()) {
		story.forEachTiddler(function(t,e){
			if (t!=title) e.style.display="none";
			else e.style.display="";
		})
		config.macros.tiddlersBar.currentTiddler=title;
	}
	var e=document.getElementById("tiddlersBar");
	if (e) config.macros.tiddlersBar.refresh(e,null);
}

var coreRefreshPageTemplate = coreRefreshPageTemplate ? coreRefreshPageTemplate : refreshPageTemplate;
refreshPageTemplate = function(title) {
	coreRefreshPageTemplate(title);
	if (config.macros.tiddlersBar) config.macros.tiddlersBar.refresh(document.getElementById("tiddlersBar"));
}

ensureVisible=function (e) {return 0} //disable bottom scrolling (not useful now)

config.shadowTiddlers.StyleSheetTiddlersBar = "/*{{{*/\n";
config.shadowTiddlers.StyleSheetTiddlersBar += "#tiddlersBar .button {border:0}\n";
config.shadowTiddlers.StyleSheetTiddlersBar += "#tiddlersBar .tab {white-space:nowrap}\n";
config.shadowTiddlers.StyleSheetTiddlersBar += "#tiddlersBar {padding : 1em 0.5em 2px 0.5em}\n";
config.shadowTiddlers.StyleSheetTiddlersBar += ".tabUnselected .tabButton, .tabSelected .tabButton {padding : 0 2px 0 2px; margin: 0 0 0 4px;}\n";
config.shadowTiddlers.StyleSheetTiddlersBar += ".tiddler, .tabContents {border:1px [[ColorPalette::TertiaryPale]] solid;}\n";
config.shadowTiddlers.StyleSheetTiddlersBar +="/*}}}*/";
store.addNotification("StyleSheetTiddlersBar", refreshStyles);

config.refreshers.none = function(){return true;}
config.shadowTiddlers.PageTemplate=config.shadowTiddlers.PageTemplate.replace(/<div id='tiddlerDisplay'><\/div>/m,"<div id='tiddlersBar' refresh='none' ondblclick='config.macros.tiddlersBar.onTiddlersBarAction(event)'></div>\n<div id='tiddlerDisplay'></div>");

//}}}
/***

|Name|ToggleSideBarMacro|
|Created by|SaqImtiaz|
|Location|http://tw.lewcid.org/#ToggleSideBarMacro|
|Version|1.0|
|Requires|~TW2.x|
!Description:
Provides a button for toggling visibility of the SideBar. You can choose whether the SideBar should initially be hidden or displayed.

!Demo
<<toggleSideBar "Toggle Sidebar">>

!Usage:
{{{<<toggleSideBar>>}}} <<toggleSideBar>>
additional options:
{{{<<toggleSideBar label tooltip show/hide>>}}} where:
label = custom label for the button,
tooltip = custom tooltip for the button,
show/hide = use one or the other, determines whether the sidebar is shown at first or not.
(default is to show the sidebar)

You can add it to your tiddler toolbar, your MainMenu, or where you like really.
If you are using a horizontal MainMenu and want the button to be right aligned, put the following in your StyleSheet:
{{{ .HideSideBarButton {float:right;} }}}

!History
*23-07-06: version 1.0: completely rewritten, now works with custom stylesheets too, and easier to customize start behaviour. 
*20-07-06: version 0.11
*27-04-06: version 0.1: working.

!Code
***/
//{{{
config.macros.toggleSideBar={};

config.macros.toggleSideBar.settings={
         styleHide :  ".title, .toolbar { display: none;}\n"+"#contentWrapper #displayArea { margin-right: 0em !important;}}\n"+"",
         styleShow : " ",
         arrow1: "Edit",
         arrow2: "Editing mode »"
};

config.macros.toggleSideBar.handler=function (place,macroName,params,wikifier,paramString,tiddler)
{
          var tooltip= params[1]||'toggle sidebar';
          var mode = (params[2] && params[2]=="hide")? "hide":"show";
          var arrow = (mode == "hide")? this.settings.arrow1:this.settings.arrow2;
          var label= (params[0]&&params[0]!='.')?params[0]+" "+arrow:arrow;
          var theBtn = createTiddlyButton(place,label,tooltip,this.onToggleSideBar,"button HideSideBarButton");
          if (mode == "hide")
             { 
             (document.getElementById("sidebar")).setAttribute("toggle","hide");
              setStylesheet(this.settings.styleHide,"ToggleSideBarStyles");
             }
};

config.macros.toggleSideBar.onToggleSideBar = function(){
          var sidebar = document.getElementById("sidebar");
          var settings = config.macros.toggleSideBar.settings;
          if (sidebar.getAttribute("toggle")=='hide')
             {
              setStylesheet(settings.styleShow,"ToggleSideBarStyles");
              sidebar.setAttribute("toggle","show");
              this.firstChild.data= (this.firstChild.data).replace(settings.arrow1,settings.arrow2);
              }
          else
              {    
               setStylesheet(settings.styleHide,"ToggleSideBarStyles");
               sidebar.setAttribute("toggle","hide");
               this.firstChild.data= (this.firstChild.data).replace(settings.arrow2,settings.arrow1);
              }

     return false;
}

setStylesheet(".HideSideBarButton .button {font-weight:bold; padding: 0 5px;}\n","ToggleSideBarButtonStyles");

//}}}
/***

|Name|ToggleSideBarMacro|
|Created by|SaqImtiaz|
|Location|http://tw.lewcid.org/#ToggleSideBarMacro|
|Version|1.0|
|Requires|~TW2.x|
!Description:
Provides a button for toggling visibility of the SideBar. You can choose whether the SideBar should initially be hidden or displayed.

!Demo
<<toggleSideBar "Toggle Sidebar">>

!Usage:
{{{<<toggleSideBar>>}}} <<toggleSideBar>>
additional options:
{{{<<toggleSideBar label tooltip show/hide>>}}} where:
label = custom label for the button,
tooltip = custom tooltip for the button,
show/hide = use one or the other, determines whether the sidebar is shown at first or not.
(default is to show the sidebar)

You can add it to your tiddler toolbar, your MainMenu, or where you like really.
If you are using a horizontal MainMenu and want the button to be right aligned, put the following in your StyleSheet:
{{{ .HideSideBarButton {float:right;} }}}

!History
*23-07-06: version 1.0: completely rewritten, now works with custom stylesheets too, and easier to customize start behaviour. 
*20-07-06: version 0.11
*27-04-06: version 0.1: working.

!Code
***/
//{{{
config.macros.toggleSideBar={};

config.macros.toggleSideBar.settings={
         styleHide :  "#tiddlerTheElements { display: none;}\n"+"#contentWrapper #displayArea { margin-right: 0em !important;}}\n"+"",
         styleShow : " ",
         arrow1: "Header «",
         arrow2: "Header »"
};

config.macros.toggleSideBar.handler=function (place,macroName,params,wikifier,paramString,tiddler)
{
          var tooltip= params[1]||'toggle sidebar';
          var mode = (params[2] && params[2]=="hide")? "hide":"show";
          var arrow = (mode == "hide")? this.settings.arrow1:this.settings.arrow2;
          var label= (params[0]&&params[0]!='.')?params[0]+" "+arrow:arrow;
          var theBtn = createTiddlyButton(place,label,tooltip,this.onToggleSideBar,"button HideSideBarButton");
          if (mode == "hide")
             { 
             (document.getElementById("sidebar")).setAttribute("toggle","hide");
              setStylesheet(this.settings.styleHide,"ToggleSideBarStyles");
             }
};

config.macros.toggleSideBar.onToggleSideBar = function(){
          var sidebar = document.getElementById("sidebar");
          var settings = config.macros.toggleSideBar.settings;
          if (sidebar.getAttribute("toggle")=='hide')
             {
              setStylesheet(settings.styleShow,"ToggleSideBarStyles");
              sidebar.setAttribute("toggle","show");
              this.firstChild.data= (this.firstChild.data).replace(settings.arrow1,settings.arrow2);
              }
          else
              {    
               setStylesheet(settings.styleHide,"ToggleSideBarStyles");
               sidebar.setAttribute("toggle","hide");
               this.firstChild.data= (this.firstChild.data).replace(settings.arrow2,settings.arrow1);
              }

     return false;
}

setStylesheet(".HideSideBarButton .button {font-weight:bold; padding: 0 5px;}\n","ToggleSideBarButtonStyles");

//}}}
/***

|Name|ToggleslantedmenuMacro|
|Created by|SaqImtiaz|
|Location|http://tw.lewcid.org/|
|Version|1.0|
|Requires|~TW2.x|
!Description:

{{c06{Modified by Morris Gray to toggle the Menu/Search etc. hidden/visible}}}

Provides a button for toggling visibility of the slantedmenu. You can choose whether the slantedmenu should initially be hidden or displayed.

!Demo
<<toggleslantedmenu "Toggle Sidebar">>

!Usage:
{{{<<toggleslantedmenu>>}}} <<toggleslantedmenu>>
additional options:
{{{<<toggleslantedmenu label tooltip show/hide>>}}} where:
label = custom label for the button,
tooltip = custom tooltip for the button,
show/hide = use one or the other, determines whether the sidebar is shown at first or not.
(default is to show the sidebar)

You can add it to your tiddler toolbar, your MainMenu, or where you like really.
If you are using a horizontal MainMenu and want the button to be right aligned, put the following in your StyleSheet:
{{{ .HideslantedmenuButton {float:right;} }}}

!History
*23-07-06: version 1.0: completely rewritten, now works with custom stylesheets too, and easier to customize start behaviour. 
*20-07-06: version 0.11
*27-04-06: version 0.1: working.

!Code
***/
//{{{
config.macros.toggleslantedmenu={};

config.macros.toggleslantedmenu.settings={
         styleHide :  ".title, .toolbar, #slantedmenu { display: none;}\n"+"#contentWrapper #displayArea { margin-right: 0em !important;}}\n"+"",
         styleShow : " ",
         arrow1: "menu",
         arrow2: "menu"
};

config.macros.toggleslantedmenu.handler=function (place,macroName,params,wikifier,paramString,tiddler)
{
          var tooltip= params[1]||'toggle menu hidden/visible';
          var mode = (params[2] && params[2]=="hide")? "hide":"show";
          var arrow = (mode == "hide")? this.settings.arrow1:this.settings.arrow2;
          var label= (params[0]&&params[0]!='.')?params[0]+" "+arrow:arrow;
          var theBtn = createTiddlyButton(place,label,tooltip,this.onToggleslantedmenu,"button HideslantedmenuButton");
          if (mode == "hide")
             { 
             (document.getElementById("sidebar")).setAttribute("toggle","hide");
              setStylesheet(this.settings.styleHide,"ToggleslantedmenuStyles");
             }
};

config.macros.toggleslantedmenu.onToggleslantedmenu = function(){
          var sidebar = document.getElementById("sidebar");
          var settings = config.macros.toggleslantedmenu.settings;
          if (sidebar.getAttribute("toggle")=='hide')
             {
              setStylesheet(settings.styleShow,"ToggleslantedmenuStyles");
              sidebar.setAttribute("toggle","show");
              this.firstChild.data= (this.firstChild.data).replace(settings.arrow1,settings.arrow2);
              }
          else
              {    
               setStylesheet(settings.styleHide,"ToggleslantedmenuStyles");
               sidebar.setAttribute("toggle","hide");
               this.firstChild.data= (this.firstChild.data).replace(settings.arrow2,settings.arrow1);
              }

     return false;
}

setStylesheet(".HideslantedmenuButton .button {font-weight:bold; padding: 0 5px;}\n","ToggleslantedmenuButtonStyles");

//}}}
/***

|Name|ToggleSideBarMacro|
|Created by|SaqImtiaz|
|Location|http://tw.lewcid.org/#ToggleSideBarMacro|
|Version|1.0|
|Requires|~TW2.x|
!Description:
Provides a button for toggling visibility of the SideBar. You can choose whether the SideBar should initially be hidden or displayed.

!Demo
<<toggleSideBar "Toggle Sidebar">>

!Usage:
{{{<<toggleSideBar>>}}} <<toggleSideBar>>
additional options:
{{{<<toggleSideBar label tooltip show/hide>>}}} where:
label = custom label for the button,
tooltip = custom tooltip for the button,
show/hide = use one or the other, determines whether the sidebar is shown at first or not.
(default is to show the sidebar)

You can add it to your tiddler toolbar, your MainMenu, or where you like really.
If you are using a horizontal MainMenu and want the button to be right aligned, put the following in your StyleSheet:
{{{ .HideSideBarButton {float:right;} }}}

!History
*23-07-06: version 1.0: completely rewritten, now works with custom stylesheets too, and easier to customize start behaviour. 
*20-07-06: version 0.11
*27-04-06: version 0.1: working.

!Code
***/
//{{{
config.macros.toggleSideBar={};

config.macros.toggleSideBar.settings={
         styleHide :  ".title, .toolbar { display: none;}\n"+"#contentWrapper #displayArea { margin-right: 0em !important;}}\n"+"",
         styleShow : " ",
         arrow1: "Sidebar «",
         arrow2: "Sidebar »"
};

config.macros.toggleSideBar.handler=function (place,macroName,params,wikifier,paramString,tiddler)
{
          var tooltip= params[1]||'toggle sidebar';
          var mode = (params[2] && params[2]=="hide")? "hide":"show";
          var arrow = (mode == "hide")? this.settings.arrow1:this.settings.arrow2;
          var label= (params[0]&&params[0]!='.')?params[0]+" "+arrow:arrow;
          var theBtn = createTiddlyButton(place,label,tooltip,this.onToggleSideBar,"button HideSideBarButton");
          if (mode == "hide")
             { 
             (document.getElementById("sidebar")).setAttribute("toggle","hide");
              setStylesheet(this.settings.styleHide,"ToggleSideBarStyles");
             }
};

config.macros.toggleSideBar.onToggleSideBar = function(){
          var sidebar = document.getElementById("sidebar");
          var settings = config.macros.toggleSideBar.settings;
          if (sidebar.getAttribute("toggle")=='hide')
             {
              setStylesheet(settings.styleShow,"ToggleSideBarStyles");
              sidebar.setAttribute("toggle","show");
              this.firstChild.data= (this.firstChild.data).replace(settings.arrow1,settings.arrow2);
              }
          else
              {    
               setStylesheet(settings.styleHide,"ToggleSideBarStyles");
               sidebar.setAttribute("toggle","hide");
               this.firstChild.data= (this.firstChild.data).replace(settings.arrow2,settings.arrow1);
              }

     return false;
}

setStylesheet(".HideSideBarButton .button {font-weight:bold; padding: 0 5px;}\n","ToggleSideBarButtonStyles");

//}}}
<<tabs tabsCookie [[Intro ]] "tooltip 1" [[Tools]]  [[Options ]] "" [[OptionsPanel]]  [[AdvancedOptions ]] "" [[AdvancedOptions]] >>
|width:14em;padding-top:3em;<<tiddler SideBarOptions>>|
<<slider "CookieName" "Tools" "Tools" "tooltip" >>
/***
Contains the stuff you need to use Tiddlyspot
Note you must also have UploadPlugin installed
***/
//{{{

// edit this if you are migrating sites or retrofitting an existing TW
config.tiddlyspotSiteId = 'twwebpage';

// make it so you can by default see edit controls via http
config.options.chkHttpReadOnly = false;
window.readOnly = false; // make sure of it (for tw 2.2)
window.showBackstage = true; // show backstage too

// disable autosave in d3
if (window.location.protocol != "file:")
	config.options.chkGTDLazyAutoSave = false;

// tweak shadow tiddlers to add upload button, password entry box etc
with (config.shadowTiddlers) {
	SiteUrl = 'http://'+config.tiddlyspotSiteId+'.tiddlyspot.com';
	SideBarOptions = SideBarOptions.replace(/(<<saveChanges>>)/,"$1<<tiddler TspotSidebar>>");
	OptionsPanel = OptionsPanel.replace(/^/,"<<tiddler TspotOptions>>");
	DefaultTiddlers = DefaultTiddlers.replace(/^/,"[[WelcomeToTiddlyspot]] ");
	MainMenu = MainMenu.replace(/^/,"[[WelcomeToTiddlyspot]] ");
}

// create some shadow tiddler content
merge(config.shadowTiddlers,{

'WelcomeToTiddlyspot':[
 "This document is a ~TiddlyWiki from tiddlyspot.com.  A ~TiddlyWiki is an electronic notebook that is great for managing todo lists, personal information, and all sorts of things.",
 "",
 "@@font-weight:bold;font-size:1.3em;color:#444; //What now?// &nbsp;&nbsp;@@ Before you can save any changes, you need to enter your password in the form below.  Then configure privacy and other site settings at your [[control panel|http://" + config.tiddlyspotSiteId + ".tiddlyspot.com/controlpanel]] (your control panel username is //" + config.tiddlyspotSiteId + "//).",
 "<<tiddler TspotControls>>",
 "See also GettingStarted.",
 "",
 "@@font-weight:bold;font-size:1.3em;color:#444; //Working online// &nbsp;&nbsp;@@ You can edit this ~TiddlyWiki right now, and save your changes using the \"save to web\" button in the column on the right.",
 "",
 "@@font-weight:bold;font-size:1.3em;color:#444; //Working offline// &nbsp;&nbsp;@@ A fully functioning copy of this ~TiddlyWiki can be saved onto your hard drive or USB stick.  You can make changes and save them locally without being connected to the Internet.  When you're ready to sync up again, just click \"upload\" and your ~TiddlyWiki will be saved back to tiddlyspot.com.",
 "",
 "@@font-weight:bold;font-size:1.3em;color:#444; //Help!// &nbsp;&nbsp;@@ Find out more about ~TiddlyWiki at [[TiddlyWiki.com|http://tiddlywiki.com]].  Also visit [[TiddlyWiki Guides|http://tiddlywikiguides.org]] for documentation on learning and using ~TiddlyWiki. New users are especially welcome on the [[TiddlyWiki mailing list|http://groups.google.com/group/TiddlyWiki]], which is an excellent place to ask questions and get help.  If you have a tiddlyspot related problem email [[tiddlyspot support|mailto:support@tiddlyspot.com]].",
 "",
 "@@font-weight:bold;font-size:1.3em;color:#444; //Enjoy :)// &nbsp;&nbsp;@@ We hope you like using your tiddlyspot.com site.  Please email [[feedback@tiddlyspot.com|mailto:feedback@tiddlyspot.com]] with any comments or suggestions."
].join("\n"),

'TspotControls':[
 "| tiddlyspot password:|<<option pasUploadPassword>>|",
 "| site management:|<<upload http://" + config.tiddlyspotSiteId + ".tiddlyspot.com/store.cgi index.html . .  " + config.tiddlyspotSiteId + ">>//(requires tiddlyspot password)//<br>[[control panel|http://" + config.tiddlyspotSiteId + ".tiddlyspot.com/controlpanel]], [[download (go offline)|http://" + config.tiddlyspotSiteId + ".tiddlyspot.com/download]]|",
 "| links:|[[tiddlyspot.com|http://tiddlyspot.com/]], [[FAQs|http://faq.tiddlyspot.com/]], [[announcements|http://announce.tiddlyspot.com/]], [[blog|http://tiddlyspot.com/blog/]], email [[support|mailto:support@tiddlyspot.com]] & [[feedback|mailto:feedback@tiddlyspot.com]], [[donate|http://tiddlyspot.com/?page=donate]]|"
].join("\n"),

'TspotSidebar':[
 "<<upload http://" + config.tiddlyspotSiteId + ".tiddlyspot.com/store.cgi index.html . .  " + config.tiddlyspotSiteId + ">><html><a href='http://" + config.tiddlyspotSiteId + ".tiddlyspot.com/download' class='button'>download</a></html>"
].join("\n"),

'TspotOptions':[
 "tiddlyspot password:",
 "<<option pasUploadPassword>>",
 ""
].join("\n")

});
//}}}
/***
''TwHelpSearch'' for TiddlyWiki 2.0.x to 2.2.x
^^author: Morris S. Gray
source: http://twhelp.tiddlyspot.com/#TwHelpSearchPlugin
documentation: http://twhelp.tiddlyspot.com/#TWHelpSearchDoc
license: [[Creative Commons Attribution-ShareAlike 2.5   License|http://creativecommons.org/licenses/by-sa/2.5/]]^^

|>|>|>|<<search>> |
|>|>| look for in |>|>|>|
| <<option chkSearchTitles>> | <<option chkSearchText>> | <<option chkSearchTags>> | <<option chkHoldSearches>> |
| titles |  text  | tags | hold |

''A Plugin Tweak for:'' SearchOptionsPlugin
!!!!!Description
<<<
This plugin defines an alternative format for the SearchResults tiddler that is generated by the SearchOptionsPlugin . It presents the search results in tabular form numbering the rows; and showing the tiddler title, the size in bytes, and the tags.  It is ready to be used with the [[SortableGridPlugin|http://solo.dc3.com/tw/#SortableGridPlugin]] (check versions) so any column can be sorted; such as size in ascending or descending order.
<<<
!!!!!Installation
<<<
Import (or copy/paste) the following tiddlers into your ~TiddlyWiki:
* http://twhelp.tiddlyspot.com/#TwHelpSearchPlugin
*SearchOptionsPlugin from http://www.tiddlytools.com/#SearchOptionsPlugin
* Get more documentation here [[TWHelpSearchDoc]] or here:
* http://twhelp.tiddlyspot.com/#TwHelpSearchDoc
<<<
!!!!!Revision History
<<<

''2007.09.12  [1.0.6]''
Added overflow scroll to TWHelp-SearchResults for long titles or tags.
''2006.02.03  [1.0.5]''
Added facility for holding the results of multiple searches with tick box on dashboard.
''2006.02.02  [1.0.4]''
Added several options, cleaned up design.Planning one version basic and one with added options this is the added options version.
''2006.01.27  [1.0.3''
Added a column for the size of the text in each tiddler, this does not include the size of the title or tags.  Added overall TW statistics button requires TiddlerStatsPlugin.
''2006.01.23 [1.0.2 ]''
''a)''Changed function reportSearchResults(text,matches) to  window.reportSearchResults=function(text,matches)
''b)''Added a line so that Incremental Search is automatically disabled config.options.chkSearchIncremental=false; turn off key-by-key searching
''c)''Removed space inside parens. bgcolor(#fe8 )" to "bgcolor(#fe8)".  This
is what was causing IE to 'crap out' halfway through drawing the table
headings.
''d)''Added {{{config.options.chkSearchList=true;}}}
''2006.01.20 [1.0.1]''
ELS: reportSearchResults() definition moved to this Plugin Tweak tiddler and removed extranous code
''2006.01.19 [1.0.0]''
This is an adaptation of Eric Shulman's SearchOptionsPlugin. Adapted by MorrisGray to provide search results in table form. All the necessary controls for refining the search is provided within the table including slide-down access to AdvancedOptions.
<<<
!!!!!Code
***/

//{{{
if (config.options.chkSinglePageMode==undefined) config.options.chkSinglePageMode=false;
if (config.options.chkRegExpSearch==undefined) config.options.chkRegExpSearch=true;
if (config.options.chkSearchTitles==undefined) config.options.chkSearchTitles=false;
if (config.options.chkSearchText==undefined) config.options.chkSearchText=true;
if (config.options.chkSearchTags==undefined) config.options.chkSearchTags=false;
if (config.options.chkSearchTitlesFirst==undefined) config.options.chkSearchTitlesFirst=true;
if (config.options.chkSearchList==undefined) config.options.chkSearchList=true;
if (config.options.chkSearchIncremental==undefined) config.options.chkSearchIncremental=false;
if (config.options.chkToggleLinks==true) config.options.chkToggleLinks=false;
if (config.options.chkHoldSearches==undefined) config.options.chkHoldSearches=false;
if (config.options.chkSortTags==undefined) config.options.chkSortTags=false;

config.options.chkToggleLinks=false;
config.options.chkSinglePageMode=false;
config.options.chkHoldSearches=false;
config.options.chkSearchIncremental=false;
config.options.chkHttpReadOnly = false;
config.options.chkRegExpSearch=true;
config.options.chkSearchList=true;
config.options.chkToggleLinks=false;

config.shadowTiddlers.AdvancedOptions += "\n<<option chkHoldSearches>> Hold search results";


//}}}

//{{{

// Give the report a custom name
config.macros.search.reportTitle="TWHelp-SearchResults";

// Override default SearchOptionsPlugin formatting for SearchResults tiddler
window.reportSearchResults=function(text,matches)

{
  
        var title=config.macros.search.reportTitle
	config.macros.search.reportTitle;
      	var q = config.options.chkRegExpSearch ? "/" : "'";
        if (!config.options.chkHoldSearches)  body=""; 
      
body+="\n|>|bgcolor(#8af):@@color(#000080):''"+config.macros.search.successMsg.format([matches.length,q+"{{{"+text+"}}}"+q])+"''@@|bgcolor(#8af):  @@color(#A00000): SearchHelp@@ "+"|"+"\n";
        body+="|>|>|bgcolor(#E3FFE3):<<search>> <<option chkSearchTitles>> Titles <<option chkSearchText>> Text <<option chkSearchTags>>Tags <<option chkHoldSearches>> Hold |"+"\n";
        body+="\n|&nbsp;|bgcolor(#8af): @@color(#000080):sort by: ''Titles''@@ |bgcolor(#8af): @@color(#000080): ''Size'' (bytes)@@ |bgcolor(#8af): @@color(#000080): ''Tags''@@ |h";
	for(var t=0;t<matches.length;t++) 
        body+="\n"+"| "+(t+1)+"|[["+matches[t].title+"]]| "+matches[t].text.length+"|"+"@@"+matches[t].tags+"@@"+"|";
         body+="\n";

      


        

        
       


	// create/update the tiddler
	var tiddler=store.getTiddler(title); if (!tiddler) tiddler=new Tiddler();
	tiddler.set(title,body,config.options.txtUserName,(new Date()),"excludeLists excludeSearch killbookmark");
	store.addTiddler(tiddler); story.closeTiddler(title);

	// render tiddler
	var oldprompt=config.macros.search.label;
	config.macros.search.label="search again"; // use alternate "search again" label
        story.displayTiddler(null,title,1); // force refresh
	config.macros.search.label=oldprompt;	// restore standard search label
}

//}}}
| !date | !user | !location | !storeUrl | !uploadDir | !toFilename | !backupdir | !origin |
| 29/03/2008 16:24:04 | YourName | [[twwebpage.html|file:///D:/Web%20Pages/TiddlyWiki2.3/twwebpage.html]] | [[store.cgi|http://twwebpage.tiddlyspot.com/store.cgi]] | . | [[index.html | http://twwebpage.tiddlyspot.com/index.html]] | . | ok |
| 01/04/2008 12:56:58 | YourName | [[twwebpage.html|file:///D:/Web%20Pages/TiddlyWiki2.3/twwebpage/twwebpage.html#EditTemplate]] | [[store.cgi|http://twwebpage.tiddlyspot.com/store.cgi]] | . | [[index.html | http://twwebpage.tiddlyspot.com/index.html]] | . | ok |
| 02/04/2008 04:29:21 | YourName | [[twwebpage.html|file:///D:/Web%20Pages/TiddlyWiki2.3/twwebpage/twwebpage.html]] | [[store.cgi|http://twwebpage.tiddlyspot.com/store.cgi]] | . | [[index.html | http://twwebpage.tiddlyspot.com/index.html]] | . | ok |
/***
|''Name:''|PasswordOptionPlugin|
|''Description:''|Extends TiddlyWiki options with non encrypted password option.|
|''Version:''|1.0.2|
|''Date:''|Apr 19, 2007|
|''Source:''|http://tiddlywiki.bidix.info/#PasswordOptionPlugin|
|''Author:''|BidiX (BidiX (at) bidix (dot) info)|
|''License:''|[[BSD open source license|http://tiddlywiki.bidix.info/#%5B%5BBSD%20open%20source%20license%5D%5D ]]|
|''~CoreVersion:''|2.2.0 (Beta 5)|
***/
//{{{
version.extensions.PasswordOptionPlugin = {
	major: 1, minor: 0, revision: 2, 
	date: new Date("Apr 19, 2007"),
	source: 'http://tiddlywiki.bidix.info/#PasswordOptionPlugin',
	author: 'BidiX (BidiX (at) bidix (dot) info',
	license: '[[BSD open source license|http://tiddlywiki.bidix.info/#%5B%5BBSD%20open%20source%20license%5D%5D]]',
	coreVersion: '2.2.0 (Beta 5)'
};

config.macros.option.passwordCheckboxLabel = "Save this password on this computer";
config.macros.option.passwordInputType = "password"; // password | text
setStylesheet(".pasOptionInput {width: 11em;}\n","passwordInputTypeStyle");

merge(config.macros.option.types, {
	'pas': {
		elementType: "input",
		valueField: "value",
		eventName: "onkeyup",
		className: "pasOptionInput",
		typeValue: config.macros.option.passwordInputType,
		create: function(place,type,opt,className,desc) {
			// password field
			config.macros.option.genericCreate(place,'pas',opt,className,desc);
			// checkbox linked with this password "save this password on this computer"
			config.macros.option.genericCreate(place,'chk','chk'+opt,className,desc);			
			// text savePasswordCheckboxLabel
			place.appendChild(document.createTextNode(config.macros.option.passwordCheckboxLabel));
		},
		onChange: config.macros.option.genericOnChange
	}
});

merge(config.optionHandlers['chk'], {
	get: function(name) {
		// is there an option linked with this chk ?
		var opt = name.substr(3);
		if (config.options[opt]) 
			saveOptionCookie(opt);
		return config.options[name] ? "true" : "false";
	}
});

merge(config.optionHandlers, {
	'pas': {
 		get: function(name) {
			if (config.options["chk"+name]) {
				return encodeCookie(config.options[name].toString());
			} else {
				return "";
			}
		},
		set: function(name,value) {config.options[name] = decodeCookie(value);}
	}
});

// need to reload options to load passwordOptions
loadOptionsCookie();

/*
if (!config.options['pasPassword'])
	config.options['pasPassword'] = '';

merge(config.optionsDesc,{
		pasPassword: "Test password"
	});
*/
//}}}

/***
|''Name:''|UploadPlugin|
|''Description:''|Save to web a TiddlyWiki|
|''Version:''|4.1.0|
|''Date:''|May 5, 2007|
|''Source:''|http://tiddlywiki.bidix.info/#UploadPlugin|
|''Documentation:''|http://tiddlywiki.bidix.info/#UploadPluginDoc|
|''Author:''|BidiX (BidiX (at) bidix (dot) info)|
|''License:''|[[BSD open source license|http://tiddlywiki.bidix.info/#%5B%5BBSD%20open%20source%20license%5D%5D ]]|
|''~CoreVersion:''|2.2.0 (#3125)|
|''Requires:''|PasswordOptionPlugin|
***/
//{{{
version.extensions.UploadPlugin = {
	major: 4, minor: 1, revision: 0,
	date: new Date("May 5, 2007"),
	source: 'http://tiddlywiki.bidix.info/#UploadPlugin',
	author: 'BidiX (BidiX (at) bidix (dot) info',
	coreVersion: '2.2.0 (#3125)'
};

//
// Environment
//

if (!window.bidix) window.bidix = {}; // bidix namespace
bidix.debugMode = false;	// true to activate both in Plugin and UploadService
	
//
// Upload Macro
//

config.macros.upload = {
// default values
	defaultBackupDir: '',	//no backup
	defaultStoreScript: "store.php",
	defaultToFilename: "index.html",
	defaultUploadDir: ".",
	authenticateUser: true	// UploadService Authenticate User
};
	
config.macros.upload.label = {
	promptOption: "Save and Upload this TiddlyWiki with UploadOptions",
	promptParamMacro: "Save and Upload this TiddlyWiki in %0",
	saveLabel: "save to web", 
	saveToDisk: "save to disk",
	uploadLabel: "upload"	
};

config.macros.upload.messages = {
	noStoreUrl: "No store URL in parmeters or options",
	usernameOrPasswordMissing: "Username or password missing"
};

config.macros.upload.handler = function(place,macroName,params) {
	if (readOnly)
		return;
	var label;
	if (document.location.toString().substr(0,4) == "http") 
		label = this.label.saveLabel;
	else
		label = this.label.uploadLabel;
	var prompt;
	if (params[0]) {
		prompt = this.label.promptParamMacro.toString().format([this.destFile(params[0], 
			(params[1] ? params[1]:bidix.basename(window.location.toString())), params[3])]);
	} else {
		prompt = this.label.promptOption;
	}
	createTiddlyButton(place, label, prompt, function() {config.macros.upload.action(params);}, null, null, this.accessKey);
};

config.macros.upload.action = function(params)
{
		// for missing macro parameter set value from options
		var storeUrl = params[0] ? params[0] : config.options.txtUploadStoreUrl;
		var toFilename = params[1] ? params[1] : config.options.txtUploadFilename;
		var backupDir = params[2] ? params[2] : config.options.txtUploadBackupDir;
		var uploadDir = params[3] ? params[3] : config.options.txtUploadDir;
		var username = params[4] ? params[4] : config.options.txtUploadUserName;
		var password = config.options.pasUploadPassword; // for security reason no password as macro parameter	
		// for still missing parameter set default value
		if ((!storeUrl) && (document.location.toString().substr(0,4) == "http")) 
			storeUrl = bidix.dirname(document.location.toString())+'/'+config.macros.upload.defaultStoreScript;
		if (storeUrl.substr(0,4) != "http")
			storeUrl = bidix.dirname(document.location.toString()) +'/'+ storeUrl;
		if (!toFilename)
			toFilename = bidix.basename(window.location.toString());
		if (!toFilename)
			toFilename = config.macros.upload.defaultToFilename;
		if (!uploadDir)
			uploadDir = config.macros.upload.defaultUploadDir;
		if (!backupDir)
			backupDir = config.macros.upload.defaultBackupDir;
		// report error if still missing
		if (!storeUrl) {
			alert(config.macros.upload.messages.noStoreUrl);
			clearMessage();
			return false;
		}
		if (config.macros.upload.authenticateUser && (!username || !password)) {
			alert(config.macros.upload.messages.usernameOrPasswordMissing);
			clearMessage();
			return false;
		}
		bidix.upload.uploadChanges(false,null,storeUrl, toFilename, uploadDir, backupDir, username, password); 
		return false; 
};

config.macros.upload.destFile = function(storeUrl, toFilename, uploadDir) 
{
	if (!storeUrl)
		return null;
		var dest = bidix.dirname(storeUrl);
		if (uploadDir && uploadDir != '.')
			dest = dest + '/' + uploadDir;
		dest = dest + '/' + toFilename;
	return dest;
};

//
// uploadOptions Macro
//

config.macros.uploadOptions = {
	handler: function(place,macroName,params) {
		var wizard = new Wizard();
		wizard.createWizard(place,this.wizardTitle);
		wizard.addStep(this.step1Title,this.step1Html);
		var markList = wizard.getElement("markList");
		var listWrapper = document.createElement("div");
		markList.parentNode.insertBefore(listWrapper,markList);
		wizard.setValue("listWrapper",listWrapper);
		this.refreshOptions(listWrapper,false);
		var uploadCaption;
		if (document.location.toString().substr(0,4) == "http") 
			uploadCaption = config.macros.upload.label.saveLabel;
		else
			uploadCaption = config.macros.upload.label.uploadLabel;
		
		wizard.setButtons([
				{caption: uploadCaption, tooltip: config.macros.upload.label.promptOption, 
					onClick: config.macros.upload.action},
				{caption: this.cancelButton, tooltip: this.cancelButtonPrompt, onClick: this.onCancel}
				
			]);
	},
	refreshOptions: function(listWrapper) {
		var uploadOpts = [
			"txtUploadUserName",
			"pasUploadPassword",
			"txtUploadStoreUrl",
			"txtUploadDir",
			"txtUploadFilename",
			"txtUploadBackupDir",
			"chkUploadLog",
			"txtUploadLogMaxLine",
			]
		var opts = [];
		for(i=0; i<uploadOpts.length; i++) {
			var opt = {};
			opts.push()
			opt.option = "";
			n = uploadOpts[i];
			opt.name = n;
			opt.lowlight = !config.optionsDesc[n];
			opt.description = opt.lowlight ? this.unknownDescription : config.optionsDesc[n];
			opts.push(opt);
		}
		var listview = ListView.create(listWrapper,opts,this.listViewTemplate);
		for(n=0; n<opts.length; n++) {
			var type = opts[n].name.substr(0,3);
			var h = config.macros.option.types[type];
			if (h && h.create) {
				h.create(opts[n].colElements['option'],type,opts[n].name,opts[n].name,"no");
			}
		}
		
	},
	onCancel: function(e)
	{
		backstage.switchTab(null);
		return false;
	},
	
	wizardTitle: "Upload with options",
	step1Title: "These options are saved in cookies in your browser",
	step1Html: "<input type='hidden' name='markList'></input><br>",
	cancelButton: "Cancel",
	cancelButtonPrompt: "Cancel prompt",
	listViewTemplate: {
		columns: [
			{name: 'Description', field: 'description', title: "Description", type: 'WikiText'},
			{name: 'Option', field: 'option', title: "Option", type: 'String'},
			{name: 'Name', field: 'name', title: "Name", type: 'String'}
			],
		rowClasses: [
			{className: 'lowlight', field: 'lowlight'} 
			]}
}

//
// upload functions
//

if (!bidix.upload) bidix.upload = {};

if (!bidix.upload.messages) bidix.upload.messages = {
	//from saving
	invalidFileError: "The original file '%0' does not appear to be a valid TiddlyWiki",
	backupSaved: "Backup saved",
	backupFailed: "Failed to upload backup file",
	rssSaved: "RSS feed uploaded",
	rssFailed: "Failed to upload RSS feed file",
	emptySaved: "Empty template uploaded",
	emptyFailed: "Failed to upload empty template file",
	mainSaved: "Main TiddlyWiki file uploaded",
	mainFailed: "Failed to upload main TiddlyWiki file. Your changes have not been saved",
	//specific upload
	loadOriginalHttpPostError: "Can't get original file",
	aboutToSaveOnHttpPost: 'About to upload on %0 ...',
	storePhpNotFound: "The store script '%0' was not found."
};

bidix.upload.uploadChanges = function(onlyIfDirty,tiddlers,storeUrl,toFilename,uploadDir,backupDir,username,password)
{
	var callback = function(status,uploadParams,original,url,xhr) {
		if (!status) {
			displayMessage(bidix.upload.messages.loadOriginalHttpPostError);
			return;
		}
		if (bidix.debugMode) 
			alert(original.substr(0,500)+"\n...");
		// Locate the storeArea div's 
		var posDiv = locateStoreArea(original);
		if((posDiv[0] == -1) || (posDiv[1] == -1)) {
			alert(config.messages.invalidFileError.format([localPath]));
			return;
		}
		bidix.upload.uploadRss(uploadParams,original,posDiv);
	};
	
	if(onlyIfDirty && !store.isDirty())
		return;
	clearMessage();
	// save on localdisk ?
	if (document.location.toString().substr(0,4) == "file") {
		var path = document.location.toString();
		var localPath = getLocalPath(path);
		saveChanges();
	}
	// get original
	var uploadParams = Array(storeUrl,toFilename,uploadDir,backupDir,username,password);
	var originalPath = document.location.toString();
	// If url is a directory : add index.html
	if (originalPath.charAt(originalPath.length-1) == "/")
		originalPath = originalPath + "index.html";
	var dest = config.macros.upload.destFile(storeUrl,toFilename,uploadDir);
	var log = new bidix.UploadLog();
	log.startUpload(storeUrl, dest, uploadDir,  backupDir);
	displayMessage(bidix.upload.messages.aboutToSaveOnHttpPost.format([dest]));
	if (bidix.debugMode) 
		alert("about to execute Http - GET on "+originalPath);
	var r = doHttp("GET",originalPath,null,null,null,null,callback,uploadParams,null);
	if (typeof r == "string")
		displayMessage(r);
	return r;
};

bidix.upload.uploadRss = function(uploadParams,original,posDiv) 
{
	var callback = function(status,params,responseText,url,xhr) {
		if(status) {
			var destfile = responseText.substring(responseText.indexOf("destfile:")+9,responseText.indexOf("\n", responseText.indexOf("destfile:")));
			displayMessage(bidix.upload.messages.rssSaved,bidix.dirname(url)+'/'+destfile);
			bidix.upload.uploadMain(params[0],params[1],params[2]);
		} else {
			displayMessage(bidix.upload.messages.rssFailed);			
		}
	};
	// do uploadRss
	if(config.options.chkGenerateAnRssFeed) {
		var rssPath = uploadParams[1].substr(0,uploadParams[1].lastIndexOf(".")) + ".xml";
		var rssUploadParams = Array(uploadParams[0],rssPath,uploadParams[2],'',uploadParams[4],uploadParams[5]);
		bidix.upload.httpUpload(rssUploadParams,convertUnicodeToUTF8(generateRss()),callback,Array(uploadParams,original,posDiv));
	} else {
		bidix.upload.uploadMain(uploadParams,original,posDiv);
	}
};

bidix.upload.uploadMain = function(uploadParams,original,posDiv) 
{
	var callback = function(status,params,responseText,url,xhr) {
		var log = new bidix.UploadLog();
		if(status) {
			// if backupDir specified
			if ((params[3]) && (responseText.indexOf("backupfile:") > -1))  {
				var backupfile = responseText.substring(responseText.indexOf("backupfile:")+11,responseText.indexOf("\n", responseText.indexOf("backupfile:")));
				displayMessage(bidix.upload.messages.backupSaved,bidix.dirname(url)+'/'+backupfile);
			}
			var destfile = responseText.substring(responseText.indexOf("destfile:")+9,responseText.indexOf("\n", responseText.indexOf("destfile:")));
			displayMessage(bidix.upload.messages.mainSaved,bidix.dirname(url)+'/'+destfile);
			store.setDirty(false);
			log.endUpload("ok");
		} else {
			alert(bidix.upload.messages.mainFailed);
			displayMessage(bidix.upload.messages.mainFailed);
			log.endUpload("failed");			
		}
	};
	// do uploadMain
	var revised = bidix.upload.updateOriginal(original,posDiv);
	bidix.upload.httpUpload(uploadParams,revised,callback,uploadParams);
};

bidix.upload.httpUpload = function(uploadParams,data,callback,params)
{
	var localCallback = function(status,params,responseText,url,xhr) {
		url = (url.indexOf("nocache=") < 0 ? url : url.substring(0,url.indexOf("nocache=")-1));
		if (xhr.status == httpStatus.NotFound)
			alert(bidix.upload.messages.storePhpNotFound.format([url]));
		if ((bidix.debugMode) || (responseText.indexOf("Debug mode") >= 0 )) {
			alert(responseText);
			if (responseText.indexOf("Debug mode") >= 0 )
				responseText = responseText.substring(responseText.indexOf("\n\n")+2);
		} else if (responseText.charAt(0) != '0') 
			alert(responseText);
		if (responseText.charAt(0) != '0')
			status = null;
		callback(status,params,responseText,url,xhr);
	};
	// do httpUpload
	var boundary = "---------------------------"+"AaB03x";	
	var uploadFormName = "UploadPlugin";
	// compose headers data
	var sheader = "";
	sheader += "--" + boundary + "\r\nContent-disposition: form-data; name=\"";
	sheader += uploadFormName +"\"\r\n\r\n";
	sheader += "backupDir="+uploadParams[3] +
				";user=" + uploadParams[4] +
				";password=" + uploadParams[5] +
				";uploaddir=" + uploadParams[2];
	if (bidix.debugMode)
		sheader += ";debug=1";
	sheader += ";;\r\n"; 
	sheader += "\r\n" + "--" + boundary + "\r\n";
	sheader += "Content-disposition: form-data; name=\"userfile\"; filename=\""+uploadParams[1]+"\"\r\n";
	sheader += "Content-Type: text/html;charset=UTF-8" + "\r\n";
	sheader += "Content-Length: " + data.length + "\r\n\r\n";
	// compose trailer data
	var strailer = new String();
	strailer = "\r\n--" + boundary + "--\r\n";
	data = sheader + data + strailer;
	if (bidix.debugMode) alert("about to execute Http - POST on "+uploadParams[0]+"\n with \n"+data.substr(0,500)+ " ... ");
	var r = doHttp("POST",uploadParams[0],data,"multipart/form-data; boundary="+boundary,uploadParams[4],uploadParams[5],localCallback,params,null);
	if (typeof r == "string")
		displayMessage(r);
	return r;
};

// same as Saving's updateOriginal but without convertUnicodeToUTF8 calls
bidix.upload.updateOriginal = function(original, posDiv)
{
	if (!posDiv)
		posDiv = locateStoreArea(original);
	if((posDiv[0] == -1) || (posDiv[1] == -1)) {
		alert(config.messages.invalidFileError.format([localPath]));
		return;
	}
	var revised = original.substr(0,posDiv[0] + startSaveArea.length) + "\n" +
				store.allTiddlersAsHtml() + "\n" +
				original.substr(posDiv[1]);
	var newSiteTitle = getPageTitle().htmlEncode();
	revised = revised.replaceChunk("<title"+">","</title"+">"," " + newSiteTitle + " ");
	revised = updateMarkupBlock(revised,"PRE-HEAD","MarkupPreHead");
	revised = updateMarkupBlock(revised,"POST-HEAD","MarkupPostHead");
	revised = updateMarkupBlock(revised,"PRE-BODY","MarkupPreBody");
	revised = updateMarkupBlock(revised,"POST-SCRIPT","MarkupPostBody");
	return revised;
};

//
// UploadLog
// 
// config.options.chkUploadLog :
//		false : no logging
//		true : logging
// config.options.txtUploadLogMaxLine :
//		-1 : no limit
//      0 :  no Log lines but UploadLog is still in place
//		n :  the last n lines are only kept
//		NaN : no limit (-1)

bidix.UploadLog = function() {
	if (!config.options.chkUploadLog) 
		return; // this.tiddler = null
	this.tiddler = store.getTiddler("UploadLog");
	if (!this.tiddler) {
		this.tiddler = new Tiddler();
		this.tiddler.title = "UploadLog";
		this.tiddler.text = "| !date | !user | !location | !storeUrl | !uploadDir | !toFilename | !backupdir | !origin |";
		this.tiddler.created = new Date();
		this.tiddler.modifier = config.options.txtUserName;
		this.tiddler.modified = new Date();
		store.addTiddler(this.tiddler);
	}
	return this;
};

bidix.UploadLog.prototype.addText = function(text) {
	if (!this.tiddler)
		return;
	// retrieve maxLine when we need it
	var maxLine = parseInt(config.options.txtUploadLogMaxLine,10);
	if (isNaN(maxLine))
		maxLine = -1;
	// add text
	if (maxLine != 0) 
		this.tiddler.text = this.tiddler.text + text;
	// Trunck to maxLine
	if (maxLine >= 0) {
		var textArray = this.tiddler.text.split('\n');
		if (textArray.length > maxLine + 1)
			textArray.splice(1,textArray.length-1-maxLine);
			this.tiddler.text = textArray.join('\n');		
	}
	// update tiddler fields
	this.tiddler.modifier = config.options.txtUserName;
	this.tiddler.modified = new Date();
	store.addTiddler(this.tiddler);
	// refresh and notifiy for immediate update
	story.refreshTiddler(this.tiddler.title);
	store.notify(this.tiddler.title, true);
};

bidix.UploadLog.prototype.startUpload = function(storeUrl, toFilename, uploadDir,  backupDir) {
	if (!this.tiddler)
		return;
	var now = new Date();
	var text = "\n| ";
	var filename = bidix.basename(document.location.toString());
	if (!filename) filename = '/';
	text += now.formatString("0DD/0MM/YYYY 0hh:0mm:0ss") +" | ";
	text += config.options.txtUserName + " | ";
	text += "[["+filename+"|"+location + "]] |";
	text += " [[" + bidix.basename(storeUrl) + "|" + storeUrl + "]] | ";
	text += uploadDir + " | ";
	text += "[[" + bidix.basename(toFilename) + " | " +toFilename + "]] | ";
	text += backupDir + " |";
	this.addText(text);
};

bidix.UploadLog.prototype.endUpload = function(status) {
	if (!this.tiddler)
		return;
	this.addText(" "+status+" |");
};

//
// Utilities
// 

bidix.checkPlugin = function(plugin, major, minor, revision) {
	var ext = version.extensions[plugin];
	if (!
		(ext  && 
			((ext.major > major) || 
			((ext.major == major) && (ext.minor > minor))  ||
			((ext.major == major) && (ext.minor == minor) && (ext.revision >= revision))))) {
			// write error in PluginManager
			if (pluginInfo)
				pluginInfo.log.push("Requires " + plugin + " " + major + "." + minor + "." + revision);
			eval(plugin); // generate an error : "Error: ReferenceError: xxxx is not defined"
	}
};

bidix.dirname = function(filePath) {
	if (!filePath) 
		return;
	var lastpos;
	if ((lastpos = filePath.lastIndexOf("/")) != -1) {
		return filePath.substring(0, lastpos);
	} else {
		return filePath.substring(0, filePath.lastIndexOf("\\"));
	}
};

bidix.basename = function(filePath) {
	if (!filePath) 
		return;
	var lastpos;
	if ((lastpos = filePath.lastIndexOf("#")) != -1) 
		filePath = filePath.substring(0, lastpos);
	if ((lastpos = filePath.lastIndexOf("/")) != -1) {
		return filePath.substring(lastpos + 1);
	} else
		return filePath.substring(filePath.lastIndexOf("\\")+1);
};

bidix.initOption = function(name,value) {
	if (!config.options[name])
		config.options[name] = value;
};

//
// Initializations
//

// require PasswordOptionPlugin 1.0.1 or better
bidix.checkPlugin("PasswordOptionPlugin", 1, 0, 1);

// styleSheet
setStylesheet('.txtUploadStoreUrl, .txtUploadBackupDir, .txtUploadDir {width: 22em;}',"uploadPluginStyles");

//optionsDesc
merge(config.optionsDesc,{
	txtUploadStoreUrl: "Url of the UploadService script (default: store.php)",
	txtUploadFilename: "Filename of the uploaded file (default: in index.html)",
	txtUploadDir: "Relative Directory where to store the file (default: . (downloadService directory))",
	txtUploadBackupDir: "Relative Directory where to backup the file. If empty no backup. (default: ''(empty))",
	txtUploadUserName: "Upload Username",
	pasUploadPassword: "Upload Password",
	chkUploadLog: "do Logging in UploadLog (default: true)",
	txtUploadLogMaxLine: "Maximum of lines in UploadLog (default: 10)"
});

// Options Initializations
bidix.initOption('txtUploadStoreUrl','');
bidix.initOption('txtUploadFilename','');
bidix.initOption('txtUploadDir','');
bidix.initOption('txtUploadBackupDir','');
bidix.initOption('txtUploadUserName','');
bidix.initOption('pasUploadPassword','');
bidix.initOption('chkUploadLog',true);
bidix.initOption('txtUploadLogMaxLine','10');


/* don't want this for tiddlyspot sites

// Backstage
merge(config.tasks,{
	uploadOptions: {text: "upload", tooltip: "Change UploadOptions and Upload", content: '<<uploadOptions>>'}
});
config.backstageTasks.push("uploadOptions");

*/


//}}}


<<tabs "" [[Intro ]] "" [[TabsIntro]][[AllTabs ]] "" [[AllTabs]]  [[History ]] "" [[History]]  [[SystemTabs ]] "" [[SystemTabs]]  [[Programs ]] "" [[Programs]]  [[Styling ]] "" [[Styling]]  [[ExcludedFromSearches ]] "" [[ExcludedFromSearches]]  [[ExcludedFromLists ]] "" [[ExcludedFromLists]] >>
<div class='toolbar' macro='toolbar jump top -closeTiddler closeOthers closeAll +editTiddler permalink references newDocument '></div>
<div class='title' macro='view title'></div>
<div macro="gradient horiz #fff #fff"><div class='viewer' macro='view text wikified'><div align="center"></div></div></div>
<span macro='tiddler ShiftClickToEdit'></span>
<html><hide linebreaks>
<div id="TWHouter">
<div id="TWHhdr" align="center"></div>

<div id="TWHbodyblock" align="right">
<div id="TWHl-col" align="center"><<tiddler Menu>></div>
<div id="TWHcont"><p><<tiddler ScienceContent>></p></div>
</div>
<div id="TWHftr" align="center">Copyright (c) You 2003</div>
</div>
</html>

/***
!!!<<gradient horiz #fc3 #fff >><<tiddler RefreshStyles>>&nbsp;WebPageTLCF>>/%==================================================%/
***/

#TWHouter {
 text-align:left;
 border:1px solid #000000;
 width:100%;
 margin:auto;
 }

#TWHhdr {
 width:100%;
 height:100%;
 background:#999;
 color: #333333;
 }

#TWHbar {
 height:20px;
 line-height:2.2em;
 background:#999;
 color: #a00;
 border:solid #000000;	
 border-width:1px 0 1px 0;
 padding-left:0.6em;
 }

#TWHbodyblock {
 position:relative;
 background: #dcdcdc;
 color: #333333;

 padding:0;
 }

#TWHl-col {
 float:left;
 background:#dcdcdc;
 color: #333333;
 width:120px;
 }

#TWHcont {
 background:#ffffff;
 color: #333333;
 border:solid #000000;	
 border-width:0 0 0 1px;
 text-align:left;
 width:60%;

 }

#TWHftr {
 height:35px;
 background:#fff;
 color: #333333;
 border:solid black;
 border-width:1px 0 0 0;
 margin:0;
 }


Presentation Stylesheet

h3, p {
 margin:0;
 padding:15px;
 }

h4 {
 margin:0; 
 padding: 5px 0;
 }
 
p:first-letter {
 font-size: 80%; 
 font-weight: bold;
 color:blue;
 }

<html><hide linebreaks>
{{scrollauto{
<div id="TWHouter">
<div id="TWHhdr" align="center"><<tiddler MondoOrange>><<tiddler SlantedMenu>></div>
<div id="TWHbar"></div>
<div id="TWHbodyblock" align="right">
<div id="TWHl-col" align="center"><<tiddler Menu>></div>
<div id="TWHcont"><<tiddler MainContent>></div>
</div>
<div id="TWHftr" align="center">Copyright (c) You 2003</div>
</div>
}}}
</html>
/***
!!!<<gradient horiz #fc3 #fff >><<tiddler RefreshStyles>>&nbsp;WebStyleSheet>>/%==================================================%/
***/

.firstletter{
float:left;
width:0.75em;
font-size:400%;
font-family:times,courier;
line-height:80%;
}

div.container
{
width:100%;
margin:0px;
border:0px solid gray;
line-height:130%;
}
div.header
{
padding:0.5em;
color:white;
background-color:gray;
clear:left;
}
div.footer
{
padding:0.5em;
color:white;
background-color:blue;
clear:left;
}

h1.header
{
padding:0;
margin:0;
}
div.left
{
float:left;
width:200px;
margin:0;
padding:1em;
}

div.content
{
margin-left:230px;
border-left:1px solid gray;
padding:1em;
}

!!!~EndWebPage /%==================================================%/
/***
|Name|WikifyPlugin|
|Source|http://www.TiddlyTools.com/#WikifyPlugin|
|Documentation|http://www.TiddlyTools.com/#WikifyPluginInfo|
|Version|1.1.1|
|Author|Eric Shulman - ELS Design Studios|
|License|http://www.TiddlyTools.com/#LegalStatements <br>and [[Creative Commons Attribution-ShareAlike 2.5 License|http://creativecommons.org/licenses/by-sa/2.5/]]|
|~CoreVersion|2.1|
|Type|plugin|
|Requires||
|Overrides||
|Description|substitute fields, slices, or computed values into a wiki-syntax format string and render results dynamically|
The {{{<<wikify>>}}} macro allows you to easily retrieve values from custom tiddler fields, tiddler slices, computed values (using javascript) or just plain old literals, and assemble them into small bits of generated wiki-syntax text content that can be rendered directly into a tiddler, or used in the ViewTemplate or EditTemplate to add dynamically-generated content to each tiddler.

The {{{<<wikiCalc>>}}} macro performs the same processing as {{{<<wikify>>}}} and, in addition, passes the assembled text content through javascript's {{{eval()}}} function before rendering the results.  This allows you to, for example, construct and compute mathematical expressions that use input values extracted from tiddler fields or slices.
!!!!!Documentation
> see [[WikifyPluginInfo]]
!!!!!Revisions
<<<
2008.03.08 [1.1.1] size reduction: documentation moved to [[WikifyPluginInfo]]
|please see [[WikifyPluginInfo]] for additional revision details|
2007.06.22 [1.0.0] initial release
<<<
!!!!!Code
***/
//{{{
version.extensions.wikify= {major: 1, minor: 1, revision: 1, date: new Date(2008,3,8)};

config.macros.wikify={
	handler: function(place,macroName,params,wikifier,paramString,tiddler) {
		var fmt=params.shift();
		var values=[];
		var out="";
		if (!fmt.match(/\%[0-9]/g) && params.length) // format has no markers, just join all params with spaces
			out=fmt+" "+params.join(" ");
		else { // format param has markers, get values and perform substitution
			while (p=params.shift()) values.push(this.getFieldReference(place,p));
			out=fmt.format(values);
		}
		if (macroName=="wikiCalc") out=eval(out).toString();
		wikify(out,place);
	},
	getFieldReference: function(place,p) { // "slicename::tiddlername" or "fieldname@tiddlername" or "fieldname"
		if (typeof p != "string") return p; // literal non-string value... just return it...
		var parts=p.split(config.textPrimitives.sliceSeparator);
		if (parts.length==2) {// maybe a slice reference?
			var tid=parts[0]; var slice=parts[1];
			if (!tid || !tid.length || tid=="here") { // no target (or "here"), use containing tiddler
				tid=story.findContainingTiddler(place);
				if (tid) tid=tid.getAttribute("tiddler")
				else tid="SiteSlices"; // fallback for 'non-tiddler' areas (e.g, header, sidebar, etc.)
			}
			var val=store.getTiddlerSlice(tid,slice);  // get tiddler slice value
		}
		if (val==undefined) {// not a slice, or slice not found, maybe a field reference?
			var parts=p.split("@");
			var field=parts[0];
			if (!field || !field.length) field="checked"; // missing fieldname, fallback: checked@tiddlername
			var tid=parts[1];
			if (!tid || !tid.length || tid=="here") { // no target (or "here"), use containing tiddler
				tid=story.findContainingTiddler(place);
				if (tid) tid=tid.getAttribute("tiddler")
				else tid="SiteFields"; // fallback for 'non-tiddler' areas (e.g, header, sidebar, etc.)
			}
			var val=store.getValue(tid,field);
		}
		// not a slice or field, or slice/field not found... use param value as-is
		return val===undefined?p:val;
	}
}
//}}}
//{{{
// define alternative macroName for triggering pre-rendering call to eval()
config.macros.wikiCalc=config.macros.wikify;
//}}}
@@padding-top:1em;@@
{{textcenter{
@@color:#ccc;
Augejar Trade Pty Ltd  © <<today YYYY>>@@
}}}
<br>
/***
|!''Name:''|!easyFormat|
|''Description:''|the format command format selection according to your choice|
|''Version:''|0.1.0|
|''Date:''|13/01/2007|
|''Source:''|[[TWkd|http://yann.perrin.googlepages.com/twkd.html#easyFormat]]|
|''Author:''|[[Yann Perrin|YannPerrin]]|
|''License:''|[[BSD open source license]]|
|''~CoreVersion:''|2.x|
|''Browser:''|Firefox 1.0.4+; Firefox 1.5; InternetExplorer 6.0|
|''Requires:''|@@color:red;''E.A.S.E''@@|
***/
//{{{
config.commands.format = new TWkd.Ease('Format','format selection accordingly to chosen mode');
config.commands.format.addMode({
 name:'Bold',
 tooltip:'turns selection into bold text',
 operation:function(){
 config.commands.format.putInPlace("''"+TWkd.context.selection.content+"''",TWkd.context.selection);
 }
});
config.commands.format.addMode({
 name:'Italic',
 tooltip:'turns selection into italic text',
 operation:function(){
 config.commands.format.putInPlace("//"+TWkd.context.selection.content+"//",TWkd.context.selection);
 }
});
config.commands.format.addMode({
 name:'Underlined',
 tooltip:'turns selection into underlined text',
 operation:function(){
 config.commands.format.putInPlace("__"+TWkd.context.selection.content+"__",TWkd.context.selection);
 }
});
config.commands.format.addMode({
 name:'Strikethrough',
 tooltip:'turns selection into striked text',
 operation:function(){
 config.commands.format.putInPlace("--"+TWkd.context.selection.content+"--",TWkd.context.selection);
 }
});
config.commands.format.addMode({
 name:'Superscript',
 tooltip:'turns selection into superscript',
 operation:function(){
 config.commands.format.putInPlace("^^"+TWkd.context.selection.content+"^^",TWkd.context.selection);
 }
});
config.commands.format.addMode({
 name:'Subscript',
 tooltip:'turns selection into subscript',
 operation:function(){
 config.commands.format.putInPlace("~~"+TWkd.context.selection.content+"~~",TWkd.context.selection);
 }
});
config.commands.format.addMode({
 name:'Highlight',
 tooltip:'highlight selection',
 operation:function(){
 config.commands.format.putInPlace("@@"+TWkd.context.selection.content+"@@",TWkd.context.selection);
 }
});
//}}}
<script>
        var tiddlers=store.getTiddlers("modified");
        var last=tiddlers[tiddlers.length-1];
        var when=last.modified.formatString("YYYY/0MM/0DD"+" at "+"0hh:0mm");
        return "Last Modified:  " +when
</script> 
<<tag systemConfig>>
config.options.chkHttpReadOnly =true;