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
<!--{{{-->
<div class='toolbar' macro='toolbar [[ToolbarCommands::EditToolbar]]'></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 excludeLists'></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>>
<<importTiddlers>>
<!--{{{-->
<link rel='alternate' type='application/rss+xml' title='RSS' href='index.xml' />
<!--}}}-->
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]]
<!--{{{-->
<div class='header' role='banner' 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' role='navigation' refresh='content' tiddler='MainMenu'></div>
<div id='sidebar'>
<div id='sidebarOptions' role='navigation' refresh='content' tiddler='SideBarOptions'></div>
<div id='sidebarTabs' role='complementary' refresh='content' force='true' tiddler='SideBarTabs'></div>
</div>
<div id='displayArea' role='main'>
<div id='messageArea'></div>
<div id='tiddlerDisplay'></div>
</div>
<!--}}}-->
/*{{{*/
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]];}

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

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

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

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

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

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

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

.toolbar {color:[[ColorPalette::PrimaryMid]];}
.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]];}

.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]];}
.readOnly {background:[[ColorPalette::TertiaryPale]];}

#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 0 1em 1em; left:-1px; top:-1px;}
.headerForeground {position:absolute; padding:4.5em 0 1em 1em; left:0; top:0;}

.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:0 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 0.3em 0;}
#sidebarTabs .tabContents {width:15em; overflow:hidden;}

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

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

.tiddlerPopupButton {padding:0.2em;}
.popupTiddler {position: absolute; z-index:300; padding: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 0;}
.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 0 0 0.5em;}
.tab {margin:0 0 0 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 0 14em;}

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

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

.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:0 0.25em; padding:0 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:0 3px 0 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 0; font-size:.9em;}
.editorFooter .button {padding-top:0; padding-bottom:0;}

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

.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;}
#backstageToolbar {position:relative;}
#backstageArea a {font-weight:bold; margin-left:0.5em; padding:0.3em 0.5em;}
#backstageButton {display:none; position:absolute; z-index:175; top:0; right:0;}
#backstageButton a {padding:0.1em 0.4em; margin:0.1em;}
#backstage {position:relative; width:100%; z-index:50;}
#backstagePanel {display:none; z-index:100; position:absolute; width:90%; margin-left:3em; padding:1em;}
.backstagePanelFooter {padding-top:0.2em; float:right;}
.backstagePanelFooter a {padding: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;}
noscript {display:none;} /* Fixes a feature in Firefox 1.5.0.2 where print preview displays the noscript content */
}
/*}}}*/
<!--{{{-->
<div class='toolbar' role='navigation' macro='toolbar [[ToolbarCommands::ViewToolbar]]'></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>
<!--}}}-->
{{{
Background: #f6f6f6
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

TableHeader: #950
TableHeaderBg: #ffd080
TableHeaderRef: #064
TableHeader2: #950
TableHeader2Bg: lightyellow
TableHeader2Ref: #064
TableHeader3: #950
TableHeader3Bg: HoneyDew
TableHeader3Ref: #064
TableHeader4: #950
TableHeader4Bg: LavenderBlush
TableHeader4Ref: #064
TableHeader5: #950
TableHeader5Bg: pink
TableHeader5Ref: #064

HeaderTop: #a60
HeaderBottom: #eb5
PreBg: #ffc
PreBorder: #fe8
FooterTop: #ffe4c0
FooterBottom: #eed090
FooterBg: #fcdc66
FooterBorder: #cba
FooterText: #000
FooterRef: #950

TiddlerBg: #fff
TiddlerEven: #eee
TiddlerRef: #064
TiddlerRem: #800
TiddlerAccent: #060

SliderPanel: #ddd
TabUnselected: #c8c8c8
}}}
[[Жёсткие диски]]
/***
|Name:|DisableWikiLinksPlugin|
|Source:|http://www.TiddlyTools.com/#DisableWikiLinksPlugin|
|Version:|1.6.0|
|Author:|Eric Shulman|
|License:|http://www.TiddlyTools.com/#LegalStatements|
|CoreVersion:|2.1|
|Type:|plugin|
|Description:|selectively disable TiddlyWiki's automatic WikiWord linking behavior|
***/
//{{{
version.extensions.DisableWikiLinksPlugin= {major: 1, minor: 6, revision: 0, date: new Date(2008,7,22)};

if (config.options.chkDisableWikiLinks==undefined) config.options.chkDisableWikiLinks=false;
if (config.options.chkDisableNonExistingWikiLinks==undefined) config.options.chkDisableNonExistingWikiLinks=true;
if (config.options.chkAllowLinksFromShadowTiddlers==undefined) config.options.chkAllowLinksFromShadowTiddlers=true;
if (config.options.txtDisableWikiLinksList==undefined) config.options.txtDisableWikiLinksList="DisableWikiLinksList";
if (config.options.txtDisableWikiLinksTag==undefined) config.options.txtDisableWikiLinksTag="excludeWikiWords";

// find the formatter for wikiLink and replace handler with 'pass-thru' rendering
initDisableWikiLinksFormatter();
function initDisableWikiLinksFormatter() {
	for (var i=0; i<config.formatters.length && config.formatters[i].name!="wikiLink"; i++);
	config.formatters[i].coreHandler=config.formatters[i].handler;
	config.formatters[i].handler=function(w) {
		// supress any leading "~" (if present)
		var skip=(w.matchText.substr(0,1)==config.textPrimitives.unWikiLink)?1:0;
		var title=w.matchText.substr(skip);
		var exists=store.tiddlerExists(title);
		var inShadow=w.tiddler && store.isShadowTiddler(w.tiddler.title);
		// check for excluded Tiddler
		if (w.tiddler && w.tiddler.isTagged(config.options.txtDisableWikiLinksTag))
			{ w.outputText(w.output,w.matchStart+skip,w.nextMatch); return; }
		// check for specific excluded wiki words
		var t=store.getTiddlerText(config.options.txtDisableWikiLinksList);
		if (t && t.length && t.indexOf(w.matchText)!=-1)
			{ w.outputText(w.output,w.matchStart+skip,w.nextMatch); return; }
		// if not disabling links from shadows (default setting)
		if (config.options.chkAllowLinksFromShadowTiddlers && inShadow)
			return this.coreHandler(w);
		// check for non-existing non-shadow tiddler
		if (config.options.chkDisableNonExistingWikiLinks && !exists)
			{ w.outputText(w.output,w.matchStart+skip,w.nextMatch); return; }
		// if wikiLinks disabled, just return text without linking
		if (config.options.chkDisableWikiLinks)
			{ w.outputText(w.output,w.matchStart+skip,w.nextMatch); return; }
		// do standard WikiWord link formatting
		return this.coreHandler(w);
	}
}

Tiddler.prototype.coreAutoLinkWikiWords = Tiddler.prototype.autoLinkWikiWords;
Tiddler.prototype.autoLinkWikiWords = function() {
/*
	var skip=(this.matchText.substr(0,1)==config.textPrimitives.unWikiLink)?1:0;
	var title=this.substr(skip);
	var exists=store.tiddlerExists(title);
	var exists=store.tiddlerExists(this.title);
alert(this.title+"; "+exists);
	if (config.options.chkDisableNonExistingWikiLinks && !exists) return false;
*/
	// if all automatic links are not disabled, just return results from core function
	if (config.options.chkDisableWikiLinks) return false;
	return this.coreAutoLinkWikiWords.apply(this,arguments);
}

Tiddler.prototype.disableWikiLinks_changed = Tiddler.prototype.changed;
Tiddler.prototype.changed = function()
{
	this.disableWikiLinks_changed.apply(this,arguments);
	// remove excluded wiki words from links array
	var t=store.getTiddlerText(config.options.txtDisableWikiLinksList,"").readBracketedList();
	if (t.length) for (var i=0; i<t.length; i++)
		if (this.links.contains(t[i]))
			this.links.splice(this.links.indexOf(t[i]),1);
}

config.optionsDesc["chkDisableWikiLinks"]="Disables WikiLinks";
config.optionsDesc["chkDisableNonExistingWikiLinks"]="Disables only non-existing WikiLinks";
config.optionsDesc["chkAllowLinksFromShadowTiddlers"]="Allows WikiLinks from ShadowTiddlers";
config.optionsDesc["txtDisableWikiLinksList"]="Name of tiddly which contains the default settings for DisableWikiLinksPlugin";
config.optionsDesc["txtDisableWikiLinksTag"]="Disables WikiWords for tiddlers, marked by this tag";

//}}}
<!--{{{-->
<table width=100%><tr>
	<td valign=top><div class='title' macro='view title'></div></td>
	<td valign=top><div class='toolbar' macro='toolbar [[ToolbarCommands::EditToolbar]]'></div></td>
</tr></table>
<div class='editor' macro='edit title'></div>
<div macro='annotations'></div>
<div class='editor' macro='edit tags'></div>
<div class='editorFooter'>
	<span macro='message views.editor.tagPrompt'></span><span macro='tagChooser excludeLists'></span>
</div>
<div class='editor' macro='edit text'></div>
<!--}}}-->
/***
|''Name:''|ExcludeOrphansPlugin|
|''Author:''|vmunt|
|''Description:''|Обработчик тега excludeOrphans<br>Тag excludeOrphans handler|
|''Version:''|0.1|
|''Date:''|2010|
|''Source:''|http://vmunt.site/tw|
|''License:''|BSD open source license|
|''CoreVersion:''|2.6.0|
Этот модуль создаёт обработчик тега {{{excludeOrphans}}}. Заметки с этим тегом не появляются в списке Потери. Можно использовать для пометки плагинов {{remark{(заметок, помеченных тегом systemConfig, ибо они доступны из сервисных меню, генерируемых кодом)}}}, и для заметок, описывающих авторов заметок {{remark{(ибо ссылка на автора всё равно присутствует в заголовке каждой заметки)}}}. Плагин сделан простой подменой функции {{{TiddlyWiki.prototype.getOrphans}}}
Eng:
This plugin creates tag {{{excludeOrphans}}} handler. This tag useful for {{{systemConfig}}} tiddlers, author tiddlers and others service tiddlers, links to them missing in text tiddlers in this wiki. Tiddlers marks for this tag is not shown in list More/Orphans. Plugin makes as simple replace by function {{{TiddlyWiki.prototype.getOrphans}}}

{{remark{(If you find ugly constructions in my English, I will be pleased to advice how to makes this text more correct. My native language is Russian, and I have no language practice before…}}}
***/
//{{{
// Return an array of names of tiddlers that are defined but not referred to
TiddlyWiki.prototype.getOrphans = function()
{
	var results = [];
	this.forEachTiddler(function (title,tiddler) {
		if(this.getReferringTiddlers(title).length == 0 && !tiddler.isTagged("excludeLists") && !tiddler.isTagged("excludeOrphans"))
			results.push(title);
	});
	results.sort();
	return results;
};
//}}}
Назначение и описание TiddlyWiki можно прочитать [[здесь|http://vmunt.site/tw/tw.tutorial.rus.html#TiddlyWiki]]
Для настройки пустой TiddlyWiki надо сделать следующие шаги:
* Настроить имя автора {{remark{(хозяина)}}}: <<option txtUserName>>
* Уточнить [[Заголовок|SiteTitle]] и [[Подзаголовок|SiteSubtitle]] этой TiddlyWiki
* Сделать требуемое [[Главное меню|MainMenu]] документа ({{remark{которое обычно располагается слева}}})
* Подправить год создания в [[Подвале|PageFooter]] документа {{remark{(цветная полоса внизу страницы)}}}
* Установить [[Заметку (заметки), сразу открывающиеся при старте|DefaultTiddlers]] этой TiddlyWiki
/***
|''Name:''|ImportTablePlugin|
|''Old name:''|ImportTiddlersExp|
|''Author:''|vmunt|
|''Description:''|Расширенное меню импорта заметок|
|''Version:''|0.1.1|
|''Date:''|2010|
|''Source:''|http://vmunt.site/tw|
|''License:''|BSD open source license|
|''CoreVersion:''|2.6.0|
|''Remark:''|Не закончена функция formatDateStr() и стоит явное указание форматной строки {{remark{(потому что выравнивание колонки по правому краю в wizard-е пока не знаю, как делать)}}}. Также думаю сделать закомментированный вариант английских названий колонок|
Вместо такого меню импорта:
|!Заметка|!Размер|!Метки|
|TiddlyWiki:rus|26 KB|systemConfig|
делает такое
|!Заметка|!Метки|!Размер|!Кем|!Изменена|!Старая дата|!Бывший автор|!Сколько занимала|
|TiddlyWiki:rus|systemConfig|26 KB|vmunt|16.06.2010|28.07.2010|vmunt|26 KB|
***/
//{{{
config.macros.importTiddlers.listViewTemplateExp = {
	columns: [
		{name: 'Selected', field: 'Selected', rowName: 'title', type: 'Selector'},
		{name: 'Tiddler', field: 'tiddler', title: "Заметка", type: 'Tiddler'},
		{name: 'Tags', field: 'tags', title: "Метки", type: 'Tags'},
		{name: 'Size', field: 'size', tiddlerLink: 'size', title: "Размер", type: 'Size'},
		{name: 'Modifier', field: 'modifier', title: "Кем", type: 'String'},	//**** vmunt: added ****
		{name: 'Modified', field: 'modified', title: "Изменена", type: 'String'},	// Fri Jun 4 09:37:00 UTC+0600 2010
		{name: 'StoreModifier', field: 'sModified', title: "Старая дата", type: 'String'}, // 201006041906
		{name: 'StoreModified', field: 'sModifier', title: "Бывший автор", type: 'String'},
		{name: 'StoreSize', field: 'sSize', title: "Сколько занимала", type: 'Size'}],
	rowClasses: [
		{className: 'warning', field: 'sNewer'},
		{className: 'lowlight', field: 'sEqual'}
]};

String.prototype.formatDateString = function(template) {
	function hour12(s) { return (int.s > 12) ? zeroPad(int.s - 12,2) : int.s; }

	var t = template.replace(/wYYYY/g,this.substr(0,4));
	t = t.replace(/wYY/g,this.substr(2,4));
	t = t.replace(/YYYY/g,this.substr(0,4));
	t = t.replace(/YY/g,this.substr(2,4));
	t = t.replace(/mmm/g,config.messages.dates.shortMonths[parseInt(this.substr(4,2))-1]);
	t = t.replace(/MMM/g,config.messages.dates.months[parseInt(this.substr(4,2))-1]);
	t = t.replace(/0MM/g,this.substr(4,2));
	t = t.replace(/MM/g,parseInt(this.substr(4,2))); // not quite correct
	t = t.replace(/0DD/g,this.substr(6,2));
	t = t.replace(/DD/g,parseInt(this.substr(6,2)));

//	t = t.replace(/0mm/g,String.zeroPad(this.getMinutes(),2));
//	t = t.replace(/mm/g,this.getMinutes());
//	t = t.replace(/0hh12/g,String.zeroPad(this.substr(8,2)));
/*
	t = t.replace(/hh12/g,this.getHours12());
	t = t.replace(/0hh/g,String.zeroPad(this.getHours(),2));
	t = t.replace(/hh/g,this.getHours());
	t = t.replace(/0ss/g,String.zeroPad(this.getSeconds(),2));
	t = t.replace(/ss/g,this.getSeconds());
	t = t.replace(/[ap]m/g,this.getAmPm().toLowerCase());
	t = t.replace(/[AP]M/g,this.getAmPm().toUpperCase());
	t = t.replace(/0WW/g,String.zeroPad(this.getWeek(),2));
	t = t.replace(/WW/g,this.getWeek());
	t = t.replace(/DDD/g,config.messages.dates.days[this.getDay()]);
	t = t.replace(/ddd/g,config.messages.dates.shortDays[this.getDay()]);
	t = t.replace(/DDth/g,this.getDate()+this.daySuffix());
	var tz = this.getTimezoneOffset();
	var atz = Math.abs(tz);
	t = t.replace(/TZD/g,(tz < 0 ? '+' : '-') + String.zeroPad(Math.floor(atz / 60),2) + ':' + String.zeroPad(atz % 60,2));
	t = t.replace(/\\/g,"");
*/
	return t;
};
config.macros.importTiddlers.onGerTiddlerListOrig = config.macros.importTiddlers.onGetTiddlerList;	// Save pointer to original macro

config.macros.importTiddlers.onGetTiddlerList = function(context,wizard) {
	if(context.status !== true) {
		wizard.setButtons([{caption: config.macros.importTiddlers.cancelLabel, tooltip: config.macros.importTiddlers.cancelPrompt, onClick: config.macros.importTiddlers.onCancel}],config.macros.importTiddlers.errorGettingTiddlerList);
		return;
	}
	// Extract data for the listview
	var listedTiddlers = [];
	if(context.tiddlers) {
		for(var n=0; n<context.tiddlers.length; n++) {
			var tiddler = context.tiddlers[n];
			var ss = 0;
			if (store.tiddlerExists(tiddler.title)) {
				ss = store.getTiddlerText(tiddler.title);
				ss = ss.length > 0 ? ss.length : -1;
			}
			var tm = tiddler.modified.convertToYYYYMMDDHHMM();
			var sm = store.getValue(tiddler.title,'modified');
			listedTiddlers.push({
				title: tiddler.title,
				modified: tm.formatDateString("0DD.0MM.YYYY"), // config.views.wikified.dateFormat),
				modifier: tiddler.modifier,
				text: tiddler.text ? wikifyPlainText(tiddler.text,100) : "",
				tags: tiddler.tags,
				size: tiddler.text ? tiddler.text.length : 0,
				tiddler: tiddler,
//*** vmunt added ***
				sModified: ss == 0 ? '' : sm.formatDateString("0DD.0MM.YYYY"), // config.views.wikified.dateFormat), //sm.formatDateString("DD.0MM.YYYY")
				sModifier: ss == 0 ? '' : store.getValue(tiddler.title,'modifier'),
				sSize: ss,
				sEqual: sm==tm ? true : false,
				sNewer: sm>tm ? true : false
			});
		}
	}
	listedTiddlers.sort(function(a,b) {return a.title < b.title ? -1 : (a.title == b.title ? 0 : +1);});
	// Display the listview
	wizard.addStep(config.macros.importTiddlers.step3Title,config.macros.importTiddlers.step3Html);
	var markList = wizard.getElement("markList");
	var listWrapper = document.createElement("div");
	markList.parentNode.insertBefore(listWrapper,markList);
	var listView = ListView.create(listWrapper,listedTiddlers,config.macros.importTiddlers.listViewTemplateExp);
	wizard.setValue("listView",listView);
	wizard.setValue("context",context);
	var txtSaveTiddler = wizard.getElement("txtSaveTiddler");
	txtSaveTiddler.value = config.macros.importTiddlers.generateSystemServerName(wizard);
	wizard.setButtons([
		{caption: config.macros.importTiddlers.cancelLabel, tooltip: config.macros.importTiddlers.cancelPrompt, onClick: config.macros.importTiddlers.onCancel},
		{caption: config.macros.importTiddlers.importLabel, tooltip: config.macros.importTiddlers.importPrompt, onClick: config.macros.importTiddlers.doImport}]);
};
//}}}
[[Жёсткие диски]]
[[Обмотки для проводов]]
[[Системные блоки]]
[[ТВ-тюнеры]]
[[Хабы]]
[[Клавиатуры]]
[[Оцифровка видеокассет]]
----
@@color:green;font-size:.9em;[[TiddlyWiki|GettingStarted]], v.<<version>><br>&copy; [[Jeremy Ruston|http://www.tiddlywiki.com/#JeremyRuston]], [[vmunt]], 2014&divide;2017@@
<!--{{{-->
<link rel='alternate' type='application/rss+xml' title='RSS' href='index.xml' />
<link rel="shortcut icon" type="image/x-icon" href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAAuIwAALiMBeKU/dgAAAAd0SU1FB9wCCg0kDTvUy7gAAAH2SURBVDjLlVNNSJVRED1nzrmLl5sIg6KdSD8gYtZCLIp+QCKCVkEQES0yzCQIMlwYUlRItIqIaBlRQkRtEsN0Edmuh5S10CSpZRbkoh/0a/G+Z2pKNXDhzrlzz505Mxf4B+vrqFzyjPdPJJLsiogmkrUkZxgxSXKQZJvtz02XJ9HXUbmV5EWQ9REhkqOMaLftGySPkQQjMkYwyGUkDzFiS9OlT1UAEFJPkKsZAUZkQdYg4kKE9ED2d9uQTUuQBNlZSCcBoL9zFWzvUkqQDUkM+2YqFDZ539Wp3sdnlteENBIRKc8EJEHyGwAUKiowPT1dn2MZyUeN7WPNABC9Z1dgT/eXUdt3ZGP2FZtOqRMAGtvHIPu07cw2JXUOdVeXRCyrOdC1Zn1EvCGJyOskSUZsj4hxAhN5Zg83nxrZX74X5c2Ocx/fyu733Axs2D4v+1aO/Qi7bW4bY67jlJrzwLKQkL1N0mBe2tP61uGJRQmGuqtBYFz2B9nZLFFpHa9rKZLk3j8GaSHw8lrtgZDu5YqXeh5BktUbjr4YWxg/r4Ti9TpsbB3ukfROduaU4N9ZFBYb5XkEdS1FAIBSuiKbZTFDmlp7+NmrvxLMguRtpfRTpS5AUsNSn2lRgnVHnn9N9kpJT0JqqDo48Br/Y+N3d87z3/fsXjL2F4ebZ2453LoIAAAAAElFTkSuQmCC" />
<!--}}}-->
/***
|Name|NestedSlidersPlugin|
|Source|http://www.TiddlyTools.com/#NestedSlidersPlugin|
|Documentation|http://www.TiddlyTools.com/#NestedSlidersPluginInfo|
|Version|2.4.9|
|Author|Eric Shulman|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.1|
|Type|plugin|
|Description|show content in nest-able sliding/floating panels, without creating separate tiddlers for each panel's content|
!!!!!Documentation
>see [[NestedSlidersPluginInfo]]
!!!!!Configuration
<<<
<<option chkFloatingSlidersAnimate>> allow floating sliders to animate when opening/closing
>Note: This setting can cause 'clipping' problems in some versions of InternetExplorer.
>In addition, for floating slider animation to occur you must also allow animation in general (see [[AdvancedOptions]]).
<<<
!!!!!Revisions
<<<
2008.11.15 - 2.4.9 in adjustNestedSlider(), don't make adjustments if panel is marked as 'undocked' (CSS class).  In onClickNestedSlider(), SHIFT-CLICK docks panel (see [[MoveablePanelPlugin]])
|please see [[NestedSlidersPluginInfo]] for additional revision details|
2005.11.03 - 1.0.0 initial public release.  Thanks to RodneyGomes, GeoffSlocock, and PaulPetterson for suggestions and experiments.
<<<
!!!!!Code
***/
//{{{
version.extensions.NestedSlidersPlugin= {major: 2, minor: 4, revision: 9, date: new Date(2008,11,15)};

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

// TW2.2+
// hijack Morpher stop handler so sliderPanel/floatingPanel overflow is visible after animation has completed
if (version.major+.1*version.minor+.01*version.revision>=2.2) {
	Morpher.prototype.coreStop = Morpher.prototype.stop;
	Morpher.prototype.stop = function() {
		this.coreStop.apply(this,arguments);
		var e=this.element;
		if (hasClass(e,"sliderPanel")||hasClass(e,"floatingPanel")) {
			// adjust panel overflow and position after animation
			e.style.overflow = "visible";
			if (window.adjustSliderPos) window.adjustSliderPos(e.parentNode,e.button,e);
		}
	};
}
//}}}
/***
|Name|NestedSlidersPluginInfo|
|Source|http://www.TiddlyTools.com/#NestedSlidersPlugin|
|Documentation|http://www.TiddlyTools.com/#NestedSlidersPluginInfo|
|Version|2.4.9|
|Author|Eric Shulman|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.1|
|Type|documentation|
|Description|documentation for NestedSlidersPlugin|
Этот модуль добавляет новую вики-разметку для встроенных прямо в заметку выдвижных панелей (слайдеров).
!!!!!Использование
<<<
//{{{
++++(cookiename)!!!!!^width^*@{{class{[label=key|tooltip][altlabel|alttooltip]}}}#panelID:>...
content goes here
===
Также будет добавлено:
++++
содержимое 1
+++-
содержимое 2
+++-
содержимое 3
===
//}}}
* ''"""+++""" (или """++++""") и """==="""''<br>Помечают соответственно начало и конец выдвижной панели. Дополнительный {{remark{(четвёртый)}}} {{{+}}} указывает на то, что выдвижная панель будет открыта сразу при первом же отображении заметки.
* ''"""(имя_cookie)"""''<br>Название переменной, в которой будет сохраняться последнее состояние открытого/закрытого пункта меню. При повторном открытии TiddlyWiki состояние данной выдвижной панели будет восстановлено.
* ''"""! ÷ !!!!!"""''<br>Переключает стиль отображения метки выдвижной панели со стиля кнопки на стиль заголовка соответствующего уровня {{remark{(от 1-го до 5-го)}}}.
* ''"""^ширина^ (или просто ^)"""''<br>Делает выдвижную панель вместо выдвижной {{remark{(сдвигающей расположенный ниже текст дальше вниз)}}} всплывающей над текстом {{remark{(наподобие выпадывающих меню)}}}. {{{Ширина}}} должна быть представлена правильным CSS-значением {{remark{(например, "30em", "180px", "50%", и так далее)}}}. Если {{{ширина}}} опущена, то будет использовано автоматическое определение ширины {{remark{(для полного размещения содержимого)}}}.
* ''"""*"""''<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.//
* ''"""@"""''<br>denotes "open on hover": the slider/floating panel will be automatically opened as soon as the mouse moves over the slider label, without requiring a click.
* ''"""{{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 specify alternative label/tooltip for use when slider/floating panel is displayed.  //Note: you can use HTML syntax within the label text to include HTML entities (e.g., {{{&raquo;}}} (&raquo;) or {{{&#x25ba;}}} (&#x25ba;), or even embedded images (e.g., {{{<img src="images/eric3.gif">}}}).//
* ''"""#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.
* ''""">"""''<br>automatically adds blockquote formatting to slider content
* ''"""..."""''<br>defers rendering of closed sliders until the first time they are opened.
Notes:
*You can 'nest' sliders as deep as you like (see complex nesting example below), so that expandable 'tree-like' hierarchical displays can be created.
*Deferred rendering (...) can be used to offset processing overhead until actually needed. However, this may produce unexpected results in some cases.  Use with care.
* To make slider definitions easier to read and recognize when editing a tiddler, newlines immediately following the 'start slider' or preceding the 'end slider' sequences 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 (except cookie) //(default open, heading, sized floater, transient, open on hover, class, label/tooltip/key, blockquoted, deferred)//
{{{
++++!!!^30em^*@{{big{[label=Z|click or press Alt-Z to open]}}}>...
   content
===
}}}
++++!!!^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===
	===
===
----
embedded image as slider button
{{{
+++[<img src=images/eric3.gif>|click me!]>
	{{big{OUCH!}}}
===
}}}
+++[<img src=images/eric3.gif>|click me!]>
	{{big{OUCH!}}}
===
<<<
!!!!!Revisions
<<<
2008.11.15 2.4.9 in adjustNestedSlider(), don't make adjustments if panel is marked as 'undocked' (CSS class).  In onClickNestedSlider(), SHIFT-CLICK docks panel (see [[MoveablePanelPlugin]])
2008.11.13 2.4.8 in document.onclick(), if transient panel is not a sliderPanel or floatingPanel, hide it via CSS
2008.10.05 2.4.7 in onClickNestedSlider(), added try/catch around focus() call to prevent IE error if input field being focused on is currently not visible.
2008.09.07 2.4.6 added removeCookie() function for compatibility with [[CookieManagerPlugin]]
2008.06.07 2.4.5 in 'onmouseover' handler for 'open on hover' slider buttons, use call() method when invoking document.onclick function (avoids error in IE)
2008.06.07 2.4.4 changed default for chkFloatingSlidersAnimate to FALSE to avoid clipping problem on some browsers (IE).  Updated Morpher hijack (again) to adjust regular sliderPanel styles as well as floatingPanel styles.
2008.05.07 2.4.3 updated Morpher hijack to adjust floatingPanel styles after animation without affecting other animated elements (i.e. popups).  Also, updated adjustSliderPos() to account for scrollwidth and use core findWindowWidth().
2008.04.02 2.4.2 in onClickNestedSlider, handle clicks on elements contained //within// slider buttons (e.g., when using HTML to display an image as a slider button).
2008.04.01 2.4.1 open on hover also triggers document.onclick to close other transient sliders
2008.04.01 2.4.0 re-introduced 'open on hover' feature using "@" symbol
2008.03.26 2.3.5 in document.onclick(), if click is in popup, don't dismiss transient panel (if any)
2008.01.08 [*.*.*] plugin size reduction: documentation moved to …Info tiddler
2007.12.28 2.3.4 added hijack for Animator.prototype.startAnimating().  Previously, the plugin code simply set the overflow to "visible" after animation.  This code tweak corrects handling of elements that were styled with overflow=hidden/auto/scroll before animation by saving the overflow style and then restoring it after animation has completed.
2007.12.17 2.3.3 use hasClass() instead of direct comparison to test for "floatingPanel" class.  Allows floating panels to have additional classes assigned to them (i.e., by AnimationEffectsPlugin).
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.
2007.07.20 2.3.0 added syntax for setting panel ID (#panelID:).  This allows individual slider panels to be repositioned within tiddler content simply by giving them a unique ID and then moving them to the desired location using the {{{<<DOM move id>>}}} macro.
2007.07.19 2.2.0 added syntax for alttext and alttip (button label and tooltip to be displayed when panel is open)
2007.07.14 2.1.2 corrected use of 'transient' attribute in IE to prevent (non-recursive) infinite loop
2007.07.12 2.1.0 replaced use of "*" for 'open/close on rollover' (which didn't work too well).  "*" now indicates 'transient' panels that are automatically closed if a click occurs somewhere else in the document.  This permits use of nested sliders to create nested "pulldown menus" that automatically disappear after interaction with them has been completed.  Also, in onClickNestedSlider(), use "theTarget.sliderCookie", instead of "this.sliderCookie" to correct cookie state tracking when automatically dismissing transient panels.
2007.06.10 2.0.5 add check to ensure that window.adjustSliderPanel() is defined before calling it (prevents error on shutdown when mouse event handlers are still defined)
2007.05.31 2.0.4 add handling to invoke adjustSliderPanel() for onmouseover events on slider button and panel.  This allows the panel position to be re-synced when the button position shifts due to changes in unrelated content above it on the page.  (thanks to Harsha for bug report)
2007.03.30 2.0.3 added chkFloatingSlidersAnimate (default to FALSE), so that slider animation can be disabled independent of the overall document animation setting (avoids strange rendering and focus problems in floating panels)
2007.03.01 2.0.2 for TW2.2+, hijack Morpher.prototype.stop so that "overflow:hidden" can be reset to "overflow:visible" after animation ends
2007.03.01 2.0.1 in hijack for Slider.prototype.stop, use apply() to pass params to core function
2006.07.28 2.0.0 added custom class syntax around label/tip/key syntax: {{{{{classname{[label=key|tip]}}}}}}
2006.07.25 1.9.3 when parsing slider, save default open/closed state in button element, then in onClickNestedSlider(), if slider state matches saved default, instead of saving cookie, delete it.  Significantly reduces the 'cookie overhead' when default slider states are used.
2006.06.29 1.9.2 in onClickNestedSlider(), when setting focus to first control, skip over type="hidden"
2006.06.22 1.9.1 added panel.defaultPanelWidth to save requested panel width, even after resizing has changed the style value
2006.05.11 1.9.0 added optional '^width^' syntax for floating sliders and '=key' syntax for setting an access key on a slider label
2006.05.09 1.8.0 in onClickNestedSlider(), when showing panel, set focus to first child input/textarea/select element
2006.04.24 1.7.8 in adjustSliderPos(), if floating panel is contained inside another floating panel, subtract offset of containing panel to find correct position
2006.02.16 1.7.7 corrected deferred rendering to account for use-case where show/hide state is tracked in a cookie
2006.02.15 1.7.6 in adjustSliderPos(), ensure that floating panel is positioned completely within the browser window (i.e., does not go beyond the right edge of the browser window)
2006.02.04 1.7.5 add 'var' to unintended global variable declarations to avoid FireFox 1.5.0.1 crash bug when assigning to globals
2006.01.18 1.7.4 only define adjustSliderPos() function if it has not already been provided by another plugin.  This lets other plugins 'hijack' the function even when they are loaded first.
2006.01.16 1.7.3 added adjustSliderPos(place,btn,panel,panelClass) function to permit specialized logic for placement of floating panels.  While it provides improved placement for many uses of floating panels, it exhibits a relative offset positioning error when used within *nested* floating panels.  Short-term workaround is to only adjust the position for 'top-level' floaters.
2006.01.16 1.7.2 added button property to slider panel elements so that slider panel can tell which button it belongs to.  Also, re-activated and corrected animation handling so that nested sliders aren't clipped by hijacking Slider.prototype.stop so that "overflow:hidden" can be reset to "overflow:visible" after animation ends
2006.01.14 1.7.1 added optional "^" syntax for floating panels.  Defines new CSS class, ".floatingPanel", as an alternative for standard in-line ".sliderPanel" styles.
2006.01.14 1.7.0 added optional "*" syntax for rollover handling to show/hide slider without requiring a click (Based on a suggestion by tw4efl)
2006.01.03 1.6.2 When using optional "!" heading style, instead of creating a clickable "Hn" element, create an "A" element inside the "Hn" element.  (allows click-through in SlideShowPlugin, which captures nearly all click events, except for hyperlinks)
2005.12.15 1.6.1 added optional "..." syntax to invoke deferred ('lazy') rendering for initially hidden sliders
removed checkbox option for 'global' application of lazy sliders
2005.11.25 1.6.0 added optional handling for 'lazy sliders' (deferred rendering for initially hidden sliders)
2005.11.21 1.5.1 revised regular expressions: if present, a single newline //preceding// and/or //following// a slider definition will be suppressed so start/end syntax can be place on separate lines in the tiddler 'source' for improved readability.  Similarly, any whitespace (newlines, tabs, spaces, etc.) trailing the 'start slider' syntax or preceding the 'end slider' syntax is also suppressed.
2005.11.20 1.5.0 added (cookiename) syntax for optional tracking and restoring of slider open/close state
2005.11.11 1.4.0 added !!!!! syntax to render slider label as a header (Hn) style instead of a button/link style
2005.11.07 1.3.0 removed alternative syntax {{{(((}}} and {{{)))}}} (so they can be used by other formatting extensions) and simplified/improved regular expressions to trim multiple excess newlines
2005.11.05 1.2.1 changed name to NestedSlidersPlugin
2005.11.04 1.2.0 added alternative character-mode syntax {{{(((}}} and {{{)))}}}
tweaked "eat newlines" logic for line-mode {{{+++}}} and {{{===}}} syntax
2005.11.03 1.1.1 fixed toggling of default tooltips ("more…" and "less…") when a non-default button label is used.  code cleanup, added documentation
2005.11.03 1.1.0 changed delimiter syntax from {{{(((}}} and {{{)))}}} to {{{+++}}} and {{{===}}}.  changed name to EasySlidersPlugin
2005.11.03 1.0.0 initial public release
<<<
[[Настройки интерфейса|SystemSettings]] для изменения вида TiddlyWiki, которые сохраняются программой просмотра

Ваше имя для подписывания правок. Можете записать его как WikiWord (к примеру, JoeBloggs)

<<option txtUserName>>
<<option chkSaveBackups>> Резервная копия
<<option chkAutoSave>> Автосохранение
<<option chkRegExpSearch>> Регулярные выражения
<<option chkCaseSensitiveSearch>> Чувствительность к регистру
<<option chkAnimate>> Анимация

----
[[Начальные настройки|GettingStarted]]
[[Расширенные настройки|AdvancedOptions]]
@@color:green;font-size:.9em;&copy; [[Jeremy Ruston|http://www.tiddlywiki.com/#JeremyRuston]], v.<<version>>, [[vmunt]], 2014@@ [[Конфигурирование|GettingStarted]]
<!--{{{-->
<div class='header' macro='gradient vert [[ColorPalette::HeaderTop]] [[ColorPalette::HeaderBottom]]'>
<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 class="topSearch"><span macro='search ""'></span></div>
</div>
<div id='sidebar'>
<div id='mainMenu' refresh='content' tiddler='MainMenu'></div>
<div id='sidebarOptions' refresh='content' tiddler='SideBarOptions'></div>
<!-- vmunt: Tabs slider inserted to SideBarOptions -->
<!-- <div id='sidebarTabs' refresh='content' force='true' tiddler='SideBarTabs'></div> -->
</div>
<div id='displayArea'>
<div id='messageArea'></div>
<div id='tiddlerDisplay'></div>
</div>
<!--}}}-->
<<newTiddler>><<permaview>>{{remark{<<unsavedChanges inline "<br>">>}}}<<saveChanges>><<closeAll>><<slider chkSliderOptionsPanel OptionsPanel "настройки »" "Изменение настроек TiddlyWiki">> <<slider chkSliderHistoryPanel SideBarTabs "история »" "Панель истории изменений и прочих списков заметок">>
<<tabs txtMainTab "нет" "Отсутствующие заметки" TabMoreMissing "потери" "Потерянные заметки" TabMoreOrphans "метки" "Все метки" TabTags "история" "История" TabTimeline "все" "Все заметки" TabAll "служебные" "Служебные заметки" TabMoreShadowed>>
Дополнительная информация
Товары на продажу
http://www.wuic.com/
/***
!New predefined decoration styles, fixed colors {{remark{(see «Стилевое оформление» tiddler in tutorial for details)}}}
***/
/*{{{*/
.accent { color:[[ColorPalette::TiddlerAccent]];font-style:oblique;font-weight:bold } /* Выделение, акцент на слово или на фразу (Highlighting of important words, themes) */
.alert { color:red } /* Места, требующие особого внимания (Attension text, places) */
.author { color:[[ColorPalette::TiddlerAccent]];font-style:italic;text-align:right } /* Автор публикации (Author name, sign) */
.prefix { font-weight:bold } /* Prompt for text in forms, tables */
.remark { color:[[ColorPalette::TiddlerRem]];font-size:.9em;font-style:italic;margin-bottom:6px;margin-top:6px } /* Примечания переводчика или мои (Remarks, comments, notes) */
.remark CODE,
.remark PRE { font-style:normal;font-size:1.4em } /* Text TT, KBD, SAMP+.remark in FireFox under Linux not shown because font-family:-moz-fixed;font-style:italic;  type face is missing */
/*
.remark CODE { color:#840 }
.remark PRE { color:#600 }
*/
.source { color:[[ColorPalette::TiddlerRef]];display:block;float:right;font-style:italic } /* Reference to the source of publication;text-align:right */
.trans,
.titled { color:[[ColorPalette::TiddlerAccent]];font-style:italic;font-weight:bold } /* Word or phrase with floating title (can be used only in HTML mode) */
/*}}}*/
/***
!Change common decoration styles
***/
/*{{{*/
H1, H2, H3, H4, H5, H6 { font-style:italic;padding:0px;text-align:left }
H1, H2 {  border-bottom:2px solid [[ColorPalette::TertiaryLight]];margin-bottom:3px;margin-top:6px }
H3, H4, H5, H6 {  border-bottom:1px solid [[ColorPalette::TertiaryLight]];margin-bottom:2px;margin-top:3px }
H1 A, H2 A, H3 A, H4 A, H5 A { color:[[ColorPalette::SecondaryDark]] }

BLOCKQUOTE {
	background-color:[[ColorPalette::TertiaryPale]];
	border-bottom:1px solid [[ColorPalette::TertiaryMid]];border-top:1px solid [[ColorPalette::TertiaryMid]];
	border-left:2px solid [[ColorPalette::TertiaryMid]];border-right:2px solid [[ColorPalette::TertiaryMid]];
	margin:10px;
	padding:5px 10px;
}
BLOCKQUOTE P { color:[[ColorPalette::PrimaryDark]];margin:2px 0px;text-indent:0px } <!-- font-size:0.9em;font-style:italic; -->
BLOCKQUOTE LI { text-align:justify } <!-- font-size:0.9em;font-style:italic;margin:4px 0px; -->
LI { margin:4px 0px 4px 25px;text-align:justify }

TD.odd, TR.odd, TR.oddRow { background-color:[[ColorPalette::TiddlerBg]] }
TD.even, TD.evn, TR.even, TR.evn, TR.evenRow { background-color:[[ColorPalette::TiddlerEven]] }

.viewer { border-top:1px solid [[ColorPalette::TertiaryLight]];padding-top:5px;text-align:justify }
.viewer UL,
.viewer OL { margin-left:0px;margin-bottom:.5em;margin-top:.5em;padding-left:0px;-moz-padding-start:30px }
.viewer .listTitle { margin-left:0px }
.viewer PRE { background-color:[[ColorPalette::PreBg]];border:1px solid [[ColorPalette::PreBorder]];margin:6px 0px }
.viewer TABLE { margin-left:4px;margin-right:4px } <!-- margin:5px 4px -->
.viewer TH { background-color:[[ColorPalette::TableHeaderBg]];color:[[ColorPalette::TableHeader]];text-align:center }
.viewer TH A { color:[[ColorPalette::TableHeaderRef]] }
.viewer TH A:hover { background-color:[[ColorPalette::TableHeaderRef]];color:[[ColorPalette::TableHeaderBg]] }
/*}}}*/
/***
!Define level 2-5 table header styles {{remark{(turns on by ~TableHeadersPlugin)}}}
***/
/*{{{*/
.viewer TH.th2 { background-color:[[ColorPalette::TableHeader2Bg]];color:[[ColorPalette::TableHeader2]] }
.viewer TH.th3 { background-color:[[ColorPalette::TableHeader3Bg]];color:[[ColorPalette::TableHeader3]] }
.viewer TH.th4 { background-color:[[ColorPalette::TableHeader4Bg]];color:[[ColorPalette::TableHeader4]] }
.viewer TH.th5 { background-color:[[ColorPalette::TableHeader5Bg]];color:[[ColorPalette::TableHeader5]] }
.viewer TH.th2 A { color:[[ColorPalette::TableHeader2Ref]] }
.viewer TH.th3 A { color:[[ColorPalette::TableHeader3Ref]] }
.viewer TH.th4 A { color:[[ColorPalette::TableHeader4Ref]] }
.viewer TH.th5 A { color:[[ColorPalette::TableHeader5Ref]] }
.viewer TH.th2 A:hover { background-color:[[ColorPalette::TableHeader2Ref]];color:[[ColorPalette::TableHeader2Bg]] }
.viewer TH.th3 A:hover { background-color:[[ColorPalette::TableHeader3Ref]];color:[[ColorPalette::TableHeader3Bg]] }
.viewer TH.th4 A:hover { background-color:[[ColorPalette::TableHeader4Ref]];color:[[ColorPalette::TableHeader4Bg]] }
.viewer TH.th5 A:hover { background-color:[[ColorPalette::TableHeader5Ref]];color:[[ColorPalette::TableHeader5Bg]] }
/*}}}*/
/***
!Page view customisation
***/
/*{{{*/
#mainMenu FIELDSET {
	margin:-3px -3px 3px;
	padding:3px;
}
#mainMenu FIELDSET LEGEND {
	margin:-2px 2px;
}

P { margin:5px 0px;padding:0px;text-align:justify;text-indent:25px }
.source { color:#080;font-style:italic;text-align:right } /* Ссылка на источник публикации */
.trans,
.titled { color:#060;font-style:italic;font-weight:bold } /* Слово, имеющее всплывающую расшифровку */
SAMP { color:blue }
CITE { color:#006 }
CODE {}
DIV.cite { border:1px solid #666 }
DIV.cite P { color:#004;font-style:italic;margin:4px 25px 4px 25px;text-align:left;text-indent:0px } /* Цитата, взятая из какого-либо источника */
.txtOptionInput { width:11.5em } /* Длина строк ввода (например, имени пользователя) */
/*}}}*/
/*{{{*/
DIV.tiddler { padding-top:6px }
DIV.toolbar { margin-top:4px }
DIV.toolbar A {  } /* white-space:nowrap */
DIV.topSearch INPUT.txtOptionInput { width:18em } /* Длина строки поиска в заголовке */
DIV.topSearch { position:absolute;right:12px;top:21px } /* Специальный класс для строки поиска в заголовке (используется в PageTemplate */
DIV.topSearch A,
DIV.topSearch A:visited { border:none;color:white }
DIV.topSearch A:hover { color:#FFEE88 }
DIV.topSearch INPUT { margin-left:.5em }
A.tiddlyLink { color:#064;padding-left:1px;padding-right:1px }
A.tiddlyLink:hover { background-color:#064;color:#fff }
DIV.sliderPanel { padding-left:10px }

TR.info { height:1% } /* Непустые строки в анкетах. Используется для установления минимально необходимой высоты, чтобы пустая строка заполнила всё пространство при объединении ячеек по строкам */
TD.ask { font-style:normal;text-align:right }
TD.num { padding:0px 5px;text-align:right } /* Колонка нумерации */
TD.mark { background-color:#afa;text-align:center } /* Выделенная ячейка расписания */
TD.mid, TD.midb { text-align:center } /* Ячейки с выравниванием по центру */
TD.midb { font-weight:bold }
TD.left { text-align:left } /* padding:1em;text-indent:-1em; Ячейки с выравниванием по левому краю и абзацным выступом */
TD.pic,
DIV.pic { border:1px solid #cc4;padding:10px;text-align:center;text-size:.8em;width:150px }
DIV.pic { float:left;margin:0px 10px 10px 0px }
DIV.cite { border:1px solid #666 }
DIV.cite P { color:#004;font-style:italic;margin:4px 25px 4px 25px;text-align:left;text-indent:0px } /* Цитата, взятая из какого-либо источника */

/* Оформление для таблиц назначений контактов в разъёмах */
TABLE.pinLayout { border:0px solid black;border-collapse:collapse }
TABLE.pinLayout TR { border:none }
TD.ld { border:none;font-size:6pt;padding:0px 6px 0px 2px;text-align:right } /* Описание слева */
TD.rd { border:none;font-size:6pt;padding:0px 2px 0px 6px;text-align:left } /* Описание справа */
TD.pin { border:1px solid darkblue;height:10px;width:10px;padding:0px } /* Сам контакт */
TD.sp { border:none } /* пустые места, обрамление разъёма */

.headerForeground,
.headerShadow { padding:1em 0em 1em 1em }
.headerShadow { left:2px;top:2px } /* Отступ тени в заголовке */
.siteTitle { font-size:2em }
.siteSubtitle { font-size:1em;font-style:italic;margin-left:.5em;vertical-align:.25em }
#contentWrapper { display:block } /* #pageFrame,  , HTML, BODY height:100%;min-height:100%*/
#pageFrame { height: auto !important }
#footerPanel { color:[[ColorPalette::FooterText]];background-color:[[ColorPalette::FooterTop]];border:1px solid [[ColorPalette::FooterBorder]];height:1.7em;font-size:1em;margin:-2.3em 1em 0 15.8em;padding:.5em 1em 0em }
#pageFooterLimiter { height:2.3em }
#pageFooter { font-size:.9em }
#pageFooter A { color:[[ColorPalette::FooterRef]] }
#pageFooter A:hover { background-color:[[ColorPalette::FooterRef]];color:[[ColorPalette::FooterTop]] }

#displayArea { margin:1em 1em 0 15.8em }
#displayArea A { white-space:nowrap }
#sidebar { float:left;left:0;right:auto;padding-left: 0.5em;padding-right: 0.5em;top:auto;width:16em }
#mainMenu { background-color:#fff;border:1px solid #ccc;margin-left:0px;margin-top:1em;padding:.5em;position:static;text-align:right;width:13.35em } /* 13.5 */
.tiddler { background-color:#fff;border:1px solid #ccc;margin:5px 0;padding:10px;position:auto }

#sidebarOptions .sliderPanel { background-color:#ddd;font-size:1em;margin-left:0px;margin-right:0px }

#sidebarOptions .sliderPanel A.tabSelected,
#sidebarOptions .sliderPanel A.tabUnselected {
	border-left:1px solid #aaa;
	border-right:1px solid #aaa;
	border-top:1px solid #aaa;
	border-top-left-radius:3px;
	border-top-right-radius:3px;
	color:#042;
	font-weight:normal;
	margin:0px 1px;
	padding:0px 3px
}
#sidebarOptions .sliderPanel A.tabSelected:hover,
#sidebarOptions .sliderPanel A.tabUnselected:hover { background-color:#042;color:#fff }
#sidebarOptions A { margin-left:0px;margin-right:0px;padding-left:.5em;padding-right:.5em }

#sidebarOptions .sliderPanel A.tabSelected { margin:0px;padding:2px 5px 1px }
.tabUnselected { background-color:#c8c8c8 } /* Заголовок неактивной закладки в боковой панели истории */

#sidebarOptions .sliderPanel A.tiddlyLink { color:#042;padding:0px 2px }
#sidebarOptions .sliderPanel A.tiddlyLink:hover { background-color:#042;color:#fff }
#sidebarOptions .sliderPanel A.tiddlyLinkNonExisting { font-weight:normal }
#sidebarOptions .sliderPanel A.tiddlyLinkNonExisting.shadow { font-weight:bold }
#sidebar LI { padding-left:1em;text-align:left;text-indent:-1em }
#sidebar LI.listTitle { padding-left:0px;text-indent:0px }

.tabset { padding-top:.5em }
.tabContents { overflow:hidden }
.tabSetWrapper LI,
.tabContents LI { margin:0px } /* Элементы списка в боковых меню (история, прочее) */
.subtitle { margin-top:4px }
.editor { margin-bottom:2px;margin-top:2px }
.annotation { margin:4px -2px 4px 0px }
.tagging, .tagged { float:right;margin:5px 0px 0px;padding:0 }
.tagging UL,
.tagged UL { margin:0px }
.tagging LI,
.tagged LI { float:left;margin-left:0px;padding-left:.5em;padding-right:.5em }
/*}}}*/
/***
|!Дата|!Изменение|
|17.10.2013|Изменил форматирование blockquote. Подсветил сереньким, убрал лишние отступы|
|19.03.2013|Поменял порядок в SideBarTabs и чуток подправил границы закладок. Закруглил краешки закладок|
|18.06.2011|Сделал стилевую поддержку для заголовков второго–пятого уровней в таблицах {{remark{(сама поддержка таких заголовков включается плагином TableHeadersPlugin)}}}|
|08.05.2011|Внутри displayArea {{remark{(в заметках)}}} для гиперссылок поставлен запрет переноса на другую строку {{remark{(чтобы не разрывать ссылку на несколько строк, ибо часто некрасиво получается)}}}|
|20.03.2011|Сделан левый отступ для sliderPanel. Теперь вложенные sliderPanel имеют визуальную ступенчатую структуру |
|02.03.2011|Добавлены стили перекрёстных ссылок в заголовках {{remark{(для лучшего распознавания сдвигающихся/раздвигающихся текстов)}}} |
|02.02.2011|Добавлены стили для оформления подвала {{remark{(pageFrame, pageFooter, pageFooterLimiter)}}} |
|31.12.2011|Добавлен стиль {{{.viewer TH A}}} для установления цвета ссылок в заголовках таблиц с указанием цвета текста из параметра [[ColorPalette::TableHeaderRef|ColorPalette]] |
|03.11.2010|Добавлен стиль {{{.viewer TH}}} с указанием параметрических цветов текста [[ColorPalette::TableHeader|ColorPalette]] и фона [[ColorPalette::TableHeaderBg|ColorPalette]], плюс тег {{{.viewer PRE}}} тоже сделан параметрическим {{remark{(введены параметры [[ColorPalette::PreBg|ColorPalette]] и [[ColorPalette::PreBorder|ColorPalette]])}}}|
|15.10.2010|К стилю {{{tabContents}}} добавлено свойство {{{overflow:hidden}}} для того, чтобы длинные слова не вылазили за рамку истории|
|14.10.2010|Введён стиль ячейки {{{TD.left}}} с выравниванием по левому краю и абзацным выступом и определены стили {{{TR.oddRow}}} и {{{TR.evenRow}}}|
|20.09.2010|Изменил цвет внутренних ссылок TiddlyWiki, чтобы они чуток отличались цветом от внешних ссылок. Удобно при импортировании текстов с других сайтов, чтобы отличать ссылки, которые уже исправлены на ссылки внутри TiddlyWiki, и которые ещё нет.|
|16.09.2010|Присваивание специфических для {{{DIV.pic}}} параметров {{remark{(float:left в частности)}}} {{{TD.pic}}}-у решено признать неудачной идеей…|
|06.09.2010|Чуток приподнял subtitle в заголовке, чтобы текст смотрелся посередине заголовка {{remark{(ну и при уменьшении ширины экрана чтобы меньше с поиском пересекалось)}}}|
|30.08.2010|Изменена длина строки поиска в заголовке {{remark{(стиль DIV.topSearch)}}}|
|24.08.2010|Добавлен стиль {{{TD.pic}}} и {{{DIV.pic}}} для вставок картинок и оформления галерей|
|20.08.2010|Включена заметная тень заголовка {{remark{(.headerShadow left&top)}}}|
|03.08.2010|Изменено расположение блока меток, для этого изменены стили {{{.tagging}}} и {{{.tagged}}}|
|02.08.2010|Включено выравнивание текста в заметках по ширине {{remark{(стиль .viewer)}}}. Оставлено центрирование заголовков таблиц {{remark{(стиль .viewer TH)}}}. Сделан отступ от правого края списков в истории {{remark{(стили #sidebar LI и #sidebar LI.listTitle)}}}. Убран устаревший стиль {{{LI.listLink}}}|
***/
/*{{{*/
A.image:hover { background-color:white;text-decoration:none; }
A.image IMG:hover { border:1px dotted red;margin:-2px -2px;padding:1px 1px }

.editor TEXTAREA {
  font-family:Courier,"Courier New",monospace; /* Courier,"Courier New",monospace; Monaco,"Lucida Console",monospace */
  font-size:.9em;
}
/*}}}*/
/***
!Выделение чередования строк в сортированном столбце
***/
/*{{{*/
TABLE.sortable TR.odd TD.sortedCol,
TABLE.sortable TR.oddRow TD.sortedCol { background: none repeat scroll 0 0 #ffffe0 }
TABLE.sortable TR.evn TD.sortedCol,
TABLE.sortable TR.evenRow TD.sortedCol { background: none repeat scroll 0 0 #f4f4ca }
/*}}}*/
/***
!Оформление таблиц описаний функций
***/
/*{{{*/
/*
.functions  TR.even,
.functions  TR.evenRow { background-color:#F4F4F4 }
*/
.functions TH.th2,
.functions TH.th3,
.functions TH.th4,
.functions TH.th5 { text-align:left }
.functions TH.th2 { padding-left:1em }
/*
.functions  TH { font-weight:normal;text-align:left }
.functions  TH { background-color:[[ColorPalette::TertiaryLight]];color:[[ColorPalette::Foreground]] }
*/
.functions  TH.th2 { background-color:[[ColorPalette::TableHeader2Bg]];color:[[ColorPalette::TableHeader2]] }
.functions  TH.th3 { background-color:[[ColorPalette::TableHeader3Bg]];color:[[ColorPalette::TableHeader3]] }
.functions  TH.th4 { background-color:[[ColorPalette::TableHeader4Bg]];color:[[ColorPalette::TableHeader4]] }
.functions  TH.th5 { background-color:[[ColorPalette::TableHeader5Bg]];color:[[ColorPalette::TableHeader5]] }
/*}}}*/
/***
|Name|StyleSheetLocalPlugin|
|Source|http://vmunt.site/tw/plugins/styleSheetLocalPlugin.html|
|Version|0.0.4|
|Author|vmunt|
|License|Use it free|
|~CoreVersion|2.6|
|Type|plugin|
|Description|This plugin supports two user stylesheet tables: [[StyleSheet]] and <<option txtLocalStyleSheetName>> {{remark{(last tiddler name may be changed locally)}}}|
When user imports themes from other resources into its own ~TiddlyWiki, its replaces entire StyleSheet tiddler usually. But if user already used his own styles, it's will be lost in this case. So this macro alloys to users who likes to experiments with another themes in yours documents move its own important styles to another {{remark{(local)}}} stylesheet tiddler and makes its styles safer.
!Version history
|0.0.4|Inserts getRecursiveTiddlerText() function for enabling ColorPalette colors substitute in StyleSheet:local|
|0.0.3|First realisation|
!Code
***/
//{{{
if (config.options.txtLocalStyleSheetName==undefined) config.options.txtLocalStyleSheetName="StyleSheet:local";
if (config.optionsDesc["txtLocalStyleSheetName"]==undefined) config.optionsDesc["txtLocalStyleSheetName"]="Name of the tiddler with local stylesheet table";

if (!version.extensions.LocalStyleSheetPlugin) {
	version.extensions.LocalStyleSheetPlugin = {
		major: 0, minor: 0, revision: 3, source: "http://vmunt.site/", copyright: "vmunt, 2011",
		lssId: "StyleSheetLocal",
		lastLssName: config.options.txtLocalStyleSheetName,
		initTimeout: 1,
		initialised:false,
		init:function() {
			if (version.extensions.LocalStyleSheetPlugin.initialised)
				removeStyleSheet(this.lssId); // jQuery.stylesheet.remove(this.lssId);
			version.extensions.LocalStyleSheetPlugin.initialised = true;
			var css=store.getTiddlerText(config.options.txtLocalStyleSheetName);
			if (!css) {
				version.extensions.LocalStyleSheetPlugin.initialised = false;
				return;
			}
			setStylesheet(css, store.getRecursiveTiddlerText(this.lssId,"",10)); // text, id
		}
	}
}

// var initUserStyleSheet = function() { version.extensions.LocalStyleSheetPlugin.init() };
setTimeout(version.extensions.LocalStyleSheetPlugin.init, version.extensions.LocalStyleSheetPlugin.initTimeout);

// hijack store.saveTiddler() to refresh CSS rules in DOM when tiddler StyleSheet:local is changed
if (version.extensions.LocalStyleSheetPlugin.saveTiddler==undefined) {
	version.extensions.LocalStyleSheetPlugin.saveTiddler=store.saveTiddler;
	store.saveTiddler=function(title,newtitle) {
		var t=version.extensions.LocalStyleSheetPlugin.saveTiddler.apply(this,arguments);
		if (newtitle==config.options.txtLocalStyleSheetName)
			version.extensions.LocalStyleSheetPlugin.init();
		return t;
	}
}

// hijack store.removeTiddler() to remove CSS rules from DOM when tiddler StyleSheet:local is deleted
if (version.extensions.LocalStyleSheetPlugin.removeTiddler==undefined) {
	version.extensions.LocalStyleSheetPlugin.removeTiddler=store.removeTiddler;
	store.removeTiddler=function(title) {
		version.extensions.LocalStyleSheetPlugin.removeTiddler.apply(this,arguments);
		if (title==config.options.txtLocalStyleSheetName)
			version.extensions.LocalStyleSheetPlugin.init();
	}
}

// hijack changing configuration option for replace local style sheet dynamically
if (version.extensions.LocalStyleSheetPlugin.change==undefined) {
	version.extensions.LocalStyleSheetPlugin.change = Tiddler.prototype.changed;
	Tiddler.prototype.changed = function() {
		version.extensions.LocalStyleSheetPlugin.change.apply(this,arguments);
		if (version.extensions.LocalStyleSheetPlugin.lastLssName!=config.options.txtLocalStyleSheetName)
			version.extensions.LocalStyleSheetPlugin.init();
	}
}
//}}}
/***
!Проблема
Современная ~TiddlyWiki включает в себя возможности изменения вида {{remark{(в том числе и путём установки тем оформления и цветовых палитр, создаваемых как самим пользователем, так и разработанных другими людьми)}}}. Пользовательское стилевое оформление {{remark{(сохраняемое в стилевой таблице [[StyleSheet]])}}} в случае установки другой темы {{remark{(которая перезапишет содержимое этой заметки на своё содержимое)}}} в этом случае будет потеряно. Конечно, для отдельных заметок можно сохранять стилевое оформление прямо в данной заметке {{remark{(непосредственно с помощью {{{<html><style type="text/css">&hellip;</style></html>}}})}}}, но в случае оформления нескольких заметок в одном стиле это решение становится совершенно неприемлемым. Соответственно, стилевое оформление, используемое строго внутри данного документа, требуется хранить где-то ещё.
!Решение
Модуль [[StyleSheetLocalPlugin]] дополняет стилевые таблицы браузера таблицей, содержащейся в заметке <<option txtLocalStyleSheetName>>. Имя по умолчанию для этой заметки выбрано [[StyleSheet:local]], но на любом компьютере его можно при желании изменить, получив дополнительные эффекты:
# у всех этот документ, например, отображается с белым фоном, а у Вас — с чёрным, или
# сохранив несколько разных локальных стилевых таблиц в документе, можно быстро менять цвета элементов оформления в зависимости от каких-либо условий {{remark{(смены настроения, яркости света в помещении, прочее)}}}.
Думаю, для удобства таблицы с разными цветовыми оформлениями можно даже помечать какой-либо меткой {{remark{(например, {{{Стили}}})}}}.
***/
///%
config.optionsDesc["txtLocalStyleSheetName"]="Имя заметки, содержащей местные правила оформления данного документа";
//%/
chkAllowLinksFromShadowTiddlers: false
chkDisableNonExistingWikiLinks: true
chkDisableWikiLinks: true
chkInsertTabs: true
chkToggleLinks: false
txtDisableWikiLinksList: 
txtDisableWikiLinksTag: excludeWikiWords
/***
|''Name:''|TableHeadersPlugin|
|''Version:''|0.1|
|''Description:''|Plugin turn on supports TABLE TH cells with styles th2, th3, th4… for cells with "!!header text", "!!!header text", "!!!header text" and so on|
|''Описание:''|Плагин включает поддержку заголовков таблицы второго, третьего и прочих уровней добавлением стилей th2, th3, th4 и т.д.|
|''CoreVersion:''|2.6.x|
|''Version comment:''|Tested on v.2.6.2|
|''Date:''|2011|
|''Author:''|vmunt|
|''Source:''|http://vmunt.site/tw|
|''License:''|BSD open source license|
***/
//{{{
for(var n=0; n<config.formatters.length; n++) {
	if (config.formatters[n].name=='table') {
		config.formatters[n].oldRowHandler = config.formatters[n].rowHandler;
		config.formatters[n].rowHandler = function(w,e,prevColumns) {
			var col = 0;
			var colSpanCount = 1;
			var prevCell = null;
			this.cellRegExp.lastIndex = w.nextMatch;
			var cellMatch = this.cellRegExp.exec(w.source);
			while(cellMatch && cellMatch.index == w.nextMatch) {
				if(cellMatch[1] == "~") {
					// Rowspan
					var last = prevColumns[col];
					if(last) {
						last.rowSpanCount++;
						last.element.setAttribute("rowspan",last.rowSpanCount);
						last.element.setAttribute("rowSpan",last.rowSpanCount); // Needed for IE
						last.element.valign = "center";
						if(colSpanCount > 1) {
							last.element.setAttribute("colspan",colSpanCount);
							last.element.setAttribute("colSpan",colSpanCount); // Needed for IE
							colSpanCount = 1;
						}
					}
					w.nextMatch = this.cellRegExp.lastIndex-1;
				} else if(cellMatch[1] == ">") {
					// Colspan
					colSpanCount++;
					w.nextMatch = this.cellRegExp.lastIndex-1;
				} else if(cellMatch[2]) {
					// End of row
					if(prevCell && colSpanCount > 1) {
						prevCell.setAttribute("colspan",colSpanCount);
						prevCell.setAttribute("colSpan",colSpanCount); // Needed for IE
					}
					w.nextMatch = this.cellRegExp.lastIndex;
					break;
				} else {
					// Cell
					w.nextMatch++;
					var styles = config.formatterHelpers.inlineCssHelper(w);
					var spaceLeft = false;
					var chr = w.source.substr(w.nextMatch,1);
					while(chr == " ") {
						spaceLeft = true;
						w.nextMatch++;
						chr = w.source.substr(w.nextMatch,1);
					}
					var cell;
					if(chr == "!") {
						w.nextMatch++;
						// vmunt code: insert TH with thN for !!head, !!!head and so on
						var thLevel = 1;
						while((chr=w.source.substr(w.nextMatch,1))== "!") {
							thLevel++;
							w.nextMatch++;
						}
						if(thLevel==1)
							cell = createTiddlyElement(e,"th");
						else
							cell = createTiddlyElement(e,"th",null,'th'+thLevel);
						// vmunt code: end
					} else {
						cell = createTiddlyElement(e,"td");
					}
					prevCell = cell;
					prevColumns[col] = {rowSpanCount:1,element:cell};
					if(colSpanCount > 1) {
						cell.setAttribute("colspan",colSpanCount);
						cell.setAttribute("colSpan",colSpanCount); // Needed for IE
						colSpanCount = 1;
					}
					config.formatterHelpers.applyCssHelper(cell,styles);
					w.subWikifyTerm(cell,this.cellTermRegExp);
					if(w.matchText.substr(w.matchText.length-2,1) == " ") // spaceRight
						cell.align = spaceLeft ? "center" : "left";
					else if(spaceLeft)
						cell.align = "right";
					w.nextMatch--;
				}
				col++;
				this.cellRegExp.lastIndex = w.nextMatch;
				cellMatch = this.cellRegExp.exec(w.source);
			}
		}
	}
	break;
}
//}}}
/***
|''Name:''|TableSortingPlugin|
|''Description:''|Dynamically sort tables by clicking on column headers|
|''Author:''|Saq Imtiaz ( lewcid@gmail.com )|
|''Source:''|http://tw.lewcid.org/#TableSortingPlugin|
|''Code Repository:''|http://tw.lewcid.org/svn/plugins|
|''Version:''|2.02|
|''Date:''|25-01-2008|
|''License:''|[[Creative Commons Attribution-ShareAlike 3.0 License|http://creativecommons.org/licenses/by-sa/3.0/]]|
|''~CoreVersion:''|2.2.3|
!!Usage:
* Make sure your table has a header row
** {{{|Name|Phone Number|Address|h}}}<br> Note the /h/ that denote a header row 
* Give the table a class of 'sortable'
** {{{
|sortable|k
|Name|Phone Number|Address|h
}}}<br>Note the /k/ that denotes a class name being assigned to the table.
* To disallow sorting by a column, place {{{<<nosort>>}}} in it's header
* To automatically sort a table by a column, place {{{<<autosort>>}}} in the header for that column
** Or to sort automatically but in reverse order, use {{{<<autosort reverse>>}}}

!!Example:
|sortable|k
|Name |Salary |Extension |Performance |File Size |Start date |h
|ZBloggs, Fred |$12000.00 |1353 |+1.2 |74.2Kb |Aug 19, 2003 21:34:00 |
|ABloggs, Fred |$12000.00 |1353 |1.2 |3350b |09/18/2003 |
|CBloggs, Fred |$12000 |1353 |1.200 |55.2Kb |August 18, 2003 |
|DBloggs, Fred |$12000.00 |1353 |1.2 |2100b |07/18/2003 |
|Bloggs, Fred |$12000.00 |1353 |01.20 |6.156Mb |08/17/2003 05:43 |
|Turvey, Kevin |$191200.00 |2342 |-33 |1b |02/05/1979 |
|Mbogo, Arnold |$32010.12 |2755 |-21.673 |1.2Gb |09/08/1998 |
|Shakespeare, Bill |£122000.00|3211 |6 |33.22Gb |12/11/1961 |
|Shakespeare, Hamlet |£9000 |9005 |-8 |3Gb |01/01/2002 |
|Fitz, Marvin |€3300.30 |5554 |+5 |4Kb |05/22/1995 |

***/
// /%
//!BEGIN-PLUGIN-CODE
config.tableSorting = {
	
	darrow: "▼",
	
	uarrow: "▲",
	
	getText : function (o) {
		var p = o.cells[SORT_INDEX];
		return p.innerText || p.textContent || '';
	},
	
	sortTable : function (o,rev) {
		SORT_INDEX = o.getAttribute("index");
		var c = config.tableSorting;
		var T = findRelated(o.parentNode,"TABLE");
		if(T.tBodies[0].rows.length<=1) 
			return;
		var itm = "";
		var i = 0;
		while (itm == "" && i < T.tBodies[0].rows.length) {
			itm = c.getText(T.tBodies[0].rows[i]).trim();
			i++;
		}
		if (itm == "") 
			return; 	
		var r = [];
		var S = o.getElementsByTagName("span")[0];		
		c.fn = c.sortAlpha; 
		if(!isNaN(Date.parse(itm)))
			c.fn = c.sortDate; 
		else if(itm.match(/^[$|£|€|\+|\-]{0,1}\d*\.{0,1}\d+$/)) 
			c.fn = c.sortNumber; 
		else if(itm.match(/^\d*\.{0,1}\d+[K|M|G]{0,1}b$/)) 
			c.fn = c.sortFile; 
		for(i=0; i<T.tBodies[0].rows.length; i++) {
			 r[i]=T.tBodies[0].rows[i]; 
		} 
		r.sort(c.reSort);
		if(S.firstChild.nodeValue==c.darrow || rev) {
			r.reverse();
			S.firstChild.nodeValue=c.uarrow;
		} 
		else 
			S.firstChild.nodeValue=c.darrow;
		var thead = T.getElementsByTagName('thead')[0]; 
		var headers = thead.rows[thead.rows.length-1].cells;
		for(var k=0; k<headers.length; k++) {
			if(!hasClass(headers[k],"nosort"))
				addClass(headers[k].getElementsByTagName("span")[0],"hidden");
		}
		removeClass(S,"hidden");
		for(i=0; i<r.length; i++) { 
			T.tBodies[0].appendChild(r[i]);
			c.stripe(r[i],i);
			for(var j=0; j<r[i].cells.length;j++){
				removeClass(r[i].cells[j],"sortedCol");
			}
			addClass(r[i].cells[SORT_INDEX],"sortedCol");
		}
	},
	
	stripe : function (e,i){
		var cl = ["oddRow","evenRow"];
		i&1? cl.reverse() : cl;
		removeClass(e,cl[1]);
		addClass(e,cl[0]);
	},
	
	sortNumber : function(v) {
		var x = parseFloat(this.getText(v).replace(/[^0-9.-]/g,''));
		return isNaN(x)? 0: x;
	},
	
	sortDate : function(v) {
		return Date.parse(this.getText(v));
	},

	sortAlpha : function(v) {
		return this.getText(v).toLowerCase();
	},
	
	sortFile : function(v) { 		
		var j, q = config.messages.sizeTemplates, s = this.getText(v);
		for (var i=0; i<q.length; i++) {
			if ((j = s.toLowerCase().indexOf(q[i].template.replace("%0\u00a0","").toLowerCase())) != -1)
				return q[i].unit * s.substr(0,j);
		}
		return parseFloat(s);
	},
	
	reSort : function(a,b){
		var c = config.tableSorting;
		var aa = c.fn(a);
		var bb = c.fn(b);
		return ((aa==bb)? 0 : ((aa<bb)? -1:1));
	}
};

Story.prototype.tSort_refreshTiddler = Story.prototype.refreshTiddler;
Story.prototype.refreshTiddler = function(title,template,force,customFields,defaultText){
	var elem = this.tSort_refreshTiddler.apply(this,arguments);
	if(elem){
		var tables = elem.getElementsByTagName("TABLE");
		var c = config.tableSorting;
		for(var i=0; i<tables.length; i++){
			if(hasClass(tables[i],"sortable")){
				var x = null, rev, table = tables[i], thead = table.getElementsByTagName('thead')[0], headers = thead.rows[thead.rows.length-1].cells;
				for (var j=0; j<headers.length; j++){
					var h = headers[j];
					if (hasClass(h,"nosort"))
						continue;
					h.setAttribute("index",j);
					h.onclick = function(){c.sortTable(this); return false;};
					h.ondblclick = stopEvent;
					if(h.getElementsByTagName("span").length == 0)
						createTiddlyElement(h,"span",null,"hidden",c.uarrow); 
					if(!x && hasClass(h,"autosort")) {
						x = j;
						rev = hasClass(h,"reverse");
					}
				}
				if(x)
					c.sortTable(headers[x],rev);		
			}
		}
	}
	return elem; 
};

setStylesheet("table.sortable span.hidden {visibility:hidden;}\n"+
	"table.sortable thead {cursor:pointer;}\n"+
	"table.sortable .nosort {cursor:default;}\n"+
	"table.sortable td.sortedCol {background:#ffc;}","TableSortingPluginStyles");

function stopEvent(e){
	var ev = e? e : window.event;
	ev.cancelBubble = true;
	if (ev.stopPropagation) ev.stopPropagation();
	return false;	
}	

config.macros.nosort={
	handler : function(place){
		addClass(place,"nosort");
	}	
};

config.macros.autosort={
	handler : function(place,m,p,w,pS){
		addClass(place,"autosort"+" "+pS);		
	}	
};
//!END-PLUGIN-CODE
// %/
/***
|''Name:''|TiddlyWiki:rus|
|''Version:''|0.9.7|
|''Description:''|TiddlyWiki russian interface plugin. Supports core up to 2.6.2|
|''Описание:''|Русификация TiddlyWiki. Поддерживает ядро до 2.6.2 включительно|
|''CoreVersion:''|2.6.x|
|''Version comment:''|Tested on v.2.6.0 and 2.6.1|
|''Date:''|2010|
|''Author:''|vmunt|
|''Source:''|http://vmunt.site/tw|
|''License:''|BSD open source license|
|''Idea:''|Глеб Тржемецкий (Gleb Trzhemetski), http://www.glebsite.ru|
***/
//{{{
//-- Строки для перевода
// Строки в "двойных кавычках" должны быть переведены; строки в 'одиночных кавычках' должны быть оставлены как есть

merge(config.tasks,{
	save: {text: "сохранить", tooltip: "Сохранить Ваши изменения в эту TiddlyWiki", action: saveChanges},
	sync: {text: "синхронизация", tooltip: "Синхронизировать изменения с другим файлом или сервером TiddlyWiki", content: '<<sync>>'},
	importTask: {text: "импорт", tooltip: "Импортировать заметки и модули из другого файла или сервера TiddlyWiki", content: '<<importTiddlers>>'},
	tweak: {text: "настройка", tooltip: "Подстроить появление и поведение TiddlyWiki", content: '<<options>>'},
	upgrade: {text: "обновление", tooltip: "Обновить код ядра TiddlyWiki", content: '<<upgrade>>'},
	plugins: {text: "модули", tooltip: "Управление встроенными модулями", content: '<<plugins>>'} });

// Options that can be set in the options panel and/or cookies
merge(config.optionsDesc,{
	txtUserName: "Имя пользователя для подписывания Ваших правок",
	chkRegExpSearch: "Разрешить регулярные выражения при поиске",
	chkCaseSensitiveSearch: "Регистро-зависимый поиск",
	chkIncrementalSearch: "Последовательный поиск слово-за-словом",
	chkAnimate: "Разрешить анимацию",
	chkSaveBackups: "Сохранить старую копию при сохранении изменений",
	chkAutoSave: "Автоматическое сохранение изменений",
	chkGenerateAnRssFeed: "Генерировать RSS-ленту при сохранении изменений",
	chkSaveEmptyTemplate: "Генерировать пустой шаблон при сохранении изменений",
	chkOpenInNewWindow: "Открывать внешние ссылки в новом окне",
	chkToggleLinks: "Нажатие на ссылках для открытия заметок также и закрывает их",
	chkHttpReadOnly: "Скрывать возможности редактирования при обращении через протокол HTTP",
	chkForceMinorUpdate: "Не обновлять автора изменений и дату редактирования заметок",
	chkConfirmDelete: "Спрашивать подтверждение при удалении заметок",
	chkInsertTabs: "Использовать клавишу табуляции для вставления символа табуляции вместо перехода по полям",
	txtBackupFolder: "Имя папки для резервных копий",
	txtMaxEditRows: "Максимальное количество строк в окне редактирования",
	txtTheme: "Имя темы для использования",
	txtFileSystemCharSet: "Кодировка символов в файле TiddlyWiki для сохранения изменений (только для Firefox/Mozilla)" });

merge(config.messages,{
	customConfigError: "Не удалось загрузить модуль. Подробнее смотрите в PluginManager",
	pluginError: "Ошибка: %0",
	pluginDisabled: "Не выполнено в связи с запретом, установленным меткой 'systemConfigDisable'",
	pluginForced: "Executed because forced via 'systemConfigForce' tag",
	pluginVersionError: "Не выполнено, так как этот модуль сделан для более новой версии TiddlyWiki",
	nothingSelected: "Ничего не выбрано. Вы должны сначала выбрать один или несколько элементов",
	savedSnapshotError: "Похоже, что эта TiddlyWiki была сохранена с ошибкой. Обратитесь к http://www.tiddlywiki.com/#Download за более детальной информацией",
	subtitleUnknown: "(неизвестно)",
	undefinedTiddlerToolTip: "Заметка '%0' пока не создана",
	shadowedTiddlerToolTip: "Заметка '%0' пока не создана, но она имеет предопределённое служебное значение",
	tiddlerLinkTooltip: "%0 - %1, %2",
	externalLinkTooltip: "Внешняя ссылка на %0",
	noTags: "Нет помеченных заметок",
	notFileUrlError: "Вам нужно сначала сохранить эту TiddlyWiki в файл, прежде чем Вы сможете сохранять изменения",
	cantSaveError: "Сохранить изменения невозможно. Возможные причины включают:\n- Ваша программа просмотра не поддерживает сохранение (Firefox, Internet Explorer, Safari и Opera все работают, но только тогда, когда правильно настроены)\n- путь к файлу TiddlyWiki содержит запрещённые символы\n- файл TiddlyWiki был перемещён, удалён или переименован",
	invalidFileError: "Исходный файл '%0' не похож на правильную TiddlyWiki",
	backupSaved: "Архивная копия сохранена",
	backupFailed: "Не удалось сохранить архивную копию",
	rssSaved: "RSS-лента сохранена",
	rssFailed: "Не удалось сохранить файл с RSS-лентой",
	emptySaved: "Пустой шаблон сохранён",
	emptyFailed: "Не удалось сохранить файл с пустым шаблоном",
	mainSaved: "Главный файл TiddlyWiki сохранён",
	mainFailed: "Не удалось сохранить главный файл TiddlyWiki. Ваши изменения не сохранены",
	macroError: "Ошибка в макросе <<\%0>>",
	macroErrorDetails: "Ошибка при выполнении макроса <<\%0>>:\n%1",
	missingMacro: "Нет такого макроса",
	overwriteWarning: "Заметка с именем '%0' уже существует. Нажмите OK для перезаписи её содержимого",
	unsavedChangesWarning: "ВНИМАНИЕ! В TiddlyWiki есть несохранённые изменения\n\nНажмите OK для сохранения\nНажмите CANCEL, если изменения не нужны",
	confirmExit: "--------------------------------\n\nВ TiddlyWiki есть несохранённые изменения. Если Вы продолжите, Вы потеряете эти изменения\n\n--------------------------------",
	saveInstructions: "SaveChanges",
	unsupportedTWFormat: "Неподдерживаемый формат TiddlyWiki '%0'",
	tiddlerSaveError: "Ошибка при сохранении заметки '%0'",
	tiddlerLoadError: "Ошибка при загрузке заметки '%0'",
	wrongSaveFormat: "Не могу сохранить с форматом хранения '%0'. Используйте стандартный формат для сохранения.",
	invalidFieldName: "Неверное имя поля %0",
	fieldCannotBeChanged: "Поле '%0' не может быть изменено",
	loadingMissingTiddler: "Пытаюсь восстановить заметку '%0' с сервера '%1' по адресу:\n\n'%2' в 'рабочем пространстве' '%3'",
	upgradeDone: "Обновление до версии %0 завершено\n\nНажмите 'OK' для перезагрузки новой обновлённой TiddlyWiki",
	invalidCookie: "Испорченная cookie-переменная '%0'"}); // v.2.6.1

merge(config.messages.messageClose,{text: "[X]", tooltip: "закрыть эту область сообщения"});

config.messages.backstage = {
	open: {text: "обслуживание", tooltip: "Откройте меню обслуживания для проведения сервисных задач"},
	close: {text: "закрыть", tooltip: "Закрытие меню обслуживания"},
	prompt: "Ослуживание: ",
	decal: {edit: {text: "правка", tooltip: "Правка заметки '%0'"}}};

config.messages.listView = {
	tiddlerTooltip: "Щёлкните тут для просмотра полного текста этой заметки",
	previewUnavailable: "(предварительный просмотр недоступен)"};

config.messages.dates.months = ["января","февраля","марта","апреля","мая","июня","июля","августа","сентября","октября","ноября","декабря"];
config.messages.dates.days = ["Воскресенье","Понедельник","Вторник","Среда","Четверг","Пятница","Суббота"];
config.messages.dates.shortMonths = ["Янв","Фев","Мар","Апр","Май","Июн","Июл","Авг","Сен","Окт","Ноя","Дек"];
config.messages.dates.shortDays = ["Вс","Пн","Вт","Ср","Чт","Пт","Сб"];
// suffixes for dates, eg "1st","2nd","3rd"…"30th","31st"
config.messages.dates.daySuffixes = [
	"-е","-е","-е","-е","-е","-е","-е","-е","-е","-е",
	"-е","-е","-е","-е","-е","-е","-е","-е","-е","-е",
	"-е","-е","-е","-е","-е","-е","-е","-е","-е","-е",
	"-е"];
config.messages.dates.am = "утра";
config.messages.dates.pm = "дня";

merge(config.views.wikified.tag,{
	labelNoTags: "меток нет",
	labelTags: "метки: ",
	openTag: "Открыть метку '%0'",
	tooltip: "Показать заметки, помеченные как '%0'",
	openAllText: "Открыть всё",
	openAllTooltip: "Открыть все эти заметки",
	popupNone: "Нет других заметок, помеченных '%0'"});

merge(config.views.wikified,{
	defaultText: "Заметка '%0' пока не создана. Создайте её двойным щелчком мышки",
	defaultModifier: "(отсутствует)",
	shadowModifier: "(встроенная служебная заметка)",
	dateFormat: "DD.0MM.YYYY",
	createdPrompt: "создана"});

merge(config.views.editor,{
	tagPrompt: "Введите метки, разделённые пробелами, в случае необходимости [[используйте двойные квадратные скобки|use double square brackets]], или добавьте существующие метки",
	defaultText: "Введите текст для '%0'"});

merge(config.views.editor.tagChooser,{
	text: "метки",
	tooltip: "Выберите существующую метку для добавления к этой заметке",
	popupNone: "Нет ни одной метки",
	tagTooltip: "Добавьте метку для '%0'"});

merge(config.messages,{
	sizeTemplates: [
		{unit: 1024*1024*1024, template: "%0\u00a0 Gb"},
		{unit: 1024*1024, template: "%0\u00a0 Mb"},
		{unit: 1024, template: "%0\u00a0 Kb"},
		{unit: 1, template: "%0\u00a0 b"}]});

merge(config.macros.search,{
	label: "поиск",
	prompt: "Поиск в этой TiddlyWiki",
	accessKey: "F",
	successMsg: "Найдено %0 заметок с текстом %1",
	failureMsg: "Нет ни одной заметки с текстом %0"});

merge(config.macros.tagging,{
	label: "метки: ",
	labelNotTag: "(нет меток)",
	tooltip: "Список заметок, помеченных как '%0'"});

merge(config.macros.timeline,{
	dateFormat: "DD.0MM.YYYY"});

merge(config.macros.allTags,{
	tooltip: "Показать заметки, помеченные как '%0'",
	noTags: "Нет ни одной помеченной заметки"});

config.macros.list.all.prompt = "Все заметки в алфавитном порядке";
config.macros.list.missing.prompt = "Отсутствующие заметки, на которые при этом есть ссылки с других заметок";
config.macros.list.orphans.prompt = "Заметки, на которые нет ни одной ссылки из других заметок";
config.macros.list.shadowed.prompt = "Служебные заметки";
config.macros.list.touched.prompt = "Заметки, которые были изменены";

merge(config.macros.closeAll,{
	label: "закрыть всё",
	prompt: "Закрыть все отображённые заметки (за исключением заметок в состоянии правки)"});

merge(config.macros.permaview,{
	label: "прямая ссылка",
	prompt: "Создание адресной строки для открытия TiddlyWiki с текущими открытыми заметками"});

merge(config.macros.saveChanges,{
	label: "сохранить",
	prompt: "Сохранение TiddlyWiki со всеми заметками",
	accessKey: "S"});

merge(config.macros.newTiddler,{
	label: "новая заметка",
	prompt: "Создать новую заметку",
	title: "Новая заметка",
	accessKey: "N"});

merge(config.macros.newJournal,{
	label: "новая запись",
	prompt: "Создать новую заметку с текущей датой и временем",
	accessKey: "J"});

merge(config.macros.options,{
	wizardTitle: "Расширенные пункты настройки",
	step1Title: "Эти настройки Ваша программа просмотра сохраняет с помощью cookies",
	step1Html: "<input type='hidden' name='markList'></input><br><input type='checkbox' checked='false' name='chkUnknown'>Показать настройки без описания</input>",
	unknownDescription: "//(unknown)//",
	listViewTemplate: {
		columns: [
			{name: 'Option', field: 'option', title: "Возможности", type: 'String'},
			{name: 'Description', field: 'description', title: "Описание", type: 'WikiText'},
			{name: 'Name', field: 'name', title: "Имя", type: 'String'}],
		rowClasses: [{className: 'lowlight', field: 'lowlight'} ]}
	});

merge(config.macros.plugins,{
	wizardTitle: "Управление модулями",
	step1Title: "Подключенные модули",
	step1Html: "<input type='hidden' name='markList'></input>", // DO NOT TRANSLATE
	skippedText: "(Этот модуль не выполняется, так как после его добавления ещё не было перезапуска TiddlyWiki)",
	noPluginText: "Нет установленных модулей",
	confirmDeleteText: "Вы уверены, что хотите удалить эти модули:\n\n%0",
	removeLabel: "удалить метку systemConfig",
	removePrompt: "Удалить метку systemConfig",
	deleteLabel: "удалить",
	deletePrompt: "Удалить эту заметку навсегда",
	listViewTemplate: {
		columns: [
			{name: 'Selected', field: 'Selected', rowName: 'title', type: 'Selector'},
			{name: 'Tiddler', field: 'tiddler', title: "Заметка", type: 'Tiddler'},
			{name: 'Description', field: 'Description', title: "Описание", type: 'String'},
			{name: 'Version', field: 'Version', title: "Версия", type: 'String'},
			{name: 'Size', field: 'size', tiddlerLink: 'size', title: "Размер", type: 'Size'},
			{name: 'Forced', field: 'forced', title: "Forced", tag: 'systemConfigForce', type: 'TagCheckbox'},
			{name: 'Disabled', field: 'disabled', title: "Запрещён", tag: 'systemConfigDisable', type: 'TagCheckbox'},
			{name: 'Executed', field: 'executed', title: "Загружен", type: 'Boolean', trueText: "Да", falseText: "Нет"},
			{name: 'Startup Time', field: 'startupTime', title: "Стартовый", type: 'String'},
			{name: 'Error', field: 'error', title: "Состояние", type: 'Boolean', trueText: "Ошибка", falseText: "Норма"},
			{name: 'Log', field: 'log', title: "Протокол", type: 'StringList'} ],
		rowClasses: [
			{className: 'error', field: 'error'},
			{className: 'warning', field: 'warning'} ]},
	listViewTemplateReadOnly: {
		columns: [
			{name: 'Tiddler', field: 'tiddler', title: "Заметка", type: 'Tiddler'},
			{name: 'Description', field: 'Description', title: "Описание", type: 'String'},
			{name: 'Version', field: 'Version', title: "Версия", type: 'String'},
			{name: 'Size', field: 'size', tiddlerLink: 'size', title: "Размер", type: 'Size'},
			{name: 'Executed', field: 'executed', title: "Загружен", type: 'Boolean', trueText: "Да", falseText: "Нет"},
			{name: 'Startup Time', field: 'startupTime', title: "Стартовый", type: 'String'},
			{name: 'Error', field: 'error', title: "Состояние", type: 'Boolean', trueText: "Ошибка", falseText: "Норма"},
			{name: 'Log', field: 'log', title: "Log", type: 'StringList'}
			],
		rowClasses: [
			{className: 'error', field: 'error'},
			{className: 'warning', field: 'warning'}
			]}
	});

merge(config.macros.toolbar,{
	moreLabel: "ещё",
	morePrompt: "Показать дополнительные команды",
	lessLabel: "кратко",
	lessPrompt: "Скрыть дополнительные команды",
	separator: "|" });

merge(config.macros.refreshDisplay,{
	label: "обновить",
	prompt: "Обновить отображение TiddlyWiki" });

merge(config.macros.importTiddlers,{
	readOnlyWarning: "Вы не можете добавлять что-либо в открытую только для чтения TiddlyWiki. Попробуйте открыть её как файл (через обращение file://)",
	wizardTitle: "Импорт заметок из другого файла или сервера",
	step1Title: "Шаг 1: Найдите сервер или файл TiddlyWiki",
	step1Html: "Укажите тип сервера: <select name='selTypes'><option value=''>Выберите…</option></select><br>введите адрес или путь к файлу тут: <input type='text' size=50 name='txtPath'><br>…или найдите файл: <input type='file' size=50 name='txtBrowse'><br><hr>…или выберите заготовку: <select name='selFeeds'><option value=''>Выберите…</option></select>",
	openLabel: "открыть",
	openPrompt: "Подключиться к этому файлу или серверу",
	openError: "Возникли проблемы с получением файла TiddlyWiki", // v.2.6.0, removed in v.2.6.1
	statusOpenHost: "Открытие узла",
	statusGetWorkspaceList: "Получение списка доступных рабочих областей",
	step2Title: "Шаг 2: Выберите рабочую область",
	step2Html: "Введите имя рабочей области: <input type='text' size=50 name='txtWorkspace'><br>…или выберите рабочую область: <select name='selWorkspace'><option value=''>Выберите…</option></select>",
	cancelLabel: "отмена",
	cancelPrompt: "Отмена этого импорта",
	statusOpenWorkspace: "Открытие рабочего пространства",
	statusGetTiddlerList: "Получение списка разрешённых заметок",
	errorGettingTiddlerList: "Ошибка при получении списка заметок, нажмите Отмену и попробуйте снова",
	step3Title: "Шаг 3: Выберите импортируемые заметки",
	step3Html: "<input type='hidden' name='markList'></input><br><input type='checkbox' checked='true' name='chkSync'>Оставить эти заметки связанными с этим сервером для облегчения последующих синхронизаций</input><br><input type='checkbox' name='chkSave'>Сохранить параметры этого сервера в заметке с названием 'systemServer':</input> <input type='text' size=25 name='txtSaveTiddler'>",
	importLabel: "импорт",
	importPrompt: "Импортировать эти заметки",
	confirmOverwriteText: "Вы действительно хотите заменить эти заметки:\n\n%0",
	step4Title: "Шаг 4: Импортируется заметок: %0",
	step4Html: "<input type='hidden' name='markReport'></input>", // DO NOT TRANSLATE
	doneLabel: "завершить",
	donePrompt: "Закрыть этот мастер-диалог",
	statusDoingImport: "Импортирование заметок",
	statusDoneImport: "Все заметки импортированы",
	systemServerNamePattern: "%2 из %1",
	systemServerNamePatternNoWorkspace: "%1",
	confirmOverwriteSaveTiddler: "Заметка '%0' уже существует. Нажмите 'OK' для замены её на заметку с указанного сервера, или нажмите 'Cancel' для оставления её неизменной",
	serverSaveTemplate: "|''Введите:''|%0|\n|''Адрес:''|%1|\n|''Рабочее пространство:''|%2|\n\nЭта заметка будет автоматически создана для записи параметров этого сервера",
	serverSaveModifier: "(System)",
	listViewTemplate: {
		columns: [
			{name: 'Selected', field: 'Selected', rowName: 'title', type: 'Selector'},
			{name: 'Tiddler', field: 'tiddler', title: "Заметка", type: 'Tiddler'},
			{name: 'Size', field: 'size', tiddlerLink: 'size', title: "Размер", type: 'Size'},
			{name: 'Tags', field: 'tags', title: "Метки", type: 'Tags'} ],
		rowClasses: []
	} });

merge(config.macros.upgrade,{
	wizardTitle: "Обновление кода ядра TiddlyWiki",
	step1Title: "Обновление или восстановление этой TiddlyWiki до последней версии",
	step1Html: "Вы готовы обновить код ядра TiddlyWiki до последней версии (с адреса <a href='%0' class='externalLink' target='_blank'>%1</a>). Информационное наполнение этого файла будет сохранено.<br><br>Заметьте, что обновление кода ядра может вызвать конфликт с уже подключенными старыми модулями. Если у Вас появились проблемы с обновлённым файлом, почитайте здесь: <a href='http://www.tiddlywiki.org/wiki/CoreUpgrades' class='externalLink' target='_blank'>http://www.tiddlywiki.org/wiki/CoreUpgrades</a>",
	errorCantUpgrade: "Не могу обновить эту TiddlyWiki. Вы можете производить обновление TiddlyWiki-файлов, сохранённых только локально",
	errorNotSaved: "Вы должны сохранить изменения, прежде чем производить обновление",
	step2Title: "Подтвердите параметры обновления",
	step2Html_downgrade: "У Вас получается ухудшение версии файла TiddlyWiki с версии %1 до версии %0.<br><br>Замена версии кода ядра на более раннюю не рекомендуется",
	step2Html_restore: "Похоже, что эта TiddlyWiki уже использует последнюю версию кода ядра (%0).<br><br>Вы можете продолжить замену кода ядра в любом случае для того, чтобы быть уверенными, что код ядра не повреждён и не испорчен",
	step2Html_upgrade: "Вы готовы обновить версию TiddlyWiki с %1 до %0?",
	upgradeLabel: "обновление",
	upgradePrompt: "Приготовьтесь к процессу обновления",
	statusPreparingBackup: "Делается резервная копия",
	statusSavingBackup: "Сохраняется резервная копия",
	errorSavingBackup: "Возникла проблема с сохранением файла резервной копии",
	statusLoadingCore: "Загрузка кода ядра",
	errorLoadingCore: "Ошибка при загрузке кода ядра",
	errorCoreFormat: "Ошибка в новом коде ядра",
	statusSavingCore: "Сохранение нового кода ядра",
	statusReloadingCore: "Повторная загрузка нового кода ядра",
	startLabel: "пуск",
	startPrompt: "Запуск процесса обновления",
	cancelLabel: "отмена",
	cancelPrompt: "Отмена процесса обновления",
	step3Title: "Процесс обновления прерван",
	step3Html: "Вы отменили процесс обновления TiddlyWiki"
	});

merge(config.macros.sync,{
	listViewTemplate: {
		columns: [
			{name: 'Selected', field: 'selected', rowName: 'title', type: 'Selector'},
			{name: 'Tiddler', field: 'tiddler', title: "Заметка", type: 'Tiddler'},
			{name: 'Server Type', field: 'serverType', title: "Тип сервера", type: 'String'},
			{name: 'Server Host', field: 'serverHost', title: "Хранилище сервера (host)", type: 'String'},
			{name: 'Server Workspace', field: 'serverWorkspace', title: "Рабочее пространство сервера", type: 'String'},
			{name: 'Status', field: 'status', title: "Состояние синхронизации", type: 'String'},
			{name: 'Server URL', field: 'serverUrl', title: "Адресная строка", text: "View", type: 'Link'} ],
		rowClasses: [],
		buttons: [{caption: "Синхронизировать эти заметки", name: 'sync'}] },
	wizardTitle: "Синхронизировать с внешним сервером или файлом",
	step1Title: "Выберите заметки, которые Вы хотите синхронизировать",
	step1Html: "<input type='hidden' name='markList'></input>", // DO NOT TRANSLATE
	syncLabel: "синхронизация",
	syncPrompt: "Синхронизировать эти заметки",
	hasChanged: "Изменены с момента последней синхронизации",
	hasNotChanged: "Нет изменений с момента последней синхронизации",
	syncStatusList: {
		none: {text: "…", display:'none', className:'notChanged'},
		changedServer: {text: "Изменены на сервере", display:null, className:'changedServer'},
		changedLocally: {text: "Изменены локально", display:null, className:'changedLocally'},
		changedBoth: {text: "Изменены в обоих местах сразу", display:null, className:'changedBoth'},
		notFound: {text: "Отсутствует на сервере", display:null, className:'notFound'},
		putToServer: {text: "Обновление сохранено на сервер", display:null, className:'putToServer'},
		gotFromServer: {text: "Обновления получены с сервера", display:null, className:'gotFromServer'} } });

merge(config.macros.annotations,{});

merge(config.commands.closeTiddler,{
	text: "закрыть",
	tooltip: "Закрыть эту заметку"});

merge(config.commands.closeOthers,{
	text: "закрыть другие",
	tooltip: "Закрыть все другие заметки"});

merge(config.commands.editTiddler,{
	text: "правка",
	tooltip: "Исправить эту заметку",
	readOnlyText: "просмотр",
	readOnlyTooltip: "Просмотр исходного текста этой заметки"});

merge(config.commands.saveTiddler,{
	text: "сохранить",
	tooltip: "Сохранить изменения этой заметки"});

merge(config.commands.cancelTiddler,{
	text: "отмена",
	tooltip: "Отменить изменение этой заметки",
	warning: "Вы действительно уверены, что Вы хотите потерять все Ваши изменения заметки '%0'?",
	readOnlyText: "возврат",
	readOnlyTooltip: "Просмотр этой заметки в нормальном режиме"});

merge(config.commands.deleteTiddler,{
	text: "удалить",
	tooltip: "Удалить эту заметку",
	warning: "Вы уверены, что хотите удалить '%0'?"});

merge(config.commands.permalink,{
	text: "прямая ссылка",
	tooltip: "Адресная строка для этой заметки"});

merge(config.commands.references,{
	text: "ссылки",
	tooltip: "Показать все заметки, которые ссылаются на эту заметку",
	popupNone: "Нет ссылок"});

merge(config.commands.jump,{
	text: "переход",
	tooltip: "Переход на другую открытую заметку"});

merge(config.commands.syncing,{
	text: "синхронизация",
	tooltip: "Управление синхронизацией этой заметки с сервером или внешним файлом",
	currentlySyncing: "<div>Синхронизирую с помощью <span class='popupHighlight'>'%0'</span> с:</"+"div><div>хранилищем: <span class='popupHighlight'>%1</span></"+"div><div>рабочее пространство: <span class='popupHighlight'>%2</span></"+"div>", // Note escaping of closing <div> tag
	notCurrentlySyncing: "Пока не синхронизировано",
	captionUnSync: "Остановить синхронизацию этой заметки",
	chooseServer: "Привести в соответствие эту заметку с другим сервером:",
	currServerMarker: "\u25cf ",
	notCurrServerMarker: "  "});

merge(config.commands.fields,{
	text: "поля",
	tooltip: "Отображение расширенных параметров этой заметки",
	emptyText: "У этой заметки нет расширенных параметров",
	listViewTemplate: {
		columns: [
			{name: 'Field', field: 'field', title: "Поле", type: 'String'},
			{name: 'Value', field: 'value', title: "Значение", type: 'String'} ],
		rowClasses: [],
		buttons: [] } });

merge(config.shadowTiddlers,{
	DefaultTiddlers: "[[GettingStarted]]",
	MainMenu: "[[GettingStarted]]",
	SiteTitle: "Моя TiddlyWiki",
	SiteSubtitle: "гипертекстовая записная книжка",
	SiteUrl: "",
	SideBarOptions: '<<search>><<closeAll>><<permaview>><<newTiddler>><<newJournal "DD.0MM.YYYY" "journal">><<saveChanges>><<slider chkSliderOptionsPanel OptionsPanel "настройки \u00bb" "Изменение настроек TiddlyWiki">>',
	SideBarTabs: '<<tabs txtMainTab "история" "История" TabTimeline "все" "Все заметки" TabAll "метки" "Все метки" TabTags "ещё" "Другие списки" TabMore>>',
	TabMore: '<<tabs txtMoreTab "нет" "Отсутствующие заметки" TabMoreMissing "потери" "Потерянные заметки" TabMoreOrphans "служебные" "Служебные заметки" TabMoreShadowed>>' });

merge(config.annotations,{
	AdvancedOptions: "Эта служебная заметка обеспечивает доступ к некоторым дополнительным настройкам",
	ColorPalette: "Значения из этой служебной заметки определяют цветовую схему пользовательского интерфейса TiddlyWiki",
	DefaultTiddlers: "Заметки, перечисленные в этой служебной заметке, будут автоматически открываться при каждом запуске TiddlyWiki",
	EditTemplate: "Шаблон HTML в этой служебной заметке определяет, как заметки будут выглядеть, пока они редактируются",
	GettingStarted: "Эта служебная заметка содержит инструкции по начальному использованию",
	ImportTiddlers: "Эта служебная заметка обеспечивает доступ к импортированным заметкам",
	MainMenu: "Эта служебная заметка используется для хранения содержимого главного меню (//обычно отображается в левой колонке экрана//)",
	MarkupPreHead: "Эта заметка вставляется в начало раздела <head> этого HTML-файла c TiddlyWiki",
	MarkupPostHead: "Эта заметка вставляется в конец раздела <head> этого HTML-файла c TiddlyWiki",
	MarkupPreBody: "Эта заметка вставляется в начало раздела <body> этого HTML-файла c TiddlyWiki",
	MarkupPostBody: "Эта заметка вставляется в конец раздела <body> этого HTML-файла с TiddlyWiki сразу же после блока кода",
	OptionsPanel: "Эта служебная заметка используется для хранения скрываемой панели Настроек, расположенной на боковой панели",
	PageTemplate: "HTML-шаблон в этой служебной заметке определяет общий вид TiddlyWiki",
	PluginManager: "Эта служебная заметка обеспечивает доступ к управлению модулями",
	SideBarOptions: "Эта служебная заметка используется для хранения панели поиска и настроек на боковой панели",
	SideBarTabs: "Эта служебная заметка содержит начинку панели со списком служебных заметок на боковой панели",
	SiteSubtitle: "Эта служебная  заметка содержит вторую часть заголовка страницы",
	SiteTitle: "Эта служебная заметка содержит первую часть заголовка страницы",
	SiteUrl: "В эту служебную заметку должен быть занесён полный URL публикации этой TiddlyWiki",
	StyleSheetColors: "Эта служебная заметка содержит CSS-описания, относящиеся к цветам элементов страницы. ''НЕ ИЗМЕНЯЙТЕ ЭТУ ЗАМЕТКУ''. Все изменения делайте в служебной заметке StyleSheet",
	StyleSheet: "Эта заметка может содержать Ваши определения и изменения стилей CSS",
	StyleSheetLayout: "Эта служебная заметка содержит СSS-описания, относящиеся к расположению элементов страниц.''НЕ ИЗМЕНЯЙТЕ ЭТУ ЗАМЕТКУ''. Все изменения делайте в служебной заметке StyleSheet",
	StyleSheetLocale: "Эта служебная заметка содержит CSS-описания, относящиеся к переводу на местный язык",
	StyleSheetPrint: "Эта служебная заметка содержит CSS-описания для печати",
	SystemSettings: "Эта заметка используется для хранения параметров настройки этой TiddlyWiki",
	TabAll: "Эта служебная заметка содержит начинку закладки 'Все' на боковой панели",
	TabMore: "Эта служебная заметка содержит начинку закладки 'Ещё' на боковой панели",
	TabMoreMissing: "Эта служебная заметка содержит начинку закладки 'Нет' на боковой панели",
	TabMoreOrphans: "Эта служебная заметка содержит начинку закладки 'Потери' на боковой панели",
	TabMoreShadowed: "Эта служебная заметка содержит начинку закладки 'Служебные' на боковой панели",
	TabTags: "Эта служебная заметка содержит начинку закладки 'Метки' на боковой панели",
	TabTimeline: "Эта служебная заметка содержит начинку закладки 'История' на боковой панели",
	ToolbarCommands: "Эта служебная заметка определяет, какие команды будут показываться в меню заметки",
	ViewTemplate: "HTML-шаблон в этой сервисной заметке определяет, как будет выглядеть заметка",
	WindowTitle: "Эта служебная заметка содержит полный вид заголовка страницы" });

//}}}
|~ViewToolbar|closeTiddler closeOthers +editTiddler > fields syncing permalink references jump <|
|~EditToolbar|+saveTiddler -cancelTiddler deleteTiddler|
/***
|Name|UnsavedChangesPlugin|
|Source|http://www.TiddlyTools.com/#UnsavedChangesPlugin|
|Version|3.3.5|
|Author|Eric Shulman|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.1|
|Type|plugin|
|Description|show droplist of tiddlers that have changed since the last time the document was saved|
|>|!!Minor corrections|
|Description|Rewrites code for supporting localisation and inserts new command parameter ''inline''|
|Author|vmunt|
|Source version|3.3.5|
|Change version|0.0.3|
Display a list of tiddlers that have been changed since the last time the document was saved.  The list includes all new/modified tiddlers as well as those changed with "minor edits" enabled and any tiddlers that you import during the session, regardless of their modification date.
!!!!!Usage
<<<
{{{
<<unsavedChanges>> or <<unsavedChanges panel [label [tip]]>>
}}}
{{indent{
the ''panel'' keyword displays a 'control panel' interface containing a droplist of unsaved tiddlers and a 'goto' button, along with a command link to 'save changes'.  Depending upon what other plugins are installed, several additional elements will also be displayed: When [[NestedSlidersPlugin]] is installed, the entire control panel is contained within a ''SLIDER''.  When [[LoadTiddlersPlugin]] is installed, a ''REVERT'' button is added.  When [[SaveAsPlugin]] is installed, a ''SAVE AS'' link is added.  When [[UploadPlugin]] is installed, an ''UPLOAD'' (or ''save to web'') link is added.  When [[TrashPlugin]] is installed and there are tiddlers tagged with<<tag Trash>>, an ''EMPTY TRASH'' link is added.

You can specify optional ''label'' and ''tip'' parameters in the macro to customize the command link text and tooltip.  The default label for the command link is: "There %1 %0 unsaved tiddler%2…", where:
* %0 is automatically replaced with the number of unsaved changes
* %1 is either "is" (if changes=1) or "are" (if changes>1)
* %2 is either blank (if changes=1) or "s" (if changes>1)
resulting in the text: //"There is 1 unsaved tiddler…", "There are 2 unsaved tiddlers…", etc.//
}}}
{{{
<<unsavedChanges list [separator]>>
}}}
{{indent{
the ''list'' keyword displays a simple space-separated list of unsaved tiddlers without any other command links.

You can specify an optional ''separator'' value that can be used in place of the default space character.  For example, you can specify {{{"<br>"}}} as the separator in order to display each link, one per line.
}}}
{{{
<<unsavedChanges inline [separator [label [tip]]]>>
}}}
{{indent{
the ''inline'' keyword displays a header preceeded {{remark{(and expanded, if [[NestedSlidersPlugin]] is installed)}}} space-separated list of unsaved tiddlers without any other command links. You can also specify an optional ''separator'', ''label'' and ''tip'' parameters.
}}}
{{{
<<unsavedChanges command [label [tip]]>>
}}}
{{indent{
the ''command'' keyword displays a single 'command link' that, when clicked, displays a ~TiddlyWiki popup containing the list of unsaved tiddlers, the 'save changes' command and, depending upon what other plugins are installed, additional commands for 'save as', 'upload', and 'empty trash' {{remark{(similar to the panel display described above)}}}. You can also specify an optional ''label'' and ''tip'' parameters.
}}}
<<<
!!!!!Examples
<<<
^^//note: the following examples will not display any output unless you have already created/modified tiddlers in the current document.//^^
{{{<<unsavedChanges>>}}}
<<unsavedChanges>>
----
{{{<<unsavedChanges panel "unsaved tiddler%2: %0" "How many tiddler(s) unsaved info">>}}}
<<unsavedChanges panel "unsaved tiddler%2: %0" "How many tiddler(s) unsaved info">>
----
{{{<<unsavedChanges command>>}}}
<<unsavedChanges command>>
----
{{{<<unsavedChanges list>>}}}
<<unsavedChanges list>>
----
{{{<<unsavedChanges list "<br>">>}}}
<<unsavedChanges list "<br>">>
----
{{{<<unsavedChanges inline>>}}}
<<unsavedChanges inline>>
----
{{{<<unsavedChanges inline "<br>">>}}}
<<unsavedChanges inline "<br>">>
<<<
!!!!!Revisions
<<<
2011.04.29 3.3.5 in panel(), use custom label (if provided).  Also, removed "small" style from panel commands so surrounding CSS font size will be used.
2010.12.05 3.3.4 display 'save as…' command even if readOnly
2009.03.02 3.3.3 fix handling for titles that contain HTML special chars (lt,gt,quot,amp)
2008.09.02 3.3.2 cleanup popup list output generation and added timestamps/sizes to popup display
2008.08.23 3.3.1 added optional custom 'label' and 'tip' params to 'command' mode and defined default values for mode, label, tip, and separator as object properties for I18N/L10N-readiness.
2008.08.21 3.3.0 complete re-write of rendering and refresh processing to support multiple instances and automatic self-refresh (no longer depends upon core refresh notifications)
2008.08.21 3.2.0 added 'command' option for link+popup as alternative to 'control panel' interface
2008.04.22 3.1.2 use SaveAsPlugin instead of obsolete NewDocumentPlugin to add "save as" link
2007.12.22 3.1.1 hijack removeTiddler() instead of low-level deleteTiddler() to correct tracking and refresh handling issues.  in saveTiddler(), check for 'tiddler rename' (title!=newtitle) and adjust list accordingly.
2007.12.21 3.1.0 added support for {{{<<unsavedChanges list separator>>}}} usage to unsaved tiddlers as a simple list of links, embedded in tiddler content (e.g., [[MainMenu]])
2007.12.20 3.0.0 rewrite to track ALL changed tiddlers, including imports and minor edits, regardless of saved modification dates.  Also, rewrote display logic to directly refresh macro output instead of triggering a page refresh.  The entire process is MUCH more efficient now.
2007.08.02 2.0.0 converted from inline script
2007.01.01 1.0.0 initial release
<<<
!!!!!Code
***/
//{{{
version.extensions.UnsavedChangesPlugin= {major: 3, minor: 3, revision: 5, date: new Date(2011,4,29)};

config.macros.unsavedChanges = {
	changed: [], // list of currently unsaved tiddler titles
	defMode: "panel",
	defSep: " ",
	defLabel: "There %1 %0 unsaved tiddler%2",
	defTip: "view a list of unsaved tiddler changes",
	gotoLabel: "goto", // vmunt
	cmdFormat: " &nbsp;[[%1 - %0 (%2 byte%3)|%0]]&nbsp; ", // %0 -- tiddler label, %1 – modification date, %2 – tiddler size, %3 – byte ending
	cmdTime: 'YYYY.0MM.0DD 0hh:0mm:0ss',
	panelFormat: '<option value="%0">%1 - %0 (%2 byte%3)</option>',
	panelTime: 'YYYY.0MM.0DD 0hh:0mm:0ss',
	inlineFormat: "[[%0 (%1)|%0]]",
	inlineTime: "0hh:0mm",
	ending1: function(c) { return (c==1?'is':'are'); }, // "there is" / "there are"
	ending2: function(c) { return (c==1?'':'s'); }, // tiddler-tiddlers
	ending3: function(c) { return (c==1?'':'s'); }, // byte-bytes in item format string
	handler: function(place,macroName,params,wikifier,paramString,tiddler) {
		var wrapper=createTiddlyElement(place,"span",null,"unsavedChanges");
		wrapper.setAttribute("mode",params[0]||this.defMode);
		switch (wrapper.getAttribute("mode")) { // vmunt
		case "panel":
			wrapper.setAttribute("label",params[1]||this.defLabel);
			wrapper.setAttribute("tip",params[2]||this.defTip);
			break;
		case "command":
			wrapper.setAttribute("label",params[1]||this.defLabel);
			wrapper.setAttribute("tip",params[2]||this.defTip);
			break;
		case "list":
			wrapper.setAttribute("sep",params[1]||this.defSep);
			break;
		case "inline":
			wrapper.setAttribute("sep",params[1]||this.defSep);
			wrapper.setAttribute("label",params[2]||this.defLabel);
			wrapper.setAttribute("tip",params[3]||this.defTip);
			break;
		}
		this.render(wrapper);
	},
	render: function(wrapper) {
		removeChildren(wrapper); // make sure its empty
		if (!this.changed.length) return; // no changes = no output
		switch (wrapper.getAttribute("mode")) {
			case "command": this.command(wrapper); break;
			case "list": this.list(wrapper); break;
			case "inline": this.inline(wrapper); break; // inserts a new command word
			case "panel": default: this.panel(wrapper); break;
		}
	},
	refresh: function() {
		var wrappers=document.getElementsByTagName("span");
		for (var w=0; w<wrappers.length; w++)
			if (hasClass(wrappers[w],"unsavedChanges"))
				this.render(wrappers[w]);
	},
	list: function(place) { // show simple list of unsaved tiddlers
		wikify("[["+this.changed.join("]]"+place.getAttribute("sep")+"[[")+"]]",place);
	},
	inline: function(place) { // show inline list of unsaved tiddlers with times
		var c=this.changed.length; var e1=this.ending1(c); var e2=this.ending2(c);
		var list=[];
		for (var i=c-1; i>=0; i--) {
			var tid=store.getTiddler(this.changed[i]);
			if (!tid) continue;
			var when=tid.modified.formatString(this.inlineTime); var endb=this.ending3(tid.text.length);
			list.push(this.inlineFormat.format([tid.title,when,tid.text.length,endb]));
		}
		var NSP=config.formatters.findByField("name","nestedSliders");
		var out=place.getAttribute("label").format([c,e1,e2]);
		out=NSP?'+++(_Unsaved)['+out+'|'+this.defTip+']...':(out+"\n");
		out+=list.join(place.getAttribute('sep'));
		out+=NSP?'===':'';
		wikify(out,place);
	},
	command: function(place) { // show command link with popup list
		var c=this.changed.length;
		var e1=this.ending1(c); var e2=this.ending2(c);
		var txt=place.getAttribute("label").format([c,e1,e2]);
		var tip=place.getAttribute("tip");
		var action=function(ev) { if (!ev) var ev=window.event;
			var p=Popup.create(this); if (!p) return false;
			var d=createTiddlyElement(p,"div");
			d.style.whiteSpace="normal"; d.style.width="auto"; d.style.padding="2px";
			// gather pretty links for changed tiddlers
			var list=[]; var tm=config.macros.unsavedChanges.cmdTime; var fmt=config.macros.unsavedChanges.cmdFormat;
			for (var i=config.macros.unsavedChanges.changed.length-1; i>=0; i--) {
				var tid=store.getTiddler(config.macros.unsavedChanges.changed[i]);
				if (!tid) continue;
				var when=tid.modified.formatString(tm); var endb=config.macros.unsavedChanges.ending3(tid.text.length);
				list.push(fmt.format([tid.title,when,tid.text.length,endb]));
			}
			wikify("@@white-space:nowrap;"+list.join("<br>")+"@@",d);
			var t="\n----\n";
			t+="@@white-space:nowrap;display:block;text-align:center; &nbsp;";
			if (!readOnly) {
				t+="<<saveChanges>>";
				t+=config.macros.saveAs?" | <<saveAs>>":"";
				t+=config.macros.upload?" | <<upload>>":"";
				t+=(config.macros.emptyTrash&&store.getTaggedTiddlers("Trash").length)?" | <<emptyTrash>>":"";
			} else {
				t+=config.macros.saveAs?"<<saveAs>>":"";
			}
			t+="&nbsp; @@";
			wikify(t,d);
			Popup.show();
			ev.cancelBubble=true; if(ev.stopPropagation)ev.stopPropagation();
			return(false);
		}
		createTiddlyButton(place,txt,tip,action,"button");
	},
	panel: function(place) { // show composite droplist+buttons+commands
		// gather changed tiddlers (in reverse order by date - most recent first)
		var tids=[]; for (var i=this.changed.length-1; i>=0; i--)
			{ var t=store.getTiddler(this.changed[i]); if (t) tids.push(t); }
		tids.sort(function(a,b){return a.modified<b.modified?-1:(a.modified==b.modified?0:1);});
		// generate droplist items
 		var list=[];
		for (var i=tids.length-1; i>=0; i--) {
			var when=tids[i].modified.formatString(this.panelTime); var endb=this.ending3(tids[i].text.length);
			list.push(this.panelFormat.format([tids[i].title.htmlEncode(),when,tids[i].text.length,endb]));
		}
		// display droplist, buttons, and command links
		var out=''; var c=this.changed.length;
		var NSP=config.formatters.findByField("name","nestedSliders");
		var e1=this.ending1(c); var e2=this.ending2(c);
		var summary=place.getAttribute("label").format([c,e1,e2]);
		out+=NSP?'+++(_Unsaved)['+summary+'|'+this.defTip+']...':(summary+"\n"); // vmunt: It seems "_Unsaved" (instead "unsaved") simplifies review of cookie list
		out+='<html><form style="display:inline"><!--\
			--><select size="1" name="list" \
				title="select a tiddler to view" \
				onchange="var v=this.value; if (v.length) story.displayTiddler(null,v);"><!--\
			-->'+list.join('')+'<!--\
			--></select><!--\
			--><input type="button" value="'+this.gotoLabel+'" onclick="this.form.list.onchange();">';
		if (config.macros.loadTiddlers)  {
			out+='<input type="button" value="revert" \
				title="import the last saved version of this tiddler" \
				onclick="var v=this.form.list.value; if (!v.length) return; \
					var t=\'<\'+\'<loadTiddlers [[tiddler:\'+v+\']] \'; \
					t+=document.location.href; \
					t+=\' confirm force noreport>\'+\'>\'; \
					var e=document.getElementById(\'executeRevert\'); \
					if (e) e.parentNode.removeChild(e); \
					e=document.createElement(\'span\'); \
					e.id=\'executeRevert\'; \
					wikify(t,e);">';
		}
		out+='</form></html>';
		out+='\n{{nowrap{';
		if (!readOnly) {
			out+="<<saveChanges>>";
			out+=config.macros.saveAs?" | <<saveAs>>":"";
			out+=config.macros.upload?" | <<upload>>":"";
			out+=(config.macros.emptyTrash&&store.getTaggedTiddlers("Trash").length)?" | <<emptyTrash>>":"";
		} else {
			out+=config.macros.saveAs?"<<saveAs>>":"";
		}
		out+='}}}';
		out+=NSP?'===':'';
		wikify(out,place);
	}
};

// hijack store.saveTiddler() to track changes to tiddlers
if (store.showUnsaved_saveTiddler==undefined) {
	store.showUnsaved_saveTiddler=store.saveTiddler;
	store.saveTiddler=function(title,newtitle) {
		if (title!=newtitle) {
			var i=config.macros.unsavedChanges.changed.indexOf(title);
			if (i!=-1) config.macros.unsavedChanges.changed.splice(i,1); // remove old from list
		} 
		var i=config.macros.unsavedChanges.changed.indexOf(newtitle);
		if (i!=-1) config.macros.unsavedChanges.changed.splice(i,1); // remove new title from list
		config.macros.unsavedChanges.changed.push(newtitle); // add new title to END of list
		var t=this.showUnsaved_saveTiddler.apply(this,arguments);
		if (!this.notificationLevel) config.macros.unsavedChanges.refresh();
		return t;
	}
}

// hijack store.removeTiddler() to track changes to tiddlers
if (store.showUnsaved_removeTiddler==undefined) {
	store.showUnsaved_removeTiddler=store.removeTiddler;
	store.removeTiddler=function(title) {
		var i=config.macros.unsavedChanges.changed.indexOf(title);
		if (i!=-1) config.macros.unsavedChanges.changed.splice(i,1); // remove from list
		this.showUnsaved_removeTiddler.apply(this,arguments);
		if (!this.notificationLevel) config.macros.unsavedChanges.refresh();
	}
}

// hijack store.setDirty() function to reset change list after file save
// note: do NOT hijack the prototype function.  This hijack should only be applied to
// the main 'store' instance only (i.e., don't refresh when loading temporary store
// as part of ImportTiddlers processing)
if (store.showUnsaved_setDirty==undefined) {
	store.showUnsaved_setDirty=store.setDirty;
	store.setDirty = function(flag) {
		var refresh=this.isDirty() && !flag; // 'dirty' to 'clean', force a refresh…
		this.showUnsaved_setDirty.apply(this,arguments); // but change the flag first.
		if (refresh) {
			config.macros.unsavedChanges.changed=[]; // clear changed list
			config.macros.unsavedChanges.refresh();
		}
	}
}
//}}}
/***
!Описание
/%
|Name|UnsavedChangesPlugin:rus|
|Description|Both translation to russian for plugin [[UnsavedChangesPlugin]] by Eric Shulman, source from [[TiddlyTools.com|http://www.TiddlyTools.com/#UnsavedChangesPlugin]] and russian documentation for this plugin|
|Описание|Модуль русифицирует работу модуля [[UnsavedChangesPlugin]] Эрика Шульмана и без этого модуля бесполезен|
|Source|http://vmunt.site/tw/plugins/unsavedChangesPluginRus.html|
|Version|0.0.3|
|Author|vmunt|
|License|Use it free|
|~CoreVersion|2.1 {{remark{(as Eric's plugin)}}}|
|Type|plugin|
!Изменения (changes)
0.0.3: Вставлен параметр %3, содержащий окончание слова «байт» в строках генерации списков изменённых заметок {{remark{(byte ending inserted as parameter %3 in list format string of changed tiddlers)}}}
%/Модуль [[UnsavedChangesPlugin]] отображает выпадывающий список заметок, которые были изменены или созданы после последнего сохранения документа. Этот список отображает также те заметки, которые были сохранены с помощью функции «мелких изменений» {{remark{(то есть без изменения даты модификации заметки)}}}, и те, которые были импортированы во время этой сессии вне зависимости от их даты последнего изменения
!Использование
{{remark{Примечание: Примеры в этом документе не будут отображаться до тех пор, пока в этой TiddlyWiki не будут присутствовать какие-либо изменённые заметки}}}
!!Встраиваемый диалог
{{{
<<unsavedChanges>>
}}}
отображает:
<<<
<<unsavedChanges>>
<<<
Также встраивание может быть выполнено так:
{{{
<<unsavedChanges panel [уведомление [подсказка]]>>
}}}
Вы можете указать дополнительные параметры ''уведомление'' и ''подсказка'' для настройки текста ''уведомительной ссылки'' и ''всплывающей подсказки''. Строка по умолчанию для ''уведомительной ссылки'' такая: ""Изменен%2 %0 замет%1 »"", где:
* %0 автоматически заменяется на цифру количества несохранённых заметок,
* %1 будет правильным окончанием для слова Заметка/Заметки/Заметок,
* %2 будет правильным окончанием для слов Изменена/Изменены/Изменено.
В результате получится текст: //"Изменена 1 заметка »", "Изменены 3 заметки »", "Изменено 5 заметок »", и так далее.//
Например:
|!Синтаксис|!Результат|
|<html><pre>&lt;&lt;unsavedChanges panel&gt;&gt;</pre></html>|<<unsavedChanges panel>>|
|<html><pre>&lt;&lt;unsavedChanges panel "Изменено: %0 замет%1" "Информация о том, сколько заметок изменено"&gt;&gt;</pre></html>|<<unsavedChanges panel "Изменено: %0 замет%1" "Информация о том, сколько заметок изменено">>|
Ключевое слово {{{panel}}} отображает интерфейс, предназдаченный для панели управления, который содержит выпадывающий список несохранённых заметок и кнопочки ''Перейти'' и ''Сохранить''. Также при наличии других установленных модулей могут появляться дополнительные кнопочки:
* Когда в документе присутствует модуль [[NestedSlidersPlugin]], список заметок помещается в скрываемый контейнер {{remark{(слайдер)}}}
* Если установлен модуль [[LoadTiddlersPlugin]], добавляется кнопочка ''Восстановить'' {{remark{(Откат изменений)}}}
* Если установлен модуль [[SaveAsPlugin]], появляется кнопочка ''Сохранить как''
* При модуле [[UploadPlugin]] появляется кнопка ''Выгрузить'' {{remark{(или ''Сохранить в сеть'')}}}
* Когда присутствует модуль [[TrashPlugin]] и в списке присутствуют заметки, помеченные тегом {{{Trash}}}, появляется кнопка ''Очистить корзину''
!!Всплывающий диалог
Синтаксис
{{{
<<unsavedChanges command [уведомление [подсказка]]>>
}}}
отображает
<<<
<<unsavedChanges command>>
<<<
Использование ключевого слова ''command'' позволяет отображать одну ''уведомительную ссылку'', которая при нажатии на неё показывает всплывающее окно ~TiddlyWiki со списком несохранённых заметок, а также с кнопкой ''Сохранить изменения'' и другими кнопками, зависящими от наличия в документе установленных дополнительных плагинов {{remark{(''Сохранить как'', ''Выгрузить в сеть'' и ''Очистить корзину'', то есть теми же кнопками, которые уже были описаны выше в описании параметра ''panel'')}}}.
!!Простой список
{{{
<<unsavedChanges list [разделитель]>>
}}}
работает так:
<<<
<<unsavedChanges list>>
<<<
Ключевое слово ''list'' отображает простой список разделённых пробелами изменённых заметок без дополнительных командных кнопок. Вы можете указать дополнительный ''разделитель'', который будет использован для вставки вместо пробела. Например, если использовать в качестве разделителя строку {{{"<br>"}}}, то каждая ссылка на изменённую заметку будет располагаться на отдельной строке:
{{{
<<unsavedChanges list "<br>">>
}}}
<<<
<<unsavedChanges list "<br>">>
<<<
!!Встраиваемый список
Синтаксис
{{{
<<unsavedChanges inline [разделитель [уведомление [подсказка]]]>>
}}}
вместо всплывающего окна делает список заметок {{remark{(аналогично команде ''list'')}}} со временем последней корректировки, но при наличии модуля [[NestedSlidersPlugin]] дополнительно заключает этот список в рамки скрываемого текста {{remark{(слайдера)}}}, например:
{{{<<unsavedChanges inline>>}}}
<<<
<<unsavedChanges inline>>
<<<
или
{{{<<unsavedChanges inline "<br>">>}}}
<<<
<<unsavedChanges inline "<br>">>
<<<
***/
///%
//{{{
merge(config.macros.unsavedChanges, {
//	defMode: "panel",
//	defSep: " ",
	defLabel: "Изменен%2 %0 замет%1 »", 
	ending1: function(c) { return (c==1?'ка':(c<5?'ки':'ок')) }, // Замет:ка (1), ки (2-4), ок (5+)
	ending2: function(c) { return (c==1?'а':(c<5?'ы':'о')) }, // Изменен:а (1), ы (2-4), о (5+)
	ending3: function(c) {
		if (c<5 || c>21) {
			var endC=c.toString();
			endC = endC.substr(endC.length-1);
			return ('234'.indexOf(endC)!=-1?'а':'');
		}
		return ''
	},
	defTip: "Показать/скрыть все несохранённые заметки",
	gotoLabel: "&#9658;", // ►&#9658;
	cmdFormat: " &nbsp;[[%1 – %0 (%2 байт%3)|%0]]&nbsp; ",
	cmdTime: '0hh:0mm',
	panelFormat: '<option value="%0">%1 – %0 (%2 байт%3)</option>',
	panelTime: '0hh:0mm',
	inlineFormat: "[[%0 (%1)|%0]]",
	inlineTime: '0hh:0mm'
});
//}}}
//%/
<!--{{{-->
<table width=100%>
<tr><td valign=top>
	<div class='title' macro='view title'></div>
	<div class='subtitle'><span macro='view modifier link'></span>, <span macro='view modified date'></span>&nbsp;(<span macro='message views.wikified.createdPrompt'></span> <span macro='view created date'></span>)</div>
</td>
<td valign=top>
	<div class='toolbar' macro='toolbar [[ToolbarCommands::ViewToolbar]]'></div>
	<div class='tagging' macro='tagging'></div>
	<div class='tagged' macro='tags'></div>
	<div class='tagClear'></div>
</td></tr>
</table>
<div class='viewer' macro='view text wikified'></div>
<!--}}}-->
<!--{{{-->
<span class='yourSearchNumber' macro='foundTiddler number'></span>
<span class='yourSearchTitle' macro='foundTiddler title'/></span>&nbsp;-&nbsp;
<span macro='foundTiddler field includeURL'/></span>&nbsp;-&nbsp;
<span class='yourSearchTags' macro='foundTiddler field tags 50'/></span>

<span macro="yourSearch if previewText"><div class='yourSearchText' macro='foundTiddler field text 250'/></div></span>
<!--}}}-->
/***
|''Name:''|YourSearchPlugin|
|''Version:''|2.1.5 (2010-02-16)|
|''Source:''|http://tiddlywiki.abego-software.de/#YourSearchPlugin|
|''Author:''|UdoBorkowski (ub [at] abego-software [dot] de)|
|''Licence:''|[[BSD open source license (abego Software)|http://www.abego-software.de/legal/apl-v10.html]]|
|''Copyright:''|&copy; 2005-2010 [[abego Software|http://www.abego-software.de]]|
|''~CoreVersion:''|2.1.0|
|''Community:''|[[del.icio.us|http://del.icio.us/post?url=http://tiddlywiki.abego-software.de/index.html%23YourSearchPlugin]]|
|''Browser:''|Firefox 1.0.4+; Firefox 1.5; ~InternetExplorer 6.0|
!About YourSearch
YourSearch gives you a bunch of new features to simplify and speed up your daily searches in TiddlyWiki. It seamlessly integrates into the standard TiddlyWiki search: just start typing into the 'search' field and explore!

For more information see [[Help|YourSearch Help]].
!Compatibility
This plugin requires TiddlyWiki 2.1. 
Check the [[archive|http://tiddlywiki.abego-software.de/archive]] for ~YourSearchPlugins supporting older versions of TiddlyWiki.
!Source Code
***/
/***
This plugin's source code is compressed (and hidden). Use this [[link|http://tiddlywiki.abego-software.de/archive/YourSearchPlugin/Plugin-YourSearch-src.2.1.5.js]] to get the readable source code.
***/
///%
if(!version.extensions.YourSearchPlugin){version.extensions.YourSearchPlugin={major:2,minor:1,revision:5,source:"http://tiddlywiki.abego-software.de/#YourSearchPlugin",licence:"[[BSD open source license (abego Software)|http://www.abego-software.de/legal/apl-v10.html]]",copyright:"Copyright (c) abego Software GmbH, 2005-2010 (www.abego-software.de)"};if(!window.abego){window.abego={};}if(!Array.forEach){Array.forEach=function(_1,_2,_3){for(var i=0,_4=_1.length;i<_4;i++){_2.call(_3,_1[i],i,_1);}};Array.prototype.forEach=function(_5,_6){for(var i=0,_7=this.length;i<_7;i++){_5.call(_6,this[i],i,this);}};}abego.toInt=function(s,_8){if(!s){return _8;}var n=parseInt(s);return (n==NaN)?_8:n;};abego.createEllipsis=function(_9){var e=createTiddlyElement(_9,"span");e.innerHTML="&hellip;";};abego.shallowCopy=function(_a){if(!_a){return _a;}var _b={};for(var n in _a){_b[n]=_a[n];}return _b;};abego.copyOptions=function(_c){return !_c?{}:abego.shallowCopy(_c);};abego.countStrings=function(_d,s){if(!s){return 0;}var _e=s.length;var n=0;var _f=0;while(1){var i=_d.indexOf(s,_f);if(i<0){return n;}n++;_f=i+_e;}return n;};abego.getBracedText=function(_10,_11,_12){if(!_11){_11=0;}var re=/\{([^\}]*)\}/gm;re.lastIndex=_11;var m=re.exec(_10);if(m){var s=m[1];var _13=abego.countStrings(s,"{");if(!_13){if(_12){_12.lastIndex=re.lastIndex;}return s;}var len=_10.length;for(var i=re.lastIndex;i<len&&_13;i++){var c=_10.charAt(i);if(c=="{"){_13++;}else{if(c=="}"){_13--;}}}if(!_13){if(_12){_12.lastIndex=i-1;}return _10.substring(m.index+1,i-1);}}};abego.select=function(_14,_15,_16,_17){if(!_17){_17=[];}_14.forEach(function(t){if(_15.call(_16,t)){_17.push(t);}});return _17;};abego.consumeEvent=function(e){if(e.stopPropagation){e.stopPropagation();}if(e.preventDefault){e.preventDefault();}e.cancelBubble=true;e.returnValue=true;};abego.TiddlerFilterTerm=function(_18,_19){if(!_19){_19={};}var _1a=_18;if(!_19.textIsRegExp){_1a=_18.escapeRegExp();if(_19.fullWordMatch){_1a="\\b"+_1a+"\\b";}}var _1b=new RegExp(_1a,"m"+(_19.caseSensitive?"":"i"));this.tester=new abego.MultiFieldRegExpTester(_1b,_19.fields,_19.withExtendedFields);};abego.TiddlerFilterTerm.prototype.test=function(_1c){return this.tester.test(_1c);};abego.parseNewTiddlerCommandLine=function(s){var m=/(.*?)\.(?:\s+|$)([^#]*)(#.*)?/.exec(s);if(!m){m=/([^#]*)()(#.*)?/.exec(s);}if(m){var r;if(m[3]){var s2=m[3].replace(/#/g,"");r=s2.parseParams("tag");}else{r=[[]];}var _1d=m[2]?m[2].trim():"";r.push({name:"text",value:_1d});r[0].text=[_1d];return {title:m[1].trim(),params:r};}else{return {title:s.trim(),params:[[]]};}};abego.parseTiddlerFilterTerm=function(_1e,_1f,_20){var re=/\s*(?:(?:\{([^\}]*)\})|(?:(=)|([#%!])|(?:(\w+)\s*\:(?!\/\/))|(?:(?:("(?:(?:\\")|[^"])+")|(?:\/((?:(?:\\\/)|[^\/])+)\/)|(\w+\:\/\/[^\s]+)|([^\s\)\-\"]+)))))/mg;var _21={"!":"title","%":"text","#":"tags"};var _22={};var _23;re.lastIndex=_1f;while(1){var i=re.lastIndex;var m=re.exec(_1e);if(!m||m.index!=i){throw "Word or String literal expected";}if(m[1]){var _24={};var _25=abego.getBracedText(_1e,0,_24);if(!_25){throw "Invalid {…} syntax";}var f=Function("tiddler","return ("+_25+");");return {func:f,lastIndex:_24.lastIndex,markRE:null};}if(m[2]){_23=true;}else{if(m[3]){_22[_21[m[3]]]=1;}else{if(m[4]){_22[m[4]]=1;}else{var _26=m[6];var _27=m[5]?window.eval(m[5]):m[6]?m[6]:m[7]?m[7]:m[8];var _20=abego.copyOptions(_20);_20.fullWordMatch=_23;_20.textIsRegExp=_26;var _28=[];for(var n in _22){_28.push(n);}if(_28.length==0){_20.fields=_20.defaultFields;}else{_20.fields=_28;_20.withExtendedFields=false;}var _29=new abego.TiddlerFilterTerm(_27,_20);var _2a=_26?_27:_27.escapeRegExp();if(_2a&&_23){_2a="\\b"+_2a+"\\b";}return {func:function(_2b){return _29.test(_2b);},lastIndex:re.lastIndex,markRE:_2a?"(?:"+_2a+")":null};}}}}};abego.BoolExp=function(s,_2c,_2d){this.s=s;var _2e=_2d&&_2d.defaultOperationIs_OR;var _2f=/\s*(?:(\-|not)|(\())/gi;var _30=/\s*\)/g;var _31=/\s*(?:(and|\&\&)|(or|\|\|))/gi;var _32=/\s*[^\)\s]/g;var _33=/\s*(\-|not)?(\s*\()?/gi;var _34;var _35=function(_36){_33.lastIndex=_36;var m=_33.exec(s);var _37;var _38;if(m&&m.index==_36){_36+=m[0].length;_37=m[1];if(m[2]){var e=_34(_36);_30.lastIndex=e.lastIndex;if(!_30.exec(s)){throw "Missing ')'";}_38={func:e.func,lastIndex:_30.lastIndex,markRE:e.markRE};}}if(!_38){_38=_2c(s,_36,_2d);}if(_37){_38.func=(function(f){return function(_39){return !f(_39);};})(_38.func);_38.markRE=null;}return _38;};_34=function(_3a){var _3b=_35(_3a);while(1){var l=_3b.lastIndex;_31.lastIndex=l;var m=_31.exec(s);var _3c;var _3d;if(m&&m.index==l){_3c=!m[1];_3d=_35(_31.lastIndex);}else{try{_3d=_35(l);}catch(e){return _3b;}_3c=_2e;}_3b.func=(function(_3e,_3f,_40){return _40?function(_41){return _3e(_41)||_3f(_41);}:function(_42){return _3e(_42)&&_3f(_42);};})(_3b.func,_3d.func,_3c);_3b.lastIndex=_3d.lastIndex;if(!_3b.markRE){_3b.markRE=_3d.markRE;}else{if(_3d.markRE){_3b.markRE=_3b.markRE+"|"+_3d.markRE;}}}};var _43=_34(0);this.evalFunc=_43.func;if(_43.markRE){this.markRegExp=new RegExp(_43.markRE,_2d.caseSensitive?"mg":"img");}};abego.BoolExp.prototype.exec=function(){return this.evalFunc.apply(this,arguments);};abego.BoolExp.prototype.getMarkRegExp=function(){return this.markRegExp;};abego.BoolExp.prototype.toString=function(){return this.s;};abego.MultiFieldRegExpTester=function(re,_44,_45){this.re=re;this.fields=_44?_44:["title","text","tags"];this.withExtendedFields=_45;};abego.MultiFieldRegExpTester.prototype.test=function(_46){var re=this.re;for(var i=0;i<this.fields.length;i++){var s=store.getValue(_46,this.fields[i]);if(typeof s=="string"&&re.test(s)){return this.fields[i];}}if(this.withExtendedFields){return store.forEachField(_46,function(_47,_48,_49){return typeof _49=="string"&&re.test(_49)?_48:null;},true);}return null;};abego.TiddlerQuery=function(_4a,_4b,_4c,_4d,_4e){if(_4c){this.regExp=new RegExp(_4a,_4b?"mg":"img");this.tester=new abego.MultiFieldRegExpTester(this.regExp,_4d,_4e);}else{this.expr=new abego.BoolExp(_4a,abego.parseTiddlerFilterTerm,{defaultFields:_4d,caseSensitive:_4b,withExtendedFields:_4e});}this.getQueryText=function(){return _4a;};this.getUseRegExp=function(){return _4c;};this.getCaseSensitive=function(){return _4b;};this.getDefaultFields=function(){return _4d;};this.getWithExtendedFields=function(){return _4e;};};abego.TiddlerQuery.prototype.test=function(_4f){if(!_4f){return false;}if(this.regExp){return this.tester.test(_4f);}return this.expr.exec(_4f);};abego.TiddlerQuery.prototype.filter=function(_50){return abego.select(_50,this.test,this);};abego.TiddlerQuery.prototype.getMarkRegExp=function(){if(this.regExp){return "".search(this.regExp)>=0?null:this.regExp;}return this.expr.getMarkRegExp();};abego.TiddlerQuery.prototype.toString=function(){return (this.regExp?this.regExp:this.expr).toString();};abego.PageWiseRenderer=function(){this.firstIndexOnPage=0;};merge(abego.PageWiseRenderer.prototype,{setItems:function(_51){this.items=_51;this.setFirstIndexOnPage(0);},getMaxPagesInNavigation:function(){return 10;},getItemsCount:function(_52){return this.items?this.items.length:0;},getCurrentPageIndex:function(){return Math.floor(this.firstIndexOnPage/this.getItemsPerPage());},getLastPageIndex:function(){return Math.floor((this.getItemsCount()-1)/this.getItemsPerPage());},setFirstIndexOnPage:function(_53){this.firstIndexOnPage=Math.min(Math.max(0,_53),this.getItemsCount()-1);},getFirstIndexOnPage:function(){this.firstIndexOnPage=Math.floor(this.firstIndexOnPage/this.getItemsPerPage())*this.getItemsPerPage();return this.firstIndexOnPage;},getLastIndexOnPage:function(){return Math.min(this.getFirstIndexOnPage()+this.getItemsPerPage()-1,this.getItemsCount()-1);},onPageChanged:function(_54,_55){},renderPage:function(_56){if(_56.beginRendering){_56.beginRendering(this);}try{if(this.getItemsCount()){var _57=this.getLastIndexOnPage();var _58=-1;for(var i=this.getFirstIndexOnPage();i<=_57;i++){_58++;_56.render(this,this.items[i],i,_58);}}}finally{if(_56.endRendering){_56.endRendering(this);}}},addPageNavigation:function(_59){if(!this.getItemsCount()){return;}var _5a=this;var _5b=function(e){if(!e){var e=window.event;}abego.consumeEvent(e);var _5c=abego.toInt(this.getAttribute("page"),0);var _5d=_5a.getCurrentPageIndex();if(_5c==_5d){return;}var _5e=_5c*_5a.getItemsPerPage();_5a.setFirstIndexOnPage(_5e);_5a.onPageChanged(_5c,_5d);};var _5f;var _60=this.getCurrentPageIndex();var _61=this.getLastPageIndex();if(_60>0){_5f=createTiddlyButton(_59,"Previous","Go to previous page (Shortcut: Alt-'<')",_5b,"prev");_5f.setAttribute("page",(_60-1).toString());_5f.setAttribute("accessKey","<");}for(var i=-this.getMaxPagesInNavigation();i<this.getMaxPagesInNavigation();i++){var _62=_60+i;if(_62<0){continue;}if(_62>_61){break;}var _63=(i+_60+1).toString();var _64=_62==_60?"currentPage":"otherPage";_5f=createTiddlyButton(_59,_63,"Go to page %0".format([_63]),_5b,_64);_5f.setAttribute("page",(_62).toString());}if(_60<_61){_5f=createTiddlyButton(_59,"Next","Go to next page (Shortcut: Alt-'>')",_5b,"next");_5f.setAttribute("page",(_60+1).toString());_5f.setAttribute("accessKey",">");}}});abego.LimitedTextRenderer=function(){var _65=40;var _66=4;var _67=function(_68,_69,_6a){var n=_68.length;if(n==0){_68.push({start:_69,end:_6a});return;}var i=0;for(;i<n;i++){var _6b=_68[i];if(_6b.start<=_6a&&_69<=_6b.end){var r;var _6c=i+1;for(;_6c<n;_6c++){r=_68[_6c];if(r.start>_6a||_69>_6b.end){break;}}var _6d=_69;var _6e=_6a;for(var j=i;j<_6c;j++){r=_68[j];_6d=Math.min(_6d,r.start);_6e=Math.max(_6e,r.end);}_68.splice(i,_6c-i,{start:_6d,end:_6e});return;}if(_6b.start>_6a){break;}}_68.splice(i,0,{start:_69,end:_6a});};var _6f=function(_70){var _71=0;for(var i=0;i<_70.length;i++){var _72=_70[i];_71+=_72.end-_72.start;}return _71;};var _73=function(c){return (c>="a"&&c<="z")||(c>="A"&&c<="Z")||c=="_";};var _74=function(s,_75){if(!_73(s[_75])){return null;}for(var i=_75-1;i>=0&&_73(s[i]);i--){}var _76=i+1;var n=s.length;for(i=_75+1;i<n&&_73(s[i]);i++){}return {start:_76,end:i};};var _77=function(s,_78,_79){var _7a;if(_79){_7a=_74(s,_78);}else{if(_78<=0){return _78;}_7a=_74(s,_78-1);}if(!_7a){return _78;}if(_79){if(_7a.start>=_78-_66){return _7a.start;}if(_7a.end<=_78+_66){return _7a.end;}}else{if(_7a.end<=_78+_66){return _7a.end;}if(_7a.start>=_78-_66){return _7a.start;}}return _78;};var _7b=function(s,_7c){var _7d=[];if(_7c){var _7e=0;var n=s.length;var _7f=0;do{_7c.lastIndex=_7e;var _80=_7c.exec(s);if(_80){if(_7e<_80.index){var t=s.substring(_7e,_80.index);_7d.push({text:t});}_7d.push({text:_80[0],isMatch:true});_7e=_80.index+_80[0].length;}else{_7d.push({text:s.substr(_7e)});break;}}while(true);}else{_7d.push({text:s});}return _7d;};var _81=function(_82){var _83=0;for(var i=0;i<_82.length;i++){if(_82[i].isMatch){_83++;}}return _83;};var _84=function(s,_85,_86,_87,_88){var _89=Math.max(Math.floor(_88/(_87+1)),_65);var _8a=Math.max(_89-(_86-_85),0);var _8b=Math.min(Math.floor(_86+_8a/3),s.length);var _8c=Math.max(_8b-_89,0);_8c=_77(s,_8c,true);_8b=_77(s,_8b,false);return {start:_8c,end:_8b};};var _8d=function(_8e,s,_8f){var _90=[];var _91=_81(_8e);var pos=0;for(var i=0;i<_8e.length;i++){var t=_8e[i];var _92=t.text;if(t.isMatch){var _93=_84(s,pos,pos+_92.length,_91,_8f);_67(_90,_93.start,_93.end);}pos+=_92.length;}return _90;};var _94=function(s,_95,_96){var _97=_96-_6f(_95);while(_97>0){if(_95.length==0){_67(_95,0,_77(s,_96,false));return;}else{var _98=_95[0];var _99;var _9a;if(_98.start==0){_99=_98.end;if(_95.length>1){_9a=_95[1].start;}else{_67(_95,_99,_77(s,_99+_97,false));return;}}else{_99=0;_9a=_98.start;}var _9b=Math.min(_9a,_99+_97);_67(_95,_99,_9b);_97-=(_9b-_99);}}};var _9c=function(_9d,s,_9e,_9f,_a0){if(_9f.length==0){return;}var _a1=function(_a2,s,_a3,_a4,_a5){var t;var _a6;var pos=0;var i=0;var _a7=0;for(;i<_a3.length;i++){t=_a3[i];_a6=t.text;if(_a4<pos+_a6.length){_a7=_a4-pos;break;}pos+=_a6.length;}var _a8=_a5-_a4;for(;i<_a3.length&&_a8>0;i++){t=_a3[i];_a6=t.text.substr(_a7);_a7=0;if(_a6.length>_a8){_a6=_a6.substr(0,_a8);}if(t.isMatch){createTiddlyElement(_a2,"span",null,"marked",_a6);}else{createTiddlyText(_a2,_a6);}_a8-=_a6.length;}if(_a5<s.length){abego.createEllipsis(_a2);}};if(_9f[0].start>0){abego.createEllipsis(_9d);}var _a9=_a0;for(var i=0;i<_9f.length&&_a9>0;i++){var _aa=_9f[i];var len=Math.min(_aa.end-_aa.start,_a9);_a1(_9d,s,_9e,_aa.start,_aa.start+len);_a9-=len;}};this.render=function(_ab,s,_ac,_ad){if(s.length<_ac){_ac=s.length;}var _ae=_7b(s,_ad);var _af=_8d(_ae,s,_ac);_94(s,_af,_ac);_9c(_ab,s,_ae,_af,_ac);};};(function(){function _b0(msg){alert(msg);throw msg;};if(version.major<2||(version.major==2&&version.minor<1)){_b0("YourSearchPlugin requires TiddlyWiki 2.1 or newer.\n\nCheck the archive for YourSearch plugins\nsupporting older versions of TiddlyWiki.\n\nArchive: http://tiddlywiki.abego-software.de/archive");}abego.YourSearch={};var _b1;var _b2;var _b3=function(_b4){_b1=_b4;};var _b5=function(){return _b1?_b1:[];};var _b6=function(){return _b1?_b1.length:0;};var _b7=4;var _b8=10;var _b9=2;var _ba=function(s,re){var m=s.match(re);return m?m.length:0;};var _bb=function(_bc,_bd){var _be=_bd.getMarkRegExp();if(!_be){return 1;}var _bf=_bc.title.match(_be);var _c0=_bf?_bf.length:0;var _c1=_ba(_bc.getTags(),_be);var _c2=_bf?_bf.join("").length:0;var _c3=_bc.title.length>0?_c2/_bc.title.length:0;var _c4=_c0*_b7+_c1*_b9+_c3*_b8+1;return _c4;};var _c5=function(_c6,_c7,_c8,_c9,_ca,_cb){_b2=null;var _cc=_c6.reverseLookup("tags",_cb,false);try{var _cd=[];if(config.options.chkSearchInTitle){_cd.push("title");}if(config.options.chkSearchInText){_cd.push("text");}if(config.options.chkSearchInTags){_cd.push("tags");}_b2=new abego.TiddlerQuery(_c7,_c8,_c9,_cd,config.options.chkSearchExtendedFields);}catch(e){return [];}var _ce=_b2.filter(_cc);var _cf=abego.YourSearch.getRankFunction();for(var i=0;i<_ce.length;i++){var _d0=_ce[i];var _d1=_cf(_d0,_b2);_d0.searchRank=_d1;}if(!_ca){_ca="title";}var _d2=function(a,b){var _d3=a.searchRank-b.searchRank;if(_d3==0){if(a[_ca]==b[_ca]){return (0);}else{return (a[_ca]<b[_ca])?-1:+1;}}else{return (_d3>0)?-1:+1;}};_ce.sort(_d2);return _ce;};var _d4=80;var _d5=50;var _d6=250;var _d7=50;var _d8=25;var _d9=10;var _da="yourSearchResult";var _db="yourSearchResultItems";var _dc;var _dd;var _de;var _df;var _e0;var _e1=function(){if(version.extensions.YourSearchPlugin.styleSheetInited){return;}version.extensions.YourSearchPlugin.styleSheetInited=true;setStylesheet(store.getTiddlerText("YourSearchStyleSheet"),"yourSearch");};var _e2=function(){return _dd!=null&&_dd.parentNode==document.body;};var _e3=function(){if(_e2()){document.body.removeChild(_dd);}};var _e4=function(e){_e3();var _e5=this.getAttribute("tiddlyLink");if(_e5){var _e6=this.getAttribute("withHilite");var _e7=highlightHack;if(_e6&&_e6=="true"&&_b2){highlightHack=_b2.getMarkRegExp();}story.displayTiddler(this,_e5);highlightHack=_e7;}return (false);};var _e8=function(){if(!_de){return;}var _e9=_de;var _ea=findPosX(_e9);var _eb=findPosY(_e9);var _ec=_e9.offsetHeight;var _ed=_ea;var _ee=_eb+_ec;var _ef=findWindowWidth();if(_ef<_dd.offsetWidth){_dd.style.width=(_ef-100)+"px";_ef=findWindowWidth();}var _f0=_dd.offsetWidth;if(_ed+_f0>_ef){_ed=_ef-_f0-30;}if(_ed<0){_ed=0;}_dd.style.left=_ed+"px";_dd.style.top=_ee+"px";_dd.style.display="block";};var _f1=function(){if(_dd){window.scrollTo(0,ensureVisible(_dd));}if(_de){window.scrollTo(0,ensureVisible(_de));}};var _f2=function(){_e8();_f1();};var _f3;var _f4;var _f5=new abego.PageWiseRenderer();var _f6=function(_f7){this.itemHtml=store.getTiddlerText("YourSearchItemTemplate");if(!this.itemHtml){_b0("YourSearchItemTemplate not found");}this.place=document.getElementById(_db);if(!this.place){this.place=createTiddlyElement(_f7,"div",_db);}};merge(_f6.prototype,{render:function(_f8,_f9,_fa,_fb){_f3=_fb;_f4=_f9;var _fc=createTiddlyElement(this.place,"div",null,"yourSearchItem");_fc.innerHTML=this.itemHtml;applyHtmlMacros(_fc,null);refreshElements(_fc,null);},endRendering:function(_fd){_f4=null;}});var _fe=function(){if(!_dd||!_de){return;}var _ff=store.getTiddlerText("YourSearchResultTemplate");if(!_ff){_ff="<b>Tiddler YourSearchResultTemplate not found</b>";}_dd.innerHTML=_ff;applyHtmlMacros(_dd,null);refreshElements(_dd,null);var _100=new _f6(_dd);_f5.renderPage(_100);_f2();};_f5.getItemsPerPage=function(){var n=(config.options.chkPreviewText)?abego.toInt(config.options.txtItemsPerPageWithPreview,_d9):abego.toInt(config.options.txtItemsPerPage,_d8);return (n>0)?n:1;};_f5.onPageChanged=function(){_fe();};var _101=function(){if(_de==null||!config.options.chkUseYourSearch){return;}if((_de.value==_dc)&&_dc&&!_e2()){if(_dd&&(_dd.parentNode!=document.body)){document.body.appendChild(_dd);_f2();}else{abego.YourSearch.onShowResult(true);}}};var _102=function(){_e3();_dd=null;_dc=null;};var _103=function(self,e){while(e!=null){if(self==e){return true;}e=e.parentNode;}return false;};var _104=function(e){if(e.target==_de){return;}if(e.target==_df){return;}if(_dd&&_103(_dd,e.target)){return;}_e3();};var _105=function(e){if(e.keyCode==27){_e3();}};addEvent(document,"click",_104);addEvent(document,"keyup",_105);var _106=function(text,_107,_108){_dc=text;_b3(_c5(store,text,_107,_108,"title","excludeSearch"));abego.YourSearch.onShowResult();};var _109=function(_10a,_10b,_10c,_10d,_10e,_10f){_e1();_dc="";var _110=null;var _111=function(txt){if(config.options.chkUseYourSearch){_106(txt.value,config.options.chkCaseSensitiveSearch,config.options.chkRegExpSearch);}else{story.search(txt.value,config.options.chkCaseSensitiveSearch,config.options.chkRegExpSearch);}_dc=txt.value;};var _112=function(e){_111(_de);return false;};var _113=function(e){if(!e){var e=window.event;}_de=this;switch(e.keyCode){case 13:if(e.ctrlKey&&_e0&&_e2()){_e0.onclick.apply(_e0,[e]);}else{_111(this);}break;case 27:if(_e2()){_e3();}else{this.value="";clearMessage();}break;}if(String.fromCharCode(e.keyCode)==this.accessKey||e.altKey){_101();}if(this.value.length<3&&_110){clearTimeout(_110);}if(this.value.length>2){if(this.value!=_dc){if(!config.options.chkUseYourSearch||config.options.chkSearchAsYouType){if(_110){clearTimeout(_110);}var txt=this;_110=setTimeout(function(){_111(txt);},500);}}else{if(_110){clearTimeout(_110);}}}if(this.value.length==0){_e3();}};var _114=function(e){this.select();clearMessage();_101();};var args=_10e.parseParams("list",null,true);var _115=getFlag(args,"buttonAtRight");var _116=getParam(args,"sizeTextbox",this.sizeTextbox);var btn;if(!_115){btn=createTiddlyButton(_10a,this.label,this.prompt,_112);}var txt=createTiddlyElement(null,"input",null,"txtOptionInput searchField",null);if(_10c[0]){txt.value=_10c[0];}txt.onkeyup=_113;txt.onfocus=_114;txt.setAttribute("size",_116);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");}if(_10a){_10a.appendChild(txt);}if(_115){btn=createTiddlyButton(_10a,this.label,this.prompt,_112);}_de=txt;_df=btn;};var _117=function(){_e3();var _118=_b5();var n=_118.length;if(n){var _119=[];for(var i=0;i<n;i++){_119.push(_118[i].title);}story.displayTiddlers(null,_119);}};var _11a=function(_11b,_11c,_11d,_11e){invokeMacro(_11b,"option",_11c,_11d,_11e);var elem=_11b.lastChild;var _11f=elem.onclick;elem.onclick=function(e){var _120=_11f.apply(this,arguments);_fe();return _120;};return elem;};var _121=function(s){var _122=["''","{{{","}}}","//","<<<","/***","***/"];var _123="";for(var i=0;i<_122.length;i++){if(i!=0){_123+="|";}_123+="("+_122[i].escapeRegExp()+")";}return s.replace(new RegExp(_123,"mg"),"").trim();};var _124=function(){var i=_f3;return (i>=0&&i<=9)?(i<9?(i+1):0):-1;};var _125=new abego.LimitedTextRenderer();var _126=function(_127,s,_128){_125.render(_127,s,_128,_b2.getMarkRegExp());};var _129=TiddlyWiki.prototype.saveTiddler;TiddlyWiki.prototype.saveTiddler=function(_12a,_12b,_12c,_12d,_12e,tags,_12f){_129.apply(this,arguments);_102();};var _130=TiddlyWiki.prototype.removeTiddler;TiddlyWiki.prototype.removeTiddler=function(_131){_130.apply(this,arguments);_102();};config.macros.yourSearch={label:"yourSearch",prompt:"Gives access to the current/last YourSearch result",handler:function(_132,_133,_134,_135,_136,_137){if(_134.length==0){return;}var name=_134[0];var func=config.macros.yourSearch.funcs[name];if(func){func(_132,_133,_134,_135,_136,_137);}},tests:{"true":function(){return true;},"false":function(){return false;},"found":function(){return _b6()>0;},"previewText":function(){return config.options.chkPreviewText;}},funcs:{itemRange:function(_138){if(_b6()){var _139=_f5.getLastIndexOnPage();var s="%0 - %1".format([_f5.getFirstIndexOnPage()+1,_139+1]);createTiddlyText(_138,s);}},count:function(_13a){createTiddlyText(_13a,_b6().toString());},query:function(_13b){if(_b2){createTiddlyText(_13b,_b2.toString());}},version:function(_13c){var t="YourSearch %0.%1.%2".format([version.extensions.YourSearchPlugin.major,version.extensions.YourSearchPlugin.minor,version.extensions.YourSearchPlugin.revision]);var e=createTiddlyElement(_13c,"a");e.setAttribute("href","http://tiddlywiki.abego-software.de/#YourSearchPlugin");e.innerHTML="<font color=\"black\" face=\"Arial, Helvetica, sans-serif\">"+t+"<font>";},copyright:function(_13d){var e=createTiddlyElement(_13d,"a");e.setAttribute("href","http://www.abego-software.de");e.innerHTML="<font color=\"black\" face=\"Arial, Helvetica, sans-serif\">&copy; 2005-2008 <b><font color=\"red\">abego</font></b> Software<font>";},newTiddlerButton:function(_13e){if(_b2){var r=abego.parseNewTiddlerCommandLine(_b2.getQueryText());var btn=config.macros.newTiddler.createNewTiddlerButton(_13e,r.title,r.params,"new tiddler","Create a new tiddler based on search text. (Shortcut: Ctrl-Enter; Separators: '.', '#')",null,"text");var _13f=btn.onclick;btn.onclick=function(){_e3();_13f.apply(this,arguments);};_e0=btn;}},linkButton:function(_140,_141,_142,_143,_144,_145){if(_142<2){return;}var _146=_142[1];var text=_142<3?_146:_142[2];var _147=_142<4?text:_142[3];var _148=_142<5?null:_142[4];var btn=createTiddlyButton(_140,text,_147,_e4,null,null,_148);btn.setAttribute("tiddlyLink",_146);},closeButton:function(_149,_14a,_14b,_14c,_14d,_14e){var _14f=createTiddlyButton(_149,"close","Close the Search Results (Shortcut: ESC)",_e3);},openAllButton:function(_150,_151,_152,_153,_154,_155){var n=_b6();if(n==0){return;}var _156=n==1?"open tiddler":"open all %0 tiddlers".format([n]);var _157=createTiddlyButton(_150,_156,"Open all found tiddlers (Shortcut: Alt-O)",_117);_157.setAttribute("accessKey","O");},naviBar:function(_158,_159,_15a,_15b,_15c,_15d){_f5.addPageNavigation(_158);},"if":function(_15e,_15f,_160,_161,_162,_163){if(_160.length<2){return;}var _164=_160[1];var _165=(_164=="not");if(_165){if(_160.length<3){return;}_164=_160[2];}var test=config.macros.yourSearch.tests[_164];var _166=false;try{if(test){_166=test(_15e,_15f,_160,_161,_162,_163)!=_165;}else{_166=(!eval(_164))==_165;}}catch(ex){}if(!_166){_15e.style.display="none";}},chkPreviewText:function(_167,_168,_169,_16a,_16b,_16c){var _16d=_169.slice(1).join(" ");var elem=_11a(_167,"chkPreviewText",_16a,_16c);elem.setAttribute("accessKey","P");elem.title="Show text preview of found tiddlers (Shortcut: Alt-P)";return elem;}}};config.macros.foundTiddler={label:"foundTiddler",prompt:"Provides information on the tiddler currently processed on the YourSearch result page",handler:function(_16e,_16f,_170,_171,_172,_173){var name=_170[0];var func=config.macros.foundTiddler.funcs[name];if(func){func(_16e,_16f,_170,_171,_172,_173);}},funcs:{title:function(_174,_175,_176,_177,_178,_179){if(!_f4){return;}var _17a=_124();var _17b=_17a>=0?"Open tiddler (Shortcut: Alt-%0)".format([_17a.toString()]):"Open tiddler";var btn=createTiddlyButton(_174,null,_17b,_e4,null);btn.setAttribute("tiddlyLink",_f4.title);btn.setAttribute("withHilite","true");_126(btn,_f4.title,_d4);if(_17a>=0){btn.setAttribute("accessKey",_17a.toString());}},tags:function(_17c,_17d,_17e,_17f,_180,_181){if(!_f4){return;}_126(_17c,_f4.getTags(),_d5);},text:function(_182,_183,_184,_185,_186,_187){if(!_f4){return;}_126(_182,_121(_f4.text),_d6);},field:function(_188,_189,_18a,_18b,_18c,_18d){if(!_f4){return;}var name=_18a[1];var len=_18a.length>2?abego.toInt(_18a[2],_d7):_d7;var v=store.getValue(_f4,name);if(v){_126(_188,_121(v),len);}},number:function(_18e,_18f,_190,_191,_192,_193){var _194=_124();if(_194>=0){var text="%0)".format([_194.toString()]);createTiddlyElement(_18e,"span",null,"shortcutNumber",text);}}}};var opts={chkUseYourSearch:true,chkPreviewText:true,chkSearchAsYouType:true,chkSearchInTitle:true,chkSearchInText:true,chkSearchInTags:true,chkSearchExtendedFields:true,txtItemsPerPage:_d8,txtItemsPerPageWithPreview:_d9};for(var n in opts){if(config.options[n]==undefined){config.options[n]=opts[n];}}config.shadowTiddlers.AdvancedOptions+="\n<<option chkUseYourSearch>> Use 'Your Search' //([[more options|YourSearch Options]]) ([[help|YourSearch Help]])// ";config.shadowTiddlers["YourSearch Help"]="!Field Search\nWith the Field Search you can restrict your search to certain fields of a tiddler, e.g"+" only search the tags or only the titles. The general form is //fieldname//'':''//textToSearch// (e."+"g. {{{title:intro}}}). In addition one-character shortcuts are also supported for the standard field"+"s {{{title}}}, {{{text}}} and {{{tags}}}:\n|!What you want|!What you type|!Example|\n|Search ''titles "+"only''|start word with ''!''|{{{!jonny}}} (shortcut for {{{title:jonny}}})|\n|Search ''contents/text "+"only''|start word with ''%''|{{{%football}}} (shortcut for {{{text:football}}})|\n|Search ''tags only"+"''|start word with ''#''|{{{#Plugin}}} (shortcut for {{{tags:Plugin}}})|\n\nUsing this feature you may"+" also search the extended fields (\"Metadata\") introduced with TiddlyWiki 2.1, e.g. use {{{priority:1"+"}}} to find all tiddlers with the priority field set to \"1\".\n\nYou may search a word in more than one"+" field. E.g. {{{!#Plugin}}} (or {{{title:tags:Plugin}}} in the \"long form\") finds tiddlers containin"+"g \"Plugin\" either in the title or in the tags (but does not look for \"Plugin\" in the text). \n\n!Boole"+"an Search\nThe Boolean Search is useful when searching for multiple words.\n|!What you want|!What you "+"type|!Example|\n|''All words'' must exist|List of words|{{{jonny jeremy}}} (or {{{jonny and jeremy}}}"+")|\n|''At least one word'' must exist|Separate words by ''or''|{{{jonny or jeremy}}}|\n|A word ''must "+"not exist''|Start word with ''-''|{{{-jonny}}} (or {{{not jonny}}})|\n\n''Note:'' When you specify two"+" words, separated with a space, YourSearch finds all tiddlers that contain both words, but not neces"+"sarily next to each other. If you want to find a sequence of word, e.g. '{{{John Brown}}}', you need"+" to put the words into quotes. I.e. you type: {{{\"john brown\"}}}.\n\nUsing parenthesis you may change "+"the default \"left to right\" evaluation of the boolean search. E.g. {{{not (jonny or jeremy)}}} finds"+" all tiddlers that contain neither \"jonny\" nor \"jeremy. In contrast to this {{{not jonny or jeremy}}"+"} (i.e. without parenthesis) finds all tiddlers that either don't contain \"jonny\" or that contain \"j"+"eremy\".\n\n!'Exact Word' Search\nBy default a search result all matches that 'contain' the searched tex"+"t. E.g. if you search for {{{Task}}} you will get all tiddlers containing 'Task', but also '~Complet"+"edTask', '~TaskForce' etc.\n\nIf you only want to get the tiddlers that contain 'exactly the word' you"+" need to prefix it with a '='. E.g. typing '=Task' will find the tiddlers that contain the word 'Tas"+"k', ignoring words that just contain 'Task' as a substring.\n\n!~CaseSensitiveSearch and ~RegExpSearch"+"\nThe standard search options ~CaseSensitiveSearch and ~RegExpSearch are fully supported by YourSearc"+"h. However when ''~RegExpSearch'' is on Filtered and Boolean Search are disabled.\n\nIn addition you m"+"ay do a \"regular expression\" search even with the ''~RegExpSearch'' set to false by directly enterin"+"g the regular expression into the search field, framed with {{{/.../}}}. \n\nExample: {{{/m[ae][iy]er/"+"}}} will find all tiddlers that contain either \"maier\", \"mayer\", \"meier\" or \"meyer\".\n\n!~JavaScript E"+"xpression Filtering\nIf you are familiar with JavaScript programming and know some TiddlyWiki interna"+"ls you may also use JavaScript expression for the search. Just enter a JavaScript boolean expression"+" into the search field, framed with {{{ { ... } }}}. In the code refer to the variable tiddler and e"+"valuate to {{{true}}} when the given tiddler should be included in the result. \n\nExample: {{{ { tidd"+"ler.modified > new Date(\"Jul 4, 2005\")} }}} returns all tiddler modified after July 4th, 2005.\n\n!Com"+"bined Search\nYou are free to combine the various search options. \n\n''Examples''\n|!What you type|!Res"+"ult|\n|{{{!jonny !jeremy -%football}}}|all tiddlers with both {{{jonny}}} and {{{jeremy}}} in its tit"+"les, but no {{{football}}} in content.|\n|{{{#=Task}}}|All tiddlers tagged with 'Task' (the exact wor"+"d). Tags named '~CompletedTask', '~TaskForce' etc. are not considered.|\n\n!Access Keys\nYou are encour"+"aged to use the access keys (also called \"shortcut\" keys) for the most frequently used operations. F"+"or quick reference these shortcuts are also mentioned in the tooltip for the various buttons etc.\n\n|"+"!Key|!Operation|\n|{{{Alt-F}}}|''The most important keystroke'': It moves the cursor to the search in"+"put field so you can directly start typing your query. Pressing {{{Alt-F}}} will also display the pr"+"evious search result. This way you can quickly display multiple tiddlers using \"Press {{{Alt-F}}}. S"+"elect tiddler.\" sequences.|\n|{{{ESC}}}|Closes the [[YourSearch Result]]. When the [[YourSearch Resul"+"t]] is already closed and the cursor is in the search input field the field's content is cleared so "+"you start a new query.|\n|{{{Alt-1}}}, {{{Alt-2}}},... |Pressing these keys opens the first, second e"+"tc. tiddler from the result list.|\n|{{{Alt-O}}}|Opens all found tiddlers.|\n|{{{Alt-P}}}|Toggles the "+"'Preview Text' mode.|\n|{{{Alt-'<'}}}, {{{Alt-'>'}}}|Displays the previous or next page in the [[Your"+"Search Result]].|\n|{{{Return}}}|When you have turned off the 'as you type' search mode pressing the "+"{{{Return}}} key actually starts the search (as does pressing the 'search' button).|\n\n//If some of t"+"hese shortcuts don't work for you check your browser if you have other extensions installed that alr"+"eady \"use\" these shortcuts.//";config.shadowTiddlers["YourSearch Options"]="|>|!YourSearch Options|\n|>|<<option chkUseYourSearch>> Use 'Your Search'|\n|!|<<option chkPreviewText"+">> Show Text Preview|\n|!|<<option chkSearchAsYouType>> 'Search As You Type' Mode (No RETURN required"+" to start search)|\n|!|Default Search Filter:<<option chkSearchInTitle>>Title ('!')     <<option chk"+"SearchInText>>Text ('%')     <<option chkSearchInTags>>Tags ('#')    <<option chkSearchExtendedFiel"+"ds>>Extended Fields<html><br><font size=\"-2\">The fields of a tiddlers that are searched when you don"+"'t explicitly specify a filter in the search text <br>(Explictly specify fields using one or more '!"+"', '%', '#' or 'fieldname:' prefix before the word/text to find).</font></html>|\n|!|Number of items "+"on search result page: <<option txtItemsPerPage>>|\n|!|Number of items on search result page with pre"+"view text: <<option txtItemsPerPageWithPreview>>|\n";config.shadowTiddlers["YourSearchStyleSheet"]="/***\n!~YourSearchResult Stylesheet\n***/\n/*{{{*/\n.yourSearchResult {\n\tposition: absolute;\n\twidth: 800"+"px;\n\n\tpadding: 0.2em;\n\tlist-style: none;\n\tmargin: 0;\n\n\tbackground: #ffd;\n\tborder: 1px solid DarkGra"+"y;\n}\n\n/*}}}*/\n/***\n!!Summary Section\n***/\n/*{{{*/\n.yourSearchResult .summary {\n\tborder-bottom-width:"+" thin;\n\tborder-bottom-style: solid;\n\tborder-bottom-color: #999999;\n\tpadding-bottom: 4px;\n}\n\n.yourSea"+"rchRange, .yourSearchCount, .yourSearchQuery   {\n\tfont-weight: bold;\n}\n\n.yourSearchResult .summary ."+"button {\n\tfont-size: 10px;\n\n\tpadding-left: 0.3em;\n\tpadding-right: 0.3em;\n}\n\n.yourSearchResult .summa"+"ry .chkBoxLabel {\n\tfont-size: 10px;\n\n\tpadding-right: 0.3em;\n}\n\n/*}}}*/\n/***\n!!Items Area\n***/\n/*{{{*"+"/\n.yourSearchResult .marked {\n\tbackground: none;\n\tfont-weight: bold;\n}\n\n.yourSearchItem {\n\tmargin-to"+"p: 2px;\n}\n\n.yourSearchNumber {\n\tcolor: #808080;\n}\n\n\n.yourSearchTags {\n\tcolor: #008000;\n}\n\n.yourSearc"+"hText {\n\tcolor: #808080;\n\tmargin-bottom: 6px;\n}\n\n/*}}}*/\n/***\n!!Footer\n***/\n/*{{{*/\n.yourSearchFoote"+"r {\n\tmargin-top: 8px;\n\tborder-top-width: thin;\n\tborder-top-style: solid;\n\tborder-top-color: #999999;"+"\n}\n\n.yourSearchFooter a:hover{\n\tbackground: none;\n\tcolor: none;\n}\n/*}}}*/\n/***\n!!Navigation Bar\n***/"+"\n/*{{{*/\n.yourSearchNaviBar a {\n\tfont-size: 16px;\n\tmargin-left: 4px;\n\tmargin-right: 4px;\n\tcolor: bla"+"ck;\n\ttext-decoration: underline;\n}\n\n.yourSearchNaviBar a:hover {\n\tbackground-color: none;\n}\n\n.yourSe"+"archNaviBar .prev {\n\tfont-weight: bold;\n\tcolor: blue;\n}\n\n.yourSearchNaviBar .currentPage {\n\tcolor: #"+"FF0000;\n\tfont-weight: bold;\n\ttext-decoration: none;\n}\n\n.yourSearchNaviBar .next {\n\tfont-weight: bold"+";\n\tcolor: blue;\n}\n/*}}}*/\n";config.shadowTiddlers["YourSearchResultTemplate"]="<!--\n{{{\n-->\n<span macro=\"yourSearch if found\">\n<!-- The Summary Header ============================"+"================ -->\n<table class=\"summary\" border=\"0\" width=\"100%\" cellspacing=\"0\" cellpadding=\"0\">"+"<tbody>\n  <tr>\n\t<td align=\"left\">\n\t\tYourSearch Result <span class=\"yourSearchRange\" macro=\"yourSearc"+"h itemRange\"></span>\n\t\t&nbsp;of&nbsp;<span class=\"yourSearchCount\" macro=\"yourSearch count\"></span>\n"+"\t\tfor&nbsp;<span class=\"yourSearchQuery\" macro=\"yourSearch query\"></span>\n\t</td>\n\t<td class=\"yourSea"+"rchButtons\" align=\"right\">\n\t\t<span macro=\"yourSearch chkPreviewText\"></span><span class=\"chkBoxLabel"+"\">preview text</span>\n\t\t<span macro=\"yourSearch newTiddlerButton\"></span>\n\t\t<span macro=\"yourSearch openAllButton\"></span>\n\t\t<span macro=\"yourSearch lin"+"kButton 'YourSearch Options' options 'Configure YourSearch'\"></span>\n\t\t<span macro=\"yourSearch linkB"+"utton 'YourSearch Help' help 'Get help how to use YourSearch'\"></span>\n\t\t<span macro=\"yourSearch clo"+"seButton\"></span>\n\t</td>\n  </tr>\n</tbody></table>\n\n<!-- The List of Found Tiddlers ================="+"=========================== -->\n<div id=\"yourSearchResultItems\" itemsPerPage=\"25\" itemsPerPageWithPr"+"eview=\"10\"></div>\n\n<!-- The Footer (with the Navigation) ==========================================="+"= -->\n<table class=\"yourSearchFooter\" border=\"0\" width=\"100%\" cellspacing=\"0\" cellpadding=\"0\"><tbody"+">\n  <tr>\n\t<td align=\"left\">\n\t\tResult page: <span class=\"yourSearchNaviBar\" macro=\"yourSearch naviBar"+"\"></span>\n\t</td>\n\t<td align=\"right\"><span macro=\"yourSearch version\"></span>, <span macro=\"yourSearc"+"h copyright\"></span>\n\t</td>\n  </tr>\n</tbody></table>\n<!-- end of the 'tiddlers found' case ========="+"================================== -->\n</span>\n\n\n<!-- The \"No tiddlers found\" case ================="+"========================== -->\n<span macro=\"yourSearch if not found\">\n<table class=\"summary\" border="+"\"0\" width=\"100%\" cellspacing=\"0\" cellpadding=\"0\"><tbody>\n  <tr>\n\t<td align=\"left\">\n\t\tYourSearch Resu"+"lt: No tiddlers found for <span class=\"yourSearchQuery\" macro=\"yourSearch query\"></span>.\n\t</td>\n\t<t"+"d class=\"yourSearchButtons\" align=\"right\">\n\t\t<span macro=\"yourSearch newTiddlerButton\"></span>\n\t\t<span macro=\"yourSearch linkButton 'YourSearch Options'"+" options 'Configure YourSearch'\"></span>\n\t\t<span macro=\"yourSearch linkButton 'YourSearch Help' help"+" 'Get help how to use YourSearch'\"></span>\n\t\t<span macro=\"yourSearch closeButton\"></span>\n\t</td>\n  <"+"/tr>\n</tbody></table>\n</span>\n\n\n<!--\n}}}\n-->\n";config.shadowTiddlers["YourSearchItemTemplate"]="<!--\n{{{\n-->\n<span class='yourSearchNumber' macro='foundTiddler number'></span>\n<span class='yourSea"+"rchTitle' macro='foundTiddler title'/></span>&nbsp;-&nbsp;\n<span class='yourSearchTags' macro='found"+"Tiddler field tags 50'/></span>\n<span macro=\"yourSearch if previewText\"><div class='yourSearchText' macro='fo"+"undTiddler field text 250'/></div></span>\n<!--\n}}}\n-->";config.shadowTiddlers["YourSearch"]="<<tiddler [[YourSearch Help]]>>";config.shadowTiddlers["YourSearch Result"]="The popup-like window displaying the result of a YourSearch query.";config.macros.search.handler=_109;var _195=function(){if(config.macros.search.handler!=_109){alert("Message from YourSearchPlugin:\n\n\nAnother plugin has disabled the 'Your Search' features.\n\n\nYou may "+"disable the other plugin or change the load order of \nthe plugins (by changing the names of the tidd"+"lers)\nto enable the 'Your Search' features.");}};setTimeout(_195,5000);abego.YourSearch.getStandardRankFunction=function(){return _bb;};abego.YourSearch.getRankFunction=function(){return abego.YourSearch.getStandardRankFunction();};abego.YourSearch.getCurrentTiddler=function(){return _f4;};abego.YourSearch.closeResult=function(){_e3();};abego.YourSearch.getFoundTiddlers=function(){return _b1;};abego.YourSearch.getQuery=function(){return _b2;};abego.YourSearch.onShowResult=function(_196){highlightHack=_b2?_b2.getMarkRegExp():null;if(!_196){_f5.setItems(_b5());}if(!_dd){_dd=createTiddlyElement(document.body,"div",_da,"yourSearchResult");}else{if(_dd.parentNode!=document.body){document.body.appendChild(_dd);}}_fe();highlightHack=null;};})();}
//%/
<html><table>
	<tr><th>Тип связи</th><th>Значение</th><th>Примечание</th></tr>
	<tr class="odd"><td rowspan=2 class="evn mid">Тел.<br>(phones):</td><td class="mid">+7(342)298-56-08</td><td class="remark">моб. (mobile)</td></tr>
	<tr class="evn"><td class="mid">+7(342)261-91-53</td><td class="remark">дом. (home)</td></tr>
	<tr class="odd"><td class="mid">Аська (ICQ):</td><td class="mid">470-208-921</td><td class="remark">запросы авторизации отключены (для уменьшения количества спама), поэтому сначала просто сообщение пишите, чтобы я вас увидел<br>(authorisation query off, so send me a simple message first)</td></tr>
	<tr class="evn"><td class="mid">Скайп (Skype):</td><td class="mid">vmunt.in.skype</td><td /></tr>
	<tr class="odd"><td class="mid">Jabber/XMPP:</td><td class="mid">vmunt <span class="remark">(большая собачка)</span> jabber <span class="remark">(маленькая точка)</span> ru</td><td /></tr>
	<tr class="evn"><td class="mid">Почта (mail):</td><td class="mid">vmunt <span class="remark">(большая собачка)</span> мэйл <span class="remark">(маленькая точка)</span> ру</td><td /></tr>
	<tr class="odd"><td class="mid">Сайт (www):</td><td class="mid">vmunt.site</td><td /></tr>
</table></html>
{{remark{Вся информация о диске представлена в двух таблицах:}}}
# {{remark{серийный номер и данные тестирования MHDD, и}}}
# {{remark{данные S.M.A.R.T., полученные с помощью MHDD {{remark{(последние данные, если тестирований было несколько)}}}.}}}
{{remark{Объявление о продаже: [[Avito|https://www.avito.ru/perm/tovary_dlya_kompyutera/18_zhestkih_diskov_sata_35_ot_200_do_500gb_1199347863]].}}}
++++![Продающиеся »»][Продающиеся ««]
+++!![01. Maxtor STM3250820AS 250Gb »»][01. Maxtor STM3250820AS 250Gb ««]
|!Жёсткий диск|!Cерийный номер|>|>|>|>|>|!Задержка|!Дата покупки<br>{{remark{(тестирования)}}}|!Примечание|
|~|~|!<3ms|!<10ms|!<50ms|!<150ms|!<500ms|!>500ms|~|~|
|Maxtor STM3250820AS 250Gb | 9QE40J9D | 1'765'395| 149'212| 677| 0| 0| 0| 09.12.2012 |Бывший диск C: с детского компьютера |
|~|~| 1'764'415| 150'206| 663| 0| 0| 0| {{remark{12.02.2017}}} |время тестирования: 1:01:34. |
|~|~| 1'762'775| 151'832| 677| 0| 0| 0| {{remark{2.05.2017}}} |Seek error rate: 111M, Ultra ATA CRC error rate: 1, HDA temperature: 53, время тестирования: 1:01:34. |
{{{
HDD: MAXTOR STM3250820AS; FW: 3.AAE; SN: 9QE40J9D
--------------------------------------------------------
            Name                        Val Worst Raw
Att #   1 : Read error rate           : 105   89  7606538  
Att #   3 : Spin up time              :  96   95  0  
Att #   4 : Number of spin-up times   :  99   99  1251  
Att #   5 : Reallocated sectors count : 100  100  0  
Att #   7 : Seek error rate           :  80   61  104666680  
Att #   9 : Power-on time             :  95   95  4817  
Att #  10 : Spin-up retries           : 100  100  0  
Att #  12 : Start/stop count          :  99   99  1262  
Att # 187 : Unknown                   : 100  100  0  
Att # 189 : Unknown                   : 100  100  0  
Att # 190 : Unknown                   :  71   45  488374301  
Att # 194 : HDA Temperature           :  29   55  29  
Att # 195 : Hardware ECC recovered    :  86   57  21276284  
Att # 197 : Current pending sectors   : 100  100  0  
Att # 198 : Offline scan UNC sectors  : 100  100  0  
Att # 199 : Ultra ATA CRC Error Rate  : 200  200  1  
Att # 200 : Write error rate          : 100  253  0  
Att # 202 : Unknown                   : 100  253  0  
}}}
===
+++!![02. WDC WD3000JD-98KLB0 300Gb »»][02. WDC WD3000JD-98KLB0 300Gb ««]
|!Жёсткий диск|!Cерийный номер|>|>|>|>|>|!Задержка|!Дата покупки<br>{{remark{(тестирования)}}}|!Примечание|
|~|~|!<3ms|!<10ms|!<50ms|!<150ms|!<500ms|!>500ms|~|~|
|WDC WD3000JD-98KLB0 300Gb | WD-WCAMR1266577 | 1'880'436| 417'461| 419| 5| 3| 0| {{remark{20.10.2015}}} |Warnings: 343'991'940, 496'899'375, 531'073'455, reallocated sectors count: 2, reallocate event count: 1, Ultra ATA CRC error rate: 39, write error rate: 3, время тестирования: 1:35:39. |
|~|~| 1'880'687| 417'474| 159| 2| 2| 0| {{remark{20.10.2015}}} |После очистки warnings: 496'899'375, 531'074'985, reallocated sectors count: 2, reallocate event count: 1, Ultra ATA CRC error rate: 39, write error rate: 3, время тестирования: 1:35:36. |
{{{
HDD: WDC WD3000JD-98KLB0; FW: 08.05J08; SN: WD-WCAMR1266577
--------------------------------------------------------
            Name                        Val Worst Raw
Att #   1 : Read error rate           : 200  200  44  
Att #   3 : Spin up time              : 223  185  3825  
Att #   4 : Number of spin-up times   :  99   99  1097  
Att #   5 : Reallocated sectors count : 199  199  2  
Att #   7 : Seek error rate           : 200  200  0  
Att #   9 : Power-on time             :  80   80  14604  
Att #  10 : Spin-up retries           : 100  100  0  
Att #  11 : Calibration retries       : 100  100  0  
Att #  12 : Start/stop count          :  99   99  1093  
Att # 194 : HDA Temperature           : 126   85  24  
Att # 196 : Reallocate event count    : 199  199  1  
Att # 197 : Current pending sectors   : 200  200  0  
Att # 198 : Offline scan UNC sectors  : 200  200  0  
Att # 199 : Ultra ATA CRC Error Rate  : 200  200  39  
Att # 200 : Write error rate          : 200  200  3  
}}}
===
+++!![03. WDC WD3200SD-01KNB0 320Gb »»][03. WDC WD3200SD-01KNB0 320Gb ««]
|!Жёсткий диск|!Cерийный номер|>|>|>|>|>|!Задержка|!Дата покупки<br>{{remark{(тестирования)}}}|!Примечание|
|~|~|!<3ms|!<10ms|!<50ms|!<150ms|!<500ms|!>500ms|~|~|
|WDC WD3200SD-01KNB0 320Gb<br />{{remark{(Raid Edition)}}} | WD-WCAMR2669793 | 2'166'443| 284'313| 765| 3| 0| 0| {{{19.10.2015}}} |{{remark{Серверный диск ЗУИЦ)}}}: {{error{UNC: 16}}}, reallocate sectors count: 23, reallocate event count: 2, offline scan UNC sectors: 32, ultra ATA CRC error rate: 1, время тестирования: 1:36:17. |
|~|~| 2'167'048| 284'426| 64| 2| 0| 0| {{{19.10.2015}}} |После очистки значения SMART те же самые, только UNC-дырки куда-то пропали. |
{{{
HDD: WDC WD3200SD-01KNB0; FW: 08.05J08; SN: WD-WCAMR2669793
--------------------------------------------------------
            Name                        Val Worst Raw
Att #   1 : Read error rate           : 200  200  0  
Att #   3 : Spin up time              : 231  186  3441  
Att #   4 : Number of spin-up times   : 100  100  694  
Att #   5 : Reallocated sectors count : 197  197  23  
Att #   7 : Seek error rate           : 200  200  0  
Att #   9 : Power-on time             :  66   66  25480  
Att #  10 : Spin-up retries           : 100  100  0  
Att #  11 : Calibration retries       : 100  100  0  
Att #  12 : Start/stop count          : 100  100  691  
Att # 194 : HDA Temperature           : 132   90  18  
Att # 196 : Reallocate event count    : 198  198  2  
Att # 197 : Current pending sectors   : 200  200  0  
Att # 198 : Offline scan UNC sectors  : 200  199  32  
Att # 199 : Ultra ATA CRC Error Rate  : 200  200  1  
Att # 200 : Write error rate          : 200  200  0  
}}}
===
+++!![04. Samsung HD320LJ 320Gb »»][04. Samsung HD320LJ 320Gb ««]
|!Жёсткий диск|!Cерийный номер|>|>|>|>|>|!Задержка|!Дата покупки<br>{{remark{(тестирования)}}}|!Примечание|
|~|~|!<3ms|!<10ms|!<50ms|!<150ms|!<500ms|!>500ms|~|~|
|Samsung HD320LJ 320Gb | S0K4J1TP100576 | 1'724'573| 721'750| 5'217| 0| 0| 0| {{remark{29.04.2017}}} |Reallocate sectors count (and all others): 0, время тестирования: 1:46:51. |
{{{
HDD: SAMSUNG HD320LJ; FW: BT100-15; SN: S0K4J1TP100576
--------------------------------------------------------
            Name                        Val Worst Raw
Att #   1 : Read error rate           : 100  100  0  
Att #   3 : Spin up time              : 100  100  8320  
Att #   4 : Number of spin-up times   :  90   90  10859  
Att #   5 : Reallocated sectors count : 253  253  0  
Att #   7 : Seek error rate           : 253  253  0  
Att #   8 : Seek time performance     : 253  253  0  
Att #   9 : Power-on time             : 100  100  23024  
Att #  10 : Spin-up retries           : 253  253  0  
Att #  11 : Calibration retries       : 253  100  0  
Att #  12 : Start/stop count          :  95   95  5055  
Att # 190 : Unknown                   :  59   44  41  
Att # 194 : HDA Temperature           : 115   70  41  
Att # 195 : Hardware ECC recovered    : 100  100  12120764  
Att # 196 : Reallocate event count    : 253  253  0  
Att # 197 : Current pending sectors   : 253  253  0  
Att # 198 : Offline scan UNC sectors  : 253  253  0  
Att # 199 : Ultra ATA CRC Error Rate  : 200  200  0  
Att # 200 : Write error rate          : 100  100  0  
Att # 201 : Unknown                   : 100  100  0  
Att # 202 : Unknown                   : 253  253  0  
}}}
===
+++!![05. WDC WD4000AAJS-65YFA0 400Gb »»][05. WDC WD4000AAJS-65YFA0 400Gb ««]
|!Жёсткий диск|!Cерийный номер|>|>|>|>|>|!Задержка|!Дата покупки<br>{{remark{(тестирования)}}}|!Примечание|
|~|~|!<3ms|!<10ms|!<50ms|!<150ms|!<500ms|!>500ms|~|~|
|WDC WD4000AAJS-65YFA0 400Gb | WD-WCAS82902898 | 2'805'716| 258'594| 88| 6| 0| 0| {{remark{16.04.2014}}} |Reallocated sectors count: 0, Ultra ATA CRC error rate: 21, время тестирования: 1:48:37 |
{{{
HDD: WDC WD4000AAJS-65YFA0; FW: 12.01C02; SN: WD-WCAS82902898
--------------------------------------------------------
            Name                        Val Worst Raw
Att #   1 : Read error rate           : 200  200  0  
Att #   3 : Spin up time              : 172  169  6400  
Att #   4 : Number of spin-up times   : 100  100  129  
Att #   5 : Reallocated sectors count : 200  200  0  
Att #   7 : Seek error rate           : 200  200  0  
Att #   9 : Power-on time             : 100  100  328  
Att #  10 : Spin-up retries           : 100  100  0  
Att #  11 : Calibration retries       : 100  100  0  
Att #  12 : Start/stop count          : 100  100  129  
Att # 192 : Power-off retract count   : 200  200  42  
Att # 193 : Load/unload cycle count   : 200  200  129  
Att # 194 : HDA Temperature           : 125   97  25  
Att # 196 : Reallocate event count    : 200  200  0  
Att # 197 : Current pending sectors   : 200  200  0  
Att # 198 : Offline scan UNC sectors  : 200  200  0  
Att # 199 : Ultra ATA CRC Error Rate  : 200  200  21  
Att # 200 : Write error rate          : 200  200  0  
}}}
===
+++!![06. Hitachi HDT725040VLA360 400Gb »»][06. Hitachi HDT725040VLA360 400Gb ««]
|!Жёсткий диск|!Cерийный номер|>|>|>|>|>|!Задержка|!Дата покупки<br>{{remark{(тестирования)}}}|!Примечание|
|~|~|!<3ms|!<10ms|!<50ms|!<150ms|!<500ms|!>500ms|~|~|
|Hitachi HDT725040VLA360 400Gb | VFD301R30PK46D | 2'311'962| 751'483|  950| 0| 0| 0| {{remark{30.08.2015}}} |Relocated sectors count: 1, relocated event count: 1, HDA temperature: 52. |
{{{
HDD: Hitachi HDT725040VLA360; FW: V5COA73A; SN: VFD301R30PK46D
--------------------------------------------------------
            Name                        Val Worst Raw
Att #   1 : Read error rate           : 100  100  0  
Att #   2 : Throughput performance    : 100  100  0  
Att #   3 : Spin up time              :  88   88  37356082  
Att #   4 : Number of spin-up times   : 100  100  154  
Att #   5 : Reallocated sectors count : 100  100  1  
Att #   7 : Seek error rate           : 100  100  0  
Att #   8 : Seek time performance     : 100  100  0  
Att #   9 : Power-on time             : 100  100  583  
Att #  10 : Spin-up retries           : 100  100  0  
Att #  12 : Start/stop count          : 100  100  153  
Att # 192 : Power-off retract count   : 100  100  165  
Att # 193 : Load/unload cycle count   : 100  100  165  
Att # 194 : HDA Temperature           : 206  206  29  
Att # 196 : Reallocate event count    : 100  100  1  
Att # 197 : Current pending sectors   : 100  100  0  
Att # 198 : Offline scan UNC sectors  : 100  100  0  
Att # 199 : Ultra ATA CRC Error Rate  : 200  253  0  
}}}
===
+++!![07. Hitachi HDT725040VLA360 400Gb »»][07. Hitachi HDT725040VLA360 400Gb ««]
|!Жёсткий диск|!Cерийный номер|>|>|>|>|>|!Задержка|!Дата покупки<br>{{remark{(тестирования)}}}|!Примечание|
|~|~|!<3ms|!<10ms|!<50ms|!<150ms|!<500ms|!>500ms|~|~|
|Hitachi HDT725040VLA360 400Gb | VFD301R30PBABD | 2'311'612| 751'757| 1'034| 1| 0| 0| {{remark{29.08.2015}}} |Reallocated sectors count: 0, HDA temperature: 52, время тестирования: 1:59:56. |
{{{
HDD: Hitachi HDT725040VLA360; FW: V5COA73A; SN: VFD301R30PBABD
--------------------------------------------------------
            Name                        Val Worst Raw
Att #   1 : Read error rate           : 100  100  0  
Att #   2 : Throughput performance    : 100  100  0  
Att #   3 : Spin up time              :  97   97  33489414  
Att #   4 : Number of spin-up times   : 100  100  199  
Att #   5 : Reallocated sectors count : 100  100  0  
Att #   7 : Seek error rate           : 100  100  0  
Att #   8 : Seek time performance     : 100  100  0  
Att #   9 : Power-on time             : 100  100  323  
Att #  10 : Spin-up retries           : 100  100  0  
Att #  12 : Start/stop count          : 100  100  197  
Att # 192 : Power-off retract count   : 100  100  201  
Att # 193 : Load/unload cycle count   : 100  100  201  
Att # 194 : HDA Temperature           : 230  230  26  
Att # 196 : Reallocate event count    : 100  100  0  
Att # 197 : Current pending sectors   : 100  100  0  
Att # 198 : Offline scan UNC sectors  : 100  100  0  
Att # 199 : Ultra ATA CRC Error Rate  : 200  253  0  
}}}
===
+++!![08. Hitachi HDT725040VLA360 400Gb »»][08. Hitachi HDT725040VLA360 400Gb ««]
|!Жёсткий диск|!Cерийный номер|>|>|>|>|>|!Задержка|!Дата покупки<br>{{remark{(тестирования)}}}|!Примечание|
|~|~|!<3ms|!<10ms|!<50ms|!<150ms|!<500ms|!>500ms|~|~|
|Hitachi HDT725040VLA360 400Gb | R31HWLSK | 2'312'857| 750'593| 954| 0| 0| 0| {{remark{2.05.2017}}} |Reallocated sectors count: 0, HDA temperature: 52, время тестирования: 1:59:55. |
{{{
HDD: Hitachi HDT725040VLA360; FW: V5COA7EA; SN: VFK301R31HWLSK
--------------------------------------------------------
            Name                        Val Worst Raw
Att #   1 : Read error rate           : 100  100  0  
Att #   2 : Throughput performance    : 100  100  0  
Att #   3 : Spin up time              : 107  107  30998989  
Att #   4 : Number of spin-up times   : 100  100  3383  
Att #   5 : Reallocated sectors count : 100  100  0  
Att #   7 : Seek error rate           : 100  100  0  
Att #   8 : Seek time performance     : 100  100  0  
Att #   9 : Power-on time             :  98   98  15088  
Att #  10 : Spin-up retries           : 100  100  0  
Att #  12 : Start/stop count          : 100  100  3354  
Att # 192 : Power-off retract count   :  97   97  3661  
Att # 193 : Load/unload cycle count   :  97   97  3661  
Att # 194 : HDA Temperature           : 115  115  52  
Att # 196 : Reallocate event count    : 100  100  0  
Att # 197 : Current pending sectors   : 100  100  0  
Att # 198 : Offline scan UNC sectors  : 100  100  0  
Att # 199 : Ultra ATA CRC Error Rate  : 200  253  0  
}}}
===
+++!![09. Hitachi HDT725040VLA360 400Gb »»][09. Hitachi HDT725040VLA360 400Gb ««]
|!Жёсткий диск|!Cерийный номер|>|>|>|>|>|!Задержка|!Дата покупки<br>{{remark{(тестирования)}}}|!Примечание|
|~|~|!<3ms|!<10ms|!<50ms|!<150ms|!<500ms|!>500ms|~|~|
|Hitachi HDT725040VLA360 400Gb | VFK301R31HWMRK | 2'312'002| 751'468| 934| 0| 0| 0| {{remark{29.08.2015}}} |Relocated sectors count: 0, HDA temperature: 51, время тестирования: 1:59:55. |
{{{
HDD: Hitachi HDT725040VLA360; FW: V5COA7EA; SN: VFK301R31HWMRK
--------------------------------------------------------
            Name                        Val Worst Raw
Att #   1 : Read error rate           : 100  100  0  
Att #   2 : Throughput performance    : 100  100  0  
Att #   3 : Spin up time              :  97   97  33096204  
Att #   4 : Number of spin-up times   : 100  100  344  
Att #   5 : Reallocated sectors count : 100  100  0  
Att #   7 : Seek error rate           : 100  100  0  
Att #   8 : Seek time performance     : 100  100  0  
Att #   9 : Power-on time             :  99   99  9018  
Att #  10 : Spin-up retries           : 100  100  0  
Att #  12 : Start/stop count          : 100  100  338  
Att # 192 : Power-off retract count   : 100  100  708  
Att # 193 : Load/unload cycle count   : 100  100  708  
Att # 194 : HDA Temperature           : 240  240  25  
Att # 196 : Reallocate event count    : 100  100  0  
Att # 197 : Current pending sectors   : 100  100  0  
Att # 198 : Offline scan UNC sectors  : 100  100  0  
Att # 199 : Ultra ATA CRC Error Rate  : 200  253  0  
}}}
===
+++!![10. Samsung HD502IJ 500Gb »»][10. Samsung HD502IJ 500Gb ««]
{{error{BIOS ругается: "SMART status bad" при единственном переназначенном секторе.}}}
|!Жёсткий диск|!Cерийный номер|>|>|>|>|>|!Задержка|!Дата покупки<br>{{remark{(тестирования)}}}|!Примечание|
|~|~|!<3ms|!<10ms|!<50ms|!<150ms|!<500ms|!>500ms|~|~|
|Samsung HD502IJ 500Gb | S13TJ1KQ610475 | 3'476'009| 354'433| 41| 1| 0| 0| {{remark{20.10.2015}}} |Reallocated sectors count: 1, reallocated event count: 1, soft read error rate: 5, Ultra ATA CRC error rate: 5, write error rate: 2, время тестирования: 1:51:13. |
|~|~| 3'475'046| 355'400| 37| 1| 0| 0| {{remark{20.10.2015}}} |Reallocated sectors count: 1, reallocate event count: 1, soft read error rate: 5, Ultra ATA CRC error rate: 5, write error rate: 1, время тестирования: 1:51:13. |
|~|~| 3'470'198| 360'243| 42| 1| 0| 0| {{remark{07.10.2017}}} |Время тестирования: 1:51:13. |
SMART att. (05.10.2017):
{{{
HDD: SAMSUNG HD502IJ; FW: 1AA01112; SN: S13TJ1KQ610475
--------------------------------------------------------
            Name                        Val Worst Raw
Att #   1 : Read error rate           : 100   99  1  
Att #   3 : Spin up time              :  86   86  5150  
Att #   4 : Number of spin-up times   : 100  100  157  
Att #   5 : Reallocated sectors count : 100  100  1  
Att #   7 : Seek error rate           : 253  253  0  
Att #   8 : Seek time performance     : 100  100  0  
Att #   9 : Power-on time             : 100  100  420  
Att #  10 : Spin-up retries           : 100  100  0  
Att #  11 : Calibration retries       : 100  100  2  
Att #  12 : Start/stop count          : 100  100  157  
Att #  13 : Soft read error rate      : 100   99  1  
Att # 183 : Unknown                   : 100  100  0  
Att # 184 : Unknown                   :   1    1  299  
Att # 187 : Unknown                   : 100  100  22  
Att # 188 : Unknown                   : 100  100  0  
Att # 190 : Unknown                   :  65   59  606273571  
Att # 194 : HDA Temperature           :  65   55  35  
Att # 195 : Hardware ECC recovered    : 100  100  4022494  
Att # 196 : Reallocate event count    : 100  100  1  
Att # 197 : Current pending sectors   : 100  100  0  
Att # 198 : Offline scan UNC sectors  : 100  100  0  
Att # 199 : Ultra ATA CRC Error Rate  : 100   99  0  
Att # 200 : Write error rate          : 100  100  0  
Att # 201 : Unknown                   : 100  100  0  
}}}
Тестирование 22.10.2017:
{{{
HDD: SAMSUNG HD502IJ; FW: 1AA01112; SN: S13TJ1KQ610475
--------------------------------------------------------
            Name                        Val Worst Raw
Att #   1 : Read error rate           : 100   99  1  
Att #   3 : Spin up time              :  86   86  5200  
Att #   4 : Number of spin-up times   : 100  100  159  
Att #   5 : Reallocated sectors count : 100  100  1  
Att #   7 : Seek error rate           : 253  253  0  
Att #   8 : Seek time performance     : 100  100  0  
Att #   9 : Power-on time             : 100  100  420  
Att #  10 : Spin-up retries           : 100  100  0  
Att #  11 : Calibration retries       : 100  100  2  
Att #  12 : Start/stop count          : 100  100  159  
Att #  13 : Soft read error rate      : 100   99  1  
Att # 183 : Unknown                   : 100  100  0  
Att # 184 : Unknown                   :   1    1  299  
Att # 187 : Unknown                   : 100  100  22  
Att # 188 : Unknown                   : 100  100  0  
Att # 190 : Unknown                   :  83   59  286326801  
Att # 194 : HDA Temperature           :  80   55  20  
Att # 195 : Hardware ECC recovered    : 100  100  17  
Att # 196 : Reallocate event count    : 100  100  1  
Att # 197 : Current pending sectors   : 100  100  0  
Att # 198 : Offline scan UNC sectors  : 100  100  0  
Att # 199 : Ultra ATA CRC Error Rate  : 100   99  0  
Att # 200 : Write error rate          : 100  100  0  
Att # 201 : Unknown                   : 253  253  0  
}}}
===
+++!![11. Hitachi HDT725050VLA380 500Gb »»][11. Hitachi HDT725050VLA380 500Gb ««]
|!Жёсткий диск|!Cерийный номер|>|>|>|>|>|!Задержка|!Дата покупки<br>{{remark{(тестирования)}}}|!Примечание|
|~|~|!<3ms|!<10ms|!<50ms|!<150ms|!<500ms|!>500ms|~|~|
|Hitachi HDT725050VLA380 500Gb | VFK482R41WAPAK | 3'139'995| 689'264| 1'222| 3| 0| 0| {{remark{28.08.2015}}} |Read error rate: 65536, reallocated sectors count: 2, reallocate event count: 2, HDA temperature: 58, время тестирования: 2:14:55. |
SMART att. (07.02.2017):
{{{
HDD: Hitachi HDT725050VLA360; FW: V56OA7EA; SN: VFK482R41WAPAK
--------------------------------------------------------
            Name                        Val Worst Raw
Att #   1 : Read error rate           :  99   99  196608  
Att #   2 : Throughput performance    : 100  100  0  
Att #   3 : Spin up time              : 101  101  32244207  
Att #   4 : Number of spin-up times   : 100  100  145  
Att #   5 : Reallocated sectors count : 100  100  2  
Att #   7 : Seek error rate           : 100  100  0  
Att #   8 : Seek time performance     : 100  100  0  
Att #   9 : Power-on time             : 100  100  429  
Att #  10 : Spin-up retries           : 100  100  0  
Att #  12 : Start/stop count          : 100  100  140  
Att # 192 : Power-off retract count   : 100  100  151  
Att # 193 : Load/unload cycle count   : 100  100  151  
Att # 194 : HDA Temperature           : 111  111  54  
Att # 196 : Reallocate event count    : 100  100  2  
Att # 197 : Current pending sectors   : 100  100  0  
Att # 198 : Offline scan UNC sectors  : 100  100  0  
Att # 199 : Ultra ATA CRC Error Rate  : 200  253  0  
}}}
SMART att. (22.10.2017):
{{{
HDD: Hitachi HDT725050VLA360; FW: V56OA7EA; SN: VFK482R41WAPAK
--------------------------------------------------------
            Name                        Val Worst Raw
Att #   1 : Read error rate           : 100  100  0  
Att #   2 : Throughput performance    : 100  100  0  
Att #   3 : Spin up time              : 101  101  32440814  
Att #   4 : Number of spin-up times   : 100  100  154  
Att #   5 : Reallocated sectors count : 100  100  6  
Att #   7 : Seek error rate           : 100  100  0  
Att #   8 : Seek time performance     : 100  100  0  
Att #   9 : Power-on time             : 100  100  449  
Att #  10 : Spin-up retries           : 100  100  0  
Att #  12 : Start/stop count          : 100  100  149  
Att # 192 : Power-off retract count   : 100  100  160  
Att # 193 : Load/unload cycle count   : 100  100  160  
Att # 194 : HDA Temperature           : 115  115  52  
Att # 196 : Reallocate event count    : 100  100  6  
Att # 197 : Current pending sectors   : 100  100  0  
Att # 198 : Offline scan UNC sectors  : 100  100  0  
Att # 199 : Ultra ATA CRC Error Rate  : 200  253  0  

}}}
===
===
+++![Проданные »»][Проданные ««]
{{remark{Дата продажи, срок гарантии.}}}
+++!![Samsung HD321KJ 320Gb »»][Samsung HD321KJ 320Gb ««]
{{remark{Продан и установлен в компьютер А.Х. 16.02.2017.}}}
|!Жёсткий диск|!Cерийный номер|>|>|>|>|>|!Задержка|!Дата покупки<br>{{remark{(тестирования)}}}|!Примечание|
|~|~|!<3ms|!<10ms|!<50ms|!<150ms|!<500ms|!>500ms|~|~|
|{{remark{Samsung HD321KJ 320Gb}}} | S0MQJ13P113462 | 2'251'513| 194'817| 5'200| 1| 0| 0| {{remark{14.04.2014}}} |Reallocated sectors count: 0, время тестирования: 1:20:10. |
{{{
HDD: SAMSUNG HD321KJ; FW: CP100-10; SN: S0MQJ13P113462
--------------------------------------------------------
            Name                        Val Worst Raw
Att #   1 : Read error rate           : 253  100  0  
Att #   3 : Spin up time              : 100  100  5696  
Att #   4 : Number of spin-up times   : 100  100  928  
Att #   5 : Reallocated sectors count : 253  253  0  
Att #   7 : Seek error rate           : 253  253  0  
Att #   8 : Seek time performance     : 253  253  0  
Att #   9 : Power-on time             : 100  100  14874  
Att #  10 : Spin-up retries           : 253  253  0  
Att #  11 : Calibration retries       : 253  253  0  
Att #  12 : Start/stop count          : 100  100  523  
Att # 187 : Unknown                   : 253  253  0  
Att # 188 : Unknown                   : 253  253  0  
Att # 190 : Unknown                   :  58   55  42  
Att # 194 : HDA Temperature           : 112  103  42  
Att # 195 : Hardware ECC recovered    : 100  100  54014  
Att # 196 : Reallocate event count    : 253  253  0  
Att # 197 : Current pending sectors   : 253  253  0  
Att # 198 : Offline scan UNC sectors  : 253  253  0  
Att # 199 : Ultra ATA CRC Error Rate  : 200  200  0  
Att # 200 : Write error rate          : 100  100  0  
Att # 201 : Unknown                   : 253  100  0  
Att # 202 : Unknown                   : 253  253  0  
}}}
===
+++!![Samsung HD502IJ 500Gb »»][Samsung HD502IJ 500Gb ««]
{{remark{Продан Павлу 08.06.2017.}}}
|!Жёсткий диск|!Cерийный номер|>|>|>|>|>|!Задержка|!Дата покупки<br>{{remark{(тестирования)}}}|!Примечание|
|~|~|!<3ms|!<10ms|!<50ms|!<150ms|!<500ms|!>500ms|~|~|
|Samsung HD502IJ 500Gb | S13TJ1KQ804135 | 3'421'076| 409'333| 74| 1| 0| 0| {{remark{27.10.2014}}} |Reallocated: {{error{отсутствует}}}, reallocate event count: 0, UltraATA CRC error rate: 0, Hardware ECC recovered: 112'609'657 {{remark{(ерунда какая-то)}}}. |
|~|~| 3'424'431| 404'683| 1349| 21| 0| 0| {{remark{17.07.2015}}} |Reallocate event count: 0, Ultra ATA CRC error rate: 2, hardware ECC recovered: 118'301'662, время тестирования: 1:54:41.|
|~|~| 3'426'291| 400'663| 3'506| 24| 0| 0| {{remark{25.08.2015}}} |Reallocated sectors count: 0, hardware ECC recovered: 124'604'938, Ultra ATA CRC error rate: 2, время тестирования: 1:56:22. |
{{{
HDD: SAMSUNG HD502IJ; FW: 1AA01113; SN: S13TJ1KQ804135
--------------------------------------------------------
            Name                        Val Worst Raw
Att #   1 : Read error rate           : 100  100  0  
Att #   3 : Spin up time              :  86   86  5190  
Att #   4 : Number of spin-up times   : 100  100  90  
Att #   5 : Reallocated sectors count : 100  100  0  
Att #   7 : Seek error rate           : 100  100  0  
Att #   8 : Seek time performance     : 100  100  0  
Att #   9 : Power-on time             : 100  100  1872  
Att #  10 : Spin-up retries           : 100  100  0  
Att #  11 : Calibration retries       : 100  100  4  
Att #  12 : Start/stop count          : 100  100  90  
Att #  13 : Soft read error rate      : 100  100  0  
Att # 183 : Unknown                   : 100  100  0  
Att # 184 : Unknown                   : 100  100  0  
Att # 187 : Unknown                   : 100  100  0  
Att # 188 : Unknown                   : 100  100  0  
Att # 190 : Unknown                   :  82   52  303169554  
Att # 194 : HDA Temperature           :  82   51  18  
Att # 195 : Hardware ECC recovered    : 100  100  0  
Att # 196 : Reallocate event count    : 100  100  0  
Att # 197 : Current pending sectors   : 100  100  0  
Att # 198 : Offline scan UNC sectors  : 100  100  0  
Att # 199 : Ultra ATA CRC Error Rate  : 100  100  2  
Att # 200 : Write error rate          : 100  100  0  
Att # 201 : Unknown                   : 253  253  0  
}}}
===
+++!![Samsung HD501LJ 500Gb »»][Samsung HD501LJ 500Gb ««]
{{remark{Продан Евгению 09.07.2017.}}}
|!Жёсткий диск|!Cерийный номер|>|>|>|>|>|!Задержка|!Дата покупки<br>{{remark{(тестирования)}}}|!Примечание|
|~|~|!<3ms|!<10ms|!<50ms|!<150ms|!<500ms|!>500ms|~|~|
|Samsung HD501LJ 500Gb | S0MUJ1FPA61244 | 3'417'811| 403'574| 9'099| 0| 0| 0| {{remark{21.03.2015}}} |Время тестирования: 2:14:48, Ultra ATA CRC error rate: 0|
|~|~| 3'418'661| 402'894| 8'929| 0| 0| 0| {{remark{26.08.2015}}} |Reallocated sectors count: 0, soft read error rate: 119'455'001, hardware ECC recovered: 119'455'001, время тестирования: 2:14:46. |
{{{
HDD: SAMSUNG HD501LJ; FW: CR100-12; SN: S0MUJ1FPA61244
--------------------------------------------------------
            Name                        Val Worst Raw
Att #   1 : Read error rate           : 253  100  0  
Att #   3 : Spin up time              : 100  100  7488  
Att #   4 : Number of spin-up times   : 100  100  146  
Att #   5 : Reallocated sectors count : 253  253  0  
Att #   7 : Seek error rate           : 253  253  0  
Att #   8 : Seek time performance     : 253  253  0  
Att #   9 : Power-on time             : 100  100  371  
Att #  10 : Spin-up retries           : 253  253  0  
Att #  11 : Calibration retries       : 253  100  0  
Att #  12 : Start/stop count          : 100  100  88  
Att #  13 : Soft read error rate      : 253  100  0  
Att # 187 : Unknown                   : 253  253  0  
Att # 188 : Unknown                   : 100  100  1  
Att # 190 : Unknown                   :  80   50  20  
Att # 194 : HDA Temperature           : 178   82  20  
Att # 195 : Hardware ECC recovered    : 253  100  0  
Att # 196 : Reallocate event count    : 253  253  0  
Att # 197 : Current pending sectors   : 253  253  0  
Att # 198 : Offline scan UNC sectors  : 253  253  0  
Att # 199 : Ultra ATA CRC Error Rate  : 200  200  0  
Att # 200 : Write error rate          : 253  100  0  
Att # 201 : Unknown                   : 253  100  0  
Att # 202 : Unknown                   : 253  253  0  
}}}
===
+++!![Samsung HD401LJ 400Gb »»][Samsung HD401LJ 400Gb ««]
{{remark{Hitachi после И. удалось восстановить, а вот этот диск, видимо, ушёл в помойку.}}}
|!Жёсткий диск|!Cерийный номер|>|>|>|>|>|!Задержка|!Дата покупки<br>{{remark{(тестирования)}}}|!Примечание|
|~|~|!<3ms|!<10ms|!<50ms|!<150ms|!<500ms|!>500ms|~|~|
|Samsung HD401LJ 400Gb | S0HVJ1WL907443 | 2'787'314| 259'674| 17'414| 2| 0| 0| {{remark{18.04.2014}}} |Reallocated sectors count: 0, время тестирования: 1:48:42 |
|~|~| 2'791'525| 260'275| 12'601| 0| 3| 0|Warns: 379'792'155, 379'793'430, 379'794'450, время тестирования: 1:48:01 (после возврата от И. и очистки диска от его файлов SMART недоступен) |
{{{
HDD: SAMSUNG HD401LJ; FW: ZZ100-15; SN: S0HVJ1WL907443
--------------------------------------------------------
            Name                        Val Worst Raw
Att #   1 : Read error rate           : 253  100  0  
Att #   3 : Spin up time              : 100  100  8000  
Att #   4 : Number of spin-up times   : 100  100  521  
Att #   5 : Reallocated sectors count : 253  253  0  
Att #   7 : Seek error rate           : 253  253  0  
Att #   8 : Seek time performance     : 253  253  0  
Att #   9 : Power-on time             : 100  100  1376  
Att #  10 : Spin-up retries           : 253  253  0  
Att #  11 : Calibration retries       : 253  253  0  
Att #  12 : Start/stop count          : 100  100  285  
Att # 190 : Unknown                   :  79   51  21  
Att # 194 : HDA Temperature           : 175   91  21  
Att # 195 : Hardware ECC recovered    : 253  100  0  
Att # 196 : Reallocate event count    : 253  253  0  
Att # 197 : Current pending sectors   : 253  253  0  
Att # 198 : Offline scan UNC sectors  : 253  253  0  
Att # 199 : Ultra ATA CRC Error Rate  : 200  200  0  
Att # 200 : Write error rate          : 253  100  0  
Att # 201 : Unknown                   : 253  100  0  
Att # 202 : Unknown                   : 253  253  0  
}}}
===
+++!![Hitachi HDP725050GLA360 500Gb »»][Hitachi HDP725050GLA360 500Gb ««]
{{remark{Продан Сергею 22.10.2017.}}}
|!Жёсткий диск|!Cерийный номер|>|>|>|>|>|!Задержка|!Дата покупки<br>{{remark{(тестирования)}}}|!Примечание|
|~|~|!<3ms|!<10ms|!<50ms|!<150ms|!<500ms|!>500ms|~|~|
|Hitachi HDP725050GLA360 500Gb | GEA530RE0MNP0A | 3'594'899| 235'296| 287| 2| 0 | 0| {{remark{31.10.2014}}} |Время тестирования: 1:49:20, Reallocated: 0|
SMART att. (22.10.2017):
{{{
HDD: Hitachi HDP725050GLA360; FW: GM4OA52A; SN: GEA530RE0MNP0A
--------------------------------------------------------
SMART attributes:
            Name                        Val Worst Raw
Att #   1 : Read error rate           : 100  100  0  
Att #   2 : Throughput performance    : 100  100  0  
Att #   3 : Spin up time              : 115  115  21954892  
Att #   4 : Number of spin-up times   : 100  100  48  
Att #   5 : Reallocated sectors count : 100  100  0  
Att #   7 : Seek error rate           : 100  100  0  
Att #   8 : Seek time performance     : 131  131  29  
Att #   9 : Power-on time             : 100  100  154  
Att #  10 : Spin-up retries           : 100  100  0  
Att #  12 : Start/stop count          : 100  100  48  
Att # 192 : Power-off retract count   : 100  100  48  
Att # 193 : Load/unload cycle count   : 100  100  48  
Att # 194 : HDA Temperature           : 200  200  30  
Att # 196 : Reallocate event count    : 100  100  0  
Att # 197 : Current pending sectors   : 100  100  0  
Att # 198 : Offline scan UNC sectors  : 100  100  0  
Att # 199 : Ultra ATA CRC Error Rate  : 200  200  0  
}}}
===
+++!![Hitachi HDT725050VLA380 500Gb »»][Hitachi HDT725050VLA380 500Gb ««]
{{remark{Продан Владимиру 03.11.2017.}}}
|!Жёсткий диск|!Cерийный номер|>|>|>|>|>|!Задержка|!Дата покупки<br>{{remark{(тестирования)}}}|!Примечание|
|~|~|!<3ms|!<10ms|!<50ms|!<150ms|!<500ms|!>500ms|~|~|
|Hitachi HDT725050VLA380 500Gb | VFA401R41KTDTA | 3'266'002| 563'375| 1'106| 1| 0| 0| {{remark{28.08.2015}}} |Reallocated sectors count: 0, HDA temperature: 56, время тестирования: 2:09:57. |
|~|~| 3'246'348| 583'052| 1'084| 0| 0| 0| {{remark{22.10.2017}}} |Время тестирования: 2:09:57. |
SMART att. (22.10.2017):
{{{
HDD: Hitachi HDT725050VLA380; FW: V56OA7EA; SN: VFA401R41KTDTA
--------------------------------------------------------
SMART attributes:
            Name                        Val Worst Raw
Att #   1 : Read error rate           : 100  100  0
Att #   2 : Throughput performance    : 100  100  0
Att #   3 : Spin up time              :  99   99  32965112
Att #   4 : Number of spin-up times   : 100  100  64
Att #   5 : Reallocated sectors count : 100  100  0
Att #   7 : Seek error rate           : 100  100  0
Att #   8 : Seek time performance     : 100  100  0
Att #   9 : Power-on time             : 100  100  122
Att #  10 : Spin-up retries           : 100  100  0
Att #  12 : Start/stop count          : 100  100  63
Att # 192 : Power-off retract count   : 100  100  65
Att # 193 : Load/unload cycle count   : 100  100  65
Att # 194 : HDA Temperature           : 222  222  27
Att # 196 : Reallocate event count    : 100  100  0
Att # 197 : Current pending sectors   : 100  100  0
Att # 198 : Offline scan UNC sectors  : 100  100  0
Att # 199 : Ultra ATA CRC Error Rate  : 200  253  0
}}}
===
+++!![Samsung SP2504C 250Gb »»][Samsung SP2504C 250Gb ««]
{{remark{Продан молодому человеку 26.11.2017.}}}
|!Жёсткий диск|!Cерийный номер|>|>|>|>|>|!Задержка|!Дата покупки<br>{{remark{(тестирования)}}}|!Примечание|
|~|~|!<3ms|!<10ms|!<50ms|!<150ms|!<500ms|!>500ms|~|~|
|Samsung SP2504C 250Gb | S09QJ1FL606233 | 1'707'875| 207'187| 213| 0| 0| 0| {{remark{14.04.2014}}} |Reallocated sectors count: 0, время тестирования: 1:08:55 |
{{{
HDD: SAMSUNG SP2504C; FW: VT100-41; SN: S09QJ1FL606233
--------------------------------------------------------
            Name                        Val Worst Raw
Att #   1 : Read error rate           : 253  100  0  
Att #   3 : Spin up time              : 100  100  5952  
Att #   4 : Number of spin-up times   :  99   99  1353  
Att #   5 : Reallocated sectors count : 253  253  0  
Att #   7 : Seek error rate           : 253  253  0  
Att #   8 : Seek time performance     : 253  253  0  
Att #   9 : Power-on time             : 100  100  11328  
Att #  10 : Spin-up retries           : 253  253  0  
Att #  11 : Calibration retries       : 253  253  0  
Att #  12 : Start/stop count          : 100  100  883  
Att # 187 : Unknown                   :   1    1  458  
Att # 190 : Unknown                   : 175   88  21  
Att # 194 : HDA Temperature           : 175   88  21  
Att # 195 : Hardware ECC recovered    : 253  100  0  
Att # 196 : Reallocate event count    : 253  253  0  
Att # 197 : Current pending sectors   : 253  100  0  
Att # 198 : Offline scan UNC sectors  : 253  253  0  
Att # 199 : Ultra ATA CRC Error Rate  : 200  200  10  
Att # 200 : Write error rate          : 253  100  0  
Att # 201 : Unknown                   : 253  100  0  
Att # 202 : Unknown                   : 253  253  0  
}}}
===
+++!![Hitachi HDT725040VLA360 400Gb »»][Hitachi HDT725040VLA360 400Gb ««]
{{remark{Продан хорошему человеку из района Цирка 04.12.2017.}}}
|!Жёсткий диск|!Cерийный номер|>|>|>|>|>|!Задержка|!Дата покупки<br>{{remark{(тестирования)}}}|!Примечание|
|~|~|!<3ms|!<10ms|!<50ms|!<150ms|!<500ms|!>500ms|~|~|
|Hitachi HDT725040VLA360 400Gb | VFK301R31HWU4K | 2'312'482| 750'982| 931| 0| 0| 0| {{remark{30.08.2015}}} |Relocated sectors count: 0, HDA temperature: 52, время тестирования: 1:59:56. |
|~|~| 2'312'440| 750'982| 973| 0| 0| 0| {{remark{01.10.2017}}} |Время тестирования: 1:59:55.|
{{{
HDD: Hitachi HDT725040VLA360; FW: V5COA7EA; SN: VFK301R31HWU4K
--------------------------------------------------------
            Name                        Val Worst Raw
Att #   1 : Read error rate           : 100  100  0  
Att #   2 : Throughput performance    : 100  100  0  
Att #   3 : Spin up time              : 115  115  23724539  
Att #   4 : Number of spin-up times   : 100  100  3620  
Att #   5 : Reallocated sectors count : 100  100  0  
Att #   7 : Seek error rate           : 100  100  0  
Att #   8 : Seek time performance     : 100  100  0  
Att #   9 : Power-on time             :  96   96  31341  
Att #  10 : Spin-up retries           : 100  100  0  
Att #  12 : Start/stop count          : 100  100  3615  
Att # 192 : Power-off retract count   :  97   97  4751  
Att # 193 : Load/unload cycle count   :  97   97  4751  
Att # 194 : HDA Temperature           : 107  107  56  
Att # 196 : Reallocate event count    : 100  100  0  
Att # 197 : Current pending sectors   : 100  100  0  
Att # 198 : Offline scan UNC sectors  : 100  100  0  
Att # 199 : Ultra ATA CRC Error Rate  : 200  253  0  
}}}
===
+++!![Samsung SP2004C 200Gb »»][Samsung SP2004C 200Gb ««]
{{remark{Продан энергичному молодому человеку для фермы криптовалюты 22.12.2017.}}}
|!Жёсткий диск|!Cерийный номер|>|>|>|>|>|!Задержка|!Дата покупки<br>{{remark{(тестирования)}}}|!Примечание|
|~|~|!<3ms|!<10ms|!<50ms|!<150ms|!<500ms|!>500ms|~|~|
|Samsung SP2004C 200Gb | S07GJ1GL803928 | 1'023'468| 507'437| 1'339| 0| 0| 0| {{remark{14.04.2014}}} |Reallocated sectors count: 0, время тестирования: 1:08:16. |
|~|~| 1'025'625| 506'443| 176| 0| 0| 0| {{remark{7.10.2017}}} |Время тестирования: 01:08:06. |
{{{
HDD: SAMSUNG SP2004C; FW: VM100-41; SN: S07GJ1GL803928
--------------------------------------------------------
            Name                        Val Worst Raw
Att #   1 : Read error rate           : 253  100  0  
Att #   3 : Spin up time              : 100  100  6016  
Att #   4 : Number of spin-up times   : 100  100  153  
Att #   5 : Reallocated sectors count : 253  253  0  
Att #   7 : Seek error rate           : 253  253  0  
Att #   8 : Seek time performance     : 253  253  0  
Att #   9 : Power-on time             : 100  100  6589  
Att #  10 : Spin-up retries           : 253  253  0  
Att #  11 : Calibration retries       : 253  253  0  
Att #  12 : Start/stop count          : 100  100  101  
Att # 187 : Unknown                   : 253  253  0  
Att # 190 : Unknown                   : 175   82  21  
Att # 194 : HDA Temperature           : 175   82  21  
Att # 195 : Hardware ECC recovered    : 253  100  0  
Att # 196 : Reallocate event count    : 253  253  0  
Att # 197 : Current pending sectors   : 253  100  0  
Att # 198 : Offline scan UNC sectors  : 253  253  0  
Att # 199 : Ultra ATA CRC Error Rate  : 200  200  0  
Att # 200 : Write error rate          : 253  100  0  
Att # 201 : Unknown                   : 253  100  0  
Att # 202 : Unknown                   : 253  253  0  
}}}
SMART att. (07.10.2017):
{{{
HDD: SAMSUNG SP2004C; FW: VM100-41; SN: S07GJ1GL803928
--------------------------------------------------------
            Name                        Val Worst Raw
Att #   1 : Read error rate           : 100  100  0  
Att #   3 : Spin up time              : 100  100  5952  
Att #   4 : Number of spin-up times   : 100  100  178  
Att #   5 : Reallocated sectors count : 253  253  0  
Att #   7 : Seek error rate           : 253  253  0  
Att #   8 : Seek time performance     : 253  253  0  
Att #   9 : Power-on time             : 100  100  6597  
Att #  10 : Spin-up retries           : 253  253  0  
Att #  11 : Calibration retries       : 253  253  0  
Att #  12 : Start/stop count          : 100  100  117  
Att # 187 : Unknown                   : 253  253  0  
Att # 190 : Unknown                   : 109   82  43  
Att # 194 : HDA Temperature           : 109   82  43  
Att # 195 : Hardware ECC recovered    : 100  100  21695824  
Att # 196 : Reallocate event count    : 253  253  0  
Att # 197 : Current pending sectors   : 253  100  0  
Att # 198 : Offline scan UNC sectors  : 253  253  0  
Att # 199 : Ultra ATA CRC Error Rate  : 200  200  0  
Att # 200 : Write error rate          : 100  100  0  
Att # 201 : Unknown                   : 100  100  0  
Att # 202 : Unknown                   : 253  253  0  
}}}
===
+++!![05. Samsung HD321KJ 320Gb »»][05. Samsung HD321KJ 320Gb ««]
{{remark{Продан хорошему МЧ 3.01.2018 под современные игры.}}}
|!Жёсткий диск|!Cерийный номер|>|>|>|>|>|!Задержка|!Дата покупки<br>{{remark{(тестирования)}}}|!Примечание|
|~|~|!<3ms|!<10ms|!<50ms|!<150ms|!<500ms|!>500ms|~|~|
|Samsung HD321KJ 320Gb | S0MQJ1EPB07586 | 2'245'856| 200'306| 5'378| 0| 0| 0| {{remark{14.04.2014}}} |Скорость на внешних дорожках: ~81'900 kb/s<br />Ср.скорость: 64'671 kb/s<br />Время тестирования: 1:20:31 |
|~|~| 2'249'620| 195'859| 6'061| 0| 0| 0| {{remark{26.08.2015}}} |Reallocated sectors count: 0, soft read error rate: 130'535'168, hardware ECC recovered: 130'535'168, время тестирования: 1:20:37. |
{{{
HDD: SAMSUNG HD321KJ; FW: CP100-12; SN: S0MQJ1EPB07586
--------------------------------------------------------
            Name                        Val Worst Raw
Att #   1 : Read error rate           : 253  100  0  
Att #   3 : Spin up time              : 100  100  5504  
Att #   4 : Number of spin-up times   : 100  100  57  
Att #   5 : Reallocated sectors count : 253  253  0  
Att #   7 : Seek error rate           : 253  253  0  
Att #   8 : Seek time performance     : 253  253  0  
Att #   9 : Power-on time             : 253  253  153  
Att #  10 : Spin-up retries           : 253  253  0  
Att #  11 : Calibration retries       : 253  253  0  
Att #  12 : Start/stop count          : 100  100  33  
Att #  13 : Soft read error rate      : 253  100  0  
Att # 187 : Unknown                   : 253  253  0  
Att # 188 : Unknown                   : 100  100  1  
Att # 190 : Unknown                   :  80   52  20  
Att # 194 : HDA Temperature           : 178   91  20  
Att # 195 : Hardware ECC recovered    : 253  100  0  
Att # 196 : Reallocate event count    : 253  253  0  
Att # 197 : Current pending sectors   : 253  253  0  
Att # 198 : Offline scan UNC sectors  : 253  253  0  
Att # 199 : Ultra ATA CRC Error Rate  : 200  200  0  
Att # 200 : Write error rate          : 253  100  0  
Att # 201 : Unknown                   : 253  100  0  
Att # 202 : Unknown                   : 253  253  0  
}}}
===
+++!![ »»][ ««]
|!Жёсткий диск|!Cерийный номер|>|>|>|>|>|!Задержка|!Дата покупки<br>{{remark{(тестирования)}}}|!Примечание|
|~|~|!<3ms|!<10ms|!<50ms|!<150ms|!<500ms|!>500ms|~|~|
{{{
Вставить
}}}
===
===
+++![Потеряшки »»][Потеряшки ««]
+++!![Seagate ST3200826AS 200Gb »»][Seagate ST3200826AS 200Gb ««]
|!Жёсткий диск|!Cерийный номер|>|>|>|>|>|!Задержка|!Дата покупки<br>{{remark{(тестирования)}}}|!Примечание|
|~|~|!<3ms|!<10ms|!<50ms|!<150ms|!<500ms|!>500ms|~|~|
|Seagate ST3200826AS 200Gb | 4ND0FZDC | 1'187'716| 344'359| 169| 0| 0| 0| {{remark{24.08.2015}}} |Reallocated sectors count: 0, время тестирования: 1:15:43. |
{{{
HDD: ST3200826AS; FW: 3.03; SN: 4ND0FZDC
--------------------------------------------------------
            Name                        Val Worst Raw
Att #   1 : Read error rate           :  63   54  33122632  
Att #   3 : Spin up time              :  98   98  0  
Att #   4 : Number of spin-up times   :  99   99  1658  
Att #   5 : Reallocated sectors count : 100  100  0  
Att #   7 : Seek error rate           :  81   60  146892678  
Att #   9 : Power-on time             :  96   96  4134  
Att #  10 : Spin-up retries           : 100  100  0  
Att #  12 : Start/stop count          :  99   99  1985  
Att # 194 : HDA Temperature           :  25   54  25  
Att # 195 : Hardware ECC recovered    :  63   54  33122632  
Att # 197 : Current pending sectors   : 100  100  0  
Att # 198 : Offline scan UNC sectors  : 100  100  0  
Att # 199 : Ultra ATA CRC Error Rate  : 200  200  0  
Att # 200 : Write error rate          : 100  253  0  
Att # 202 : Unknown                   : 100  253  0  
}}}
===
===
Новые клавиатуры, ремонтные мыши и наушники.
Спиральные пластиковые пружины для формирования единого аккуратного жгута проводов из хаоса проводов, идущих от системного блока, монитора или аудиоаппаратуры. Объявления на Avito пока нет, длина пружин порядка 0,6 м, стоимость:
* 1 шт — 100 руб. за штуку,
* 2÷4 — 80 руб. за штуку,
* 4÷8 — 60 руб. за штуку,
* 9 и более — 50 руб. за штуку.
Продажа системных блоков
плюс уменьшение шума
плюс улучшение охлаждения
плюс резервное копирование
плюс модернизация и сборка компьютеров на заказ
(безопасность не настраивать, бесполезно (ибо если человек этого ещё не делал, то и делать не будет))