<!--{{{-->
<link rel='alternate' type='application/rss+xml' title='RSS' href='index.xml' />
<!--}}}-->
Background: #fff
Foreground: #000
PrimaryPale: #8cf
PrimaryLight: #18f
PrimaryMid: #04b
PrimaryDark: #014
SecondaryPale: #ffc
SecondaryLight: #fe8
SecondaryMid: #db4
SecondaryDark: #841
TertiaryPale: #eee
TertiaryLight: #ccc
TertiaryMid: #999
TertiaryDark: #666
Error: #f88
/*{{{*/
body {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];}

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

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

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

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

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

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

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

.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='header' macro='gradient vert [[ColorPalette::PrimaryLight]] [[ColorPalette::PrimaryMid]]'>
<div class='headerShadow'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
</div>
<div class='headerForeground'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
</div>
</div>
<div id='mainMenu' refresh='content' tiddler='MainMenu'></div>
<div id='sidebar'>
<div id='sidebarOptions' refresh='content' tiddler='SideBarOptions'></div>
<div id='sidebarTabs' refresh='content' force='true' tiddler='SideBarTabs'></div>
</div>
<div id='displayArea'>
<div id='messageArea'></div>
<div id='tiddlerDisplay'></div>
</div>
<!--}}}-->
<!--{{{-->
<div class='toolbar' macro='toolbar [[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>
<!--}}}-->
<!--{{{-->
<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>>
These [[InterfaceOptions]] for customising [[TiddlyWiki]] are saved in your browser

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

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

----
Also see [[AdvancedOptions]]
<<importTiddlers>>
''[[U.S. concedes Georgia attack attack in South Ossetia was a mistake|http://feeds.bignewsnetwork.com/index.php?sid=427634]]'' by David Gollust, bignewsnetwork. November 8, 2008
''[[Russia not seeking new Cold War, but not afraid - Medvedev|http://en.rian.ru/world/20080826/116294279.html]]''. RIA Novosti. August 26, 2008
''[[Let Russia join NATO|http://www.cantonrep.com/index.php?ID=427285&Category=14&subCategoryID=]]'' by Andrew Meier. Los Angeles Times. August 24, 2008
''[[Why Georgia is not start of 'Cold War II'|http://www.csmonitor.com/2008/0822/p01s02-woeu.html]]'' by Robert Marquand. The Christian Science Monitor. August 22, 2008
''[[Defying the Whole World|http://www.kommersant.com/p1014291/r_538/Russia_responds_to_the_West/]]'' by Mikhail Zygar. Kommersant. August 22, 2008
''[[U.S. Ambassador Speaks of Future Relations with Russia|http://www.kommersant.com/p1014311/Beyrle_Georgia/]]''. Kommersant. August 22, 2008
''[[What resurrecting Cold War with Russia costs us|http://www.scrippsnews.com/node/35586]]'' by Thomas P.M. Barnett. ~ScrippsNews. August 22, 2008
''[[Russia says NATO needs its help on Afghanistan|http://wiredispatch.com/news/?id=308828]]'' by Oleg Shchedrov. Reuters. August 21, 2008
''[[Russia to deploy missiles in Syria and Kaliningrad, in response to US. missile shield in Central Europe and arm sales to Georgia|http://en.rian.ru/world/20080821/116199385.html]]''. //Russia says ready to supply Syria with defensive weapons//. RIA Novosti. August 21, 2008
''[[NATO-Russia Council meetings would be placed on hold|http://www.nato.int/docu/update/2008/08-august/e0819a.html]]''. //NATO’s foreign ministers reiterate their support to Georgia//. NATO. August 19, 2008
''[[Who Started Cold War II?|http://www.antiwar.com/pat/?articleid=13323]]'' by Patrick J. Buchanan. Antiwar . August 19, 2008
''[[Let's not start World War III|http://www.telegraph.co.uk/opinion/main.jhtml?xml=/opinion/2008/08/17/do1701.xml]]'' by General Sir Mike Jackson. The Telegraph Sunday, August,17, 2008
''[[Boost To Big U.S. Weapons Programs|http://online.wsj.com/article/SB121884933721146317.html?mod=googlenews_wsj]]''. //Attack on Georgia Gives Boost
To Big U.S. Weapons Programs// by August Cole. The Wall Street Journal, August,16, 2008
''[[New Cold War with Russia Over Oil and Gas|http://news.newamericamedia.org/news/view_article.html?article_id=e6a3ebec514d24bb41f4ce7b6da8da55]]'' by Paolo Pontoniere. New America Media. August 12, 2008
És el nom de la col·laboració entre Leonardo Digital Review i el weblog context amb motiu de l'exposició "01.01.01: Art in Technological Times. Responding to a world altered by digital media and technology" del SFMOMA (San Francisco Museum of Modern Art).

Leonardo Digital Review és part del "Leonardo Electronic Almanac (LEA), el periòdic electrònic dedicat a proporcionar un fòrum per a aquells que estan interessats en la regió en què convergeixen art, ciència i tecnologia. LEA és produït per Leonardo, la International Society for the Arts, Sciences and Technology i la MIT Press, i es publica des del 1993".

Aquesta col·laboració és una prova basada en la proposta de Leonardo Digital Review per a "reconsiderar la pràctica de la revisió a la llum de la creixent interdisciplinarietat i de les emergents tecnologies de comunicació i distribució". Alhora permet desenvolupar un debat sobre el net art i el paper dels museus a l'era digital, relacionat amb els continguts concrets de l'exposició.

La col·laboració, iniciada en la fase de proves del weblog context, és tan sols un exemple concret del tipus d'associacions que possibilita el projecte *context* i també, més en general, de la mena de comunitats culturals - interdisciplinàries, internacionals, obertes... - que es formen en la dinàmica de la xarxa.
[[ADAM Systems|http://www.adamsystems.com/]]. Advanced Digital Asset Management (2001)
Participant i ''[[relator de la línia estratègica de Noves Tecnologies|http://www.kreanta.com/proyectos/proyectos.php?idProy=6]], “Incorporar Barcelona en els fluxos de la cultura digital”, dins del [[Pla estratègic del sector cultural de Barcelona|http://www.bcn.es/plaestrategicdecultura/catala/antecedents.html]]'' (1998-1999)
''[[ConstruccioAutonoma.net|http://www.sitesize.net/construccioautonoma/]]''
~AutonomousConstruction.net

Under the title of Autonomous Construction and as a working, we have launched an Internet site which brings together various stories of the Barcelona metropolis in the form of an open mapping. They constitute tales that are under construction that span from the personal to the collective, from the historic to the singular. It concerns research in progress that puts itself forward as a common setting for different initiatives, documents, communities and collaborative projects.

@@color(gray):Edició / Edited by@@
''Sitesize''
[[www.sitesize.net|http://www.sitesize.net/]]
[[info@sitesize.net|info@sitesize.net]]

@@color(gray):Documentació i textos / Documentation & Texts@@
''Guiomar Castaños, Maribel Cadenas, Martha Pelayo''

@@color(gray):Disseny i construcció web / Web design & construction@@
''Joan Escofet Planas''

@@color(gray):Programació / Software programmer@@
''Josep Saldaña Cavallé''

@@color(gray):Traducció a l’anglès / English translation@@
''Neil Younger''

Aquest site forma part del projecte Narracions metropolitanes_Aula Permanent de Sitesize dins de [[“La comunitat inconfessable”|http://www.lacomunitatinconfessable.org/]]. L’exposició, comissariada per Valentín Roma, forma part del Pavelló de Catalunya en la 53a edició de la Biennal de Venècia d’Arts Visuals 2009 dins el programa Eventi collaterali. 
''[[Demoralised Georgia may renew itself by restoring its monarchy|http://blogs.telegraph.co.uk/gerald_warner/blog/2008/08/20/demoralised_georgia_may_renew_itself_by_restoring_its_monarchy]]'' by Gerald Warner. Telegraph. August 20, 2008
''[[Georgia and the Balkans of Eurasia|http://www.thetrumpet.com/index.php?q=5432.3732.0.0]]'' by Ron Fraser. The Trumpet. August 18, 2008
''[[Abkhazia: Parliament Calls For Recognition By UN|http://www.unpo.org/content/view/7935/236/]]''. People's Assembly - The Parliament of the Republic of Abkhazia. March 26, 2008
''[[Georgian presidential election, 2008|http://en.wikipedia.org/wiki/Georgian_presidential_election,_2008]]''. Wikipedia. January 5, 2008
''[[State of emergency in Georgia as street protests turn violent|http://www.guardian.co.uk/world/2007/nov/08/russia.georgia]]''. The Guardian. November 8, 2007
(1998)
''[[Georgia-Russia conflict: Thousands still can't return to own homes - new report|http://www.amnesty.org.uk/news_details.asp?NewsID=17952]]''. Amnesty International. November 18, 2008
''[[Aid Groups Decry US 'Militarization' in Georgia|http://news.antiwar.com/2008/08/29/relief-agencies-furious-as-us-military-takes-over-aid-operations/]]''. //Relief Agencies Furious as US Military Takes Over Aid Operations// by by Jason Ditz. Antiwar. August 29, 2008
''[[Georgia war was in South Ossetia, but Abkhazia's the prize|http://www.mcclatchydc.com/world/story/50661.html]]'' by Shashank Bengali | ~McClatchy Newspaper. August 25, 2008
''[[Should Russia recognize Abkhazia and South Ossetia?|http://en.rian.ru/analysis/20080825/116268945.html]]'' by Fyodor Lukyanov. RIA Novosti. August 25, 2008
''[[South Ossetia says Georgian attack caused $4 billion damage|http://en.rian.ru/world/20080822/116214956.html]]''. RIA Novosti. August 22, 2008
''[[National gathering of Abkhaz people in Sukhumi|http://en.rian.ru/photolents/20080822/116210351.html]]''. RIA Novosti. August 22, 2008
''[[South Ossetians celebrate victory|http://www.ft.com/cms/s/0/59cd888e-6fe1-11dd-986f-0000779fd18c.html?nclick_check=1]]'' by Catherine Belton. Financial Times. August 22 2008
''[[South Ossetia independence rally blasts Georgia|http://wiredispatch.com/news/?id=308805]]'' by Dmitry Solovyov. Reuters. August 21, 2008
''[[Citizens of Abkhazia Strive to Shape Sovereign Nation|http://www.pbs.org/newshour/bb/europe/july-dec08/abkhazia_08-21.html]]'' by Jim Lehrer. PBS. August 21, 2008
''[[Abkhazia parliament favours Russian recognition|http://www.france24.com/en/20080820-abkhazia-parliament-russia-georgia-recognition-independence]]''. Reuters. August 20, 2008

http://www.mfaabkhazia.org/Eng/Links.htm
<<tabs txtFavourite
"Facts" "Facts about Caucasus War" Facts
"Background" "Background about Caucasus War" Background
"Breakaway" "Breakaway territories" [[Breakaway territories]]
"Panoram" "Panoram" Panoram
"Energy" "Energy cold war" [[Energy cold war]]
"Cyberwar" "First Cyberwar" Cyberwar
"Ploy" "Election ploy" [[Election ploy]]
"Cold War" "New Cold War?" [["New Cold War"]]
"Multipolar" "Multipolar world" [[Multipolar world]]
"Globalization" "Globalization fate" [[Globalization fate]]
>>
''[[cityborg|http://straddle3.net/openfridays/#18]], plataforma digital oberta'' (2004-2005). "Cityborg és un projecte cultural orientat a construir una plataforma digital oberta per a generar xarxes socials en els nostres ambients mediats. la nostra base oberta és la distro cityborg, una distribució de gnu/linux, i el node Internet relacionat, cityborg.net. incorporem el weblog context - informació sobre arts, ciència, tecnologia, i les seves interseccions - per a seguir la cultura emergent i transformar les notícies sobre tecnologies punta en noves característiques de la distro cityborg. les arrels de cityborg es nodreixen de l'energia i de la creixent dinàmica de 'col·lectiu de col·lectius' de la barcelona underground. en aquesta 'sopa primigènia' s'aprecia la necessitat d'una eina cultural nova que sintetitzi i contribueixi al nou moviment cultural (programari lliure, exploradors urbans, diyers, hackivistas...)"
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
''[[Context Weblog|http://straddle3.net/context/]], an emerging culture observatory'', (2000-2006). Art, science, technology and their intersections. The project's initiatives aims to appropriate and disseminate the emerging culture as a new 'art de vivre.' Context project contributes to the evolution of straddle3 as an 'open source company'
''[[Pentagon debates development of offensive cyberspace capabilities|http://fairuse.100webcustomers.com/itsonlyfair/latimes0475.html]]'' by Julian E. Barnes. Los Angeles Times. September 8, 2008. "The monthslong debate took on added urgency after the electronic attacks that coincided with the Russian military's early August push into Georgia and reflects a newfound uncertainty over the state of global cyber-warfare capabilities."
''[[Evidence that Georgia DDOS attacks are "populist" in nature|http://garwarner.blogspot.com/2008/08/evidence-that-georgia-ddos-attacks-are.html]]'' by Gary Warner. ~CyberCrime & Doing Time. August 19, 2008
''[[Georgia hackers strike apart from Russian military|http://washingtontimes.com/news/2008/aug/19/georgia-hackers-strike-apart-from-russian-military/]]'' by Shaun Waterman, United Press International. August 19, 2008
''[[Georgia cuts access to Russian websites, TV news|http://wiredispatch.com/news/?id=303974]]'' by Niko Mchedlishvili. Reuters. August 19, 2008
''[[The world's first cyberwar|http://www.independent.co.uk/news/world/europe/battle-for-south-ossetia-fought-in-cyberspace-899772.html]]''. //Battle for South Ossetia fought in cyberspace// by Thais ~Portilho-Shrimpton. The Independent. August 17, 2008.
''[[Open source warfare|http://globalguerrillas.typepad.com/globalguerrillas/2008/08/open-source-war.html]]''. //Open source warfare: Cyberwar// by John Robb. Global guerrillas. August 15, 2008
''[[An Army of Ones and Zeroes. How I became a soldier in the Georgia-Russia cyberwar|http://www.slate.com/id/2197514/]]'' by Evgeny Morozov. Slate. August 14, 2008
''[[Georgian Attacks: Remember Estonia?|http://www.shadowserver.org/wiki/pmwiki.php?n=Calendar.20080813]]'' by Steven Adair. Shadow server. August 13, 2008
[[tweets]]
Després de més de tres anys d'activitat obrint l'espai de treball de straddle3 a diferents col.lectius per presentar i compartir experiències relacionades amb la cultura emergent en el marc dels [[Openfridays]], i més de cinc anys de dedicació voluntària en la publicació de [[Context Weblog]], s'ha generat una dinàmica que ha anat fent cada cop més evident la conveniència d'una ''infraestructura de suport autogestionada per donar un marc a aquestes activitats i als diferents col.lectius amb els que col.laborem amb la voluntat de sortir a l'espai públic''. Basant-nos en les tradicions de la itinerància artística proposem la present infrastructura, el [[DOMO|http://saladestar.com/catala/00_inicio/02_grac/grac01/intervencions/int_straddle.html]]
''[[El conflicte de Can Ricart. Una cronologia interactiva|http://canricart.info/]]. Aquesta és una eina interactiva per a navegar per la informació del conflicte de Can Ricart a Barcelona'' 
''[[Putin accuses U.S. of orchestrating Georgian war|http://edition.cnn.com/2008/WORLD/europe/08/28/russia.georgia.cold.war/index.html#cnnSTCText]]'' by Matthew Chance. CNN. August 28, 2008
''[[Scheunemann, Iraq and Georgia|http://www.globalresearch.ca/index.php?context=va&aid=9915]]'' by Robert Dreyfuss. Global Research. August 22, 2008
''[[Did Putin's Actions in Georgia Ruin Obama's Chances of Reaching the Presidency?|http://english.daralhayat.com/opinion/OPED/08-2008/Article-20080822-eb9ee09e-c0a8-10ed-01bf-ee3346a3630b/story.html]]'' by Raghida Dergham. Al Hayat. August 22, 2008
''[[Obama could be a worse casualty of Georgia crisis than Saakashvili|http://blogs.telegraph.co.uk/gerald_warner/blog/2008/08/15/obama_could_be_a_worse_casualty_of_georgia_crisis_than_saakashvili]]'' by Gerald Warner. Telegraph. August 15, 2008
''[[Georgia war is a neocon election ploy|http://www.sfgate.com/cgi-bin/article.cgi?f=/c/a/2008/08/12/EDCD129NI4.DTL]]'' by Robert Scheer. San Francisco Chronicle. August 13, 2008
''[[Caucasus crisis speeds up Nabucco project|http://www.hurriyet.com.tr/english/finance/9899764.asp?scr=1]]''. Hurriyet. 
''[[Russia 'wants energy market control'|http://www.news.com.au/heraldsun/story/0,21985,24313499-5005961,00.html]]'' by Tabassum Zakaria in Rome. September 08, 2008
''[[Business worried as US weighs Russia sanctions|http://wiredispatch.com/news/?id=319158]]'' by Doug Palmer. Reuters. August 28, 2008. //"I'm [president of the National Foreign Trade Council] almost more worried about what they're going to do to themselves rather than what we're going to do to them."//
''[[Fuel train explodes near abandoned Georgian military base after 'hitting landmine'|http://www.mailonsunday.co.uk/news/worldnews/article-1048293/Pictured-Fuel-train-explodes-near-abandoned-Georgian-military-base-hitting-landmine.html]]''. Mail Online. August 24, 2008
''[[Kazakhstan considers to divert oil export route from BTC to Russia|http://www.hurriyet.com.tr/english/finance/9714319.asp?scr=1]]''. Hürriyet. August 23, 2008
''[[Azeri oil exports via Iran likely|http://www.tehrantimes.com/index_View.asp?code=175974]]''. Tehran Times. August 23, 2008
''[[BP fighting West's energy cold war in the Caucasus|http://www.business24-7.ae/articles/2008/8/pages/08232008_bea14fe935c544258cb5bdbd305d2d76.aspx]]''. Emirates Business 24/7. August 23, 2008
''[[Oil Imperial Ambition: Story beyond Russo-Georgian War|http://finchannel.com/index.php?option=com_content&task=view&id=18494&Itemid=47]]''. The Financial. August 23, 2008
''[[The Eurasian Corridor: Pipeline Geopolitics and the New Cold War|http://www.globalresearch.ca/index.php?context=va&aid=9907]]'' by Michel Chossudovsky. Global Research. August 22, 2008
''[[Turkey Considers Oil and Gas Partnerships with Iran|http://www.findingdulcinea.com/news/Middle-East/July-August/Turkey-Iran-Relations--More-than-Gas.html]]''. by Anne Szustek. August 22, 2008
''[[Investors quit Russia after Georgia war|http://www.ft.com/cms/s/0/60abb0d4-6fb1-11dd-986f-0000779fd18c.html]]'' by Charles Clover. Financial Times. August 21 2008
''[[World Bank statement on Georgia|http://web.worldbank.org/WBSITE/EXTERNAL/NEWS/0,,contentMDK:21879667~pagePK:34370~piPK:34424~theSitePK:4607,00.html]]''. World Bank. August 21, 2008
''[[ Pipeline politics caused the war in Georgia|http://www.telegraph.co.uk/opinion/main.jhtml?xml=/opinion/2008/08/20/do2005.xml]]'' by Rafael Kandiyoti. Telegrah. August 20,2008
''[[BP says testing begins on BTC pipeline|http://www.sfgate.com/cgi-bin/article.cgi?f=/n/a/2008/08/20/financial/f040030D83.DTL&feed=rss.business]]'' by Jane Wardell, AP Business. August 20, 2008
''[[Petropolitics at heart of Russia-Georgia clash|http://www.csmonitor.com/2008/0816/p14s01-cogn.html]]'' by David R. Francis. The Christian Science Monitor. August 18, 2008
''[[War Casts Cloud Over Pipeline Route|http://www.moscowtimes.ru/article/1009/42/369783.htm]]'' by Anatoly Medetsky. The Moscow Times. August 14, 2008
''[[Oil and Natural Gas Fuel Caspian War|http://news.newamericamedia.org/news/view_article.html?article_id=a293f37a1e45330aaaa5e138dab40b06]]'' by Michael Klare. New America Media. August 12, 2008
[[Putin accused of plagiarising his PhD thesis|http://accidentalrussophile.blogspot.com/2006/03/putin-accused-of-plagiarising-phd.html]] by W. Shedd. March 26, 2006
''[[Vladimir Putin on Russian energy policy|http://www.inthenationalinterest.com/Articles/November2005/November2005Balzer.html]]'' by Harley Balzer. The national interest. November, 2005
''[[Day-by-day: Georgia-Russia crisis|http://news.bbc.co.uk/2/hi/europe/7551576.stm]]''. BBC News
''[[Ex-ambassador blames Georgia for war with Russia|http://wiredispatch.com/news/?id=467850]]'' by Matt Siegel, AP News. November 26, 2008. "Former diplomat from Georgia blames his country for sparking war with Russia"
''[[Georgia fired first shot, say UK monitors|http://www.timesonline.co.uk/tol/news/world/europe/article5114401.ece]]'' by Jon Swain, The Sunday Times. November 9, 2008
''[[Georgia Claims on Russia War Called Into Question|http://www.nytimes.com/glogin?URI=http://www.nytimes.com/2008/11/07/world/europe/07georgia.html&OQ=_rQ3D4Q26partnerQ3DrssuserlandQ26emcQ3DrssQ26pagewantedQ3DallQ26orefQ3DsloginQ26orefQ3DsloginQ26orefQ3Dslogin&OP=20ee7cb5Q2F)s0S)!gQ27Q60Q22ggqx)xQ3EQ3EE)LL)Q3E5)sgQ227!)0Q5CQ22gR0)Q3E5Q7B0gQ22Q7BhuQ25Q23qd7]]'' by C. J. CHIVERS and ELLEN BARRY. November 7, 2008
''[[AAAS satellite image analysis reveals South Ossetian damage|http://www.physorg.com/news142776079.html]]''. //Shows 202 damaged structures on 10 August, plus an additional 424 damaged structures on 19 August that did not appear damaged in the earlier image, for a total of 626 points of destruction affecting civilians, the American Association for the Advancement of Science (AAAS) has reported//. october 9, 2008
''[[Saakashvili "planned S. Ossetia invasion" -ex-minister|http://www.alertnet.org/thenews/newsdesk/LD123780.htm]]'' by Brian Rohan, Reuters. //"Saakashvili's offensive only aimed at taking Tskhinvali, because he thought the U.S. would block a Russian reaction through diplomatic channels.""After 2006 we didn't have the possibility for success by military means...". Georgian president could have ordered his army to defend several key towns from the Russians but "let the Russians in to avoid criticism and appear more of a victim". Washington had always made clear to the Georgian leadership that it would not support an invasion"//
''[[OSCE observers fault Georgians in conflict|http://www.monstersandcritics.com/news/europe/news/article_1427854.php/Spiegel_OSCE_observers_fault_Georgians_in_conflict]]''. Europe News. August 30, 2008
''[[The Story of Tskhinvali's Resistance|http://www.spiegel.de/international/world/0,1518,574516,00.html]]'' by Uwe Klussmann. Spiegel. August 26, 2008
''[[US ambassador in Moscow: Russia's first Georgia move legitimate|http://www.ynetnews.com/articles/0,7340,L-3586257,00.html]]''. Reuters. August 22, 2008
''[[Russian fighting machine is showing its age, say military analysts|http://www.timesonline.co.uk/tol/news/world/europe/article4583383.ece]]'' by Michael Evans and Kevin Flynn. The Times. August 22, 2008
''[[Ossetian crisis: Who started it?|http://news.bbc.co.uk/2/hi/europe/7571096.stm]]'' by Jenny Norton. BBC News. August 19, 2008
''[[How crisis sparked|http://www.telegraph.co.uk/news/worldnews/europe/georgia/2570754/Georgia-conflict-How-a-flat-tyre-took-the-Caucasus-to-war.html]]''. //Georgia conflict: How a flat tyre took the Caucasus to war// by Damien ~McElroy. The Telegraph. August 17, 2008
''[[Russians losing propaganda war|http://news.bbc.co.uk/2/hi/europe/7562611.stm]]'' by Paul Reynolds. BBC News. August 15, 2008
''[[The world's first cyberwar|Cyberwar]]''
''[[Countdown to conflict|http://english.aljazeera.net/news/europe/2008/08/2008814202339612665.html]]''. //Timeline: Countdown to conflict// by Al Jazeera. August 15, 2008
/***
|''Name:''|ForEachTiddlerPlugin|
|''Version:''|1.0.8 (2007-04-12)|
|''Source:''|http://tiddlywiki.abego-software.de/#ForEachTiddlerPlugin|
|''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-2007 [[abego Software|http://www.abego-software.de]]|
|''TiddlyWiki:''|1.2.38+, 2.0|
|''Browser:''|Firefox 1.0.4+; Firefox 1.5; InternetExplorer 6.0|
!Description

Create customizable lists, tables etc. for your selections of tiddlers. Specify the tiddlers to include and their order through a powerful language.

''Syntax:'' 
|>|{{{<<}}}''forEachTiddler'' [''in'' //tiddlyWikiPath//] [''where'' //whereCondition//] [''sortBy'' //sortExpression// [''ascending'' //or// ''descending'']] [''script'' //scriptText//] [//action// [//actionParameters//]]{{{>>}}}|
|//tiddlyWikiPath//|The filepath to the TiddlyWiki the macro should work on. When missing the current TiddlyWiki is used.|
|//whereCondition//|(quoted) JavaScript boolean expression. May refer to the build-in variables {{{tiddler}}} and  {{{context}}}.|
|//sortExpression//|(quoted) JavaScript expression returning "comparable" objects (using '{{{<}}}','{{{>}}}','{{{==}}}'. May refer to the build-in variables {{{tiddler}}} and  {{{context}}}.|
|//scriptText//|(quoted) JavaScript text. Typically defines JavaScript functions that are called by the various JavaScript expressions (whereClause, sortClause, action arguments,...)|
|//action//|The action that should be performed on every selected tiddler, in the given order. By default the actions [[addToList|AddToListAction]] and [[write|WriteAction]] are supported. When no action is specified [[addToList|AddToListAction]]  is used.|
|//actionParameters//|(action specific) parameters the action may refer while processing the tiddlers (see action descriptions for details). <<tiddler [[JavaScript in actionParameters]]>>|
|>|~~Syntax formatting: Keywords in ''bold'', optional parts in [...]. 'or' means that exactly one of the two alternatives must exist.~~|

See details see [[ForEachTiddlerMacro]] and [[ForEachTiddlerExamples]].

!Revision history
* v1.0.8 (2007-04-12)
** Adapted to latest TiddlyWiki 2.2 Beta importTiddlyWiki API (introduced with changeset 2004). TiddlyWiki 2.2 Beta builds prior to changeset 2004 are no longer supported (but TiddlyWiki 2.1 and earlier, of cause)
* v1.0.7 (2007-03-28)
** Also support "pre" formatted TiddlyWikis (introduced with TW 2.2) (when using "in" clause to work on external tiddlers)
* v1.0.6 (2006-09-16)
** Context provides "viewerTiddler", i.e. the tiddler used to view the macro. Most times this is equal to the "inTiddler", but when using the "tiddler" macro both may be different.
** Support "begin", "end" and "none" expressions in "write" action
* v1.0.5 (2006-02-05)
** Pass tiddler containing the macro with wikify, context object also holds reference to tiddler containing the macro ("inTiddler"). Thanks to SimonBaird.
** Support Firefox 1.5.0.1
** Internal
*** Make "JSLint" conform
*** "Only install once"
* v1.0.4 (2006-01-06)
** Support TiddlyWiki 2.0
* v1.0.3 (2005-12-22)
** Features: 
*** Write output to a file supports multi-byte environments (Thanks to Bram Chen) 
*** Provide API to access the forEachTiddler functionality directly through JavaScript (see getTiddlers and performMacro)
** Enhancements:
*** Improved error messages on InternetExplorer.
* v1.0.2 (2005-12-10)
** Features: 
*** context object also holds reference to store (TiddlyWiki)
** Fixed Bugs: 
*** ForEachTiddler 1.0.1 has broken support on win32 Opera 8.51 (Thanks to BrunoSabin for reporting)
* v1.0.1 (2005-12-08)
** Features: 
*** Access tiddlers stored in separated TiddlyWikis through the "in" option. I.e. you are no longer limited to only work on the "current TiddlyWiki".
*** Write output to an external file using the "toFile" option of the "write" action. With this option you may write your customized tiddler exports.
*** Use the "script" section to define "helper" JavaScript functions etc. to be used in the various JavaScript expressions (whereClause, sortClause, action arguments,...).
*** Access and store context information for the current forEachTiddler invocation (through the build-in "context" object) .
*** Improved script evaluation (for where/sort clause and write scripts).
* v1.0.0 (2005-11-20)
** initial version

!Code
***/
//{{{

	
//============================================================================
//============================================================================
//		   ForEachTiddlerPlugin
//============================================================================
//============================================================================

// Only install once
if (!version.extensions.ForEachTiddlerPlugin) {

if (!window.abego) window.abego = {};

version.extensions.ForEachTiddlerPlugin = {
	major: 1, minor: 0, revision: 8, 
	date: new Date(2007,3,12), 
	source: "http://tiddlywiki.abego-software.de/#ForEachTiddlerPlugin",
	licence: "[[BSD open source license (abego Software)|http://www.abego-software.de/legal/apl-v10.html]]",
	copyright: "Copyright (c) abego Software GmbH, 2005-2007 (www.abego-software.de)"
};

// For backward compatibility with TW 1.2.x
//
if (!TiddlyWiki.prototype.forEachTiddler) {
	TiddlyWiki.prototype.forEachTiddler = function(callback) {
		for(var t in this.tiddlers) {
			callback.call(this,t,this.tiddlers[t]);
		}
	};
}

//============================================================================
// forEachTiddler Macro
//============================================================================

version.extensions.forEachTiddler = {
	major: 1, minor: 0, revision: 8, date: new Date(2007,3,12), provider: "http://tiddlywiki.abego-software.de"};

// ---------------------------------------------------------------------------
// Configurations and constants 
// ---------------------------------------------------------------------------

config.macros.forEachTiddler = {
	 // Standard Properties
	 label: "forEachTiddler",
	 prompt: "Perform actions on a (sorted) selection of tiddlers",

	 // actions
	 actions: {
		 addToList: {},
		 write: {}
	 }
};

// ---------------------------------------------------------------------------
//  The forEachTiddler Macro Handler 
// ---------------------------------------------------------------------------

config.macros.forEachTiddler.getContainingTiddler = function(e) {
	while(e && !hasClass(e,"tiddler"))
		e = e.parentNode;
	var title = e ? e.getAttribute("tiddler") : null; 
	return title ? store.getTiddler(title) : null;
};

config.macros.forEachTiddler.handler = function(place,macroName,params,wikifier,paramString,tiddler) {
	// config.macros.forEachTiddler.traceMacroCall(place,macroName,params,wikifier,paramString,tiddler);

	if (!tiddler) tiddler = config.macros.forEachTiddler.getContainingTiddler(place);
	// --- Parsing ------------------------------------------

	var i = 0; // index running over the params
	// Parse the "in" clause
	var tiddlyWikiPath = undefined;
	if ((i < params.length) && params[i] == "in") {
		i++;
		if (i >= params.length) {
			this.handleError(place, "TiddlyWiki path expected behind 'in'.");
			return;
		}
		tiddlyWikiPath = this.paramEncode((i < params.length) ? params[i] : "");
		i++;
	}

	// Parse the where clause
	var whereClause ="true";
	if ((i < params.length) && params[i] == "where") {
		i++;
		whereClause = this.paramEncode((i < params.length) ? params[i] : "");
		i++;
	}

	// Parse the sort stuff
	var sortClause = null;
	var sortAscending = true; 
	if ((i < params.length) && params[i] == "sortBy") {
		i++;
		if (i >= params.length) {
			this.handleError(place, "sortClause missing behind 'sortBy'.");
			return;
		}
		sortClause = this.paramEncode(params[i]);
		i++;

		if ((i < params.length) && (params[i] == "ascending" || params[i] == "descending")) {
			 sortAscending = params[i] == "ascending";
			 i++;
		}
	}

	// Parse the script
	var scriptText = null;
	if ((i < params.length) && params[i] == "script") {
		i++;
		scriptText = this.paramEncode((i < params.length) ? params[i] : "");
		i++;
	}

	// Parse the action. 
	// When we are already at the end use the default action
	var actionName = "addToList";
	if (i < params.length) {
	   if (!config.macros.forEachTiddler.actions[params[i]]) {
			this.handleError(place, "Unknown action '"+params[i]+"'.");
			return;
		} else {
			actionName = params[i]; 
			i++;
		}
	} 
	
	// Get the action parameter
	// (the parsing is done inside the individual action implementation.)
	var actionParameter = params.slice(i);


	// --- Processing ------------------------------------------
	try {
		this.performMacro({
				place: place, 
				inTiddler: tiddler,
				whereClause: whereClause, 
				sortClause: sortClause, 
				sortAscending: sortAscending, 
				actionName: actionName, 
				actionParameter: actionParameter, 
				scriptText: scriptText, 
				tiddlyWikiPath: tiddlyWikiPath});

	} catch (e) {
		this.handleError(place, e);
	}
};

// Returns an object with properties "tiddlers" and "context".
// tiddlers holds the (sorted) tiddlers selected by the parameter,
// context the context of the execution of the macro.
//
// The action is not yet performed.
//
// @parameter see performMacro
//
config.macros.forEachTiddler.getTiddlersAndContext = function(parameter) {

	var context = config.macros.forEachTiddler.createContext(parameter.place, parameter.whereClause, parameter.sortClause, parameter.sortAscending, parameter.actionName, parameter.actionParameter, parameter.scriptText, parameter.tiddlyWikiPath, parameter.inTiddler);

	var tiddlyWiki = parameter.tiddlyWikiPath ? this.loadTiddlyWiki(parameter.tiddlyWikiPath) : store;
	context["tiddlyWiki"] = tiddlyWiki;
	
	// Get the tiddlers, as defined by the whereClause
	var tiddlers = this.findTiddlers(parameter.whereClause, context, tiddlyWiki);
	context["tiddlers"] = tiddlers;

	// Sort the tiddlers, when sorting is required.
	if (parameter.sortClause) {
		this.sortTiddlers(tiddlers, parameter.sortClause, parameter.sortAscending, context);
	}

	return {tiddlers: tiddlers, context: context};
};

// Returns the (sorted) tiddlers selected by the parameter.
//
// The action is not yet performed.
//
// @parameter see performMacro
//
config.macros.forEachTiddler.getTiddlers = function(parameter) {
	return this.getTiddlersAndContext(parameter).tiddlers;
};

// Performs the macros with the given parameter.
//
// @param parameter holds the parameter of the macro as separate properties.
//				  The following properties are supported:
//
//						place
//						whereClause
//						sortClause
//						sortAscending
//						actionName
//						actionParameter
//						scriptText
//						tiddlyWikiPath
//
//					All properties are optional. 
//					For most actions the place property must be defined.
//
config.macros.forEachTiddler.performMacro = function(parameter) {
	var tiddlersAndContext = this.getTiddlersAndContext(parameter);

	// Perform the action
	var actionName = parameter.actionName ? parameter.actionName : "addToList";
	var action = config.macros.forEachTiddler.actions[actionName];
	if (!action) {
		this.handleError(parameter.place, "Unknown action '"+actionName+"'.");
		return;
	}

	var actionHandler = action.handler;
	actionHandler(parameter.place, tiddlersAndContext.tiddlers, parameter.actionParameter, tiddlersAndContext.context);
};

// ---------------------------------------------------------------------------
//  The actions 
// ---------------------------------------------------------------------------

// Internal.
//
// --- The addToList Action -----------------------------------------------
//
config.macros.forEachTiddler.actions.addToList.handler = function(place, tiddlers, parameter, context) {
	// Parse the parameter
	var p = 0;

	// Check for extra parameters
	if (parameter.length > p) {
		config.macros.forEachTiddler.createExtraParameterErrorElement(place, "addToList", parameter, p);
		return;
	}

	// Perform the action.
	var list = document.createElement("ul");
	place.appendChild(list);
	for (var i = 0; i < tiddlers.length; i++) {
		var tiddler = tiddlers[i];
		var listItem = document.createElement("li");
		list.appendChild(listItem);
		createTiddlyLink(listItem, tiddler.title, true);
	}
};

abego.parseNamedParameter = function(name, parameter, i) {
	var beginExpression = null;
	if ((i < parameter.length) && parameter[i] == name) {
		i++;
		if (i >= parameter.length) {
			throw "Missing text behind '%0'".format([name]);
		}
		
		return config.macros.forEachTiddler.paramEncode(parameter[i]);
	}
	return null;
}

// Internal.
//
// --- The write Action ---------------------------------------------------
//
config.macros.forEachTiddler.actions.write.handler = function(place, tiddlers, parameter, context) {
	// Parse the parameter
	var p = 0;
	if (p >= parameter.length) {
		this.handleError(place, "Missing expression behind 'write'.");
		return;
	}

	var textExpression = config.macros.forEachTiddler.paramEncode(parameter[p]);
	p++;

	// Parse the "begin" option
	var beginExpression = abego.parseNamedParameter("begin", parameter, p);
	if (beginExpression !== null) 
		p += 2;
	var endExpression = abego.parseNamedParameter("end", parameter, p);
	if (endExpression !== null) 
		p += 2;
	var noneExpression = abego.parseNamedParameter("none", parameter, p);
	if (noneExpression !== null) 
		p += 2;

	// Parse the "toFile" option
	var filename = null;
	var lineSeparator = undefined;
	if ((p < parameter.length) && parameter[p] == "toFile") {
		p++;
		if (p >= parameter.length) {
			this.handleError(place, "Filename expected behind 'toFile' of 'write' action.");
			return;
		}
		
		filename = config.macros.forEachTiddler.getLocalPath(config.macros.forEachTiddler.paramEncode(parameter[p]));
		p++;
		if ((p < parameter.length) && parameter[p] == "withLineSeparator") {
			p++;
			if (p >= parameter.length) {
				this.handleError(place, "Line separator text expected behind 'withLineSeparator' of 'write' action.");
				return;
			}
			lineSeparator = config.macros.forEachTiddler.paramEncode(parameter[p]);
			p++;
		}
	}
	
	// Check for extra parameters
	if (parameter.length > p) {
		config.macros.forEachTiddler.createExtraParameterErrorElement(place, "write", parameter, p);
		return;
	}

	// Perform the action.
	var func = config.macros.forEachTiddler.getEvalTiddlerFunction(textExpression, context);
	var count = tiddlers.length;
	var text = "";
	if (count > 0 && beginExpression)
		text += config.macros.forEachTiddler.getEvalTiddlerFunction(beginExpression, context)(undefined, context, count, undefined);
	
	for (var i = 0; i < count; i++) {
		var tiddler = tiddlers[i];
		text += func(tiddler, context, count, i);
	}
	
	if (count > 0 && endExpression)
		text += config.macros.forEachTiddler.getEvalTiddlerFunction(endExpression, context)(undefined, context, count, undefined);

	if (count == 0 && noneExpression) 
		text += config.macros.forEachTiddler.getEvalTiddlerFunction(noneExpression, context)(undefined, context, count, undefined);
		

	if (filename) {
		if (lineSeparator !== undefined) {
			lineSeparator = lineSeparator.replace(/\\n/mg, "\n").replace(/\\r/mg, "\r");
			text = text.replace(/\n/mg,lineSeparator);
		}
		saveFile(filename, convertUnicodeToUTF8(text));
	} else {
		var wrapper = createTiddlyElement(place, "span");
		wikify(text, wrapper, null/* highlightRegExp */, context.inTiddler);
	}
};


// ---------------------------------------------------------------------------
//  Helpers
// ---------------------------------------------------------------------------

// Internal.
//
config.macros.forEachTiddler.createContext = function(placeParam, whereClauseParam, sortClauseParam, sortAscendingParam, actionNameParam, actionParameterParam, scriptText, tiddlyWikiPathParam, inTiddlerParam) {
	return {
		place : placeParam, 
		whereClause : whereClauseParam, 
		sortClause : sortClauseParam, 
		sortAscending : sortAscendingParam, 
		script : scriptText,
		actionName : actionNameParam, 
		actionParameter : actionParameterParam,
		tiddlyWikiPath : tiddlyWikiPathParam,
		inTiddler : inTiddlerParam, // the tiddler containing the <<forEachTiddler ...>> macro call.
		viewerTiddler : config.macros.forEachTiddler.getContainingTiddler(placeParam) // the tiddler showing the forEachTiddler result
	};
};

// Internal.
//
// Returns a TiddlyWiki with the tiddlers loaded from the TiddlyWiki of 
// the given path.
//
config.macros.forEachTiddler.loadTiddlyWiki = function(path, idPrefix) {
	if (!idPrefix) {
		idPrefix = "store";
	}
	var lenPrefix = idPrefix.length;
	
	// Read the content of the given file
	var content = loadFile(this.getLocalPath(path));
	if(content === null) {
		throw "TiddlyWiki '"+path+"' not found.";
	}
	
	var tiddlyWiki = new TiddlyWiki();

	// Starting with TW 2.2 there is a helper function to import the tiddlers
	if (tiddlyWiki.importTiddlyWiki) {
		if (!tiddlyWiki.importTiddlyWiki(content))
			throw "File '"+path+"' is not a TiddlyWiki.";
		tiddlyWiki.dirty = false;
		return tiddlyWiki;
	}
	
	// The legacy code, for TW < 2.2
	
	// Locate the storeArea div's
	var posOpeningDiv = content.indexOf(startSaveArea);
	var posClosingDiv = content.lastIndexOf(endSaveArea);
	if((posOpeningDiv == -1) || (posClosingDiv == -1)) {
		throw "File '"+path+"' is not a TiddlyWiki.";
	}
	var storageText = content.substr(posOpeningDiv + startSaveArea.length, posClosingDiv);
	
	// Create a "div" element that contains the storage text
	var myStorageDiv = document.createElement("div");
	myStorageDiv.innerHTML = storageText;
	myStorageDiv.normalize();
	
	// Create all tiddlers in a new TiddlyWiki
	// (following code is modified copy of TiddlyWiki.prototype.loadFromDiv)
	var store = myStorageDiv.childNodes;
	for(var t = 0; t < store.length; t++) {
		var e = store[t];
		var title = null;
		if(e.getAttribute)
			title = e.getAttribute("tiddler");
		if(!title && e.id && e.id.substr(0,lenPrefix) == idPrefix)
			title = e.id.substr(lenPrefix);
		if(title && title !== "") {
			var tiddler = tiddlyWiki.createTiddler(title);
			tiddler.loadFromDiv(e,title);
		}
	}
	tiddlyWiki.dirty = false;

	return tiddlyWiki;
};


	
// Internal.
//
// Returns a function that has a function body returning the given javaScriptExpression.
// The function has the parameters:
// 
//	 (tiddler, context, count, index)
//
config.macros.forEachTiddler.getEvalTiddlerFunction = function (javaScriptExpression, context) {
	var script = context["script"];
	var functionText = "var theFunction = function(tiddler, context, count, index) { return "+javaScriptExpression+"}";
	var fullText = (script ? script+";" : "")+functionText+";theFunction;";
	return eval(fullText);
};

// Internal.
//
config.macros.forEachTiddler.findTiddlers = function(whereClause, context, tiddlyWiki) {
	var result = [];
	var func = config.macros.forEachTiddler.getEvalTiddlerFunction(whereClause, context);
	tiddlyWiki.forEachTiddler(function(title,tiddler) {
		if (func(tiddler, context, undefined, undefined)) {
			result.push(tiddler);
		}
	});
	return result;
};

// Internal.
//
config.macros.forEachTiddler.createExtraParameterErrorElement = function(place, actionName, parameter, firstUnusedIndex) {
	var message = "Extra parameter behind '"+actionName+"':";
	for (var i = firstUnusedIndex; i < parameter.length; i++) {
		message += " "+parameter[i];
	}
	this.handleError(place, message);
};

// Internal.
//
config.macros.forEachTiddler.sortAscending = function(tiddlerA, tiddlerB) {
	var result = 
		(tiddlerA.forEachTiddlerSortValue == tiddlerB.forEachTiddlerSortValue) 
			? 0
			: (tiddlerA.forEachTiddlerSortValue < tiddlerB.forEachTiddlerSortValue)
			   ? -1 
			   : +1; 
	return result;
};

// Internal.
//
config.macros.forEachTiddler.sortDescending = function(tiddlerA, tiddlerB) {
	var result = 
		(tiddlerA.forEachTiddlerSortValue == tiddlerB.forEachTiddlerSortValue) 
			? 0
			: (tiddlerA.forEachTiddlerSortValue < tiddlerB.forEachTiddlerSortValue)
			   ? +1 
			   : -1; 
	return result;
};

// Internal.
//
config.macros.forEachTiddler.sortTiddlers = function(tiddlers, sortClause, ascending, context) {
	// To avoid evaluating the sortClause whenever two items are compared 
	// we pre-calculate the sortValue for every item in the array and store it in a 
	// temporary property ("forEachTiddlerSortValue") of the tiddlers.
	var func = config.macros.forEachTiddler.getEvalTiddlerFunction(sortClause, context);
	var count = tiddlers.length;
	var i;
	for (i = 0; i < count; i++) {
		var tiddler = tiddlers[i];
		tiddler.forEachTiddlerSortValue = func(tiddler,context, undefined, undefined);
	}

	// Do the sorting
	tiddlers.sort(ascending ? this.sortAscending : this.sortDescending);

	// Delete the temporary property that holds the sortValue.	
	for (i = 0; i < tiddlers.length; i++) {
		delete tiddlers[i].forEachTiddlerSortValue;
	}
};


// Internal.
//
config.macros.forEachTiddler.trace = function(message) {
	displayMessage(message);
};

// Internal.
//
config.macros.forEachTiddler.traceMacroCall = function(place,macroName,params) {
	var message ="<<"+macroName;
	for (var i = 0; i < params.length; i++) {
		message += " "+params[i];
	}
	message += ">>";
	displayMessage(message);
};


// Internal.
//
// Creates an element that holds an error message
// 
config.macros.forEachTiddler.createErrorElement = function(place, exception) {
	var message = (exception.description) ? exception.description : exception.toString();
	return createTiddlyElement(place,"span",null,"forEachTiddlerError","<<forEachTiddler ...>>: "+message);
};

// Internal.
//
// @param place [may be null]
//
config.macros.forEachTiddler.handleError = function(place, exception) {
	if (place) {
		this.createErrorElement(place, exception);
	} else {
		throw exception;
	}
};

// Internal.
//
// Encodes the given string.
//
// Replaces 
//	 "$))" to ">>"
//	 "$)" to ">"
//
config.macros.forEachTiddler.paramEncode = function(s) {
	var reGTGT = new RegExp("\\$\\)\\)","mg");
	var reGT = new RegExp("\\$\\)","mg");
	return s.replace(reGTGT, ">>").replace(reGT, ">");
};

// Internal.
//
// Returns the given original path (that is a file path, starting with "file:")
// as a path to a local file, in the systems native file format.
//
// Location information in the originalPath (i.e. the "#" and stuff following)
// is stripped.
// 
config.macros.forEachTiddler.getLocalPath = function(originalPath) {
	// Remove any location part of the URL
	var hashPos = originalPath.indexOf("#");
	if(hashPos != -1)
		originalPath = originalPath.substr(0,hashPos);
	// Convert to a native file format assuming
	// "file:///x:/path/path/path..." - pc local file --> "x:\path\path\path..."
	// "file://///server/share/path/path/path..." - FireFox pc network file --> "\\server\share\path\path\path..."
	// "file:///path/path/path..." - mac/unix local file --> "/path/path/path..."
	// "file://server/share/path/path/path..." - pc network file --> "\\server\share\path\path\path..."
	var localPath;
	if(originalPath.charAt(9) == ":") // pc local file
		localPath = unescape(originalPath.substr(8)).replace(new RegExp("/","g"),"\\");
	else if(originalPath.indexOf("file://///") === 0) // FireFox pc network file
		localPath = "\\\\" + unescape(originalPath.substr(10)).replace(new RegExp("/","g"),"\\");
	else if(originalPath.indexOf("file:///") === 0) // mac/unix local file
		localPath = unescape(originalPath.substr(7));
	else if(originalPath.indexOf("file:/") === 0) // mac/unix local file
		localPath = unescape(originalPath.substr(5));
	else // pc network file
		localPath = "\\\\" + unescape(originalPath.substr(7)).replace(new RegExp("/","g"),"\\");	
	return localPath;
};

// ---------------------------------------------------------------------------
// Stylesheet Extensions (may be overridden by local StyleSheet)
// ---------------------------------------------------------------------------
//
setStylesheet(
	".forEachTiddlerError{color: #ffffff;background-color: #880000;}",
	"forEachTiddler");

//============================================================================
// End of forEachTiddler Macro
//============================================================================


//============================================================================
// String.startsWith Function
//============================================================================
//
// Returns true if the string starts with the given prefix, false otherwise.
//
version.extensions["String.startsWith"] = {major: 1, minor: 0, revision: 0, date: new Date(2005,11,20), provider: "http://tiddlywiki.abego-software.de"};
//
String.prototype.startsWith = function(prefix) {
	var n =  prefix.length;
	return (this.length >= n) && (this.slice(0, n) == prefix);
};



//============================================================================
// String.endsWith Function
//============================================================================
//
// Returns true if the string ends with the given suffix, false otherwise.
//
version.extensions["String.endsWith"] = {major: 1, minor: 0, revision: 0, date: new Date(2005,11,20), provider: "http://tiddlywiki.abego-software.de"};
//
String.prototype.endsWith = function(suffix) {
	var n = suffix.length;
	return (this.length >= n) && (this.right(n) == suffix);
};


//============================================================================
// String.contains Function
//============================================================================
//
// Returns true when the string contains the given substring, false otherwise.
//
version.extensions["String.contains"] = {major: 1, minor: 0, revision: 0, date: new Date(2005,11,20), provider: "http://tiddlywiki.abego-software.de"};
//
String.prototype.contains = function(substring) {
	return this.indexOf(substring) >= 0;
};

//============================================================================
// Array.indexOf Function
//============================================================================
//
// Returns the index of the first occurance of the given item in the array or 
// -1 when no such item exists.
//
// @param item [may be null]
//
version.extensions["Array.indexOf"] = {major: 1, minor: 0, revision: 0, date: new Date(2005,11,20), provider: "http://tiddlywiki.abego-software.de"};
//
Array.prototype.indexOf = function(item) {
	for (var i = 0; i < this.length; i++) {
		if (this[i] == item) {
			return i;
		}
	}
	return -1;
};

//============================================================================
// Array.contains Function
//============================================================================
//
// Returns true when the array contains the given item, otherwise false. 
//
// @param item [may be null]
//
version.extensions["Array.contains"] = {major: 1, minor: 0, revision: 0, date: new Date(2005,11,20), provider: "http://tiddlywiki.abego-software.de"};
//
Array.prototype.contains = function(item) {
	return (this.indexOf(item) >= 0);
};

//============================================================================
// Array.containsAny Function
//============================================================================
//
// Returns true when the array contains at least one of the elements 
// of the item. Otherwise (or when items contains no elements) false is returned.
//
version.extensions["Array.containsAny"] = {major: 1, minor: 0, revision: 0, date: new Date(2005,11,20), provider: "http://tiddlywiki.abego-software.de"};
//
Array.prototype.containsAny = function(items) {
	for(var i = 0; i < items.length; i++) {
		if (this.contains(items[i])) {
			return true;
		}
	}
	return false;
};


//============================================================================
// Array.containsAll Function
//============================================================================
//
// Returns true when the array contains all the items, otherwise false.
// 
// When items is null false is returned (even if the array contains a null).
//
// @param items [may be null] 
//
version.extensions["Array.containsAll"] = {major: 1, minor: 0, revision: 0, date: new Date(2005,11,20), provider: "http://tiddlywiki.abego-software.de"};
//
Array.prototype.containsAll = function(items) {
	for(var i = 0; i < items.length; i++) {
		if (!this.contains(items[i])) {
			return false;
		}
	}
	return true;
};


} // of "install only once"

// Used Globals (for JSLint) ==============
// ... DOM
/*global 	document */
// ... TiddlyWiki Core
/*global 	convertUnicodeToUTF8, createTiddlyElement, createTiddlyLink, 
			displayMessage, endSaveArea, hasClass, loadFile, saveFile, 
			startSaveArea, store, wikify */
//}}}


/***
!Licence and Copyright
Copyright (c) abego Software ~GmbH, 2005 ([[www.abego-software.de|http://www.abego-software.de]])

Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:

Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.

Redistributions in binary form must reproduce the above copyright notice, this
list of conditions and the following disclaimer in the documentation and/or other
materials provided with the distribution.

Neither the name of abego Software nor the names of its contributors may be
used to endorse or promote products derived from this software without specific
prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
DAMAGE.
***/

/***
|Name|FramedLinksPlugin|
|Source|http://www.TiddlyTools.com/#FramedLinksPlugin|
|Version|1.1.0|
|Author|Eric Shulman - ELS Design Studios|
|License|http://www.TiddlyTools.com/#LegalStatements <br>and [[Creative Commons Attribution-ShareAlike 2.5 License|http://creativecommons.org/licenses/by-sa/2.5/]]|
|~CoreVersion|2.1|
|Type|plugin|
|Requires||
|Overrides|createExternalLink|
|Options|##Configuration|
|Description|clicking an external link opens an IFRAME following the link instead of opening a new tab/window|
This plugin causes clicks on external links to be rendered into inline frames (~IFRAMEs) instead of opening them in new browser tabs/windows.
!!!!!Usage
<<<
Just place an external link into your tiddler content using standard TiddlyWiki syntax.  When the {{{chkFramedLinks}}} checkbox is enabled or a tiddler is tagged with 'framedLinks' (see Configuration section, below), an IFRAME will be created dynamically whenever you click the external link.  Clicking on the link again removes the IFRAME.  You can hold down a modifier key (shift, control, or alt) while clicking a specific link to ''temporarily'' bypass the plugin-enhanced IFRAME handling and use the standard link handling behavior for that link.
<<<
!!!!!Configuration
<<<
<<option chkFramedLinks>> display inline frames for all external links
&nbsp; &nbsp; {{{usage: <<option chkFramedLinks>>}}}
<<option chkFramedLinksTag>> display inline frames for external links in tiddlers tagged with: <<option txtFramedLinksTag>> 
&nbsp; &nbsp; {{{usage: <<option chkFramedLinksTag>> and <<option txtFramedLinksTag>>}}}
IFRAME size (CSS units: %, em, px, cm, in) - width: <<option txtFrameWidth>> height: <<option txtFrameHeight>>
&nbsp; &nbsp; {{{usage: <<option txtFrameWidth>> <<option txtFrameHeight>>}}}
<<<
!!!!!Examples
<<<
Try these links:
*http://www.TiddlyWiki.com
*http://www.TiddlyTools.com
*http://groups.google.com/group/TiddlyWiki/topics
<<<
!!!!!Revisions
<<<
2008.09.13 [1.1.0] added support to selectively enable embedded IFRAMEs if the containing tiddler is tagged with 'framedLinks'
2007.11.29 [1.0.5] added slider animation and improved CSS handling for IFRAME height/width to maximize display area
2007.11.29 [1.0.0] initial release
<<<
!!!!!Code
***/
//{{{
version.extensions.FramedLinksPlugin= {major: 1, minor: 1, revision: 0, date: new Date(2008,9,13)};

var co=config.options; // abbreviation
if (co.chkFramedLinks==undefined) co.chkFramedLinks=false;
if (co.chkFramedLinksTag==undefined) co.chkFramedLinksTag=true;
if (co.txtFramedLinksTag==undefined) co.txtFramedLinksTag="framedLinks";
if (co.txtFrameWidth==undefined) co.txtFrameWidth="100%";
if (co.txtFrameHeight==undefined) co.txtFrameHeight="80%";

window.framedLinks_createExternalLink=createExternalLink;
window.createExternalLink=function(place,url)
{
	var link=this.framedLinks_createExternalLink.apply(this,arguments);
	link.onclick=function(ev) { var e=ev?ev:window.event;
		var co=config.options; // abbreviation
		var here=story.findContainingTiddler(this);
		var enabled=co.chkFramedLinks || co.chkFramedLinksTag && here
			&& store.getTiddler(here.getAttribute("tiddler")).isTagged(co.txtFramedLinksTag);
		if (!enabled || e.ctrlKey || e.shiftKey || e.altKey) return; // BYPASS
		var p=this.parentNode; 
		var f=this.nextSibling?this.nextSibling.firstChild:null; // get the IFRAME... maybe...
		var w=co.txtFrameWidth; if (!w || !w.length) w="100%";
		var h=co.txtFrameHeight; if (!h || !h.length) h="80%";
		if (h.indexOf("%")) h=(findWindowHeight()*h.replace(/%/,"")/100)+"px"; // calc height as % of window
		var showing=f && f.nodeName.toUpperCase()=="IFRAME"; // does IFRAME really exist?
		var stretchCell=p.nodeName.toUpperCase()=="TD" && w.indexOf("%")!=-1 && w.replace(/%/,"")>=100;
		if (!showing) { // create an iframe
			link.style.display="block"; // force IFRAME onto line following link
			if (stretchCell) { p.setAttribute("savedWidth",p.style.width); p.style.width="100%"; } // adjust TD so IFRAME stretches
			var wrapper=createTiddlyElement(null,"span"); // wrapper for slider animation
			wrapper.setAttribute("url",this.href); // for async loading of frame after animation completes
			var f=createTiddlyElement(wrapper,"iframe"); // create IFRAME
			f.style.backgroundColor="#fff"; f.style.width=w; f.style.height=h;
			p.insertBefore(wrapper,this.nextSibling);
			function loadURL(wrapper) { var f=wrapper.firstChild; var url=wrapper.getAttribute("url");
				var d=f.contentDocument?f.contentDocument:(f.contentWindow?f.contentWindow.document:f.document);
				d.open(); d.writeln("<html>connecting to "+url+"</html>"); d.close();
				try { f.src=url; } // if the iframe can't handle the href
				catch(e) { alert(e.description?e.description:e.toString()); } // ... then report the error
				window.scrollTo(0,ensureVisible(wrapper));
			}
			if (!co.chkAnimate) loadURL(wrapper);
			else {
				var morph=new Slider(wrapper,true);
				morph.callback=loadURL;
				morph.properties.push({style: 'width', start: 0, end: 100, template: '%0%'});
				anim.startAnimating(morph);
			}
		} else { // remove iframe
			link.style.display="inline"; // restore link style
			if (stretchCell) p.style.width=p.getAttribute("savedWidth"); // restore previous width of TD
			if (!co.chkAnimate) p.removeChild(f.parentNode);
			else {
				var morph=new Slider(f.parentNode,false,false,"all");
				morph.properties.push({style: 'width', start: 100, end: 0, template: '%0%'});
				anim.startAnimating(morph);
			}
		}
		e.cancelBubble=true; if (e.stopPropagation) e.stopPropagation(); return false;
	}
	return link;
}
//}}}
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>>
''[[Strategic implications of Russian invasion|http://www.turkishdailynews.com.tr/article.php?enewsid=113396]]'' by Paul Rivlin. Turkish Daily News. August 23, 2008
''[[Russia’s Upside in the Georgia Conflict|http://www.times.spb.ru/index.php?action_id=2&story_id=26906]]'' by Boris Kagarlitsky. The St Petersburg Times. August 22, 2008
''[[The end of the post cold-war era|http://www.ft.com/cms/s/0/c65798bc-6ec6-11dd-a80a-0000779fd18c.html?nclick_check=1]]''. //The west is strategically wrong on Georgia// by Kishore Mahbubani. Financial Times. August 20 2008
''[[War in Georgia mark the end of the Pax Americana|http://www.nytimes.com/2008/08/15/opinion/15krugman.html?_r=1&hp&oref=slogin]]''. //The Great Illusion// by Paul Krugman. New York Times. August 14, 2008 
config.macros.gadget = {};

config.macros.gadget .handler = function(place,macroName,params, wikifier, paramString) {
  var elem = createTiddlyElement(place,"iframe",null,"greeting","");
  var p = paramString.parseParams(null, null, true);

  elem.src= "http://www.gmodules.com/ig/ifr?url=" + params[0] + "&" + getParam(p,"prefs","");
  elem.height = getParam(p,"height","310");
  elem.width= getParam(p,"width","536");
  elem.style.border= getParam(p,"border","1");
 
  place.appendChild(elem);
};
[[IV trobada amb l'art i la tecnologia a Callús|http://www.callusdigital.org/~NA0000004/index.html]] (2003-2004)
''[[barcelona index|http://straddle3.net/constructors/projects/23.en.php]]'' (2001)
<<include "nano.html">>
<<include "city.html">>
<<include "net.html">>
<<include "art.html">>
<<include "partner.html">>
<<include "caucas.html">>
<<include "http://laboratori.ws/proxy.php?url=http://www.nanowiki.info/">>
/***
|''Name:''|abego.IncludePlugin|
|''Version:''|1.0.1 (2007-04-30)|
|''Type:''|plugin|
|''Source:''|http://tiddlywiki.abego-software.de/#IncludePlugin|
|''Author:''|Udo Borkowski (ub [at] abego-software [dot] de)|
|''Documentation:''|[[IncludePlugin Documentation|http://tiddlywiki.abego-software.de/#%5B%5BIncludePlugin%20Documentation%5D%5D]]|
|''Community:''|([[del.icio.us|http://del.icio.us/post?url=http://tiddlywiki.abego-software.de/index.html%23IncludePlugin]]) ([[Support|http://groups.google.com/group/TiddlyWiki]])|
|''Copyright:''|&copy; 2007 [[abego Software|http://www.abego-software.de]]|
|''Licence:''|[[BSD open source license (abego Software)|http://www.abego-software.de/legal/apl-v10.html]]|
|''~CoreVersion:''|2.1.3|
|''Browser:''|Firefox 1.5.0.9 or better; Internet Explorer 6.0|
***/
/***
This plugin's source code is compressed (and hidden). Use this [[link|http://tiddlywiki.abego-software.de/archive/IncludePlugin/Plugin-Include-src.1.0.0.js]] to get the readable source code.
***/
///%
if(!window.abego){window.abego={};}var invokeLater=function(_1,_2,_3){return abego.invokeLater?abego.invokeLater(_1,_2,_3):setTimeout(_1,_2);};abego.loadFile=function(_4,_5,_6){var _7=function(_8,_9,_a,_b,_c){return _8?_5(_a,_b,_9):_5(undefined,_b,_9,"Error loading %0".format([_b]));};if(_4.search(/^((http(s)?)|(file)):/)!=0){if(_4.search(/^((.\:\\)|(\\\\)|(\/))/)==0){_4="file://"+_4;}else{var _d=document.location.toString();var i=_d.lastIndexOf("/");_4=_d.substr(0,i+1)+_4;}_4=_4.replace(/\\/mg,"/");}loadRemoteFile(_4,_7,_6);};abego.loadTiddlyWikiStore=function(_f,_10,_11,_12){var _13=function(_14,_15){if(_12){_12(_14,"abego.loadTiddlyWikiStore",_15,_f,_11);}};var _16=function(_17,_18){var _19=_18.indexOf(startSaveArea);var _1a=_18.indexOf("<!--POST-BODY-END--"+">");var _1b=_18.lastIndexOf(endSaveArea,_1a==-1?_18.length:_1a);if((_19==-1)||(_1b==-1)){return config.messages.invalidFileError.format([_f]);}var _1c="<html><body>"+_18.substring(_19,_1b+endSaveArea.length)+"</body></html>";var _1d=document.createElement("iframe");_1d.style.display="none";document.body.appendChild(_1d);var doc=_1d.document;if(_1d.contentDocument){doc=_1d.contentDocument;}else{if(_1d.contentWindow){doc=_1d.contentWindow.document;}}doc.open();doc.writeln(_1c);doc.close();var _1f=doc.getElementById("storeArea");_17.loadFromDiv(_1f,"store");_1d.parentNode.removeChild(_1d);return null;};var _20=function(_21){_13("Error when loading %0".format([_f]),"Failed");_10(undefined,_f,_11,_21);return _21;};var _22=function(_23){_13("Loaded %0".format([_f]),"Done");_10(_23,_f,_11);return null;};var _24=function(_25,_26,_27,_28){if(_25===undefined){_20(_28);return;}_13("Processing %0".format([_f]),"Processing");var _29=config.messages.invalidFileError;config.messages.invalidFileError="The file '%0' does not appear to be a valid TiddlyWiki file";try{var _2a=new TiddlyWiki();var _2b=_16(_2a,_25);if(_2b){_20(_2b);}else{_22(_2a);}}catch(ex){_20(exceptionText(ex));}finally{config.messages.invalidFileError=_29;}};_13("Start loading %0".format([_f]),"Started");abego.loadFile(_f,_24,_11);};(function(){if(abego.TiddlyWikiIncluder){return;}var _2c="waiting";var _2d="loading";var _2e=1000;var _2f=-200;var _30=-100;var _31=-300;var _32;var _33=[];var _34={};var _35=[];var _36;var _37=[];var _38;var _39=function(){if(_32===undefined){_32=config.options.chkUseInclude===undefined||config.options.chkUseInclude;}return _32;};var _3a=function(url){return "No include specified for %0".format([url]);};var _3c=function(){var _3d=_35;_35=[];if(_3d.length){for(var i=0;i<_37.length;i++){_37[i](_3d);}}};var _3f;var _40=function(){if(_36!==undefined){clearInterval(_36);}_3f=0;var _41=function(){abego.TiddlyWikiIncluder.sendProgress("","","Done");};_36=setInterval(function(){_3f++;if(_3f<=10){return;}clearInterval(_36);_36=undefined;abego.TiddlyWikiIncluder.sendProgress("Refreshing...","","");refreshDisplay();invokeLater(_41,0,_2f);},1);};var _42=function(_43){var _44;for(var i=0;i<_33.length;i++){var _46=abego.TiddlyWikiIncluder.getStore(_33[i]);if(_46&&(_44=_43(_46,_33[i]))){return _44;}}};var _47=function(){if(!window.store){return invokeLater(_47,100);}var _48=store.fetchTiddler;store.fetchTiddler=function(_49){var t=_48.apply(this,arguments);if(t){return t;}if(config.shadowTiddlers[_49]!==undefined){return undefined;}if(_49==config.macros.newTiddler.title){return undefined;}return _42(function(_4b,url){var t=_4b.fetchTiddler(_49);if(t){t.includeURL=url;}return t;});};if(_33.length){_40();}};var _4e=function(){if(!window.store){return invokeLater(_4e,100);}var _4f=store.getTiddlerText("IncludeList");if(_4f){wikify(_4f,document.createElement("div"));}};var _50=function(_51){var _52=function(){var _53=store.forEachTiddler;var _54=function(_55){var _56={};var _57;var _58=function(_59,_5a){if(_56[_59]){return;}_56[_59]=1;if(_57){_5a.includeURL=_57;}_55.apply(this,arguments);};_53.call(store,_58);for(var n in config.shadowTiddlers){_56[n]=1;}_56[config.macros.newTiddler.title]=1;_42(function(_5c,url){_57=url;_5c.forEachTiddler(_58);});};store.forEachTiddler=_54;try{return _51.apply(this,arguments);}finally{store.forEachTiddler=_53;}};return _52;};var _5e=function(_5f,_60){return _5f[_60]=_50(_5f[_60]);};abego.TiddlyWikiIncluder={};abego.TiddlyWikiIncluder.setProgressFunction=function(_61){_38=_61;};abego.TiddlyWikiIncluder.getProgressFunction=function(_62){return _38;};abego.TiddlyWikiIncluder.sendProgress=function(_63,_64,_65){if(_38){_38.apply(this,arguments);}};abego.TiddlyWikiIncluder.onError=function(url,_67){displayMessage("Error when including '%0':\n%1".format([url,_67]));};abego.TiddlyWikiIncluder.hasPendingIncludes=function(){for(var i=0;i<_33.length;i++){var _69=abego.TiddlyWikiIncluder.getState(_33[i]);if(_69==_2c||_69==_2d){return true;}}return false;};abego.TiddlyWikiIncluder.getIncludes=function(){return _33.slice();};abego.TiddlyWikiIncluder.getState=function(url){var s=_34[url];if(!s){return _3a(url);}return typeof s=="string"?s:null;};abego.TiddlyWikiIncluder.getStore=function(url){var s=_34[url];if(!s){return _3a(url);}return s instanceof TiddlyWiki?s:null;};abego.TiddlyWikiIncluder.include=function(url,_6f){if(!_39()||_34[url]){return;}var _70=this;_33.push(url);_34[url]=_2c;var _71=function(_72,_73,_74,_75){if(_72===undefined){_34[url]=_75;_70.onError(url,_75);return;}_34[url]=_72;_35.push(url);invokeLater(_3c);};var _76=function(){_34[url]=_2d;abego.loadTiddlyWikiStore(url,_71,null,_38);};if(_6f){invokeLater(_76,_6f);}else{_76();}};abego.TiddlyWikiIncluder.forReallyEachTiddler=function(_77){var _78=function(){store.forEachTiddler(_77);};_50(_78).call(store);};abego.TiddlyWikiIncluder.getFunctionUsingForReallyEachTiddler=_50;abego.TiddlyWikiIncluder.useForReallyEachTiddler=_5e;abego.TiddlyWikiIncluder.addListener=function(_79){_37.push(_79);};abego.TiddlyWikiIncluder.addListener(_40);if(config.options.chkUseInclude===undefined){config.options.chkUseInclude=true;}config.shadowTiddlers.AdvancedOptions+="\n<<option chkUseInclude>> Include ~TiddlyWikis (IncludeList | IncludeState | [[help|http://tiddlywiki.abego-software.de/#%5B%5BIncludePlugin%20Documentation%5D%5D]])\n^^(Reload this ~TiddlyWiki to make changes become effective)^^";config.shadowTiddlers.IncludeState="<<includeState>>";var _7a=function(e,_7c,_7d){if(!anim||!abego.ShowAnimation){e.style.display=_7c?"block":"none";return;}anim.startAnimating(new abego.ShowAnimation(e,_7c,_7d));};abego.TiddlyWikiIncluder.getDefaultProgressFunction=function(){setStylesheet(".includeProgressState{\n"+"background-color:#FFCC00;\n"+"position:absolute;\n"+"right:0.2em;\n"+"top:0.2em;\n"+"width:7em;\n"+"padding-left:0.2em;\n"+"padding-right:0.2em\n"+"}\n","abegoInclude");var _7e=function(){var e=document.createElement("div");e.className="includeProgressState";e.style.display="none";document.body.appendChild(e);return e;};var _80=_7e();var _81=function(_82){removeChildren(_80);createTiddlyText(_80,_82);_7a(_80,true,0);};var _83=function(){invokeLater(function(){_7a(_80,false,_2e);},100,_30);};var _84=function(_85,_86,_87,url,_89){if(_87=="Done"||_87=="Failed"){_83();return;}if(_86=="abego.loadTiddlyWikiStore"){_3f=0;if(_87=="Processing"){_81("Including...");}}else{_81(_85);}};return _84;};abego.TiddlyWikiIncluder.setProgressFunction(abego.TiddlyWikiIncluder.getDefaultProgressFunction());config.macros.include={};config.macros.include.handler=function(_8a,_8b,_8c,_8d,_8e,_8f){_8c=_8e.parseParams("url",null,true,false,true);var _90=parseInt(getParam(_8c,"delay","0"));var _91=_8c[0]["url"];var _92=getFlag(_8c,"hide",false);if(!_92){createTiddlyText(createTiddlyElement(_8a,"code"),_8d.source.substring(_8d.matchStart,_8d.nextMatch));}for(var i=0;_91&&i<_91.length;i++){abego.TiddlyWikiIncluder.include(_91[i],_90);}};config.macros.includeState={};config.macros.includeState.handler=function(_94,_95,_96,_97,_98,_99){var _9a=function(){var s="";var _9c=abego.TiddlyWikiIncluder.getIncludes();if(!_9c.length){return "{{noIncludes{\nNo includes or 'include' is disabled (see AdvancedOptions)\n}}}\n";}s+="|!Address|!State|\n";for(var i=0;i<_9c.length;i++){var inc=_9c[i];s+="|{{{"+inc+"}}}|";var t=abego.TiddlyWikiIncluder.getState(inc);s+=t?"{{{"+t+"}}}":"included";s+="|\n";}s+="|includeState|k\n";return s;};var _a0=function(){removeChildren(div);wikify(_9a(),div);if(abego.TiddlyWikiIncluder.hasPendingIncludes()){invokeLater(_a0,500,_31);}};var div=createTiddlyElement(_94,"div");invokeLater(_a0,0,_31);};var _a2=Tiddler.prototype.isReadOnly;Tiddler.prototype.isReadOnly=function(){return _a2.apply(this,arguments)||this.isIncluded();};Tiddler.prototype.isIncluded=function(){return this.includeURL!=undefined;};Tiddler.prototype.getIncludeURL=function(){return this.includeURL;};var _a3={getMissingLinks:1,getOrphans:1,getTags:1,reverseLookup:1,updateTiddlers:1};for(var n in _a3){_5e(TiddlyWiki.prototype,n);}var _a5=function(){if(abego.IntelliTagger){_5e(abego.IntelliTagger,"assistTagging");}};var _a6=function(){if(config.macros.forEachTiddler){_5e(config.macros.forEachTiddler,"findTiddlers");}};_47();invokeLater(_4e,100);invokeLater(_a5,100);invokeLater(_a6,100);})();
//%/
/***
|Name|InlineJavascriptPlugin|
|Source|http://www.TiddlyTools.com/#InlineJavascriptPlugin|
|Documentation|http://www.TiddlyTools.com/#InlineJavascriptPluginInfo|
|Version|1.9.3|
|Author|Eric Shulman - ELS Design Studios|
|License|http://www.TiddlyTools.com/#LegalStatements <br>and [[Creative Commons Attribution-ShareAlike 2.5 License|http://creativecommons.org/licenses/by-sa/2.5/]]|
|~CoreVersion|2.1|
|Type|plugin|
|Requires||
|Overrides||
|Description|Insert Javascript executable code directly into your tiddler content.|
''Call directly into TW core utility routines, define new functions, calculate values, add dynamically-generated TiddlyWiki-formatted output'' into tiddler content, or perform any other programmatic actions each time the tiddler is rendered.
!!!!!Documentation
>see [[InlineJavascriptPluginInfo]]
!!!!!Revisions
<<<
2008.06.11 [1.9.3] added $(...) function as 'shorthand' convenience syntax for document.getElementById()
2008.03.03 [1.9.2] corrected declaration of wikifyPlainText() for 'TW 2.1.x compatibility fallback' (fixes Safari "parse error")
2008.02.23 [1.9.1] in onclick function, use string instead of array for 'bufferedHTML' attribute on link element (fixes IE errors)
2008.02.21 [1.9.0] 'onclick' scripts now allow returned text (or document.write() calls) to be wikified into a span that immediately follows the onclick link.  Also, added default 'return false' handling if no return value provided (prevents HREF from being triggered -- return TRUE to allow HREF to be processed).  Thanks to Xavier Verges for suggestion and preliminary code.
|please see [[InlineJavascriptPluginInfo]] for additional revision details|
2005.11.08 [1.0.0] initial release
<<<
!!!!!Code
***/
//{{{
version.extensions.inlineJavascript= {major: 1, minor: 9, revision: 3, date: new Date(2008,6,11)};

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

	handler: function(w) {
		var lookaheadRegExp = new RegExp(this.lookahead,"mg");
		lookaheadRegExp.lastIndex = w.matchStart;
		var lookaheadMatch = lookaheadRegExp.exec(w.source)
		if(lookaheadMatch && lookaheadMatch.index == w.matchStart) {
			var src=lookaheadMatch[1];
			var label=lookaheadMatch[2];
			var tip=lookaheadMatch[3];
			var key=lookaheadMatch[4];
			var show=lookaheadMatch[5];
			var code=lookaheadMatch[6];
			if (src) { // load a script library
				// make script tag, set src, add to body to execute, then remove for cleanup
				var script = document.createElement("script"); script.src = src;
				document.body.appendChild(script); document.body.removeChild(script);
			}
			if (code) { // there is script code
				if (show) // show inline script code in tiddler output
					wikify("{{{\n"+lookaheadMatch[0]+"\n}}}\n",w.output);
				if (label) { // create a link to an 'onclick' script
					// add a link, define click handler, save code in link (pass 'place'), set link attributes
					var link=createTiddlyElement(w.output,"a",null,"tiddlyLinkExisting",wikifyPlainText(label));
					var fixup=code.replace(/document.write\s*\(/gi,'place.bufferedHTML+=(');
					link.code="function _out(place){"+fixup+"\n};_out(this);"
					link.tiddler=w.tiddler;
					link.onclick=function(){
						this.bufferedHTML="";
						try{ var r=eval(this.code);
							if(this.bufferedHTML.length || (typeof(r)==="string")&&r.length)
								var s=this.parentNode.insertBefore(document.createElement("span"),this.nextSibling);
							if(this.bufferedHTML.length)
								s.innerHTML=this.bufferedHTML;
							if((typeof(r)==="string")&&r.length) {
								wikify(r,s,null,this.tiddler);
								return false;
							} else return r!==undefined?r:false;
						} catch(e){alert(e.description||e.toString());return false;}
					};
					link.setAttribute("title",tip||"");
					var URIcode='javascript:void(eval(decodeURIComponent(%22(function(){try{';
					URIcode+=encodeURIComponent(encodeURIComponent(code.replace(/\n/g,' ')));
					URIcode+='}catch(e){alert(e.description||e.toString())}})()%22)))';
					link.setAttribute("href",URIcode);
					link.style.cursor="pointer";
					if (key) link.accessKey=key.substr(0,1); // single character only
				}
				else { // run inline script code
					var fixup=code.replace(/document.write\s*\(/gi,'place.innerHTML+=(');
					var code="function _out(place){"+fixup+"\n};_out(w.output);"
					try { var out=eval(code); } catch(e) { out=e.description?e.description:e.toString(); }
					if (out && out.length) wikify(out,w.output,w.highlightRegExp,w.tiddler);
				}
			}
			w.nextMatch = lookaheadMatch.index + lookaheadMatch[0].length;
		}
	}
} )
//}}}

// // Backward-compatibility for TW2.1.x and earlier
//{{{
if (typeof(wikifyPlainText)=="undefined") window.wikifyPlainText=function(text,limit,tiddler) {
	if(limit > 0) text = text.substr(0,limit);
	var wikifier = new Wikifier(text,formatter,null,tiddler);
	return wikifier.wikifyPlain();
}
//}}}

// // $(...) function: 'shorthand' convenience syntax for document.getElementById()
//{{{
if (typeof($)=="undefined") { // avoid redefinition
function $() {
	var elements=new Array();
	for (var i=0; i<arguments.length; i++) {
		var element=arguments[i];
		if (typeof element=='string') element=document.getElementById(element);
		if (arguments.length==1) return element;
		elements.push(element);
	}
	return elements;
}
}
//}}}
Contributor to Intel Web Outfitter Service website (1999)
''[[Internet World Exposition, a world's fair for the information age|http://park.org/]]'' (1996)

[<img[http://bks0.books.google.com/books?id=2ACtZvZhvWcC&printsec=frontcover&img=1&zoom=1&sig=ACfU3U1kEVtHEaZqPp98BCScZFOEy7Ducw&h=188]] "When Carl Malamud set out to re-create the great world's fairs of the last century, he envisioned an event that took place all over the world, one where anybody could build a pavilion; a world's fair that embraced the new technologies of the Internet in the same way that past fairs embraced technologies such as radio and electricity. He bought seven around-the-world plane tickets and set off in search of volunteers to help build what he dubbed "a world's fair for the information age." In less than a year, Malamud and a grass-roots collection of engineers, artists, and other volunteers built the Internet 1996 World Exposition by convincing corporations to contribute close to $50 million in computers and telephone lines, and by garnering the support of a dozen heads of state, including Bill Clinton and Boris Yeltsin. More than eighty countries built thousands of pavilions that attracted over 5 million visitors from 130 countries. //Just as the 1893 World Columbian Exposition celebrated the modern new city of Chicago, the Internet 1996 World Exposition celebrated the arrival of the global village//. A World's Fair for the Global Villageis a behind-the-scenes look at the fair, from its inception through the closing ceremony. It includes profiles of the small group of people who made it happen, backstage glimpses into the elaborate preparations, visits to highlights of the pavilions and events, and visitors' comments. The reader sees how participants throughout the world seized the metaphor of a world's fair to build their own pavilions." ''A World's Fair for the Global Village'' By Carl Malamud

[[Global Organizers and sponsors|http://books.google.com/books?id=2ACtZvZhvWcC&pg=PR17&vq=Josep+Saldana&source=gbs_search_s&cad=1&sig=ACfU3U0Sl3UBEYya9rCFwuUpMAaFOy2xIQ]]. //"Most of the other countries in Western Europe ended up participating in the fair, but always with one or two individuals sparking things. In Spain, [[Josep Saldaña|http://books.google.com/books?pg=PA209&vq=Josep+Saldana&sig=ACfU3U3ywW902xKkklc3oYBvzLtOpq6Rsw&id=2ACtZvZhvWcC]], the editor of a local Internet magazine [[NetConexión|NetConexión, revista de cultura Internet]], devoted the better part of three issues of his magazine to the world's fair, prompting a mass of registrations"// 

<html><object id="_ds_1458368" name="_ds_1458368" width="620" height="550" type="application/x-shockwave-flash" data="http://viewer.docstoc.com/"><param name="FlashVars" value="doc_id=1458368&mem_id=187374&doc_type=pdf&fullscreen=0&showrelated=0&showotherdocs=0" /><param name="movie" value="http://viewer.docstoc.com/"/><param name="allowScriptAccess" value="always" /><param name="allowFullScreen" value="true" /></object><br /><font size="1"><a href="http://www.docstoc.com/docs/1458368/La-exposición-mundial-Internet-1996">La exposición mundial Internet 1996</a></font></html>
Analist-programmer in a financial institution (Caja de Barcelona, 1984-87).
Management (technical, marketing, executive) in a computer related R+D corporation CTA-Aberon,1987-1995). Close colaboration with Apple in the introduction of desktop publishing and digital design in Spain. Specialized in communications (conectivity Mac-PC, emulation, local area networks, conectivity with mini and mainframes, isdn ...). Participation in the design and support of office network for Olimpic Games 92.

During last ten years, contributor in traditional media (press, radioand tv). Translator and journalist for the specialised press (Acta Informática, European Mac, MacFormat, El Mac, suplement Nuevas Tecnologías of La Vanguardia, NetConexión, PC Plus ...).

Devoted to the Internet since 1995. Internet Society member. Founder and director of NetConexión , first Spanish magazine on Internet culture (1995-96).
Spain Comissioner in the Internet 1996 World Exposition . Participant in the 24 Hours in Cyberspace project.
Consultant for a media group (Grupo Zeta, 1996).
Writer in the colectif book «Internet» (1997).
Member of expert's group in the project "E-commerce in the information society" (1998).
Journalist for PC Plus magazine (1996-1999).
Contributor to Intel Web Outfitter Service website (1999).

Since 1998 contribute, as citizen and independent consultant,
in the strategic plan for the cultural sector of Barcelona . In this context he wrote a report-proposal about the emerging culture -"Barcelona, city of digital culture. beta version"- and work as relater of new technologies commission for the Instituto de Cultura de Barcelona.
In same line contribute with INTERARTS observatory
of urban and regional cultural policies and Diputació de Barcelona
(coordinator of roundtable «Tecnology and Arts» in the journeys International Challenges for the Cultural Sector of Barcelona; «The Digital Era as a Context for the Definition of Cultural Strategies» report in the Seminar "The planification as a strategy.
Presentation and analysis of strategic cultural plans at local and regional levels" for Interacció '98 ; consultant for defining the digital competences of cultural managers into the Adapt-Format european project. 1999-2000).

Collaborate with artists -like chillout artist Kiku Mistu, hypermedia and architecture straddle3 , independent filmakers festival L'Alternativa, audiovisual and new technologies festival VideA_00-. In 1999, member of the international panel of the Leonardo Digital Review, the first journal supporting artists who worked in the intersection of science, technology, and art.
[[Kiku Mistu Group|http://straddle3.net/constructors/projects/34.en.php]] digital portfolio (1997-2000). ''A digital project that extends through time for a group of artists''.
[img[http://laboratori.ws/img/ciutat.jpg]]

Documental expandit d'en [[Jacobo Sucari]] a [[CaixaForum|http://www.fundacio1.lacaixa.es/SGI/Actividad.jsp?idActividad=26728&idTemaGen=-1&idTemaPro=-1&idCentro=918213&idTipoCentro=-1&idPerfil=&idTipoAct=36&idIdioma=2]] des del 23 d'octubre fins al 8 de desembre 2008. "La lucha por el espacio Urbano, es un documental que reflexiona ''sobre los violentos cambios que generan las nuevas formas del desarrollo urbano en el paisaje y en sus habitantes''". Inclou el site ''[[El conflicte de Can Ricart, una cronologia interactiva]]'' d'en Josep Saldaña.

[[Agenda|http://w3.bcn.es/XMLServeis/Asia/XMLFitxaAsiaCtl/0,4122,290652295_303687541_1_99400212446,00.html?tipusEnllac=agenda&idFitxa=99400212446&nomesFitxa=true&llistaCanal=NO]]. "Amics tots: Gustosos estaremos de verlos el Miércoles 22 de Octubre del 2008, a las 20:00 hs en la inauguración. Nosotros estaremos allí y presentaremos el trabajo. Josep María Montaner pondrá en contexto el trabajo vinculando urbanismo, memoria y realidad socio-política. Salud. Jacobo Sucari - Josep Saldaña"
El impacto de las tecnologías de la información genera un nuevo paradigma cultural a tener en cuenta. Es uno de los elementos contextuales más importantes en el momento de elaborar políticas y estrategias culturales a largo plazo. Seminari [[El planejament com estrategia|http://www.diba.es/cerc/interaccio1998/ct/s1/plus1.htm]]. Cultura i poder local, Interacció 98
Seminari: La Governança del Risc de les Nanotecnologies
Coordinació: Anna Garcia Hom. IP NEGRISC (~GRISC- Centre de Recerca en Governança del Risc). Universitat Autònoma de Barcelona 

En un escenari de tecnologies emergents un element destacat és la forma que haurien d’adquirir les opcions i les opinions respecte, d’una banda, els avenços científic-tècnics i, per l’altra banda, les decisions a prendre respecte a aquells. El present de certes tecnologies, com ara les Nanotecnologies, es caracteritza, en general, per la seva incertesa en relació a les conseqüències de les seves aplicacions. L'organització i la celebració d’aquest seminari vol constituir ''un primer fòrum dedicat a la discussió socio-tècnica de les Nanotecnologies i, sobretot, fomentar un diàleg interdisciplinari que permeti avançar en el coneixement sobre el paper dels científics (tecnòlegs i socials) en la configuració de l’imaginari social a l’entorn de les Nanotecnologies''. Les presentacions inclouran tant els aspectes de caràcter pròpiament tècnic com les consideracions socials i les aproximacions que puguin generar controvèrsia en aquests temes. 

Objectius: 
Els objectius que es plantegen en aquest Seminari són els següents:
1-L’establiment d’una base sòlida del coneixement sobre les relacions sociotècniques de les Nanotecnologies
2-La constitució d’un fòrum de discussió interdisciplinària per a la comunitat i les institucions interessades en la configuració de la percepció social de la Nanotecnologia.
3-Estimular la compartició i la difusió del coneixement entre les diferents disciplines i entre els professionals de les mateixes interessades en aprofundir en el coneixement social de la Nanotecnologia, i
4-En relació a aquesta temàtica, considerar la comunicació entre la comunitat científica i el públic en general, com un element a fomentar (tal  com se suggereix en els documents elaborats per la CE d’acord amb aquestes qüestions).

Participants:
Jordi Pascual. Director de l’ICN
Ramon Moles. Director del GRISC
José Manuel de Cózar. Universidad La Laguna
Josep Saldaña. Nanowiki -Tracking Nanotechnology
Víctor Puntes. (ICREA) ~CIN-2- Centre d’Investigació en Nanociència i Nanotecnologia. ~CSIC-ICN.
Matteo Bonazzi. Programme officer and communication. European Commission. Direction General Research. (Per confirmar)
Antonio Lafuente. Centro de Ciencias Humanas y Sociales. CSIC. (Per confirmar)

Dia, mes i lloc de celebració: 
5 de Novembre de 2008 a la [[Casa Convalescència|http://www.uab-casaconvalescencia.org]], [[Aula Magna|http://www.fundaciouab.com/casa/CAT/galeria.asp?Id_CARPETA=2&Id_FOTO=28&offset=0]]. [[Sant Antoni Maria Claret, 171|http://www.uabcampus.com/cat/index_vert3.html]]
08041 Barcelona 

Horari: 
De 09:00 a 14:00 hores.
Member of the international panel of the [[Leonardo Digital Review|http://mitpress.mit.edu/e-journals/Leonardo/home.html]], ''the first journal supporting artists who worked in the intersection of science, technology, and art'' (1999).
<script show>(function(){var GBS_HOST = 'http://books.google.com/';var GBS_LANG = 'en';var aa=aa||{},j=this;var ba=".",ca="var ",da=function(a,b){var c=a.split(ba),d=j,e;!(c[0]in d)&&d.execScript&&d.execScript(ca+c[0]);while(c.length&&(e=c.shift()))if(!c.length&&k(b))d[e]=b;else d=d[e]?d[e]:(d[e]={})},ea=function(a,b){var c=a.split(ba),d=b||j;for(var e;e=c.shift();)if(d[e])d=d[e];else return null;return d},fa=function(){},ga="unimplemented abstract method",ha=function(){throw Error(ga);};var ia="object",n="number",ja="length",ka="array",p="function",la="null",na=function(a){var b=typeof a;
if(b==ia)if(a){if(typeof a.length==n&&typeof a.splice!="undefined"&&!ma(a,ja))return ka;if(typeof a.call!="undefined")return p}else return la;else if(b==p&&typeof a.call=="undefined")return ia;return b};if(Object.prototype.propertyIsEnumerable)var ma=function(a,b){return Object.prototype.propertyIsEnumerable.call(a,b)};else ma=function(a,b){if(b in a)for(var c in a)if(c==b&&Object.prototype.hasOwnProperty.call(a,b))return true;return false};var k=function(a){return typeof a!="undefined"};var q=function(a){return na(a)==
ka},oa=function(a){var b=na(a);return b==ka||b==ia&&typeof a.length==n},pa="string",r=function(a){return typeof a==pa};var qa=function(a){return na(a)==p},ra=function(a){var b=na(a);return b==ia||b==ka||b==p},sa="closure_hashCode_",ua=function(a){if(a.hasOwnProperty&&a.hasOwnProperty(sa)){var b=a.Sa;if(b)return b}a.Sa||(a.Sa=++ta);return a.Sa},ta=0,va=function(a){var b=na(a);if(b==ia||b==ka){if(a.clone)return a.clone();var c=b==ka?[]:{};for(var d in a)c[d]=va(a[d]);return c}return a},s=function(a,
b){var c=a.tc;if(arguments.length>2){var d=Array.prototype.slice.call(arguments,2);c&&d.unshift.apply(d,c);c=d}b=a.vc||b;a=a.uc||a;var e,f=b||j;e=c?function(){var g=Array.prototype.slice.call(arguments);g.unshift.apply(g,c);return a.apply(f,g)}:function(){return a.apply(f,arguments)};e.tc=c;e.vc=b;e.uc=a;return e},wa=function(a){var b=Array.prototype.slice.call(arguments,1);b.unshift(a,null);return s.apply(null,b)},xa=Date.now||function(){return(new Date).getTime()},ya="\\{\\$",za="\\}",Aa="gi",Ba=
function(a,b){var c=b||{};for(var d in c)a=a.replace(new RegExp(ya+d+za,Aa),c[d]);return a},Ca=function(a,b){da(a,b)},t=function(a,b){function c(){}c.prototype=b.prototype;a.o=b.prototype;a.prototype=new c;a.prototype.constructor=a};Function.prototype.partial=function(){var a=Array.prototype.slice.call(arguments);a.unshift(this,null);return s.apply(null,a)};var Da=function(a,b){this.x=k(a)?a:0;this.y=k(b)?b:0};Da.prototype.clone=function(){return new Da(this.x,this.y)};var Ea="(",Fa=", ",Ga=")";Da.prototype.toString=function(){return Ea+this.x+Fa+this.y+Ga};var u=function(a,b){this.width=a;this.height=b};u.prototype.clone=function(){return new u(this.width,this.height)};var Ha=" x ";u.prototype.toString=function(){return Ea+this.width+Ha+this.height+Ga};u.prototype.ceil=function(){this.width=Math.ceil(this.width);this.height=Math.ceil(this.height);return this};u.prototype.floor=function(){this.width=Math.floor(this.width);this.height=Math.floor(this.height);return this};u.prototype.round=function(){this.width=Math.round(this.width);this.height=Math.round(this.height);
return this};u.prototype.scale=function(a){this.width*=a;this.height*=a;return this};var Ia="$$$$",Ja=function(a){for(var b=1;b<arguments.length;b++){var c=String(arguments[b]).replace(/\$/g,Ia);a=a.replace(/\%s/,c)}return a};var w="",Ka=function(a){return a.replace(/^[\s\xa0]+|[\s\xa0]+$/g,w)};var La=/^[a-zA-Z0-9\-_.!~*'()]*$/,Ma=function(a){a=String(a);if(!La.test(a))return encodeURIComponent(a);return a},Na=" ",Oa=function(a){return decodeURIComponent(a.replace(/\+/g,Na))};var Pa="&amp;",Qa="&lt;",Ra="&gt;",Sa="&quot;",Ta="&",Ua="<",Va=">",Wa='"',bb=function(a,b){if(b)return a.replace(Xa,
Pa).replace(Ya,Qa).replace(Za,Ra).replace($a,Sa);else{if(!ab.test(a))return a;if(a.indexOf(Ta)!=-1)a=a.replace(Xa,Pa);if(a.indexOf(Ua)!=-1)a=a.replace(Ya,Qa);if(a.indexOf(Va)!=-1)a=a.replace(Za,Ra);if(a.indexOf(Wa)!=-1)a=a.replace($a,Sa);return a}},Xa=/&/g,Ya=/</g,Za=/>/g,$a=/\"/g,ab=/[&<>\"]/;var cb="(\\d*)(\\D*)",db="g",fb=function(a,b){var c=0,d=Ka(String(a)).split(ba),e=Ka(String(b)).split(ba),f=Math.max(d.length,e.length);for(var g=0;c==0&&g<f;g++){var h=d[g]||w,i=e[g]||w,l=new RegExp(cb,db),
m=new RegExp(cb,db);do{var o=l.exec(h)||[w,w,w],v=m.exec(i)||[w,w,w];if(o[0].length==0&&v[0].length==0)break;var N=o[1].length==0?0:parseInt(o[1],10),od=v[1].length==0?0:parseInt(v[1],10);c=eb(N,od)||eb(o[2].length==0,v[2].length==0)||eb(o[2],v[2])}while(c==0)}return c},eb=function(a,b){if(a<b)return-1;else if(a>b)return 1;return 0};xa();var gb,hb,ib,jb,kb,lb,mb,nb,ob,pb,qb,rb="Opera",sb="MSIE",tb="WebKit",ub="Mobile",vb="Gecko",wb="Camino",xb="Mac",yb="Win",zb="Linux",Ab=function(){var a=false,b=false,c=false,d=false,e=false,f=false,g=false,h=false,i=false,l=w;if(j.navigator){var m=j.navigator,o=m.userAgent;a=o.indexOf(rb)==0;b=!a&&o.indexOf(sb)!=-1;c=!a&&o.indexOf(tb)!=-1;i=c&&o.indexOf(ub)!=-1;d=!a&&!c&&m.product==vb;e=d&&m.vendor==wb;var v,N;if(a)v=j.opera.version();else{if(d)N=/rv\:([^\);]+)(\)|;)/;else if(b)N=/MSIE\s+([^\);]+)(\)|;)/;
else if(c)N=/WebKit\/(\S+)/;if(N){N.test(o);v=RegExp.$1}}l=m.platform||w;f=l.indexOf(xb)!=-1;g=l.indexOf(yb)!=-1;h=l.indexOf(zb)!=-1}gb=a;hb=b;ib=d;jb=e;kb=c;lb=i;mb=v;nb=l;ob=f;pb=g;qb=h};Ab();var Bb=gb,x=hb,Cb=ib,Db=kb,Eb=lb;var Fb=function(a,b,c){if(a.indexOf)return a.indexOf(b,c);if(Array.indexOf)return Array.indexOf(a,b,c);var d=c==null?0:c<0?Math.max(0,a.length+c):c;for(var e=d;e<a.length;e++)if(e in a&&a[e]===b)return e;return-1},Gb=function(a,b,c){if(a.forEach)a.forEach(b,c);else if(Array.forEach)Array.forEach(a,b,c);else{var d=a.length,e=r(a)?a.split(w):a;for(var f=0;f<d;f++)f in e&&b.call(c,e[f],f,a)}},Hb=function(a,b,c){if(a.some)return a.some(b,c);if(Array.some)return Array.some(a,b,c);var d=a.length,e=r(a)?
a.split(w):a;for(var f=0;f<d;f++)if(f in e&&b.call(c,e[f],f,a))return true;return false},Ib=function(a,b){if(a.contains)return a.contains(b);return Fb(a,b)>-1};var Jb=function(a,b){var c=Fb(a,b),d;if(d=c!=-1)Array.prototype.splice.call(a,c,1).length==1;return d};var Kb=function(a){if(q(a))return a.concat();else{var b=[];for(var c=0,d=a.length;c<d;c++)b[c]=a[c];return b}},Lb=function(a){for(var b=1;b<arguments.length;b++){var c=arguments[b];q(c)?a.push.apply(a,c):a.push(c)}},Mb=function(){var a=[];
for(var b=0;b<arguments.length;b++){var c=arguments[b];q(c)?a.push.apply(a,Mb.apply(null,c)):a.push(c)}return a};var Nb=function(a,b,c){for(var d in a)b.call(c,a[d],d,a)},Ob=function(a){var b=[],c=0;for(var d in a)b[c++]=a[d];return b},Pb=function(a){var b=[],c=0;for(var d in a)b[c++]=d;return b};var Qb=function(a,b){var c;if(c=b in a)delete a[b];return c},Rb=function(a,b,c){if(b in a)return a[b];return c},Sb=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],Tb=function(a){var b,c;for(var d=1;d<arguments.length;d++){c=arguments[d];for(b in c)a[b]=c[b];
for(var e=0;e<Sb.length;e++){b=Sb[e];if(Object.prototype.hasOwnProperty.call(c,b))a[b]=c[b]}}},Ub="Uneven number of arguments",Vb=function(){var a=arguments.length;if(a==1&&q(arguments[0]))return Vb.apply(null,arguments[0]);if(a%2)throw Error(Ub);var b={};for(var c=0;c<a;c+=2)b[arguments[c]]=arguments[c+1];return b},Wb=function(){var a=arguments.length;if(a==1&&q(arguments[0]))return Wb.apply(null,arguments[0]);var b={};for(var c=0;c<a;c++)b[arguments[c]]=true;return b};var Xb,Yb=function(a){var b=a.className;return b&&typeof b.split==p?b.split(Na):[]},Zb=function(a){var b=Yb(a),c=1;for(var d=1;d<arguments.length;d++)if(Ib(b,arguments[d]))c&=0;else{b.push(arguments[d]);c&=1}a.className=b.join(Na);return Boolean(c)};var $b=function(){Xb||(Xb=new y);return Xb},bc=function(a){return a?new y(ac(a)):$b()};var cc="style",dc="class",ec="for",gc=function(a,b){Nb(b,function(c,d){if(d==cc)a.style.cssText=c;else if(d==dc)a.className=c;else if(d==ec)a.htmlFor=c;else if(d in fc)a.setAttribute(fc[d],c);else a[d]=c})},fc={cellpadding:"cellPadding",cellspacing:"cellSpacing",colspan:"colSpan",rowspan:"rowSpan",valign:"vAlign",height:"height",width:"width",usemap:"useMap",frameborder:"frameBorder"},hc="500",ic="CSS1Compat",jc=
"9.50",kc=function(a){var b=a||j||window,c=b.document;if(Db&&!(fb(mb,hc)>=0)&&!Eb){if(typeof b.innerHeight=="undefined")b=window;var d=b.innerHeight,e=b.document.documentElement.scrollHeight;if(b==b.top)if(e<d)d-=15;return new u(b.innerWidth,d)}var f=bc(c),g=f.Mb()==ic&&(!Bb||Bb&&fb(mb,jc)>=0)?c.documentElement:c.body;return new u(g.clientWidth,g.clientHeight)};var lc=function(a){return bc(a).Ob()},mc=function(){var a=$b();return a.k.apply(a,arguments)},z=function(a){return $b().createElement(a)},
A=function(a,b){a.appendChild(b)},B=function(a){return a&&a.parentNode?a.parentNode.removeChild(a):null};var nc="521",oc=Db&&fb(mb,nc)<=0,pc=function(a,b){if(typeof a.contains!="undefined"&&!oc&&b.nodeType==1)return a==b||a.contains(b);if(typeof a.compareDocumentPosition!="undefined")return a==b||Boolean(a.compareDocumentPosition(b)&16);while(b&&a!=b)b=b.parentNode;return b==a},ac=function(a){return a.nodeType==9?a:a.ownerDocument||a.document},qc=function(a,b,c,d){if(a!=null)for(var e=0,f;f=a.childNodes[e];e++){if(b(f)){c.push(f);
if(d)return}qc(f,b,c,d)}},rc={SCRIPT:1,STYLE:1,HEAD:1,IFRAME:1,OBJECT:1},sc={IMG:Na,BR:"\n"},tc=function(a,b,c){if(!(a.nodeName in rc))if(a.nodeType==3)c?b.push(String(a.nodeValue).replace(/(\r\n|\r|\n)/g,w)):b.push(a.nodeValue);else if(a.nodeName in sc)b.push(sc[a.nodeName]);else{var d=a.firstChild;while(d){tc(d,b,c);d=d.nextSibling}}},uc=function(a){if(a&&typeof a.length==n)if(ra(a))return typeof a.item==p||typeof a.item==pa;else if(qa(a))return typeof a.item==p;return false},y=function(a){this.d=
a||j.document||document};y.prototype.j=function(a){return r(a)?this.d.getElementById(a):a};var vc=' name="',wc='">';y.prototype.k=function(a,b){if(x&&b&&b.name)a=Ua+a+vc+bb(b.name)+wc;var c=this.createElement(a);b&&gc(c,b);if(arguments.length>2){function d(g){if(g)this.appendChild(c,r(g)?this.createTextNode(g):g)}for(var e=2;e<arguments.length;e++){var f=arguments[e];oa(f)&&!(ra(f)&&f.nodeType>0)?Gb(uc(f)?Kb(f):f,d,this):d.call(this,f)}}return c};y.prototype.createElement=function(a){return this.d.createElement(a)};
y.prototype.createTextNode=function(a){return this.d.createTextNode(a)};var C="div",xc="position:absolute;width:0;height:0;width:1",yc="1px",zc="BackCompat";y.prototype.Mb=function(){if(this.d.compatMode)return this.d.compatMode;if(Db){var a=this.k(C,{style:xc}),b=a.style.width==yc?zc:ic;return this.d.compatMode=b}return zc};var Ac="script",Bc="document.parentWindow=window";y.prototype.Ob=function(){var a=this.d;if(a.parentWindow)return a.parentWindow;if(Db&&!(fb(mb,hc)>=0)&&!Eb){var b=a.createElement(Ac);
b.innerHTML=Bc;var c=a.documentElement;c.appendChild(b);c.removeChild(b);return a.parentWindow}return a.defaultView};y.prototype.ka=function(){var a=this.d,b,c;if(!Db&&a.compatMode==ic){b=a.documentElement.scrollLeft;c=a.documentElement.scrollTop}else{b=a.body.scrollLeft;c=a.body.scrollTop}return new Da(b,c)};y.prototype.appendChild=A;y.prototype.removeNode=B;y.prototype.contains=pc;var Cc="1.9a",Dc=Cb&&!(fb(mb,Cc)>=0),Ec="role",Fc=function(a,b){if(Cb){a.setAttribute(Ec,b);a.roleName=b}},Gc="http://www.w3.org/2005/07/aaa",Hc="aria-",Ic=function(a,b,c){if(Cb)Dc?a.setAttributeNS(Gc,b,c):a.setAttribute(Hc+b,c)};var D=function(){};D.prototype.Za=false;D.prototype.dispose=function(){if(!this.Za){this.a();this.Za=true}};D.prototype.a=function(){};var E=function(a,b){D.call(this);this.Yb=b;this.Q=[];this.Fb(a)};t(E,D);E.prototype.xa=null;E.prototype.za=null;E.prototype.ca=function(a){this.xa=a};E.prototype.sb=function(a){this.za=a};E.prototype.n=function(){if(this.Q.length)return this.Q.pop();return this.Wa()};E.prototype.L=function(a){this.Q.length<this.Yb?this.Q.push(a):this.Ya(a)};var Jc="[goog.structs.SimplePool] Initial cannot be greater than max";E.prototype.Fb=function(a){if(a>this.Yb)throw Error(Jc);for(var b=0;b<a;b++)this.Q.push(this.Wa())};
E.prototype.Wa=function(){return this.xa?this.xa():{}};E.prototype.Ya=function(a){if(this.za)this.za(a);else if(qa(a.dispose))a.dispose();else for(var b in a)delete a[b]};E.prototype.a=function(){E.o.a.call(this);var a=this.Q;while(a.length)this.Ya(a.pop());delete this.Q};var F=function(a,b){this.type=a;this.target=b;this.currentTarget=this.target};t(F,D);F.prototype.a=function(){delete this.type;delete this.target;delete this.currentTarget};F.prototype.D=false;F.prototype.T=true;F.prototype.stopPropagation=function(){this.D=true};F.prototype.preventDefault=function(){this.T=false};var G=function(a,b){a&&this.init(a,b)};t(G,F);G.prototype.type=null;G.prototype.target=null;G.prototype.currentTarget=null;G.prototype.relatedTarget=null;G.prototype.offsetX=0;G.prototype.offsetY=0;G.prototype.clientX=0;G.prototype.clientY=0;G.prototype.screenX=0;G.prototype.screenY=0;G.prototype.button=0;G.prototype.keyCode=0;G.prototype.charCode=0;G.prototype.ctrlKey=false;G.prototype.altKey=false;G.prototype.shiftKey=false;G.prototype.metaKey=false;G.prototype.q=null;var Kc="mouseover",Lc="mouseout",
Mc="keypress";G.prototype.init=function(a,b){this.type=a.type;this.target=a.target||a.srcElement;this.currentTarget=b;this.relatedTarget=a.relatedTarget?a.relatedTarget:this.type==Kc?a.fromElement:this.type==Lc?a.toElement:null;this.offsetX=typeof a.layerX==n?a.layerX:a.offsetX;this.offsetY=typeof a.layerY==n?a.layerY:a.offsetY;this.clientX=typeof a.clientX==n?a.clientX:a.pageX;this.clientY=typeof a.clientY==n?a.clientY:a.pageY;this.screenX=a.screenX||0;this.screenY=a.screenY||0;this.button=a.button;
this.keyCode=a.keyCode||0;this.charCode=a.charCode||(this.type==Mc?a.keyCode:0);this.ctrlKey=a.ctrlKey;this.altKey=a.altKey;this.shiftKey=a.shiftKey;this.metaKey=a.metaKey;this.q=a;delete this.T;delete this.D};G.prototype.stopPropagation=function(){this.D=true;if(this.q.stopPropagation)this.q.stopPropagation();else this.q.cancelBubble=true};G.prototype.preventDefault=function(){this.T=false;if(this.q.preventDefault)this.q.preventDefault();else{this.q.returnValue=false;try{this.q.keyCode=-1}catch(a){}}};
G.prototype.a=function(){G.o.a.call(this);this.q=null};var H=function(){},Nc=0;H.prototype.Da=null;H.prototype.listener=null;H.prototype.proxy=null;H.prototype.src=null;H.prototype.type=null;H.prototype.capture=null;H.prototype.handler=null;H.prototype.key=0;H.prototype.removed=false;H.prototype.wa=false;var Oc="Invalid listener argument";H.prototype.init=function(a,b,c,d,e,f){if(qa(a))this.Da=true;else if(a&&a.handleEvent&&qa(a.handleEvent))this.Da=false;else throw Error(Oc);this.listener=a;this.proxy=b;this.src=c;this.type=d;this.capture=!!e;this.handler=
f;this.wa=false;this.key=++Nc;this.removed=false};H.prototype.handleEvent=function(a){if(this.Da)return this.listener.call(this.handler||this.src,a);return this.listener.handleEvent.call(this.listener,a)};var Pc={},I={},J={},Qc=new E(0,600);Qc.ca(function(){return{c:0}});Qc.sb(function(a){a.c=0});var Rc=new E(0,600);Rc.ca(function(){return[]});Rc.sb(function(a){a.length=0;delete a.oa;delete a.kb});var Sc=new E(0,600);Sc.ca(function(){var a=function(b){return Tc.call(a.src,a.key,b)};return a});var Uc=function(){return new H},Vc=new E(0,600);Vc.ca(Uc);var Wc=function(){return new G},Xc=function(){var a=null;if(x){a=new E(0,600);a.ca(Wc)}return a},Yc=Xc(),Zc="on",$c={},ad="Invalid event type",K=function(a,
b,c,d,e){if(b)if(q(b)){for(var f=0;f<b.length;f++)K(a,b[f],c,d,e);return null}else{var g=!!d,h=I;b in h||(h[b]=Qc.n());h=h[b];if(!(g in h)){h[g]=Qc.n();h.c++}h=h[g];var i=ua(a),l,m;if(h[i]){l=h[i];for(var f=0;f<l.length;f++){m=l[f];if(m.listener==c&&m.handler==e){if(m.removed)break;return l[f].key}}}else{l=h[i]=Rc.n();h.c++}var o=Sc.n();o.src=a;m=Vc.n();m.init(c,o,a,b,g,e);var v=m.key;o.key=v;l.push(m);Pc[v]=m;J[i]||(J[i]=Rc.n());J[i].push(m);if(a.addEventListener){if(a==j||!a.Xa)a.addEventListener(b,
o,g)}else a.attachEvent(bd(b),o);return v}else throw Error(ad);},cd=function(a,b,c,d,e){if(q(b)){for(var f=0;f<b.length;f++)cd(a,b[f],c,d,e);return null}var g=K(a,b,c,d,e),h=Pc[g];h.wa=true;return g},dd=function(a,b,c,d,e){if(q(b)){for(var f=0;f<b.length;f++)dd(a,b[f],c,d,e);return null}var g=!!d,h=ed(a,b,g);if(!h)return false;for(var f=0;f<h.length;f++)if(h[f].listener==c&&h[f].capture==g&&h[f].handler==e)return L(h[f].key);return false},L=function(a){if(!Pc[a])return false;var b=Pc[a];if(b.removed)return false;
var c=b.src,d=b.type,e=b.proxy,f=b.capture;if(c.removeEventListener){if(c==j||!c.Xa)c.removeEventListener(d,e,f)}else c.detachEvent&&c.detachEvent(bd(d),e);var g=ua(c),h=I[d][f][g];if(J[g]){var i=J[g];Jb(i,b);i.length==0&&delete J[g]}b.removed=true;h.kb=true;fd(d,f,g,h);delete Pc[a];return true},fd=function(a,b,c,d){if(!d.oa)if(d.kb){for(var e=0,f=0;e<d.length;e++){if(d[e].removed){Vc.L(d[e]);continue}if(e!=f)d[f]=d[e];f++}d.length=f;d.kb=false;if(f==0){Rc.L(d);delete I[a][b][c];I[a][b].c--;if(I[a][b].c==
0){Qc.L(I[a][b]);delete I[a][b];I[a].c--}if(I[a].c==0){Qc.L(I[a]);delete I[a]}}}},gd=function(a,b,c){var d=0,e=a==null,f=b==null,g=c==null;c=!!c;if(e)Nb(J,function(o){for(var v=o.length-1;v>=0;v--){var N=o[v];if((f||b==N.type)&&(g||c==N.capture)){L(N.key);d++}}});else{var h=ua(a);if(J[h]){var i=J[h];for(var l=i.length-1;l>=0;l--){var m=i[l];if((f||b==m.type)&&(g||c==m.capture)){L(m.key);d++}}}}return d},ed=function(a,b,c){var d=I;if(b in d){d=d[b];if(c in d){d=d[c];var e=ua(a);if(d[e])return d[e]}}return null},
hd=function(a,b,c,d,e){var f=!!d,g=ed(a,b,f);if(g)for(var h=0;h<g.length;h++)if(g[h].listener==c&&g[h].capture==f&&g[h].handler==e)return g[h];return null},bd=function(a){if(a in $c)return $c[a];return $c[a]=Zc+a},jd=function(a,b,c,d){var e=1,f=I;if(b in f){f=f[b];if(c in f){f=f[c];var g=ua(a);if(f[g]){var h=f[g];if(h.oa)h.oa++;else h.oa=1;try{var i=h.length;for(var l=0;l<i;l++){var m=h[l];if(m&&!m.removed)e&=id(m,d)!==false}}finally{h.oa--;fd(b,c,g,h)}}}}return Boolean(e)},id=function(a,b){var c=
a.handleEvent(b);a.wa&&L(a.key);return c},kd=function(a,b){if(r(b))b=new F(b,a);else if(b instanceof F)b.target=b.target||a;else{var c=b;b=new F(b.type,a);Tb(b,c)}var d=1,e,f=b.type,g=I;if(!(f in g))return true;g=g[f];var h=true in g,i=false in g;if(h){e=[];for(var l=a;l;l=l.la())e.push(l);for(var m=e.length-1;!b.D&&m>=0;m--){b.currentTarget=e[m];d&=jd(e[m],b.type,true,b)&&b.T!=false}}if(i)if(h)for(var m=0;!b.D&&m<e.length;m++){b.currentTarget=e[m];d&=jd(e[m],b.type,false,b)&&b.T!=false}else for(var o=
a;!b.D&&o;o=o.la()){b.currentTarget=o;d&=jd(o,b.type,false,b)&&b.T!=false}return Boolean(d)},ld="window.event",Tc=function(a,b){if(!Pc[a])return true;var c=Pc[a],d=c.type,e=I;if(!(d in e))return true;e=e[d];var f;if(x){var g=b||ea(ld),h=true in e;if(h){if(g.keyCode<0||g.returnValue!=undefined)return true;md(g)}ua(c.src);var i=Yc.n();i.init(g,this);f=true;try{if(h){var l=Rc.n();for(var m=i.currentTarget;m;m=m.parentNode)l.push(m);for(var o=l.length-1;!i.D&&o>=0;o--){i.currentTarget=l[o];f&=jd(l[o],
d,true,i)}for(var o=0;!i.D&&o<l.length;o++){i.currentTarget=l[o];f&=jd(l[o],d,false,i)}}else f=id(c,i)}finally{if(l){l.length=0;Rc.L(l)}i.dispose();Yc.L(i)}return f}var v=new G(b,this);try{f=id(c,v)}finally{v.dispose()}return f},md=function(a){var b=false;if(a.keyCode==0)try{a.keyCode=-1;return}catch(c){b=true}if(b||a.returnValue==undefined)a.returnValue=true};var M=function(a){this.Sb=a};t(M,D);var nd=new E(0,100);M.prototype.listen=function(a,b,c,d,e){if(q(b)){for(var f=0;f<b.length;f++)this.listen(a,b[f],c,d,e);return}var g=K(a,b,c||this,d||false,e||this.Sb||this);if(this.b)this.b[g]=true;else if(this.J){this.b=nd.n();this.b[this.J]=true;this.J=null;this.b[g]=true}else this.J=g};M.prototype.unlisten=function(a,b,c,d,e){if(!this.J&&!this.b)return;if(q(b)){for(var f=0;f<b.length;f++)this.unlisten(a,b[f],c,d,e);return}var g=hd(a,b,c||this,d||false,e||this.Sb||
this);if(g){var h=g.key;L(h);if(this.b)Qb(this.b,h);else if(this.J==h)this.J=null}};M.prototype.dc=function(){if(this.b){for(var a in this.b){L(a);delete this.b[a]}nd.L(this.b);this.b=null}else this.J&&L(this.J)};M.prototype.a=function(){M.o.a.call(this);this.dc()};var pd="EventHandler.handleEvent not implemented";M.prototype.handleEvent=function(){throw Error(pd);};var O=function(){};t(O,D);O.prototype.Xa=true;O.prototype.qb=null;O.prototype.la=function(){return this.qb};O.prototype.addEventListener=function(a,b,c,d){K(this,a,b,c,d)};O.prototype.removeEventListener=function(a,b,c,d){dd(this,a,b,c,d)};O.prototype.dispatchEvent=function(a){return kd(this,a)};O.prototype.a=function(){O.o.a.call(this);gd(this);this.qb=null};var qd="focusin",rd="focus",sd="focusout",td="blur",ud=function(a){O.call(this);this.e=a;var b=x?qd:rd,c=x?sd:td;this.zc=K(this.e,b,this,!x);this.Ac=K(this.e,c,this,!x)};t(ud,O);ud.prototype.handleEvent=function(a){var b=a.q,c=new G(b);c.type=a.type==qd||a.type==rd?qd:sd;try{this.dispatchEvent(c)}finally{c.dispose()}};ud.prototype.a=function(){ud.o.a.call(this);L(this.zc);L(this.Ac);delete this.e};var vd=function(a,b,c,d){this.top=k(a)?Number(a):undefined;this.right=k(b)?Number(b):undefined;this.bottom=k(c)?Number(c):undefined;this.left=k(d)?Number(d):undefined};vd.prototype.clone=function(){return new vd(this.top,this.right,this.bottom,this.left)};var wd="t, ",xd="r, ",yd="b, ",zd="l)";vd.prototype.toString=function(){return Ea+this.top+wd+this.right+xd+this.bottom+yd+this.left+zd};vd.prototype.contains=function(a){return Ad(this,a)};vd.prototype.expand=function(a,b,c,d){if(ra(a)){this.top-=
a.top;this.right+=a.right;this.bottom+=a.bottom;this.left-=a.left}else{this.top-=a;this.right+=b;this.bottom+=c;this.left-=d}return this};var Ad=function(a,b){if(!a||!b)return false;return b.x>=a.left&&b.x<=a.right&&b.y>=a.top&&b.y<=a.bottom};var Bd=function(a,b,c,d){this.left=a;this.top=b;this.width=c;this.height=d};Bd.prototype.clone=function(){return new Bd(this.left,this.top,this.width,this.height)};var Cd=" - ",Dd="w x ",Ed="h)";Bd.prototype.toString=function(){return Ea+this.left+Fa+this.top+Cd+this.width+Dd+this.height+Ed};Bd.prototype.contains=function(a){return this.left<=a.left&&this.left+this.width>=a.left+a.width&&this.top<=a.top&&this.top+this.height>=a.top+a.height};var Fd="mousedown",P=function(a,b,c){this.target=a;this.handle=b||a;this.limits=c||new Bd;this.d=a.ownerDocument||a.document;this.Gc=lc(this.d);K(this.handle,Fd,this.ub,false,this)};t(P,O);P.prototype.screenX=0;P.prototype.screenY=0;P.prototype.vb=0;P.prototype.wb=0;P.prototype.V=0;P.prototype.W=0;P.prototype.ab=true;P.prototype.H=false;P.prototype.fb=0;P.prototype.$b=0;var Gd="mousemove",Hd="mouseup";P.prototype.a=function(){P.o.a.call(this);dd(this.handle,Fd,this.ub,false,this);dd(this.d,Gd,this.Fa,
false,this);dd(this.d,Hd,this.Aa,false,this);delete this.target;delete this.handle};P.prototype.ub=function(a){if(this.ab&&!this.H){if(this.fb==0){this.gb(a);this.H&&a.preventDefault()}K(this.d,Gd,this.Fa,false,this);K(this.d,Hd,this.Aa,false,this);this.screenX=this.vb=a.screenX;this.screenY=this.wb=a.screenY;this.V=this.target.offsetLeft;this.W=this.target.offsetTop;this.pageScroll=bc(this.d).ka();this.$b=xa()}};var Id="start";P.prototype.gb=function(a){var b=this.dispatchEvent(new Jd(Id,this,a.clientX,
a.clientY,a));if(b!==false)this.H=true};var Kd="end";P.prototype.Aa=function(a){dd(this.d,Gd,this.Fa,false,this);dd(this.d,Hd,this.Aa,false,this);if(this.H){this.H=false;var b=this.ib(this.V),c=this.jb(this.W);this.dispatchEvent(new Jd(Kd,this,a.clientX,a.clientY,a,b,c))}};var Ld="beforedrag",Md="drag";P.prototype.Fa=function(a){if(this.ab){var b=a.screenX-this.screenX,c=a.screenY-this.screenY,d=bc(this.d).ka();b+=d.x-this.pageScroll.x;c+=d.y-this.pageScroll.y;this.V+=b;this.W+=c;var e=this.ib(this.V),
f=this.jb(this.W);this.screenX=a.screenX;this.screenY=a.screenY;this.pageScroll=d;if(!this.H){var g=this.vb-this.screenX,h=this.wb-this.screenY,i=g*g+h*h;i>this.fb&&this.gb(a)}if(this.H){var l=this.dispatchEvent(new Jd(Ld,this,a.clientX,a.clientY,a,e,f));if(l!==false){this.Gb(e,f);this.dispatchEvent(new Jd(Md,this,a.clientX,a.clientY,a,e,f));a.preventDefault()}}}};P.prototype.ib=function(a){var b=this.limits,c=typeof b.left!="undefined"?b.left:null,d=typeof b.width!="undefined"?b.width:0,e=c!=null?
c+d:Infinity,f=c!=null?c:-Infinity;return Math.min(e,Math.max(f,a))};P.prototype.jb=function(a){var b=this.limits,c=typeof b.top!="undefined"?b.top:null,d=typeof b.height!="undefined"?b.height:0,e=c!=null?c+d:Infinity,f=c!=null?c:-Infinity;return Math.min(e,Math.max(f,a))};var Nd="px";P.prototype.Gb=function(a,b){this.target.style.left=a+Nd;this.target.style.top=b+Nd};var Jd=function(a,b,c,d,e,f,g){F.call(this,a);this.type=a;this.clientX=c;this.clientY=d;this.browserEvent=e;this.left=k(f)?f:b.V;this.top=
k(g)?g:b.W;this.dragger=b};t(Jd,F);var Od="StopIteration";if(Od in j)var Pd=j.StopIteration;else Pd=Error(Od);var Qd=function(){};Qd.prototype.next=function(){throw Pd;};Qd.prototype.__iterator__=function(){return this};var Rd=function(a){if(typeof a.C==p)return a.C();if(r(a))return a.split(w);if(oa(a)){var b=[],c=a.length;for(var d=0;d<c;d++)b.push(a[d]);return b}return Ob(a)},Sd=function(a){if(typeof a.I==p)return a.I();if(typeof a.C==p)return undefined;if(oa(a)||r(a)){var b=[],c=a.length;for(var d=0;d<c;d++)b.push(d);return b}return Pb(a)},Td=function(a,b,c){if(typeof a.forEach==p)a.forEach(b,c);else if(oa(a)||r(a))Gb(a,b,c);else{var d=Sd(a),e=Rd(a),f=e.length;for(var g=0;g<f;g++)b.call(c,e[g],d&&d[g],a)}},Ud=
null;var Q=function(a){this.s={};this.b=[];var b=arguments.length;if(b>1){if(b%2)throw Error(Ub);for(var c=0;c<b;c+=2)this.set(arguments[c],arguments[c+1])}else a&&this.Bb(a)};Q.prototype.c=0;Q.prototype.fa=0;Q.prototype.C=function(){this.ia();var a=[];for(var b=0;b<this.b.length;b++){var c=this.b[b];a.push(this.s[c])}return a};Q.prototype.I=function(){this.ia();return this.b.concat()};Q.prototype.u=function(a){return Vd(this.s,a)};Q.prototype.clear=function(){this.s={};this.b.length=0;this.c=0;this.fa=
0};Q.prototype.remove=function(a){if(Vd(this.s,a)){delete this.s[a];this.c--;this.fa++;this.b.length>2*this.c&&this.ia();return true}return false};Q.prototype.ia=function(){if(this.c!=this.b.length){var a=0,b=0;while(a<this.b.length){var c=this.b[a];if(Vd(this.s,c))this.b[b++]=c;a++}this.b.length=b}if(this.c!=this.b.length){var d={},a=0,b=0;while(a<this.b.length){var c=this.b[a];if(!Vd(d,c)){this.b[b++]=c;d[c]=1}a++}this.b.length=b}};Q.prototype.get=function(a,b){if(Vd(this.s,a))return this.s[a];
return b};Q.prototype.set=function(a,b){if(!Vd(this.s,a)){this.c++;this.b.push(a);this.fa++}this.s[a]=b};Q.prototype.Bb=function(a){var b,c;if(a instanceof Q){b=a.I();c=a.C()}else{b=Pb(a);c=Ob(a)}for(var d=0;d<b.length;d++)this.set(b[d],c[d])};Q.prototype.clone=function(){return new Q(this)};var Wd="The map has changed since the iterator was created";Q.prototype.__iterator__=function(a){this.ia();var b=0,c=this.b,d=this.s,e=this.fa,f=this,g=new Qd;g.next=function(){while(true){if(e!=f.fa)throw Error(Wd);
if(b>=c.length)throw Pd;var h=c[b++];return a?h:d[h]}};return g};if(Object.prototype.hasOwnProperty)var Vd=function(a,b){return Object.prototype.hasOwnProperty.call(a,b)};else Vd=function(a,b){return b in a&&a[b]!==Object.prototype[b]};var Xd=function(a,b,c){if(typeof a.set==p)a.set(b,c);else a[b]=c};Ud=Xd;var R=function(a,b,c){r(b)?Yd(a,c,b):Nb(b,wa(Yd,a))},Yd=function(a,b,c){a.style[Zd(c)]=b},$d=function(a,b){var c=ac(a);if(c.defaultView&&c.defaultView.getComputedStyle){var d=c.defaultView.getComputedStyle(a,w);if(d)return d[b]}return null};var ae=function(a,b,c){var d,e;if(b instanceof Da){d=b.x;e=b.y}else{d=b;e=c}a.style.left=typeof d==n?Math.round(d)+Nd:d;a.style.top=typeof e==n?Math.round(e)+Nd:e},be="missing height argument",ce=function(a,b,c){var d;if(b instanceof u){d=b.height;b=b.width}else{if(c==
undefined)throw Error(be);d=c}a.style.width=typeof b==n?Math.round(b)+Nd:b;a.style.height=typeof d==n?Math.round(d)+Nd:d},de="display",ee="none",fe="hidden",ge="absolute",he=function(a){if(($d(a,de)||(a.currentStyle?a.currentStyle.display:null)||a.style.display)!=ee)return new u(a.offsetWidth,a.offsetHeight);var b=a.style,c=b.display,d=b.visibility,e=b.position;b.visibility=fe;b.position=ge;b.display=w;var f=a.offsetWidth,g=a.offsetHeight;b.display=c;b.position=e;b.visibility=d;return new u(f,g)},
Zd=function(a){return String(a).replace(/\-([a-z])/g,function(b,c){return c.toUpperCase()})};var ie="opacity",je="MozOpacity",ke="filter",le="alpha(opacity=",me=function(a,b){var c=a.style;if(ie in c)c.opacity=b;else if(je in c)c.MozOpacity=b;else if(ke in c)c.filter=le+b*100+Ga},S=function(a,b){a.style.display=b?w:ee},ne=function(a){return a?r(a)||a.nodeType==3?true:Hb(a,ne):false},oe="1.9";Cb&&!(fb(mb,oe)>=0);var T=function(a,b){O.call(this);this.na=a||1;this.sa=b||pe;this.Ra=s(this.oc,this);this.hb=xa()};t(T,O);T.prototype.enabled=false;var pe=j.window,qe=0.8;T.prototype.z=null;T.prototype.setInterval=function(a){this.na=a;if(this.z&&this.enabled){this.stop();this.start()}else this.z&&this.stop()};T.prototype.oc=function(){if(this.enabled){var a=xa()-this.hb;if(a>0&&a<this.na*qe){this.z=this.sa.setTimeout(this.Ra,this.na-a);return}this.Hb();if(this.enabled){this.z=this.sa.setTimeout(this.Ra,this.na);
this.hb=xa()}}};var re="tick";T.prototype.Hb=function(){this.dispatchEvent(re)};T.prototype.start=function(){this.enabled=true;if(!this.z){this.z=this.sa.setTimeout(this.Ra,this.na);this.hb=xa()}};T.prototype.stop=function(){this.enabled=false;if(this.z){this.sa.clearTimeout(this.z);this.z=null}};T.prototype.a=function(){T.o.a.call(this);this.stop();delete this.sa};var se=function(a,b,c){if(qa(a)){if(c)a=s(a,c)}else if(a&&typeof a.handleEvent==p)a=s(a.handleEvent,a);else throw Error(Oc);return pe.setTimeout(a,
b||0)};var te=function(){};te.prototype.ac=0;var ue=":";te.prototype.Nb=function(){return ue+(this.ac++).toString(36)};var ve=new te;var U=function(a){O.call(this);this.g=a||bc();this.hc=we};t(U,O);U.prototype.Tb=ve;var we=null;U.prototype.ma=null;U.prototype.g=null;U.prototype.w=false;U.prototype.e=null;U.prototype.hc=null;U.prototype.Zb=null;U.prototype.K=null;U.prototype.ha=null;U.prototype.ga=null;U.prototype.qc=null;U.prototype.db=function(){return this.ma||(this.ma=this.Tb.Nb())};U.prototype.j=function(){return this.e};U.prototype.ic=function(a){this.e=a};var xe="Unable to set parent component";U.prototype.kc=function(a){if(this==
a)throw Error(xe);if(a&&this.K&&this.K.cb(this.ma))throw Error(xe);this.K=a};U.prototype.la=function(){return this.K};U.prototype.k=function(){this.e=this.g.createElement(C)};U.prototype.render=function(a){this.fc(a)};var ye="Component already rendered";U.prototype.fc=function(a,b){if(this.w)throw Error(ye);this.e||this.k();a?a.insertBefore(this.e,b||null):this.g.d.body.appendChild(this.e);if(!this.K||this.K.w)this.Y()};U.prototype.Y=function(){this.w=true;this.Ba(function(a){!a.w&&a.j()&&a.Y()})};
U.prototype.P=function(){this.Ba(function(a){a.w&&a.P()});this.w=false};U.prototype.a=function(){U.o.a.call(this);this.w&&this.P();this.Ba(function(a){a.dispose()});!this.qc&&this.e&&B(this.e);this.ha=null;this.ga=null;this.e=null;this.Zb=null;this.K=null};U.prototype.cb=function(a){return this.ga&&a?Rb(this.ga,a)||null:null};U.prototype.Ba=function(a,b){this.ha&&Gb(this.ha,a,b)};var ze="Child is not in parent component";U.prototype.removeChild=function(a,b){if(a){var c=r(a)?a:a.db();a=this.cb(c);
if(c&&a){Qb(this.ga,c);Jb(this.ha,a);if(b){a.P();a.e&&B(a.e)}a.kc(null)}}if(!a)throw Error(ze);return a};var Ae="modal-dialog",V=function(a,b,c){U.call(this,c);this.p=a||Ae;this.Pa=!!b;this.A=Be;this.m=new M(this);this.ja=new ud(this.g.d)};t(V,U);V.prototype.p=null;V.prototype.Pa=false;V.prototype.pa=true;V.prototype.$a=true;V.prototype.Db=0.3;V.prototype.pc=w;V.prototype.Va=w;V.prototype.A=null;V.prototype.O=null;V.prototype.Qa=false;V.prototype.Ib=false;V.prototype.h=null;V.prototype.i=null;V.prototype.ua=null;V.prototype.Oa=null;V.prototype.yb=null;V.prototype.ta=null;V.prototype.Ua=null;V.prototype.G=
null;V.prototype.m=null;var Ce="-title-draggable";V.prototype.Eb=function(){var a=new P(this.j(),this.ua);Zb(this.ua,this.p+Ce);return a};var De="-title",Ee="span",Fe="-title-text",Ge="-title-close",He="-content",Ie="-buttons",Je="dialog",Ke="labelledby";V.prototype.k=function(){this.Xb();this.ic(this.g.k(C,{className:this.p,tabIndex:0},this.ua=this.g.k(C,{className:this.p+De,id:this.db()},this.Oa=this.g.k(Ee,{className:this.p+Fe},this.pc),this.ta=this.g.k(Ee,{className:this.p+Ge})),this.Ua=this.g.k(C,
{className:this.p+He}),this.G=this.g.k(C,{className:this.p+Ie}),this.nc=this.g.k(Ee,{tabIndex:0})));this.yb=this.ua.id;Fc(this.j(),Je);Ic(this.j(),Ke,this.yb);if(this.Va)this.Ua.innerHTML=this.Va;S(this.j(),false);this.A&&this.A.Cb(this.G)};var Le="iframe",Me="border: 0",Ne="-bg";V.prototype.Xb=function(){if(this.Pa&&this.pa&&!this.i){this.i=this.g.k(Le,{frameborder:0,style:Me,className:this.p+Ne});S(this.i,false);me(this.i,0)}else if((!this.Pa||!this.pa)&&this.i){B(this.i);this.i=null}if(this.pa&&
!this.h){this.h=this.g.k(C,{className:this.p+Ne});me(this.h,this.Db);S(this.h,false)}else if(!this.pa&&this.h){B(this.h);this.h=null}};V.prototype.render=function(a){if(this.w)throw Error(ye);this.j()||this.k();var b=a||this.g.d.body;this.ec(b);V.o.render.call(this,b)};V.prototype.ec=function(a){this.i&&a.appendChild(this.i);this.h&&a.appendChild(this.h)};var Oe="click";V.prototype.Y=function(){V.o.Y.call(this);if(this.$a&&!this.O)this.O=this.Eb();this.m.listen(this.ta,Oe,this.pb);this.m.listen(this.ja,
qd,this.mb);Fc(this.j(),Je);this.Oa.id!==w&&Ic(this.j(),Ke,this.Oa.id)};V.prototype.P=function(){this.m.unlisten(this.ta,Oe,this.pb);this.m.unlisten(this.ja,qd,this.mb);this.Qa&&this.N(false);if(this.O){this.O.dispose();this.O=null}V.o.P.call(this)};var Pe="keydown",Qe="resize",Re="button",Se="afterhide";V.prototype.N=function(a){if(a==this.Qa)return;var b=this.g.d,c=lc(b)||window;this.w||this.render(b.body);if(a){this.rb();this.reposition();this.m.listen(this.j(),Pe,this.nb,true);this.m.listen(c,
Qe,this.ob,true)}else{this.m.unlisten(this.j(),Pe,this.nb,true);this.m.unlisten(c,Qe,this.ob,true)}this.i&&S(this.i,a);this.h&&S(this.h,a);S(this.j(),a);if(a){Cb&&this.j().focus();if(this.A){var d=this.A.ya;if(d){var e=this.G.getElementsByTagName(Re);for(var f=0,g;g=e[f];f++)if(g.name==d){try{g.focus()}catch(h){}break}}}}this.Qa=a;if(a)this.m.listen(this.G,Oe,this.lb);else{this.m.unlisten(this.G,Oe,this.lb);this.dispatchEvent(Se);this.Ib&&this.dispose()}};V.prototype.rb=function(){this.i&&S(this.i,
false);this.h&&S(this.h,false);var a=this.g.d,b=lc(a)||window,c=kc(b),d=a.body.scrollWidth,e=Math.max(a.body.scrollHeight,c.height);if(this.i){S(this.i,true);ce(this.i,d,e)}if(this.h){S(this.h,true);ce(this.h,d,e)}if(this.$a){var f=he(this.j());this.O.limits=new Bd(0,0,d-f.width,e-f.height)}};V.prototype.reposition=function(){var a=this.g.d,b=lc(a)||window,c=this.g.ka(),d=c.x,e=c.y,f=he(this.j()),g=kc(b),h=Math.max(d+g.width/2-f.width/2,0),i=Math.max(e+g.height/2-f.height/2,0);ae(this.j(),h,i)};V.prototype.pb=
function(){var a=this.A,b=a&&a.U;if(b){var c=a.get(b);this.dispatchEvent(new Te(b,c))&&this.N(false)}else this.N(false)};V.prototype.a=function(){V.o.a.call(this);if(this.m){this.m.dispose();this.m=null}if(this.ja){this.ja.dispose();this.ja=null}if(this.h){B(this.h);this.h=null}if(this.i){B(this.i);this.i=null}this.ta=null;this.G=null;this.nc=null};V.prototype.lb=function(a){var b=this.Kb(a.target);if(b){var c=b.name,d=this.A.get(c);this.dispatchEvent(new Te(c,d))&&this.N(false)}};var Ue="BUTTON";
V.prototype.Kb=function(a){var b=a;while(b!=null&&b!=this.G){if(b.tagName==Ue)return b;b=b.parentNode}return null};V.prototype.nb=function(a){var b=this.A;if(a.keyCode==27){if(b&&b.U){var c=b.get(b.U);this.dispatchEvent(new Te(b.U,c))&&this.N(false)}else this.N(false);a.stopPropagation()}else if(a.keyCode==13){var d=a.target&&a.target.tagName==Ue?a.target.name:b&&b.ya;if(d){this.dispatchEvent(new Te(d,b.get(d)))&&this.N(false);a.preventDefault()}a.stopPropagation()}else if(a.keyCode==9&&a.shiftKey&&
a.target==this.j()){a.preventDefault();a.stopPropagation()}};V.prototype.ob=function(){this.rb()};V.prototype.mb=function(a){this.nc==a.target&&se(this.Lb,0,this)};V.prototype.Lb=function(){x&&this.g.d.body.focus();this.j().focus()};var Ve="dialogselect",Te=function(a,b){this.type=Ve;this.key=a;this.caption=b};t(Te,F);var W=function(a){this.g=a||bc();Q.call(this)},Be,We,Xe,Ye,Ze;t(W,Q);W.prototype.ya=null;W.prototype.e=null;W.prototype.U=null;W.prototype.set=function(a,b,c,d){Q.prototype.set.call(this,
a,b);if(c)this.ya=a;if(d)this.U=a;return this};W.prototype.Cb=function(a){this.e=a;this.render()};W.prototype.render=function(){if(this.e){this.e.innerHTML=w;var a=bc(this.e);Td(this,function(b,c){this.e.appendChild(a.k(Re,{name:c},b))},this)}};var $e="OK",af="Cancel",bf="Yes",cf="No",df="Save",ef="Continue",ff="ok",gf="cancel",hf="yes",jf="no",kf="continue",lf="save";(function(){var a=Ba($e),b=Ba(af),c=Ba(bf),d=Ba(cf),e=Ba(df),f=Ba(ef);We=(new W).set(ff,a,true);Be=(new W).set(ff,a,true).set(gf,b,
false,true);Xe=(new W).set(hf,c,true).set(jf,d,false,true);Ye=(new W).set(hf,c).set(jf,d,true).set(gf,b,false,true);Ze=(new W).set(kf,f).set(lf,e).set(gf,b,true,true)})();var X=function(a,b){var c;if(a instanceof X){this.M(b==null?a.r:b);this.Ma(a.F);this.Na(a.ea);this.Ha(a.X);this.Ka(a.S);this.ra(a.aa);this.La(a.t.clone());this.Ia(a.Z)}else if(a&&(c=String(a).match(mf()))){this.M(!!b);this.Ma(c[1],true);this.Na(c[2],true);this.Ha(c[3],true);this.Ka(c[4]);this.ra(c[5],true);this.La(c[6]);this.Ia(c[7],true)}else{this.M(!!b);this.t=new Y(null,this,this.r)}};X.prototype.F=w;X.prototype.ea=w;X.prototype.X=w;X.prototype.S=null;X.prototype.aa=w;X.prototype.Z=w;X.prototype.Vb=
false;X.prototype.r=false;var nf="//",of="@",pf="?",qf="#";X.prototype.toString=function(){if(this.l)return this.l;var a=[];this.F&&a.push(rf(this.F,sf),ue);if(this.X){a.push(nf);this.ea&&a.push(rf(this.ea,sf),of);a.push(tf(this.X));this.S!=null&&a.push(ue,String(this.S))}this.aa&&a.push(rf(this.aa,uf));var b=String(this.t);b&&a.push(pf,b);this.Z&&a.push(qf,rf(this.Z,vf));return this.l=a.join(w)};X.prototype.clone=function(){return wf(this.F,this.ea,this.X,this.S,this.aa,this.t.clone(),this.Z,this.r)};
X.prototype.Ma=function(a,b){this.v();delete this.l;this.F=b?a?decodeURIComponent(a):w:a;if(this.F)this.F=this.F.replace(/:$/,w);return this};X.prototype.Na=function(a,b){this.v();delete this.l;this.ea=b?a?decodeURIComponent(a):w:a;return this};X.prototype.Ha=function(a,b){this.v();delete this.l;this.X=b?a?decodeURIComponent(a):w:a;return this};var xf="Bad port number ";X.prototype.Ka=function(a){this.v();delete this.l;if(a){a=Number(a);if(isNaN(a)||a<0)throw Error(xf+a);this.S=a}else this.S=null;
return this};X.prototype.ra=function(a,b){this.v();delete this.l;this.aa=b?a?decodeURIComponent(a):w:a;return this};X.prototype.La=function(a){this.v();delete this.l;if(a instanceof Y){this.t=a;this.t.va=this;this.t.M(this.r)}else this.t=new Y(a,this,this.r);return this};X.prototype.Ja=function(a,b){this.v();delete this.l;this.t.set(a,b);return this};X.prototype.tb=function(a,b){this.v();delete this.l;q(b)||(b=[String(b)]);this.t.lc(a,b);return this};X.prototype.Ia=function(a,b){this.v();delete this.l;
this.Z=b?a?decodeURIComponent(a):w:a;return this};var yf="Tried to modify a read-only Uri";X.prototype.v=function(){if(this.Vb)throw Error(yf);};X.prototype.M=function(a){this.r=a;this.t&&this.t.M(a)};var wf=function(a,b,c,d,e,f,g,h){var i=new X(null,h);a&&i.Ma(a);b&&i.Na(b);c&&i.Ha(c);d&&i.Ka(d);e&&i.ra(e);f&&i.La(f);g&&i.Ia(g);return i};var tf=function(a){if(r(a))return encodeURIComponent(a);return null},zf=/^[a-zA-Z0-9\-_.!~*'():\/;?]*$/,rf=function(a,b){var c=null;if(r(a)){c=a;zf.test(c)||(c=
encodeURI(a));if(c.search(b)>=0)c=c.replace(b,Af)}return c},Bf="%",Af=function(a){var b=a.charCodeAt(0);return Bf+(b>>4&15).toString(16)+(b&15).toString(16)},Cf=null,mf=function(){Cf||(Cf=/^(?:([^:\/?#]+):)?(?:\/\/(?:([^\/?#]*)@)?([^\/?#:@]*)(?::([0-9]+))?)?([^?#]+)?(?:\?([^#]*))?(?:#(.*))?$/);return Cf},sf=/[#\/\?@]/g,uf=/[\#\?]/g,vf=/#/g,Df="=",Y=function(a,b,c){this.f=new Q;this.va=b||null;this.r=!!c;if(a){var d=a.split(Ta);for(var e=0;e<d.length;e++){var f=d[e].indexOf(Df),g=null,h=null;if(f>=
0){g=d[e].substring(0,f);h=d[e].substring(f+1)}else g=d[e];g=Oa(g);g=this.B(g);this.add(g,h?Oa(h):w)}}};Y.prototype.c=0;Y.prototype.add=function(a,b){this.R();a=this.B(a);if(this.u(a)){var c=this.f.get(a);q(c)?c.push(b):this.f.set(a,[c,b])}else this.f.set(a,b);this.c++;return this};Y.prototype.remove=function(a){a=this.B(a);if(this.f.u(a)){this.R();var b=this.f.get(a);if(q(b))this.c-=b.length;else this.c--;return this.f.remove(a)}return false};Y.prototype.clear=function(){this.R();this.f.clear();
this.c=0};Y.prototype.u=function(a){a=this.B(a);return this.f.u(a)};Y.prototype.I=function(){var a=this.f.C(),b=this.f.I(),c=[];for(var d=0;d<b.length;d++){var e=a[d];if(q(e))for(var f=0;f<e.length;f++)c.push(b[d]);else c.push(b[d])}return c};Y.prototype.C=function(a){var b;if(a){var c=this.B(a);if(this.u(c)){var d=this.f.get(c);if(q(d))return d;else{b=[];b.push(d)}}else b=[]}else{var e=this.f.C();b=[];for(var f=0;f<e.length;f++){var g=e[f];q(g)?Lb(b,g):b.push(g)}}return b};Y.prototype.set=function(a,
b){this.R();a=this.B(a);if(this.u(a)){var c=this.f.get(a);if(q(c))this.c-=c.length;else this.c--}this.f.set(a,b);this.c++;return this};Y.prototype.get=function(a,b){a=this.B(a);if(this.u(a)){var c=this.f.get(a);return q(c)?c[0]:c}else return b};Y.prototype.lc=function(a,b){this.R();a=this.B(a);if(this.u(a)){var c=this.f.get(a);if(q(c))this.c-=c.length;else this.c--}if(b.length>0){this.f.set(a,b);this.c+=b.length}};Y.prototype.toString=function(){if(this.l)return this.l;var a=[],b=0,c=this.f.I();for(var d=
0;d<c.length;d++){var e=c[d],f=Ma(e),g=this.f.get(e);if(q(g))for(var h=0;h<g.length;h++){b>0&&a.push(Ta);a.push(f,Df,Ma(g[h]));b++}else{b>0&&a.push(Ta);a.push(f,Df,Ma(g));b++}}return this.l=a.join(w)};Y.prototype.R=function(){delete this.l;this.va&&delete this.va.l};Y.prototype.clone=function(){var a=new Y;a.f=this.f.clone();return a};Y.prototype.B=function(a){var b=String(a);if(this.r)b=b.toLowerCase();return b};Y.prototype.M=function(a){var b=a&&!this.r;if(b){this.R();Td(this.f,function(c,d){var e=
d.toLowerCase();if(d!=e){this.remove(d);this.add(e,c)}},this)}this.r=a};Y.prototype.extend=function(){for(var a=0;a<arguments.length;a++){var b=arguments[a];Td(b,function(c,d){this.add(d,c)},this)}};var Ef="__GBS_Callback",Ff="callback",Gf="text/javascript",Jf=function(a,b){var a=new X(a),c=Ef+Hf++;a.Ja(Ff,c);var d=mc(Ac,{src:a.toString(),type:Gf});j[c]=wa(If,c,d,b);A($b().d.body,d)},If=function(a,b,c){B(b);c()};var Hf=0;var Kf="en",Lf=function(a,b){this.$=b||Kf},Mf="img",Nf="http://books.google.com/intl/%s/googlebooks/images/gbs_preview_button1.gif",Of="cursor",Pf="pointer";Lf.prototype.eb=function(){var a=z(Mf);a.src=Ja(Nf,this.$);a.border=0;R(a,Of,Pf);return a};var Qf="a",Rf="&hl=",Sf=function(a,b,c){Lf.call(this,a,c);var d=z(Qf);d.href=b;d.href+=Rf+(c||Kf);A(a,d);A(d,this.eb())};t(Sf,Lf);var Tf=function(a,b,c){Lf.call(this,a,c);A(a,this.eb());R(a,Of,Pf);K(a,Oe,b)};t(Tf,Lf);var Uf=function(a,b){this.Jb();var c=new google.books.DefaultViewer(this.Ab,b);c.load(a);this.cc()},Vf="body",Wf="#333",Xf="8px",Yf="1px solid #2c4462",Zf="#b4cffe",$f="#d8e8fd",ag="16px",bg="Arial, sans-serif",cg="bold",dg="2px 2px 2px 5px",eg="http://books.google.com/googlebooks/images/dialog_close_x.gif",fg="11px",gg="&nbsp;";Uf.prototype.Jb=function(){var a=document.getElementsByTagName(Vf)[0],b=z(C);me(b,0.5);R(b,{backgroundColor:Wf,position:ge,zIndex:200});this.sc=b;var c=kc(),d=a.scrollWidth,
e=Math.max(a.scrollHeight,c.height);ce(b,d,e);ae(b,0,0);A(a,b);this.qa=z(C);R(this.qa,{position:ge,zIndex:201});A(a,this.qa);this.da=z(C);ce(this.da,618,500);R(this.da,{backgroundColor:Wf,position:ge,zIndex:202});ae(this.da,3,3);me(this.da,0.3);A(this.qa,this.da);this.ba=z(C);ae(this.ba,0,0);R(this.ba,{position:ge,padding:Xf,border:Yf,backgroundColor:Zf,zIndex:203});var f=z(C);R(f,{backgroundColor:$f,fontSize:ag,fontFamily:bg,fontWeight:cg,padding:dg});A(this.ba,f);var g=z(Mf);g.src=eg;g.width=15;
g.height=15;R(g,{cursor:Pf,position:ge,right:fg,top:fg});cd(g,Oe,s(this.close,this));A(f,g);var h=z(C);h.innerHTML=gg;A(f,h);this.Ab=z(C);A(this.ba,this.Ab);ce(this.Ab,600,456);A(this.qa,this.ba)};Uf.prototype.cc=function(){var a=kc(),b=Math.max(0,(a.height-500)/2);b=Math.floor(b+$b().ka().y);var c=Math.max(0,(a.width-618)/2);c=Math.floor(c);ae(this.qa,c,b)};Uf.prototype.close=function(){Gb([this.ba,this.sc,this.da],B)};var hg=function(a,b){this.va=new X(a);this.wc=b?b:Ff;this.xb=5000},ig=0,jg="_",kg="_callbacks_.",lg="UTF-8",mg="head";hg.prototype.send=function(a,b,c){if(!document.documentElement.firstChild){c&&c(a);return null}var d=jg+(ig++).toString(36)+xa().toString(36);j._callbacks_||(j._callbacks_={});var e=z(Ac),f=null;if(this.xb>0){var g=ng(d,e,a,c);f=j.setTimeout(g,this.xb)}var h=this.va.clone();og(a,h);if(b){var i=pg(d,e,b,f);j._callbacks_[d]=i;h.tb(this.wc,kg+d)}gc(e,{type:Gf,id:d,charset:lg,src:h.toString()});
A(document.getElementsByTagName(mg)[0],e);return{ma:d,xb:f}};var ng=function(a,b,c,d){return function(){qg(a,b,false);d&&d(c)}},pg=function(a,b,c,d){return function(){j.clearTimeout(d);qg(a,b,true);c.apply(undefined,arguments)}},qg=function(a,b,c){j.setTimeout(function(){B(b)},0);if(j._callbacks_[a])if(c)delete j._callbacks_[a];else j._callbacks_[a]=fa},og=function(a,b){for(var c in a)if(!a.hasOwnProperty||a.hasOwnProperty(c))b.tb(c,a[c]);return b};var rg=function(a){O.call(this);this.url=a;this.gc=null;this.Wb=true};t(rg,O);rg.prototype.fetch=function(){if(this.Wb)this.Wb=false;else throw{};};rg.prototype.abort=ha;rg.prototype.jc=function(a){this.gc=a};rg.prototype.n=function(){return this.gc};var Z=function(a){rg.call(this,a);this.yc=new hg(a);this.Ca=true};t(Z,rg);Z.prototype.fetch=function(a,b){Z.o.fetch.call(this,a,b);this.Ca=false;this.yc.send({},s(this.Rb,this,a),s(this.Qb,this,b))};var sg="success";Z.prototype.Rb=function(a,b){if(!this.Ca){this.jc(b);this.dispatchEvent(sg);a&&a(this.n());this.Ga()}};var tg="error";Z.prototype.Qb=function(a){if(!this.Ca){this.dispatchEvent(tg);a&&a();this.Ga()}};Z.prototype.Ga=function(){this.Ca=true};Z.prototype.abort=function(){this.Ga()};var ug="http://books.google.com/books?jscmd=viewapi",vg="bibkeys",wg=",",xg="hl",yg=function(a,b,c){q(a)||(a=[a]);this.Ub=a;this.mc=b;this.bc=c;var d=new X(ug);d.Ja(vg,a.join(wg));d.Ja(xg,GBS_LANG);var e=new Z(d);e.fetch(s(this.Pb,this))};yg.prototype.Pb=function(a){for(var b=0;b<this.Ub.length;b++){var c=this.Ub[b],d=a[c];if(d){var e=d.preview_url;if(e&&zg(d)){this.mc&&this.mc(e);return}}}this.bc&&this.bc()};var Ag="full",Bg="partial",zg=function(a){var b=a.preview,c=a.embeddable;k(c)||(c=true);
return(b==Ag||b==Bg)&&c};var $={};$.insertPreviewButtonLink=function(a,b){var c=b||{},d=c.alternativeUrl,e=wa($.Dc,d);$.bb(a,e)};var Cg="GBS_insertPreviewButtonLink";Ca(Cg,$.insertPreviewButtonLink);$.insertPreviewButtonPopup=function(a){$.bb(a,$.Ec)};var Dg="GBS_insertPreviewButtonPopup";Ca(Dg,$.insertPreviewButtonPopup);$.insertEmbeddedViewer=function(a,b,c){$.bb(a,wa($.Cc,b,c))};var Eg="GBS_insertEmbeddedViewer";Ca(Eg,$.insertEmbeddedViewer);$.bb=function(a,b){var c=$.Fc(),d=function(e){b(c,e)};new yg(a,d)};var Fg="/books/p/";
$.Dc=function(a,b,c){var d=a||c;if($.Ta){var e=new X(d);e.ra(Fg+$.Ta);d=e.toString()}new Sf(b,d,$.$)};$.Ec=function(a,b){var c=$.Bc.partial(b);new Tf(a,c,$.$)};$.Cc=function(a,b,c,d){var e=z(C);A(c,e);ce(e,a,b);$.Ea(function(){var f=new google.books.DefaultViewer(e,$.zb);f.load(d)})};var Gg="books",Hg="0";$.Ea=function(a){var b=wa($.Ea,a);if(!j.google){Jf($.rc,wa($.Ea,b));return}if(!google.books){google.load(Gg,Hg,{callback:b,language:$.$});return}a()};$.Bc=function(a){$.Ea(function(){new Uf(a,$.zb)})};
var Ig="http://www.google.com/jsapi";$.rc=Ig,$.$=Kf;$.setLanguage=function(a){$.$=a};var Jg="GBS_setLanguage";Ca(Jg,$.setLanguage);$.setViewerOptions=function(a){$.zb=a};var Kg="GBS_setViewerOptions";Ca(Kg,$.setViewerOptions);$.Ta=null;$.setCobrandName=function(a){$.Ta=a};var Lg="GBS_setCobrandName";Ca(Lg,$.setCobrandName);$.zb={};var Mg="__GBS_Button",Ng='<span id="%s"></span>';$.Fc=function(){var a=Mg+$.xc++;document.write(Ja(Ng,a));return r(a)?document.getElementById(a):a};$.xc=0;var Og="unload";K(window,Og,function(){gd()});
})();</script>
<html>
<a href="http://plasmodi.net/">
<img src="http://farm4.static.flickr.com/3064/2775380374_d440cf6219.jpg"  width="130" title="my portrait by sergi"/>
</a>
</div>
</html>

^^''[[josep saldaña cavallé|about]]'' 

maker of context. editor/programmer for nanowiki.

josep.saldana(at)gmail.com^^

[[projects]]

^^<<search>>^^

^^<<toggleSideBar sidebar "show right side" hide>>^^



^^Powered by TiddlyWiki <<version>>^^
<html>
<a href="http://plasmodi.net/">
<img src="http://farm4.static.flickr.com/3064/2775380374_d440cf6219.jpg"  width="130" title="my portrait by sergi"/>
</a>
</div>
</html>

^^''[[Josep Saldaña Cavallé|about]]'' Consultant and programmer in digital technology. Research on the emerging culture and make a divulgative work on new technologies. Has been working in the computer industry, media and telecomms since 1984.^^
[[agenda]]
[[document viewer]]
[[video player]]
[[rss reader]]
NanoWiki
@@display:none;<<tiddler LoadScripts>>@@








^^Powered by TiddlyWiki <<version>>^^
http://www.marceliantunez.com/tikiwiki/tiki-print_article.php?articleId=111

<!--{{{-->
<link rel='alternate' type='application/rss+xml' title='RSS' href='index.xml'/>
<link rel="shortcut icon" href="http://laboratori.ws/img/favicon.ico" type="image/x-icon">
<meta name="keywords" content="josep saldaña cavallé" />
<link rel="schema.DC" href="http://purl.org/dc/elements/1.1/" />
<meta name="DC.title" content="laboratori.website d'en josep saldaña" />
<meta name="DC.author" content="josep saldaña cavallé" />
<!--}}}-->
/***
|Name|MatchTagsPlugin|
|Source|http://www.TiddlyTools.com/#MatchTagsPlugin|
|Documentation|http://www.TiddlyTools.com/#MatchTagsPluginInfo|
|Version|2.0.5|
|Author|Eric Shulman|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.1|
|Type|plugin|
|Description|'tag matching' with full boolean expressions (AND, OR, NOT, and nested parentheses)|
!!!!!Documentation
> see [[MatchTagsPluginInfo]]
!!!!!Revisions
<<<
2011.01.23 2.0.5 fix core tweak for TW262+: adjust code in config.filters['tag'] instead of filterTiddlers()
2010.08.11 2.0.4 in getMatchingTiddlers(), fixed sorting for descending order (e.g, "-created")
| please see [[MatchTagsPluginInfo]] for additional revision details |
2008.02.28 1.0.0 initial release
<<<
!!!!!Code
***/
//{{{
version.extensions.MatchTagsPlugin= {major: 2, minor: 0, revision: 5, date: new Date(2011,23,11)};

// store.getMatchingTiddlers() processes boolean expressions for tag matching
//    sortfield (optional) sets sort order for tiddlers - default=title
//    tiddlers (optional) use alternative set of tiddlers (instead of current store)
TiddlyWiki.prototype.getMatchingTiddlers = function(tagexpr,sortfield,tiddlers) {

	var debug=config.options.chkDebug; // abbreviation
	var cmm=config.macros.matchTags; // abbreviation
	var r=[]; // results are an array of tiddlers
	var tids=tiddlers||store.getTiddlers();
	if (tids && sortfield) tids=store.sortTiddlers(tids,sortfield);
	if (debug) displayMessage(cmm.msg1.format([tids.length]));

	// try simple lookup to quickly find single tags or tags that
	// contain boolean operators as literals, e.g. "foo and bar"
	for (var t=0; t<tids.length; t++)
		if (tids[t].isTagged(tagexpr)) r.pushUnique(tids[t]);
	if (r.length) {
		if (debug) displayMessage(cmm.msg4.format([r.length,tagexpr]));
		return r;
	}
	
	// convert expression into javascript code with regexp tests,
	// so that "tag1 AND ( tag2 OR NOT tag3 )" becomes
	// "/\~tag1\~/.test(...) && ( /\~tag2\~/.test(...) || ! /\~tag3\~/.test(...) )"

	// normalize whitespace, tokenize operators, delimit with "~"
	var c=tagexpr.trim(); // remove leading/trailing spaces
	c = c.replace(/\s+/ig," "); // reduce multiple spaces to single spaces
	c = c.replace(/\(\s?/ig,"~(~"); // open parens
	c = c.replace(/\s?\)/ig,"~)~"); // close parens
	c = c.replace(/(\s|~)?&&(\s|~)?/ig,"~&&~"); // &&
	c = c.replace(/(\s|~)AND(\s|~)/ig,"~&&~"); // AND
	c = c.replace(/(\s|~)?\|\|(\s|~)?/ig,"~||~"); // ||
	c = c.replace(/(\s|~)OR(\s|~)/ig,"~||~"); // OR
	c = c.replace(/(\s|~)?!(\s|~)?/ig,"~!~"); // !
	c = c.replace(/(^|~|\s)NOT(\s|~)/ig,"~!~"); // NOT
	c = c.replace(/(^|~|\s)NOT~\(/ig,"~!~("); // NOT(
	// change tag terms to regexp tests
	var terms=c.split("~"); for (var i=0; i<terms.length; i++) { var t=terms[i];
		if (/(&&)|(\|\|)|[!\(\)]/.test(t) || t=="") continue; // skip operators/parens/spaces
		if (t==config.macros.matchTags.untaggedKeyword)
			terms[i]="tiddlertags=='~~'"; // 'untagged' tiddlers
		else
			terms[i]="/\\~"+t+"\\~/.test(tiddlertags)";
	}
	c=terms.join(" ");
	if (debug) { displayMessage(cmm.msg2.format([tagexpr])); displayMessage(cmm.msg3.format([c])); }

	// scan tiddlers for matches
	for (var t=0; t<tids.length; t++) {
	 	// assemble tags from tiddler into string "~tag1~tag2~tag3~"
		var tiddlertags = "~"+tids[t].tags.join("~")+"~";
		try { if(eval(c)) r.push(tids[t]); } // test tags
		catch(e) { // error in test
			displayMessage(cmm.msg2.format([tagexpr]));
			displayMessage(cmm.msg3.format([c]));
			displayMessage(e.toString());
			break; // skip remaining tiddlers
		}
	}
	if (debug) displayMessage(cmm.msg4.format([r.length,tagexpr]));
	return r;
}
//}}}
//{{{
config.macros.matchTags = {
	msg1: "scanning %0 input tiddlers",
	msg2: "looking for '%0'",
	msg3: "using expression: '%0'",
	msg4: "found %0 tiddlers matching '%1'",
	noMatch: "no matching tiddlers",
	untaggedKeyword: "-",
	untaggedLabel: "no tags",
	untaggedPrompt: "show tiddlers with no tags",
	defTiddler: "MatchingTiddlers",
	defTags: "",
	defFormat: "[[%0]]",
	defSeparator: "\n",
	reportHeading: "Found %0 tiddlers tagged with: '{{{%1}}}'\n----\n",
	handler: function(place,macroName,params,wikifier,paramString,tiddler) {
		var mode=params[0]?params[0].toLowerCase():'';
		if (mode=="inline")
			params.shift();
		if (mode=="report" || mode=="panel") {
			params.shift();
			var target=params.shift()||this.defTiddler;
		}
		if (mode=="popup") {
			params.shift();
			if (params[0]&&params[0].substr(0,6)=="label:") var label=params.shift().substr(6);
			if (params[0]&&params[0].substr(0,7)=="prompt:") var prompt=params.shift().substr(7);
		} else {
			var fmt=(params.shift()||this.defFormat).unescapeLineBreaks();
			var sep=(params.shift()||this.defSeparator).unescapeLineBreaks();
		}
		var sortBy="+title";
		if (params[0]&&params[0].substr(0,5)=="sort:") sortBy=params.shift().substr(5);
		var expr = params.join(" ");
		if (mode!="panel" && (!expr||!expr.trim().length)) return;
		if (expr==this.untaggedKeyword)
			{ var label=this.untaggedLabel; var prompt=this.untaggedPrompt };
		switch (mode) {
			case "popup": this.createPopup(place,label,expr,prompt,sortBy); break;
			case "panel": this.createPanel(place,expr,fmt,sep,sortBy,target); break;
			case "report": this.createReport(target,this.defTags,expr,fmt,sep,sortBy); break;
			case "inline": default: this.createInline(place,expr,fmt,sep,sortBy); break;
		}
	},
	formatList: function(tids,fmt,sep) {
		var out=[];
		for (var i=0; i<tids.length; i++) { var t=tids[i];
			var title=t.title;
			var who=t.modifier;
			var when=t.modified.toLocaleString();
			var text=t.text;
			var first=t.text.split("\n")[0];
			var desc=store.getTiddlerSlice(t.title,"description");
			desc=desc||store.getTiddlerSlice(t.title,"Description");
			desc=desc||store.getTiddlerText(t.title+"##description");
			desc=desc||store.getTiddlerText(t.title+"##Description");
			var tags=t.tags.length?'[['+t.tags.join(']] [[')+']]':'';
			out.push(fmt.format([title,who,when,text,first,desc,tags]));
		}
		return out.join(sep);
	},
	createInline: function(place,expr,fmt,sep,sortBy) {
		wikify(this.formatList(store.sortTiddlers(store.getMatchingTiddlers(expr),sortBy),fmt,sep),place);
	},
	createPopup: function(place,label,expr,prompt,sortBy) {
		var btn=createTiddlyButton(place,
			(label||expr).format([expr]),
			(prompt||config.views.wikified.tag.tooltip).format([expr]),
			function(ev){ return config.macros.matchTags.showPopup(this,ev||window.event); });
		btn.setAttribute("sortBy",sortBy);
		btn.setAttribute("expr",expr);
	},
	showPopup: function(here,ev) {
		var p=Popup.create(here); if (!p) return false;
		var tids=store.getMatchingTiddlers(here.getAttribute("expr"));
		store.sortTiddlers(tids,here.getAttribute("sortBy"));
		var list=[]; for (var t=0; t<tids.length; t++) list.push(tids[t].title);
		if (!list.length) createTiddlyText(p,this.noMatch);
		else {
			var b=createTiddlyButton(createTiddlyElement(p,"li"),
				config.views.wikified.tag.openAllText,
				config.views.wikified.tag.openAllTooltip,
				function() {
					var list=this.getAttribute("list").readBracketedList();
					story.displayTiddlers(null,tids);
				});
			b.setAttribute("list","[["+list.join("]] [[")+"]]");
			createTiddlyElement(p,"hr");
		}
		var out=this.formatList(tids," &nbsp;[[%0]]&nbsp; ","\n"); wikify(out,p);
		Popup.show();
		ev.cancelBubble=true;
		if(ev.stopPropagation) ev.stopPropagation();
		return false;
	},
	createReport: function(target,tags,expr,fmt,sep,sortBy) {
		var tids=store.sortTiddlers(store.getMatchingTiddlers(expr),sortBy);
		if (!tids.length) { displayMessage('no matches for: '+expr); return false; }
		var msg=config.messages.overwriteWarning.format([target]);
		if (store.tiddlerExists(target) && !confirm(msg)) return false;
		var out=this.reportHeading.format([tids.length,expr])
		out+=this.formatList(tids,fmt,sep);
		store.saveTiddler(target,target,out,config.options.txtUserName,new Date(),tags,{});
		story.closeTiddler(target); story.displayTiddler(null,target);
	},
	createPanel: function(place,expr,fmt,sep,sortBy,tid) {
		var s=createTiddlyElement(place,"span"); s.innerHTML=store.getTiddlerText("MatchTagsPlugin##html");
		var f=s.getElementsByTagName("form")[0];
		f.expr.value=expr; f.fmt.value=fmt; f.sep.value=sep.escapeLineBreaks();
		f.tid.value=tid; f.tags.value=this.defTags;
	}
};
//}}}
/***
//{{{
!html
<form style='display:inline;white-space:nowrap'>
<input type='text'    name='expr' style='width:50%' title='tag expression'><!--
--><input type='text'    name='fmt'  style='width:10%' title='list item format'><!--
--><input type='text'    name='sep'  style='width:5%'  title='list item separator'><!--
--><input type='text'    name='tid'  style='width:12%' title='target tiddler title'><!--
--><input type='text'    name='tags' style='width:10%' title='target tiddler tags'><!--
--><input type='button'  name='go'   style='width:8%'  value='go' onclick="
	var expr=this.form.expr.value;
	if (!expr.length) { alert('Enter a boolean tag expression'); return false; }
	var fmt=this.form.fmt.value;
	if (!fmt.length) { alert('Enter the list item output format'); return false; }
	var sep=this.form.sep.value.unescapeLineBreaks();
	var tid=this.form.tid.value;
	if (!tid.length) { alert('Enter a target tiddler title'); return false; }
	var tags=this.form.tags.value;
	config.macros.matchTags.createReport(tid,tags,expr,fmt,sep,'title');
	return false;">
</form>
!end
//}}}
***/
//{{{
// SHADOW TIDDLER for displaying default panel input form
config.shadowTiddlers.MatchTags="<<matchTags panel>>";
//}}}
//{{{
// TWEAK core filterTiddlers() or config.filters['tag'] (in TW262+)
// to use getMatchingTiddlers instead getTaggedTiddlers
// for enhanced boolean matching in [tag[...]] syntax
var TW262=config.filters && config.filters['tag']; // detect TW262+
var fname=TW262?"config.filters['tag']":"TiddlyWiki.prototype.filterTiddlers";
var code=eval(fname).toString().replace(/getTaggedTiddlers/g,'getMatchingTiddlers');
eval(fname+'='+code);
//}}}
//{{{
// REDEFINE core handler for enhanced boolean matching in tag:"..." paramifier
// use filterTiddlers() instead of getTaggedTiddlers() to get list of tiddlers.
config.paramifiers.tag = {
	onstart: function(v) {
		var tagged = store.filterTiddlers("[tag["+v+"]]");
		story.displayTiddlers(null,tagged,null,false,null);
	}
};
//}}}
''Mediateca online amb la segona generació internet'' (2005).

''"Des d'un punt de vista tècnic, l'evolució va fent emergir un nou entorn de “computació ubiqua” gestionat per aplicacions de la “web semàntica”''. És a dir, cada cop més, la computació està pertot, distribuïda en tots els espais on viu la nostra espècie. Aquesta abundància de ginys digitals, amb capacitats diverses de processament i intercomunicació, genera quantitats ingents d'informació i un potencial enorme de combinacions. L'anomenada Web 2.0, o web semàntica, té la capacitat de fer que la documentació online no sols sigui accesible per la gent - com ho és ara- sinó que també sia processable per les màquines, permeten treure profit a tota la infraestructura de computació que ens envolta. ''Tot això apunta cap a noves formes d'operació (ubiqua, contínua, autoorganitzada) i a nous models d'ús (ambiental, contextual, integrat amb l'activitat humana i els entorns). En aquest nou entorn una característica clau és el contingut obert (open content)''. En un entorn tan i tan complex, l'interoperativitat, a totes les escales, és essencial. Per això s'ha dit que “compartir estarà arreu; és el nou capítol de la world wide web”. A la Vikipèdia (Wikipedia), una enciclopèdia de contingut obert nascuda el 2001 i que supera amb escreix a una Enciclopèdia Britànica, és defineix el contingut obert així: “anomenat per analogía amb el 'codi obert', descriu qualsevol mena de treball creatiu incloent articles, fotos, àudio y video que és publicat en un format que explicitament permet la copia de l'informació”. Per cert, “el contingut de la Vikipèdia està disponible sota els termes de la Licència Lliure de Documentació GNU [del software lliure], que assegura que qualsevol persona pugui reutilitzar les entrades tal i com desitgi, fins i tot comercialment, mentre que preservi aquests drets en les seves pròpies versions i donin crèdit a la Vikipèdia com a font original. Aquesta tendència de fons a compartir coneixements, cap als continguts oberts, està modificant el panorama de la ciència al món. El “procomú científic” (science commons) ja comença a mostrar avui dia com funciona la nova pràctica del contingut obert, fins i tot en un ambient tan exigent com el de la ciència. L'iniciativa “Public Library of Science” (~PLoS) és una referència i un model de documentació per a qualsevol àmbit del coneixement. ''Al meu parer, una orientació decidida cap als continguts oberts és l'opció estratègica amb més potencial de futur per a la mediateca online. A partir d'aquí s'obre un ventall enorme d'opcions de reutilització de continguts i creació de nous materials en l'àmbit propi de la mediateca, l'art contemporani i la música''".
''[[Metanarrative(s)?|http://www.mediatecaonline.net/mediatecaonline/SFitxaActiv?ID_IDIOMA=en&catno=AC00269&pag=3&format=Audio&origen=Mediateca]]'', V Jornadas Arte y Multimedia (2005). ''Reflexions sobre l´endegament artístic de narratives i sintaxis audiovisuals i multimèdia''. Reflexiones sobre el papel del arte en el desarrollo de narrativas y sintaxis audiovisuales y multimedia. Reflections on the artistic direction of audiovisual and multimedia narratives and syntax.
''[[Russia-China: SCO Military Alliance Challenges US-NATO Unipolar World|http://www.globalresearch.ca/index.php?context=va&aid=10104]]'' by Lada Korotun. Global Research, September 7, 2008
''[[Medvedev outlines five main points of future foreign policy|http://en.rian.ru/world/20080831/116422749.html]]''. //"A uni-polar world is unacceptable"//. RIA Novosti. August 31, 2008
''[[NATO Council condemns the Russian recognition of Abkhazia and South Ossetia regions of Georgia|http://www.nato.int/docu/pr/2008/p08-108e.html]]''. NATO. August 27, 2008
''[[Why I had to recognise Georgia’s breakaway regions|http://www.ft.com/cms/s/0/9c7ad792-7395-11dd-8a66-0000779fd18c.html?nclick_check=1]]'' by Dmitry Medvedev, president of the Russian Federation. Financial Times. August 26, 2008
''[[NATO – the paper alliance|http://en.rian.ru/analysis/20080825/116254723.html]]'' by John Laughland . RIA Novosti. August 25, 2008
{{textcenter{
[img[http://www.google.com/coop/intl/en/images/custom_search_sm.gif]]
~NanoSearch Scholar: search papers on nanotechnology<html><form id="searchbox_004490888024521477894:saircctgzwe" action="http://www.google.com/cse" target="_blank"><input type="hidden" name="cx" value="004490888024521477894:saircctgzwe" /><input name="q" type="text" size="35" /><input type="submit" name="sa" value="Search" /><input type="hidden" name="cof" value="FORID:0" /></form><script type="text/javascript" src="http://www.google.com/coop/cse/brand?form=searchbox_004490888024521477894%3Asaircctgzwe"></script>
<br>
NanoSearch News: search news on nanotechnology<form id="searchbox_004490888024521477894:lp7omq5kzsa" action="http://www.google.com/cse" target="_blank"><input type="hidden" name="cx" value="004490888024521477894:lp7omq5kzsa" /><input name="q" type="text" size="35" /><input type="submit" name="sa" value="Search" /><input type="hidden" name="cof" value="FORID:0" /></form><script type="text/javascript" src="http://www.google.com/coop/cse/brand?form=searchbox_004490888024521477894%3Alp7omq5kzsa"></script>
<br>
NanoSearch Videos: search videos on nanotechnology<form id="searchbox_004490888024521477894:h6nkyoluwye" action="http://www.google.com/cse" target="_blank"><input type="hidden" name="cx" value="004490888024521477894:h6nkyoluwye" /><input name="q" type="text" size="35" /><input type="submit" name="sa" value="Search" /><input type="hidden" name="cof" value="FORID:0" /></form><script type="text/javascript" src="http://www.google.com/coop/cse/brand?form=searchbox_004490888024521477894%3Ah6nkyoluwye"></script><br></html>
With Google Custom Search Engine, ~NanoWiki created a search engine tailored to nanotechnology search
}}}

{{borderless{
|vertical-align:bottom;<<toggleSideBar>>|<<tiddler NavButtons>>|vertical-align:bottom;[[Open in a new window|http://www.google.com/coop/cse?cx=004490888024521477894:h6nkyoluwye]]&nbsp;&raquo;|
}}}<html><div align="left"><iframe src ="http://www.google.com/coop/cse?cx=004490888024521477894:h6nkyoluwye" width="100%" align="center" height="550"></iframe></div></html>

<html><div class="podPress_content"><div id="podPressPlayerSpace_13" style="display: block;">Escuchar ahora:<br/>
<object type="application/x-shockwave-flash" data="http://majaras.contrabanda.org/wp-content/plugins/podpress/player.swf" width="290" height="24" id="audioplayer4846">
	<param name="movie" value="http://majaras.contrabanda.org/wp-content/plugins/podpress/player.swf" />
	<param name="FlashVars" value="playerID=4846&amp;bg=0xF8F8F8&amp;leftbg=0xEEEEEE&amp;text=0x666666&amp;lefticon=0x666666&amp;rightbg=0xCCCCCC&amp;rightbghover=0x999999&amp;righticon=0x666666&amp;righticonhover=0xFFFFFF&amp;slider=0x666666&amp;track=0xFFFFFF&amp;loader=0x9FFFB8&amp;border=0x666666&amp;soundFile=http%3A%2F%2Fia310924.us.archive.org%2F0%2Fitems%2FAsambleadeMajaras_03.12.2006%2F20061203Asamblea_de_Majaras.mp3" />
	<param name="quality" value="high" />
	<param name="menu" value="false" />
	<param name="wmode" value="transparent" />
</object><br/><br/></div>
</html>
http://majaras.contrabanda.org/?p=13
<<forEachTiddler
    where
        'tiddler.tags.contains("toRSS")'
    sortBy
        tiddler.created
    descending

    script '
        window.fetItemsPerPage = 10;

        function getHeader(context,count) {
            if (!window.fetStartIndex || window.fetStartIndex < 0)
                window.fetStartIndex = 0;

            // ensure not to page behind the last page
            if (window.fetStartIndex >= count)
                window.fetStartIndex = Math.min(Math.max(window.fetStartIndex-window.fetItemsPerPage,0),count-1);

            createTiddlyButton(context.place,"<",null,
                    function(e) {
                        window.fetStartIndex -= window.fetItemsPerPage;
                        story.refreshTiddler(context.viewerTiddler.title,null,true);
                    });
            createTiddlyButton(context.place,">",null,
                    function(e) {
                        window.fetStartIndex += window.fetItemsPerPage;
                        story.refreshTiddler(context.viewerTiddler.title,null,true);
                    });

            var startNo = window.fetStartIndex+1;
            var endNo = Math.min(count,window.fetStartIndex+window.fetItemsPerPage);

            return "("+startNo+" - "+endNo+ " of  "+ count + " news)\n\n";
        }
    '

    write
            '(index >= window.fetStartIndex) && (index < window.fetStartIndex + 10) ? ""+tiddler.created.formatString("DD MMM YYYY")+"\n [["+tiddler.title+"]]\n\n" : ""'

        begin
            'getHeader(context,count)'
>>
"A nanotechnology journal to track the evolution of paradigms and discoveries in nanoscience and nanotechnology field, annotate and disseminate them, giving an overall view and feed the essential public debate on nanotechnology and its practical applications". ''[[NanoWiki, tracking nanotechnology|http://nanowiki.info/]]'' 

Includes [[NanoWiki. Manual de Operaciones 1.0]] and [[Videoclips NanoWiki]] (spanish version). Website made for the [[Institut Català de Nanotecnologia]]. More [[about nanowiki]]
<html><object codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" id="doc_10855107041705" name="doc_10855107041705" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" align="middle" height="500" width="620"> <param name="movie" value="http://documents.scribd.com/ScribdViewer.swf?document_id=6068142&access_key=key-x5bxo9jizumer6bqg0q&page=1&version=1&viewMode=book"> <param name="quality" value="high"> <param name="play" value="true"> <param name="loop" value="true"> <param name="scale" value="showall"> <param name="wmode" value="opaque"> <param name="devicefont" value="false"> <param name="bgcolor" value="#ffffff"> <param name="menu" value="true"> <param name="allowFullScreen" value="true"> <param name="allowScriptAccess" value="always"> <param name="salign" value=""> <param name="mode" value="book"> <embed src="http://documents.scribd.com/ScribdViewer.swf?document_id=6068142&access_key=key-x5bxo9jizumer6bqg0q&page=1&version=1&viewMode=book" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" play="true" loop="true" scale="showall" wmode="opaque" devicefont="false" bgcolor="#ffffff" name="doc_10855107041705_object" menu="true" allowfullscreen="true" allowscriptaccess="always" salign="" type="application/x-shockwave-flash" align="middle" mode="book" height="500" width="620"></embed> </object><div style="font-size:10px;text-align:center;width:700"><a href="http://www.scribd.com/doc/6068142/Nanowiki-Manual-de-Operaciones-10">Nanowiki Manual de Operaciones 1.0</a> </div><div style="display:none"> Read this document on Scribd: <a href="http://www.scribd.com/doc/6068142/Nanowiki-Manual-de-Operaciones-10">Nanowiki Manual de Operaciones 1.0</a> </div></html>

Para el [[website de NanoWiki|http://nanowiki.info/]] por encargo del [[Institut Català de Nanotecnologia]].

Incluido en la colección ''[["Open Source Books" del Internet Archive|http://www.archive.org/details/Nanowiki.ManualDeOperaciones1.0]]''. También disponible en [[el lector de documentos online docstoc|http://www.docstoc.com/docs/1042978/NanoWiki-Manual-de-operaciones-10]]
Piratas de la Ciencia quiere presentar en esta convocatoria un plan de apoyo para una semana de la Nanotecnología y el Nanoarte, erigida en base a la aprobación de un seminario de 5 días (Nanoconexiones en la frontera de lo infinito: relaciones entre el arte, la ciencia y la sociedad a través de la Nanotecnología) en colaboración con la Universidad Internacional Menéndez Pelayo (UIMP) y financiada por dicha universidad. Nuestro plan de apoyo se compone por el diseño de cinco actividades complementarias pero compatibles con la temática de dicho seminario. El objetivo básico de todas estas actividades es generar un tejido fuerte y bien enlazado en la ciudad de Valencia tanto por los distintos profesionales, como por el público general interesado, como a su vez por los distintos estudiantes que conforman el sector educativo. Las actividades en concreto son:

Reunión Yasmin: 

Piratas de la Ciencia viene participando en la red [[Yasmin|http://www.media.uoa.gr/yasmin/]] (Your Art and Science Mediterranean Network) tanto como corresponsales españoles como moderadores desde mas de un año al día de hoy. A su vez ya se ha ocupado de la producción y la organización de una reunión internacional Yasmin en octubre del 2006. En esta ocasión, dada la gran popularidad que ha suscitado uno de los foros moderados por Piratas de la Ciencia dedicado a la Nanociencia/Nanoarte, queremos aprovechar esta propuesta para organizar un segundo evento Yasmin y atraer a los miembros de ámbito nacional e internacional preocupados en analizar los retos que la Nanotecnología presenta en la actualidad.
Fundador y director de ~NetConexión , ''first Spanish magazine on Internet culture'' (1995-96). 

[<img[http://www.hipertexto.info/images/net.jpg]] ''[[Internet, una cultura de diseño|http://www.ac.upc.es/homes/artur/internet-disseny.html]]'' de [[Artur Serra|http://www.i2cat.net/i2cat/servlet/I2CAT.ServletFlotant?tipus=contacte&id=94]] (n. 6, abril, 1996). "~NetConexión es una de las primeras revistas internacionales en dedicarse expresamente a "la cultura Internet". El articulo que sigue a continuación pretende ser una visión personal sobre esta ''cultura emergente'' (...) algunos antropólogos nos hemos empezado a dedicadar a explorar a las comunidades que hacen ciencia y tecnologia, y en particular nuevas tecnologias (...) He llegado a la conclusión que ''el fundamento de las nuevas tecnologías, incluida Internet, es un nuevo tipo de conocimiento basado en el diseño, y que su matriz proviene de la ingenieria, no de la ciencia''. Podriamos llamarlo una nueva ingenieria teórica, para diferenciarla de la antigua ingeniera concebida sólo como "aplicación de la ciencia". Los informáticos y ingenieros que crearon los protocolos ~TCP-IP empezando por Bob Kahn y Vint Cerf, habian sido formados en la cultura de los ''"científicos de lo artificial"'' que Herb Simon representaba. Para estos diseñadores, para estos "computer scientists", las teorías son sus modelos de sistemas informáticos posibles, y su prueba experimental consiste en su construcción práctica. Por lo tanto no les importa si es verdad o falso (Popper) sino si funciona o no (it works!). ''No verifican o falsean, validan''. Ese codigo de comportamiento queda bien expresado por el Internet Engineering Task Force , la asamblea internacional de ingenieros dedicados al diseño de los protocolos y a su proceso de standarización que hacen funcionar la red de redes: //"Rechazamos los reyes, los presidentes e incluso las votaciones.Creemos en el consenso aproximado y en los códigos que funcionan"// (Entiéndase por código, programa informático)". Este artículo está basado en su tesis doctoral [["Design Culture"|http://people.ac.upc.edu/artur/CMUdesignculture.htm]] (1992).

[[Editorial sobre La Exposición Mundial Internet 1996|Internet World Exposition, a world's fair for the information age]]. Enero 1996

[[Sumario del número 12|http://web.archive.org/web/19990911192636/http://www.wsite.es/NET/]] (1996) recuperado con [[The Wayback Machine|http://www.archive.org/web/web.php]].
''[[Networked Cultures. Parallel Architectures and the Politics of Space|http://www.networkedcultures.org/conversations3.php?id=37]]'' investigates the cultural transformations under way in Europe through examining the potentials and effects of ''networked spatial practices''. 

[<img[http://www.networkedcultures.org/bookjacket.jpg]] "The book traces a variety of strands along which the project itself has developed. First, attention is focused on the phenomenon of ''network creativity'' by following the routes of networks laid out by artists, architects, urbanists, curators and activists. Second, the interrelationship of ''space and conflict'' is investigated by mapping contested spaces across Europe and beyond, examining the architecture of conflict, and analysing models of geocultural negotiation. The focus then shifts to ''informal governmentality and self-organization'' by examining various forms of black markets, slum settlements and the accompanying parallel economy. Finally, the parallel worlds of mobility and migration, 'travelling' communities, digital worlds and other ''counter-geographies'' are discussed in relation to transient spaces and the 'archipelago of the peripheries'. Numerous interviews, visuals and a parade of urban interventions, public art projects and architectural experiments gathered from the groups, practices or initiatives encountered during the research provide a wealth of illustrative material and challenge the narrative. The book therefore extends current debates about architectural and spatial planning, addressing the emergence of new forms of urban engagement, re-evaluating the relationship between space and conflict, and establishing future trajectories //''for an architectural culture geared towards the formation of networks''//.

Public communication and presentation are an essential part of the project, in keeping with its special character. The Networked Cultures project is comprised of a growing database, a website with interviews, comments, news, round table broadcasts, and links to exhibitions, manifestations and online discussions. The book, accompanied by a DVD with audiovisual reports and other multimedia components, offers a highly comprehensive overview of the project.

Accompanying exhibitions, manifestations, debates and presentations include events in Rotterdam, London, Vienna, Istanbul, Moscow, Belgrade, Bucharest, Skopje, Berlin, Holon, Zurich, Barcelona, Linz, Antwerp, Rio de Janeiro, Toronto, Windsor, New York and Sydney."
''[[Proyecto de Observatorio Tecnológico del Estrecho|http://mcs.hackitectura.net/tiki-index.php?page=CONCURSO+DE+IDEAS]], fadaiat media-lab, propone la creación de un laboratorio permanente de nuevos medios'' situado en la frontera suroeste de Europa (Tarifa, Campo de Gibraltar). Fadaiat media-lab se propone como un espacio multicultural, local y global, donde abordar de forma creativa y crítica temas como mediaesfera, ecología, globalización, inmigración, territorio, nuevas formas de producción, y educación, a partir del uso de las tecnologías de la información y la comunicación. (2005)
Amb la voluntad de proposar ''una dinàmica de col.lectiu de col.lectius'', l'iniciativa dels [[Openfridays|http://straddle3.net/openfridays/]] cerca presentar i compartir experiències en una xarxa d'espais amables on posar en contacte projectes, col.lectius, persones relacionats amb la cultura emergent.

Una iniciativa de [[Context Weblog]] amb la col·laboració de straddle3 (2002-2006)


//una [[dinàmica|http://www.straddle3.net/context/02/020612_cultural_connectionism.en.html]] de [[col.lectiu de col.lectius|http://straddle3.net/context/03/imago/200501_openfriday_network_graph.png]]//
"El proyecto ~POS_6, Promoviendo Open Software, quiere dar a conocer los proyectos multimedia y obras de artistas que trabajan con nuevas herramientas y conceptos en la distribución de contenidos culturales. Una reflexión sobre modelos alternativos de gestionar y distribuir estas manifestaciones artísticas, favoreciendo nuevas formas de relación entre autor y usuario." (2006)

http://www.randomstudios.org/pos6/pos6.swf
<!--{{{-->
<div class='header' macro='gradient vert [[ColorPalette::Foreground]] [[ColorPalette::Foreground]]'>
<div class='headerShadow'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>

</div>
<div class='headerForeground'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>

</div>
</div>
<div id='mainMenu' refresh='content' tiddler='MainMenu'></div>
<div id='sidebar'>
<div id='sidebarOptions' refresh='content' tiddler='SideBarOptions'></div>
<div id='sidebarTabs' refresh='content' force='true' tiddler='SideBarTabs'></div>
</div>
<div id='displayArea'>
<div id='messageArea'></div>
<div id='tiddlerDisplay'></div>
</div>
<!--}}}-->
''[[Thousands rally against Georgian leader|http://wiredispatch.com/news/?id=446041]]'' by Margarita Antidze and Matt Robinson, Reuters. November 7, 2008
''[[Russia support for separatists could have ripples|http://wiredispatch.com/news/?id=322927]]''. //Russia support for Georgia separatists could have global ripples among breakaway regions// by Pisley Dodds. AP News. August 31, 2008
''[[U.S. Ally Proves Volatile Amid Dispute With Russia|http://online.wsj.com/article/SB122006041734285393.html?mod=hpp_us_whats_news]]''. //Georgian President Says West Ignored Pleas for Support// by Marc Champion, Jay Solomon and Mary Jacoby. The Wall Street Journal. August 30, 2008
''[[Crimean peninsula could be the next South Ossetia|http://www.independent.co.uk/news/world/europe/crimean-peninsula-could-be-the-next-south-ossetia-910769.html]]'' by Askold Krushelnycky. The Independent. August 28, 2008
''[[Kremlin recognition risks "domino effect" at home|http://wiredispatch.com/news/?id=316750]]'' by Christian Lowe. Reuters. August 27, 2008
''[[Russia president recognize S.Ossetia, Abkhazia|http://en.rian.ru/russia/20080825/116264611.html]]''. //Russia to support Abkhazia, S.Ossetia if they are attacked//. RIA Novosti. August 26, 2008
[[The Kosovo precedent: Recognizing Georgia's regions|http://www.monstersandcritics.com/news/europe/news/article_1426844.php/The_Kosovo_precedent_Recognizing_Georgias_regions__News_Feature_]] by Alissa de Carbonnel. Deutsche ~Presse-Agentur. August 25, 2008
[[Russia warns Moldova against "Georgian mistake"|http://today.reuters.com/news/articlenews.aspx?type=worldnews&storyID=2008-08-25T122713Z_01_LP591976_RTRUKOC_0_US-RUSSIA-MOLDOVA-TRANSDNIESTRIA.xml]] by Denis Dyomkin. Reuters. August 25, 2008
''[[Russia parliament asks president to recognize S.Ossetia, Abkhazia|http://en.rian.ru/russia/20080825/116264611.html]]''. RIA Novosti. August 25, 2008
''[[As Georgians Assess Damage, Anger Likely to Grow – With Their Govt|http://wiredispatch.com/news/?id=313090]]'' by Mike Eckel. AP News. August 25, 2008
''[[Black Sea the focus of tensions over Georgia|http://www.euronews.net/en/article/23/08/2008/black-sea-the-focus-of-tensions-over-georgia/]]''. Euronews. August 23, 2008
[[Warship port that is at the centre of the storm|http://www.timesonline.co.uk/tol/news/world/europe/article4592851.ece]] by Roger Boyes. Times. August 23, 2008
[[United States scratches the Montreux Convention itch|http://www.hurriyet.com.tr/english/home/9723783.asp?gid=244&sz=30305]] by Oktay Eksi. Hürriyet. August 23, 2008
''[[OSCE monitors arriving in Georgia as Russia withdraws troops|http://www.hurriyet.com.tr/english/home/9729050.asp?gid=244&sz=75344]]''. Hürriyet. August 23, 2008
''[[We will not be the next on Russia's hitlist, vows defiant Ukraine|http://www.timesonline.co.uk/tol/news/world/europe/article4592825.ece]]'' by Roger Boyes. The Times. August 23, 2008
[[Despite Pullout, Russia Envisions Long-Term Shift|http://www.nytimes.com/2008/08/23/world/europe/23moscow.html?_r=1&partner=rssuserland&emc=rss&pagewanted=all&oref=slogin]] by Clifford J. Levy. The New York Times. August 22, 2008
''[[Provisions of the Georgia-Russia truce agreement|http://news.yahoo.com/story//ap/20080822/ap_on_re_eu/georgia_russia_truce_glance]]''. The Associated Press. August 22, 2008
''[[Chechens sympathize with Georgia|http://www.kavkazcenter.com/eng/content/2008/08/20/10086.shtml]]''. Prague Watchdog. August 20, 2008
''17 de septiembre 2006''. Un picnic para antiguos trabajadores y artistas de Can Ricart que organizó Patricia Ward, entonces artista residente en Hangar.

"Proyecto in process -''Dislocación urbana''-: //Durante mi residencia en Hangar desde mediados de julio hasta finales de setiembre [2006], he estado desarrollando el proyecto en Poblenou, el cual está enfocado en el acercamiento al espacio urbano a través de la exploración de la ciudad y su historia, permitiéndome desvelar e interpretar los significados ausentes que pre-existen en las transformaciones del tejido urbano y los aún presentes que permanecen ocultos en el espacio íntimo de la comunidad. Ambas situaciones que se gestan, originan, evolucionan y desaparecen, se dan en el gran contexto del area de Poblenou con la gestación de experiencias sensibles de los hombres, comprendidos como hechos culturales, históricos y sociales que involucionan en el espacio de la ciudad.

Los espacios explorados, Can Ricart, La Escocesa, (en proceso con otras industrias del área), son posible de interpretar como una escenificación que permite la representación de la vida urbana. Soporte espacio temporal que se expresa en formas y materiales dotados de sentido, ideas contenidas que se manifiestan en la presencia o ausencia de la arquitectura, la vida presente o ausente, el recuerdo u olvido que actúa construyendo y participando del hecho cultural. Textos, testimonios que remiten a encuentros y desencuentros que se incorporan al proceso social como recurso de la memoria.

El uso de la historia como disponibilidad subjetiva desemboca en que cada sociedad posee la opción de volver a indagar sobre la narración que involucra recomponer los fragmentos urbanos, investigación que implica enunciar el discurso de los ciudadanos y el testimonio de los desplazados.

La modernidad activa su correlato de ruptura y de desencaje de la continuidad histórica contruida. Reemplazo de obras por el producto, expresión que se evidencia dramáticamente durante el siglo XX y XXI, con una dialéctica de estructuración del olvido y de dislocación del espacio urbano.

La investigación de los espacios públicos me permite analizar los hechos urbanos como un documento, activando la historia, a través de recontextualizar huellas y ecos como testimonios de un tiempo pasado en acción directa con las operativas del presente, partiendo de actuales percepciones. La metodología transita desde la investigación materialista de estos espacios, a una postura reflexiva de la historia, del futuro de las ciudades  y la humanidad.//" ''Patricia Ward''
/***
|''Name:''|RSSReaderPlugin|
|''Description:''|This plugin provides a RSSReader for TiddlyWiki|
|''Version:''|1.1.2|
|''Date:''|2008-09-02|
|''Source:''|http://tiddlywiki.bidix.info/#RSSReaderPlugin|
|''Documentation:''|http://tiddlywiki.bidix.info/#RSSReaderPluginDoc|
|''Author:''|BidiX (BidiX (at) bidix (dot) info)|
|''Credit:''|BramChen for RssNewsMacro|
|''[[License]]:''|[[BSD open source license|http://tiddlywiki.bidix.info/#%5B%5BBSD%20open%20source%20license%5D%5D ]]|
|''~CoreVersion:''|2.2.0|
|''OptionalRequires:''|http://www.tiddlytools.com/#NestedSlidersPlugin|
***/
//{{{
version.extensions.RSSReaderPlugin = {
	major: 1, minor: 1, revision: 2,
	date: new Date("2008-09-02"),
	source: "http://TiddlyWiki.bidix.info/#RSSReaderPlugin",
	author: "BidiX",
	coreVersion: '2.2.0'
};

config.macros.rssReader = {
	dateFormat: "DDD, DD MMM YYYY",
	itemStyle: "display: block;border: 1px solid black;padding: 5px;margin: 5px;", //useed  '@@'+itemStyle+itemText+'@@'
	msg:{
		permissionDenied: "Permission to read preferences was denied.",
		noRSSFeed: "No RSS Feed at this address %0",
		urlNotAccessible: " Access to %0 is not allowed"
	},
	cache: [], 	// url => XMLHttpRequest.responseXML
	desc: "noDesc",
	
	handler: function(place,macroName,params,wikifier,paramString,tiddler) {
		var desc = params[0];
		var feedURL = params[1];
		var toFilter = (params[2] ? true : false);
		var filterString = (toFilter?(params[2].substr(0,1) == ' '? tiddler.title:params[2]):'');
		var place = createTiddlyElement(place, "div", "RSSReader");
		wikify("^^<<rssFeedUpdate "+feedURL+" [[" + tiddler.title + "]]>>^^\n",place);
		if (this.cache[feedURL]) {
			this.displayRssFeed(this.cache[feedURL], feedURL, place, desc, toFilter, filterString);
		}
		else {
			var r = loadRemoteFile(feedURL,config.macros.rssReader.processResponse, [place, desc, toFilter, filterString]);
			if (typeof r == "string")
				displayMessage(r);
		}
		
	},

	// callback for loadRemoteFile 
	// params : [place, desc, toFilter, filterString]
	processResponse: function(status, params, responseText, url, xhr) { // feedURL, place, desc, toFilter, filterString) {	
		if (window.netscape){
			try {
				if (document.location.protocol.indexOf("http") == -1) {
					netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");
				}
			}
			catch (e) { displayMessage(e.description?e.description:e.toString()); }
		}
		if (xhr.status == 404)
		 {
			displayMessage(config.macros.rssReader.noRSSFeed.format([url]));
			return;
		}
		if (!status)
		 {
			displayMessage(config.macros.rssReader.noRSSFeed.format([url]));
			return;
		}
		if (xhr.responseXML) {
			// response is interpreted as XML
			config.macros.rssReader.cache[url] = xhr.responseXML;
			config.macros.rssReader.displayRssFeed(xhr.responseXML, params[0], url, params[1], params[2], params[3]);
		}
		else {
			if (responseText.substr(0,5) == "<?xml") {
				// response exists but not return as XML -> try to parse it 
				var dom = (new DOMParser()).parseFromString(responseText, "text/xml"); 
				if (dom) {
					// parsing successful so use it
					config.macros.rssReader.cache[url] = dom;
					config.macros.rssReader.displayRssFeed(dom, params[0], url, params[1], params[2], params[3]);
					return;
				}
			}
			// no XML display as html 
			wikify("<html>" + responseText + "</html>", params[0]);
			displayMessage(config.macros.rssReader.msg.noRSSFeed.format([url]));
		}
	},

	// explore down the DOM tree
	displayRssFeed: function(xml, place, feedURL, desc, toFilter, filterString){
		// Channel
		var chanelNode = xml.getElementsByTagName('channel').item(0);
		var chanelTitleElement = (chanelNode ? chanelNode.getElementsByTagName('title').item(0) : null);
		var chanelTitle = "";
		if ((chanelTitleElement) && (chanelTitleElement.firstChild)) 
			chanelTitle = chanelTitleElement.firstChild.nodeValue;
		var chanelLinkElement = (chanelNode ? chanelNode.getElementsByTagName('link').item(0) : null);
		var chanelLink = "";
		if (chanelLinkElement) 
			chanelLink = chanelLinkElement.firstChild.nodeValue;
		var titleTxt = "!![["+chanelTitle+"|"+chanelLink+"]]\n";
		var title = createTiddlyElement(place,"div",null,"ChanelTitle",null);
		wikify(titleTxt,title);
		// ItemList
		var itemList = xml.getElementsByTagName('item');
		var article = createTiddlyElement(place,"ul",null,null,null);
		var lastDate;
		var re;
		if (toFilter) 
			re = new RegExp(filterString.escapeRegExp());
		for (var i=0; i<itemList.length; i++){
			var titleElm = itemList[i].getElementsByTagName('title').item(0);
			var titleText = (titleElm ? titleElm.firstChild.nodeValue : '');
			if (toFilter && ! titleText.match(re)) {
				continue;
			}
			var descText = '';
			descElem = itemList[i].getElementsByTagName('description').item(0);
			if (descElem){
				try{
					for (var ii=0; ii<descElem.childNodes.length; ii++) {
						descText += descElem.childNodes[ii].nodeValue;
					}
				}
				catch(e){}
				descText = descText.replace(/<br \/>/g,'\n');
				if (desc == "asHtml")
					descText = "<html>"+descText+"</html>";
			}
			var linkElm = itemList[i].getElementsByTagName("link").item(0);
			var linkURL = linkElm.firstChild.nodeValue;
			var pubElm = itemList[i].getElementsByTagName('pubDate').item(0);
			var pubDate;
			if (!pubElm) {
				pubElm = itemList[i].getElementsByTagName('date').item(0); // for del.icio.us
				if (pubElm) {
					pubDate = pubElm.firstChild.nodeValue;
					pubDate = this.formatDateString(this.dateFormat, pubDate);
					}
					else {
						pubDate = '0';
					}
				}
			else {
				pubDate = (pubElm ? pubElm.firstChild.nodeValue : 0);
				pubDate = this.formatDate(this.dateFormat, pubDate);
			}
			titleText = titleText.replace(/\[|\]/g,'');
			var rssText = '*'+'[[' + titleText + '|' + linkURL + ']]' + '' ;
			if ((desc != "noDesc") && descText){
				rssText = rssText.replace(/\n/g,' ');
				descText = '@@'+this.itemStyle+descText + '@@\n';				
				if (version.extensions.nestedSliders){
					descText = '+++[...]' + descText + '===';
				}
				rssText = rssText + descText;
			}
			var story;
			if ((lastDate != pubDate) && ( pubDate != '0')) {
				story = createTiddlyElement(article,"li",null,"RSSItem",pubDate);
				lastDate = pubDate;
			}
			else {
				lastDate = pubDate;
			}
			story = createTiddlyElement(article,"div",null,"RSSItem",null);
			wikify(rssText,story);
		}
	},
	
	formatDate: function(template, date){
		var dateString = new Date(date);
		// template = template.replace(/hh|mm|ss/g,'');
		return dateString.formatString(template);
	},
	
	formatDateString: function(template, date){
		var dateString = new Date(date.substr(0,4), date.substr(5,2) - 1, date.substr(8,2)
			);
		return dateString.formatString(template);
	}
	
};

config.macros.rssFeedUpdate = {
	label: "Update",
	prompt: "Clear the cache and redisplay this RssFeed",
	handler: function(place,macroName,params) {
		var feedURL = params[0];
		var tiddlerTitle = params[1];
		createTiddlyButton(place, this.label, this.prompt, 
			function () {
				if (config.macros.rssReader.cache[feedURL]) {
					config.macros.rssReader.cache[feedURL] = null; 
			}
			story.refreshTiddler(tiddlerTitle,null, true);
		return false;});
	}
};

//}}}
config.views.wikified.tag.relatedTagsText = "Show related tags";
config.views.wikified.tag.relatedTagsTooltip = "Show related tags";
config.views.wikified.tag.labelNoRelatedTags = "no tags";
config.views.wikified.tag.labelRelatedTags = "related tags: ";

// Event handler for clicking on a tiddler tag
window.onClickTag = function(ev)
{
	var e = ev ? ev : window.event;
	var popup = Popup.create(this);
	var tag = this.getAttribute("tag");
	var title = this.getAttribute("tiddler");
	if(popup && tag) {
		var tagged = store.getTaggedTiddlers(tag);
		var titles = [];
		var li,r;
		for(r=0;r<tagged.length;r++) {
			if(tagged[r].title != title)
				titles.push(tagged[r].title);
		}
		var lingo = config.views.wikified.tag;
		if(titles.length > 0) {
			var openAll = createTiddlyButton(createTiddlyElement(popup,"li"),lingo.openAllText.format([tag]),lingo.openAllTooltip,onClickTagOpenAll);
			openAll.setAttribute("tag",tag);
			createTiddlyElement(createTiddlyElement(popup,"li",null,"listBreak"),"div");
			for(r=0; r<titles.length; r++) {
				createTiddlyLink(createTiddlyElement(popup,"li"),titles[r],true);
			}
		} else {
			createTiddlyText(createTiddlyElement(popup,"li",null,"disabled"),lingo.popupNone.format([tag]));
		}
		createTiddlyElement(createTiddlyElement(popup,"li",null,"listBreak"),"div");
		var relatedTags = createTiddlyButton(createTiddlyElement(popup,"li"),lingo.relatedTagsText,lingo.relatedTagsTooltip,onClickRelatedTags);
		relatedTags.setAttribute("tag",tag);
		var h = createTiddlyLink(createTiddlyElement(popup,"li"),tag,false);
		createTiddlyText(h,lingo.openTag.format([tag]));
	}
	Popup.show();
	e.cancelBubble = true;
	if(e.stopPropagation) e.stopPropagation();
	return false;
}

// Event handler for 'Show related tags' on a tiddler popup
window.onClickRelatedTags = function(ev)
{
	var e = ev ? ev : window.event;		
	var popup = Popup.create(this);
	var relatedtags = [];
	var tags = [];
	var tag = this.getAttribute("tag");
	var tiddlers = store.getTaggedTiddlers(tag);
	for(var i=0; i<tiddlers.length; i++) {
		tags = tiddlers[i].tags;
		for(var j=0; j<tags.length; j++) {
			relatedtags.pushUnique(tags[j]);
		}
	}
	var lingo = config.views.wikified.tag;
	var prompt = relatedtags.length == 0 ? lingo.labelNoRelatedTags : lingo.labelRelatedTags;
	createTiddlyElement(popup,"li",null,"listTitle",prompt.format([tag]));
	for(var t=0; t<relatedtags.length; t++) {
		if(relatedtags[t]!==tag) {
			createTagButton(createTiddlyElement(popup,"li"),relatedtags[t],tag);
		}
	}
	Popup.show();
	e.cancelBubble = true;
	if (e.stopPropagation) e.stopPropagation();
	return false;
}
[[sant bartomeu del grau :: observatori de transformació urbana|http://sbg.cat/observatori]]. Projecte pilot de transformació urbana al recinte industrial de Sant Bartomeu del Grau - Barcelona (2006). El treball es localitza sobre un recinte ja construït que ha perdut l'ús principal que li va donar forma en el passat. Es planteja la oportunitat de ''una programació d'usos temporals en el recinte per aturar la degradació i l'abandó de les instal·lacions i l'entorn, activant la economia local mentre es defineix urbanisticament i jurtidicament el seu futur''. Els usos temporals que pot acollir el recinte han d'estar relacionats amb :
_accions culturals / capital creatiu
_millora ambiental dels sistemes urbans
_implicació de comunitats locals i xarxes en la planificació, construcció i gestió de l'entorn urbà

<html><object id="_ds_1107217" name="_ds_1107217" width="620" height="550" type="application/x-shockwave-flash" data="http://viewer.docstoc.com/"><param name="FlashVars" value="doc_id=1107217&mem_id=211001&doc_type=pdf&fullscreen=0&showrelated=0&showotherdocs=0&showstats=0" /><param name="movie" value="http://viewer.docstoc.com/"/><param name="allowScriptAccess" value="always" /><param name="allowFullScreen" value="true" /></object><br /><font size="1"><a href="http://www.docstoc.com/docs/1107217/observatori-sbg">observatori sbg</a> - Get more <a href="http://www.docstoc.com/documents/creative/">Creative Writing</a></font></html>
''projects'':

^^//''projectes en curs'' >//^^
^^[[NanoWiki website|NanoWiki, tracking nanotechnology]]^^
^^[[Taller El evento Can Ricart 2005-2010|http://canricart.info/]]^^
^^//''projectes recents'' >//^^
^^[[e-book  Nanotechnology|http://nanowiki.info/#%5B%5BNanotechnology%3A%20balancing%20the%20promises%5D%5D]]^^
^^[[AutonomousConstruction.net]]^^
^^[[Inorganic Nanoparticles Group website|http://www.cin2.es/~inorganic/]]^^
^^[[La ciutat transformada|La ciutat transformada, documental expandit]]^^
^^[[Networked Cultures|Networked Cultures. Parallel Architectures and the Politics of Space]]^^
^^[[Manual de NanoWiki|NanoWiki. Manual de Operaciones 1.0]]^^
^^[[Videoclips NanoWiki]]^^
^^[[Situation Room|Situation Room, un prototipo ciudadano de Sala de Situación]]^^
^^//''projectes destacats'' >//^^
^^[[Nau21|nau21.net, cap a una nova concepció del domini públic]]^^
^^[[Openfridays|Openfridays, una dinàmica de col.lectiu de col.lectius]]^^
^^[[Context Weblog|Context Weblog, an emerging culture observatory]]^^
^^[[Straddle3|Straddle3, entre l'arquitectura i els nous media]]^^
^^[[Accent de cultura|Accent de cultura, pla estratègic del sector cultural de Barcelona]]^^
^^[[Internet World Exposition|Internet World Exposition, a world's fair for the information age]]^^

<<search>><<closeAll>><<permaview>><<newTiddler>><<newJournal "DD MMM YYYY" "journal">><<saveChanges>><<slider chkSliderOptionsPanel OptionsPanel "options »" "Change TiddlyWiki advanced options">>
/***
|''Name''|SimpleSearchPlugin|
|''Description''|displays search results as a simple list of matching tiddlers|
|''Authors''|FND|
|''Version''|0.4.1|
|''Status''|stable|
|''Source''|http://devpad.tiddlyspot.com/#SimpleSearchPlugin|
|''CodeRepository''|http://svn.tiddlywiki.org/Trunk/contributors/FND/plugins/SimpleSearchPlugin.js|
|''License''|[[Creative Commons Attribution-ShareAlike 3.0 License|http://creativecommons.org/licenses/by-sa/3.0/]]|
|''Keywords''|search|
!Revision History
!!v0.2.0 (2008-08-18)
* initial release
!!v0.3.0 (2008-08-19)
* added Open All button (renders Classic Search option obsolete)
* sorting by relevance (title matches before content matches)
!!v0.4.0 (2008-08-26)
* added tag matching
!To Do
* tag matching optional
* animations for container creation and removal
* when clicking on search results, do not scroll to the respective tiddler (optional)
* use template for search results
!Code
***/
//{{{
if(!version.extensions.SimpleSearchPlugin) { //# ensure that the plugin is only installed once
version.extensions.SimpleSearchPlugin = { installed: true };

if(!config.extensions) { config.extensions = {}; }

config.extensions.SimpleSearchPlugin = {
	heading: "Search Results",
	containerId: "searchResults",
	btnCloseLabel: "close",
	btnCloseTooltip: "dismiss search results",
	btnCloseId: "search_close",
	btnOpenLabel: "Open all",
	btnOpenTooltip: "open all search results",
	btnOpenId: "search_open",

	displayResults: function(matches, query) {
		story.refreshAllTiddlers(true); // update highlighting within story tiddlers
		var el = document.getElementById(this.containerId);
		query = '"""' + query + '"""'; // prevent WikiLinks
		if(el) {
			removeChildren(el);
		} else { //# fallback: use displayArea as parent
			var container = document.getElementById("displayArea");
			el = document.createElement("div");
			el.id = this.containerId;
			el = container.insertBefore(el, container.firstChild);
		}
		var msg = "!" + this.heading + "\n";
		if(matches.length > 0) {
			msg += "''" + config.macros.search.successMsg.format([matches.length.toString(), query]) + ":''\n";
			this.results = [];
			for(var i = 0 ; i < matches.length; i++) {
				this.results.push(matches[i].title);
				msg += "* [[" + matches[i].title + "]]\n";
			}
		} else {
			msg += "''" + config.macros.search.failureMsg.format([query]) + "''"; // XXX: do not use bold here!?
		}
		createTiddlyButton(el, this.btnCloseLabel, this.btnCloseTooltip, config.extensions.SimpleSearchPlugin.closeResults, "button", this.btnCloseId);
		wikify(msg, el);
		if(matches.length > 0) { // XXX: redundant!?
			createTiddlyButton(el, this.btnOpenLabel, this.btnOpenTooltip, config.extensions.SimpleSearchPlugin.openAll, "button", this.btnOpenId);
		}
	},

	closeResults: function() {
		var el = document.getElementById(config.extensions.SimpleSearchPlugin.containerId);
		removeNode(el);
		config.extensions.SimpleSearchPlugin.results = null;
		highlightHack = null;
	},

	openAll: function(ev) {
		story.displayTiddlers(null, config.extensions.SimpleSearchPlugin.results);
		return false;
	}
};

config.shadowTiddlers.StyleSheetSimpleSearch = "/*{{{*/\n" +
	"#" + config.extensions.SimpleSearchPlugin.containerId + " {\n" +
	"\toverflow: auto;\n" +
	"\tpadding: 5px 1em 10px;\n" +
	"\tbackground-color: [[ColorPalette::TertiaryPale]];\n" +
	"}\n\n" +
	"#" + config.extensions.SimpleSearchPlugin.containerId + " h1 {\n" +
	"\tmargin-top: 0;\n" +
	"\tborder: none;\n" +
	"}\n\n" +
	"#" + config.extensions.SimpleSearchPlugin.containerId + " ul {\n" +
	"\tmargin: 0.5em;\n" +
	"\tpadding-left: 1.5em;\n" +
	"}\n\n" +
	"#" + config.extensions.SimpleSearchPlugin.containerId + " .button {\n" +
	"\tdisplay: block;\n" +
	"\tborder-color: [[ColorPalette::TertiaryDark]];\n" +
	"\tpadding: 5px;\n" +
	"\tbackground-color: [[ColorPalette::TertiaryLight]];\n" +
	"}\n\n" +
	"#" + config.extensions.SimpleSearchPlugin.containerId + " .button:hover {\n" +
	"\tborder-color: [[ColorPalette::SecondaryMid]];\n" +
	"\tbackground-color: [[ColorPalette::SecondaryLight]];\n" +
	"}\n\n" +
	"#" + config.extensions.SimpleSearchPlugin.btnCloseId + " {\n" +
	"\tfloat: right;\n" +
	"\tmargin: -5px -1em 5px 5px;\n" +
	"}\n\n" +
	"#" + config.extensions.SimpleSearchPlugin.btnOpenId + " {\n" +
	"\tfloat: left;\n" +
	"\tmargin-top: 5px;\n" +
	"}\n" +
	"/*}}}*/";
store.addNotification("StyleSheetSimpleSearch", refreshStyles);

// override Story.search()
Story.prototype.search = function(text, useCaseSensitive, useRegExp) {
	highlightHack = new RegExp(useRegExp ? text : text.escapeRegExp(), useCaseSensitive ? "mg" : "img");
	var matches = store.search(highlightHack, null, "excludeSearch");
	var q = useRegExp ? "/" : "'";
	config.extensions.SimpleSearchPlugin.displayResults(matches, q + text + q);
};

// override TiddlyWiki.search() to sort by relevance
TiddlyWiki.prototype.search = function(searchRegExp, sortField, excludeTag, match) {
	var candidates = this.reverseLookup("tags", excludeTag, !!match);
	var primary = [];
	var secondary = [];
	var tertiary = [];
	for(var t = 0; t < candidates.length; t++) {
		if(candidates[t].title.search(searchRegExp) != -1) {
			primary.push(candidates[t]);
		} else if(candidates[t].tags.join(" ").search(searchRegExp) != -1) {
			secondary.push(candidates[t]);
		} else if(candidates[t].text.search(searchRegExp) != -1) {
			tertiary.push(candidates[t]);
		}
	}
	var results = primary.concat(secondary).concat(tertiary);
	if(sortField) {
		results.sort(function(a, b) {
			return a[sortField] < b[sortField] ? -1 : (a[sortField] == b[sortField] ? 0 : +1);
		});
	}
	return results;
};

} //# end of "install only once"
//}}}
{{{josep saldaña cavallé}}}                                                                         
<script label="laboratori" title="josep saldaña cavallé">
       story.closeAllTiddlers(); restart();
</script>
''[[Situation Room|http://www.laboralcentrodearte.org/noticias/fichero/51]]'' del artista y activista asturiano Pablo de Soto fue ganador de la primera edición del premio ~LABjoven_Experimenta. [[Situation Room|http://mcs.hackitectura.net/tiki-index.php?page=A%20suivre...%20(we%20are%20on%20something)]] supone el diseño y puesta en marcha de ''un prototipo ciudadano de Sala de Situación'' en Asturias. [[A suivre... (we are on something)|http://mcs.hackitectura.net/tiki-index.php?page=A%20suivre...%20(we%20are%20on%20something)]]

Sintéticamente los objetivos que se propone Situation Room son: Introducir los conceptos teóricos y experiencias históricas de salas de control y salas de situación. Experimentar un prototipo de sala de situación ciudadana (arquitectura, hardware y software, control centralizado-distribuido). Organizar un equipo de trabajo local que utilice esta sala de situación para llevar a cabo un trabajo de mapeo y diseño estratégico para Asturias.
''[[Five ex-secretaries of state urge talks with Iran|http://wiredispatch.com/news/?id=350837]]'' by Barry Schweid. AP News. September 15, 2008
''[['Caucasus crisis prelude to war on Iran'|http://www.presstv.ir/detail.aspx?id=68765&sectionid=351020101]]''. ~PressTV. September 7, 2008
''[[Russian units raid Georgian airfields for use in Israeli strike against Iran|http://www.debka.com/headline.php?hid=5559]]''. ~DEBKAfile Special Report. September 5, 2008
''[[Israeli Bombers Planned to Use Georgian Airfields in Iran Strike|http://news.antiwar.com/2008/09/02/report-israeli-bombers-planned-to-use-georgian-airfields-in-iran-strike/]]'' by Jason Ditz. Antiwar. September 2, 2008
''[[Israel of the Caucasus|http://www.metimes.com/Security/2008/09/02/commentary_israel_of_the_caucasus/f5e1/]]'' by Arnaud De Borchgrave. UPI. September 2, 2008
''[[Iran Could Reap Benefits of US-Russian Tensions|http://www.antiwar.com/lobe/?articleid=13374]]'' by Jim Lobe. Antiwar. August 28, 2008
''[[Russian analyst points to link between Georgian attack and Iran|http://en.rian.ru/russia/20080827/116318584.html]]''. RIA Novosti. August 27, 2008
''[[On Russia, Georgia, and Israel|http://www.israelenews.com/view.asp?ID=2921]]'' by Obadiah Shoher. Israel e News. August 24, 2008
''[[Turkey opposes changes in status quo in Black Sea|http://www.todayszaman.com/tz-web/detaylar.do?load=detay&link=151005&bolum=102]]''. Today's Zaman. August 23, 2008
''[[Georgia praises Iran’s stance on Caucasus conflict: ambassador|http://www.tehrantimes.com/index_View.asp?code=175971]]''. Tehran Times. August 23, 2008
''[[Iran: US-Russian tension creates new diplomatic options for Teheran|http://www.eurasianet.org/departments/insight/articles/eav082208.shtml#]]'' by Kamal Nazer Yasin. Eurasianet. August 22, 2008
''[[What Israel Lost in the Georgia War|http://www.time.com/time/world/article/0,8599,1834785,00.html]]'' by Tony Karon. Time. August 21, 2008
''[[Georgia is one of Iran's near neighbors|http://www.atimes.com/atimes/Middle_East/JH16Ak01.html]]''. //Iran gambles over Georgia's crisis// by Kaveh L Afrasiabi. Asia Times. August 16, 2008
''[[U.S desire to isolate Iran|http://news.newamericamedia.org/news/view_article.html?article_id=be0c1714ee6d115a328ec24b7d081e62]]''. //Chickens Come Home to Roost in Georgia// by William O. Beeman. New America Media. August 12, 2008
''[[Straddle3.net|http://straddle3.net/]], en la confluència de dos oficis, entre l'arquitectura i els nous media''. //"A straddle3 entenem l'arquitectura com la configuració complexa de l'entorn habitat. aquest pot ser construït tant amb paraules, sons o bits com per pedres, fusta o maons . Unes paraules sobre [[el que som|http://straddle3.net/constructors/about.php?lang=ca]]"//
/* hide title, subtitle, toolbar, tags tweets */
#tiddlertweets .title{ display:none !important; }
#tiddlertweets .subtitle{ display:none !important; }
#tiddlertweets .toolbar{ display:none !important; }
#tiddlertweets .tagged{ display:none !important; }

/* hide subtitle, tags projects */
#tiddlerprojects .subtitle{ display:none !important; }
#tiddlerprojects .tagged{ display:none !important; }

/* hide title, subtitle Caucasus War */
#tiddlerCaucasus\000020War .subtitle{ display:none !important; }
#tiddlerCaucasus\000020War .tagged{ display:none !important; }


.twocolumns { display:block;
	-moz-column-count:2; -moz-column-gap:1em; -moz-column-width:50%; /* FireFox */
	-webkit-column-count:2; -webkit-column-gap:1em; -webkit-column-width:50%; /* Safari */
	column-count:2; column-gap:1em; column-width:50%; /* Opera */
}

.threecolumns { display:block;
	-moz-column-count:3; -moz-column-gap:1em; -moz-column-width:33%; /* FireFox */
	-webkit-column-count:3; -webkit-column-gap:1em; -webkit-column-width:33%; /* Safari */
	column-count:3; column-gap:1em; column-width:33%; /* Opera */
}
.fourcolumns { display:block;
-moz-column-count:4; -moz-column-gap:1em; -moz-column-width:25%; /* FireFox */
-webkit-column-count:4; -webkit-column-gap:1em; -webkit-column-width:25%; /* Safari */
column-count:4; column-gap:1em; column-width:25%; /* Opera */
}
/***
|Name|TagCloudPlugin|
|Source|http://www.TiddlyTools.com/#TagCloudPlugin|
|Version|1.1.0|
|Author|Clint Checketts|
|License|unknown|
|~CoreVersion|2.1|
|Type|plugin|
|Requires||
|Overrides||
|Description|present all tags using proportional font display|

!Usage
<<<
<<tagCloud>>
<<<
!Revisions
<<<
2008.07.03 [1.1.0] added 'segments' property to macro object.  Extensive code cleanup
<<<
!Code
***/
//{{{
version.extensions.tagCloud = {major: 1, minor: 1 , revision: 0, date: new Date(2006,2,04)};
//Created by Clint Checketts, contributions by Jonny Leroy and Eric Shulman

config.shadowTiddlers.TagCloud="<<tagCloud>>";

setStylesheet("\
	.tagCloud span{height: 3.5em;margin: 3px;}\
	.tagCloud1{font-size: 80%;}\
	.tagCloud2{font-size: 100%;}\
	.tagCloud3{font-size: 120%;}\
	.tagCloud4{font-size: 150%;}\
	.tagCloud5{font-size: 180%;}\
	.tagCloud6{font-size: 200%;}\
	",
	"tagCloudsStyles");

config.macros.tagCloud = {
	noTags: "No tag cloud created because there are no tags.",
	tooltip: "%1 tiddlers tagged with '%0'",
	segments: 5,
	handler: function(place,macroName,params) {

		// get tags, skip excluded tags
		var tags=store.getTags();
		for (var t=0; t<tags.length; t++)
			for (var p=0;p<params.length; p++)
				if (tags[t][0]==params[p]) tags[t][0]="";

		// get maximum number of tags to calculate tagCloud segment sizes
		var mostTags=0;
		for (var t=0; t<tags.length; t++) if (tags[t][0].length > 0)
			if (tags[t][1]>mostTags) mostTags=tags[t][1];
		var tagSegment=mostTags/config.macros.tagCloud.segments;

		// output
		var tagCloudWrapper = createTiddlyElement(place,"div",null,"tagCloud",null);
		if(!tags.length)
			createTiddlyElement(tagCloudWrapper,"span",null,null,this.noTags);
		else for (var t=0; t<tags.length; t++) if (tags[t][0].length > 0){
			tagCloudWrapper.appendChild(document.createTextNode(" "));
			var theTag = createTiddlyButton(tagCloudWrapper,
				tags[t][0],this.tooltip.format(tags[t]),onClickTag,
				"tagCloudtag tagCloud" + (Math.round(tags[t][1]/tagSegment)+1));
			theTag.setAttribute("tag",tags[t][0]);
		}
	}
};
//}}}
/***
|''Name''|TiddlyFileImportr|
|''Version''|0.2.7|
|''Status''|experimental|
|''Source''|https://github.com/jdlrobson/TiddlyWikiPlugins/tree/master/apps/fileimport|
|''Latest''|http://repository.tiddlyspace.com/TiddlyFileImportr|
***/
//{{{
var ImportWizard, WizardMaker;

(function($) {
window.WizardMaker = function(place, wizard) {
	var steps = wizard[0];
	var options = wizard[1] || {};
	$("<h1 />").text(options.heading || "Wizard").appendTo(place);
	var wizard = this;
	$('<button class="button">restart wizard</button>').click(function(ev) {
		wizard.jumpTo(0);
		}).appendTo(place)[0];
	this.currentStep = 0;
	this.body = $('<div class="wizardBody"/>').appendTo(place)[0];
	this.steps = steps;
	this.values = {};
	this.createStep(0);
};

WizardMaker.prototype = {
	/*
	OPTIONS
	step: [function, options]
	*/
	createStep: function(stepNumber) {
		$(this.body).empty();
		var step = this.steps[stepNumber];
		if(!step) {
			throw "invalid step (" + stepNumber + ")"
		}
		var options = step[1] || {};
		var humanStep = stepNumber + 1;
		var heading = "Step " + humanStep;
		if(options.heading) {
			heading += ": " + options.heading;
		}
		$("<h2 />").text(heading).appendTo(this.body);
		var container = $('<div class="wizardStep" />').appendTo(this.body)[0];
		step[0](container, this);
	},
	next: function() {
		if(this.currentStep < this.steps.length - 1) {
			this.currentStep += 1;
		}
		this.createStep(this.currentStep);
	},
	jumpTo: function(step) {
		this.currentStep = step;
		this.createStep(step);
	},
	setValue: function(name, val) {
		this.values[name] = val;
	},
	getValue: function(name) {
		return this.values[name];
	}
};

if(window.FileReader) {
	window.ImportWizard = function(options) {
		var proxy = options.proxy, saveFunction = options.save,
			internalizeTiddler = options.internalizeTiddler, proxyType = options.proxyType || "GET";
		return [
			[
				[function(body, wizard) {
					$(body).html('Where do you want to import from? <select><option value="1">file</option><option value="2">the web</option></select><button class="button">ok</button>');
					$("button", body).click(function(ev) {
						var opt = $("select", body).val();
						if(opt === "1") {
							wizard.next();
						} else {
							wizard.jumpTo(2);
						}
					});
				},
				{ heading: "File or Web?" }],
				[function(body, wizard) {
					$(body).html('Browse for a file: <input type="file" size="50" name="txtBrowse"><br><hr><div class="wizardFooter"><div class="message"></div></div>');
					function handleFileSelect(evt) {
						reader = new FileReader();
						reader.onerror = function(e, msg) {
							alert("Error occurred")
						};
						reader.onabort = function(e) {
							alert('File read cancelled');
						};
						reader.onload = function(e) {
							var html = reader.result;
							wizard.setValue("html", html);
							wizard.jumpTo(3)
						}
						// Read in the image file as a binary string.
						window.reader = reader;
						reader.readAsText(evt.target.files[0]);
					}
					$("[type=file]", body)[0].addEventListener('change', handleFileSelect, false);
				}, { heading: "Locate TiddlyWiki file" }],
				[function(body, wizard) {
					$(body).html('Enter the URL or pathname here: <div class="message"></div><input type="text" size="50" name="txtPath"><button class="button">open</button>');

					$("button", body).click(function(ev) {
						var url = proxy.replace("%0", $("input", body).val())
						ajaxReq({
							type: options.proxyType,
							url: url,
							success: function(html) {
								wizard.setValue("html", html);
								wizard.jumpTo(3);
							},
							error: function() {
								$(".message").html("There is something wrong with that url please try another.");
								$("input", body).addClass("error");
							}
						})
					})
				},
				{ heading: "Import from Web" }],
				[function(body, wizard) {
					var html = wizard.getValue("html");
					var doc = $(html);
					var store;
					$(html).each(function(i, el) {
						if(el.id === "storeArea") {
							store = el;
						}
					});
					if(store) {
						var tiddlers = [];
						$(store).children().each(function(i, el) {
							var title = $(el).attr("title");
							tiddlers.push(internalizeTiddler(el));
						});
						$("<div />").text("Choose tiddlers that you wish to import");
						var table = $("<table />").appendTo(body)[0];
						$("<tr />").html('<th><input type="checkbox" checked/></th><th>title</th>').
							appendTo(table)
						$("input", table).change(function(ev) {
							var checked = $(ev.target).is(':checked');
							$("input[type=checkbox]", body).attr("checked", checked);
						});
						for(var i = 0; i < tiddlers.length; i++) {
							var title = tiddlers[i].title;
							var row = $("<tr />").data("tiddler", tiddlers[i]).appendTo(table)[0];
							$("<td />").html('<input type="checkbox" checked="checked"/>').appendTo(row);
							$("<td />").text(title).appendTo(row);
						}
						$('<button class="button">import all selected tiddlers</button>').click(function(ev) {
							var tids = [];
							$("input[type=checkbox]:checked").each(function(i, chk) {
								var tiddler = $(chk).parents("tr").data("tiddler");
								if(tiddler) {
									tids.push(tiddler);
								}
							});
							wizard.setValue("selected", tids);
							wizard.jumpTo(4)
						}).prependTo(body);
					}
				},
				{ heading: "Choose tiddlers" }],
				[function(body, wizard) {
					var tids = wizard.getValue("selected");
					$(body).text("Please wait");
					// do import
					var save = 0;
					var complete = function() {
						save += 1;
						if(save === tids.length) {
							wizard.jumpTo(5);
						}
					};
					$(body).text("Please wait (Importing " + tids.length + " tiddlers)");
					for(var i = 0; i < tids.length; i++) {
						var tid = tids[i];
						$(body).text("Please wait (Importing " + tid.title + ")");
						saveFunction(tid, complete);
					}
				},
				{ heading: "Importing" }],
				[function(body, wizard) {
					$(body).html("Good news! Everything is now imported.");
				},
				{ heading: "Finished!" }]
			],
			{
				heading: "Import tiddlers from another file or server"
			}
		];
	}
} else {
  $("#container").addClass("error").text("Your browser is not modern enough to support this app.");
}

})(jQuery);
(function($) {

if(window.ImportWizard) {
	var proxy = "%0", proxyType = "GET";
	if(config.extensions.tiddlyspace) {
		proxy = "/reflector?uri=%0";
		proxyType: "POST";
	}
	var loader = new TW21Loader();
	var internalizer = function(node) {
		var title = $(node).attr("title");
		var tiddler = new Tiddler(title);
		loader.internalizeTiddler(store, tiddler, title, node);
		return tiddler;
	};

	var importer = ImportWizard({proxy:"%0", save: function(tid, callback) {
		merge(tid.fields, config.defaultCustomFields);
		delete tid.fields["server.page.revision"];
		delete tid.fields["server.etag"];
		tid = store.saveTiddler(tid.title, tid.title, tid.text,
			tid.modifier, tid.modified, tid.tags, tid.fields, null, tid.created, tid.creator);
		autoSaveChanges(null, [tid]);
		callback();
	}, internalizeTiddler: internalizer, proxyType: proxyType });

	config.macros.importTiddlers = {
		handler: function(place) {
			var container = $("<div />").appendTo(place)[0];
			new WizardMaker(container, importer);
		}
	};
} else if(config.macros.importTiddlers) {
	var _import = config.macros.importTiddlers.handler;
	config.macros.importTiddlers.handler = function(place) {
		_import.apply(this, arguments);
		jQuery("<div class='annotation error' />").text("Please upgrade your browser to take advantage of the modernised file import mechanism of the TiddlyFileImportr plugin.").prependTo(place);
	};
}

})(jQuery);
//}}}
TiddlyWiki is a complete [[wiki|http://en.wikipedia.org/wiki/Wiki]] in a single HTML file. It contains the entire text of the wiki, and all the JavaScript, CSS and HTML goodness to be able to display it, and let you edit it or search it. Without needing a server.

TiddlyWiki is published under an OpenSourceLicense and maintained by a busy [[Community]] of independent developers.
/***

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

!Demo
<<toggleSideBar "Toggle Sidebar">>

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

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

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

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

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

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

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

     return false;
}

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

//}}}
''[[Towards a Cultural Connectionism:|http://straddle3.net/context/02/020612_cultural_connectionism.en.html]] The search for organizational models for a post-web world'' By Roger F. Malina
''[[US-Russia chill threatens NASA space program|http://www.space-travel.com/reports/US-Russia_chill_threatens_NASA_space_program_999.html]]''. Space Travel. August 24, 2008
''[[Georgia crisis sparks a new Cold War in space|http://www.telegraph.co.uk/news/worldnews/northamerica/usa/2608300/Georgia-crisis-sparks-a-new-Cold-War-in-space.html]]'' by Tim Shipman. Telegraph. August 23, 2008
''[[Russian Invasion of Georgia Might Jeopardize Space Station|http://www.chron.com/commons/readerblogs/cosmosphere.html?plckController=Blog&plckScript=blogScript&plckElementId=blogDest&plckBlogPage=BlogViewPost&plckPostId=Blog%3A4b3304c4-0e93-4f03-a9bd-acc2d4d503e1Post%3Aaa58c207-8e8d-4aa1-a98f-7b6003fe0c85&plckCommentSortOrder=TimeStampAscending]]'' by J Kugler. Houston Chronicle. August 13, 2008
''[[Russian invasion threatens the Space Station|http://blogs.orlandosentinel.com/news_space_thewritestuff/2008/08/russian-invasio.html]]'' by Robert Block. Orlando Centinel. August 12, 2008
<html><div><object width="420" height="339"><param name="movie" value="http://www.dailymotion.com/swf/k5frgdbMMhycyYBHEZ" /><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><embed src="http://www.dailymotion.com/swf/k5frgdbMMhycyYBHEZ" type="application/x-shockwave-flash" width="420" height="339" allowFullScreen="true" allowScriptAccess="always"></embed></object><br /><b><a href="http://www.dailymotion.com/swf/k5frgdbMMhycyYBHEZ">nanowiki dv</a></b></div></html>

Para el [[website de NanoWiki|http://nanowiki.info/]] por encargo del [[Institut Català de Nanotecnologia]].
''[[Visquem Can Ricart: Creativitat urbana en un espai per al segle 21|http://straddle3.net/context/03/ca/2005_07_15.html]]''. ''Taller tecnològic, trobada europea i activitat oberta. 27-30 juliol, 2005''. "El procés de presa de consciència del valor de Can Ricart ha passat per diversos estadis. En un primer moment es va reconèixer el valor del teixit productiu de les empreses allí situades, les quals no només no són obsoletes sinó que a més han apostat per la innovació i són rendibles. El segon pas va ser la identificació del valor patrimonial del conjunt, un dels més antics de la ciutat. La següent etapa pertany a l'àmbit de la creació cultural en el qual s'emmarquen les jornades 'Visquem Can Ricart'. Unes jornades que volen contribuir a superar aquesta crisi amb un reconeixement públic al teixit i al potencial creatiu de Can Ricart"
//[[versió alpha|http://en.wikipedia.org/wiki/Development_stage#Alpha]]// 

Notes that I want to share online about my ''works'' (<<tag nano>><<tag city>><<tag net>><<tag art>>) and ''partners'' (<<tag partner>>). Use too the side bar ''<<slider chkProjects SideBarOptions projects ''work-in-progress, recent and highlighted projects">>'' or this tools to navigate: [[document viewer]], [[video player]], [[rss reader]], [[iframe]]. You can email me at: //josep [at] laboratori [dot] ws//


//Notes que vull compartir online sobre el meus ''treballs'' (<<tag nano>><<tag city>><<tag net>><<tag art>>) i ''partners'' (<<tag partner>>).
Podeu enviar-me un email a: josep [at] laboratori [dot] ws

Use side bar ''projects'' o aquestes eines per a navegar: [[document viewer]], [[video player]], [[rss reader]], [[iframe]]//


Notas que quiero compartir online sobre mis ''trabajos'' (<<tag nano>><<tag city>><<tag net>><<tag art>>) y ''partners'' (<<tag partner>>).
Puede enviarme un email a: //josep [at] laboratori [dot] ws//

Use side bar ''projects'' or this tools to navigate: [[document viewer]], [[video player]], [[rss reader]], [[iframe]]
^^//"A Wiki is like a blog because it's divided up into neat little chunks, but ''it encourages you to read it by hyperlinking'' rather than sequentially: if you like, ''a non-linear blog analogue that binds the individual microcontent items into a cohesive whole''. I think that -Wiki represents a novel medium for writing, and will promote its own distinctive ~WritingStyle."// Jeremy Ruston, TiddlyWiki creator, 5 January 2006^^

~NanoWiki is a digital online publication, developed in the frame of [[NanoAracat|http://www.nanoaracat.com/]], to track the evolution of paradigms and discoveries in nanoscience and nanotechnology field, annotate and disseminate them, giving an overall view and feed the essential public debate on nanotechnology and its practical applications. The [[operating manual]] (now in spanish) is a guide through ~NanoWiki.

<html><div><object width="620" height="500"><param name="movie" value="http://www.dailymotion.com/swf/x5clm9" /><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><embed src="http://www.dailymotion.com/swf/x5clm9" type="application/x-shockwave-flash" width="620" height="500" allowFullScreen="true" allowScriptAccess="always"></embed></object></html>
^^''Credits:'' //~NanoWiki is a web application developed with TiddlyWiki by [[Josep Saldaña Cavallé|http://straddle3.net/constructors/search.php?lang=en&all_cats=true&keywords=Salda%F1a&search=ok]], with scientific supervision by [[Victor F. Puntes|http://www.nanocat.org/dataeng/recerca/vppriv/vp_home.php]], from ICN. ~NanoWiki' manual contents and images are from [[Josep Saldaña Cavallé|http://www.google.es/search?q=%22Josep+Salda%C3%B1a]] and [[ Joan Escofet Planas|http://straddle3.net]] with the contribution of [[Victor F. Puntes|http://www.google.es/search?q=%22Victor+F.+Puntes&start=0&ie=utf-8&oe=utf-8&client=firefox&rls=org.mozilla:es-ES:unofficial]].//

[>img[http://i.creativecommons.org/l/by-nc-sa/2.5/es/88x31.png][http://creativecommons.org/licenses/by-nc-sa/2.5/es/]]  ~NanoWiki' operating manual and videos under Creative Commons license. Please, feel free to disseminate and use openly.^^
<<tiddler [[twitter]]>>

''2011'':
@@color(gray):[[NanoWiki, tracking nanotechnology]]@@
code, edition and maintenance

''estiu 2011'':
@@color(gray):[[Patricia Ward]]@@
conceptual artist site

''2011 - 2014''
@@color(gray):internet platform [[NanoTOES|http://nanotoes.eu/]]@@
Nanotechnology: Training Of Experts in Safety (NanoTOES) is an Initial Training Network under the PEOPLE Programme of the 7th Framework Programme of the European Union

''desembre 2010 - març 2011'':
@@color(gray):e-book [[Nanotechnology: Engines On|http://nanowiki.info/#%5B%5BNanotechnology%3A%20Engines%20On%5D%5D]]@@ 
nanowiki annual review 2010

''18-20 març 2010:''
@@color(gray):[[Taller El evento Can Ricart 2005-2010|http://canricart.info/alter-cronica/]]@@
alter-crònica: el potencial de can ricart.
moviment ciutadà, usos temporals dels espais en desús, l'activitat productiva com a patrimoni, la ciutat és la solució

''desembre 2009 - febrer 2010'':
@@color(gray):e-book [[Nanotechnology: balancing the promises|http://nanowiki.info/#%5B%5BNanotechnology%3A%20balancing%20the%20promises%5D%5D]]@@ 
nanowiki annual review 2009

''7 de juny - 22 de novembre 2009'':
@@color(gray):~AutonomousConstruction.net site@@
part of Sitesize' metropolitan stories and narratives project
Biennal de Venècia d’Arts Visuals 2009. Eventi collaterali: The unavowable community

''febrer - abril 2009'': 
--@@color(gray):La ciutat xarxa. Sobre la ciutat i els ciutadans@@
Projecte de llibre entorn de les qüestions: Què és la ciutat? Quin serà el seu paper? Com adaptar-nos a les noves realitats? Què és ser ciutadà?
Una reflexió entorn d'aquests temes, feta a Barcelona, mitjantçant una conversa oberta i contrastada documentalment entre la regidora de Ciutat Vella, Itziar González Virós, i el xarxaire i programador Josep Saldaña Cavallé--
−
<library>
−
<url>
http://books.google.com/books?uid=6228618314527460645
</url>
−
<books>
−
<book>
<id>2ACtZvZhvWcC</id>
<url>http://books.google.com/books?id=2ACtZvZhvWcC</url>
<title>A World's Fair for the Global Village</title>
<contributor>Carl Malamud</contributor>
−
<identifier>
<type>ISBN</type>
<value>0262133385</value>
</identifier>
−
<labels>
<label>net</label>
</labels>
</book>
</books>
<add_token>ACfU3U3AQ2qDdR5diPbD339xNvwkqf30fg</add_token>
<remove_token>ACfU3U0vDa_dGmo98la0LvUmpHMqARRVdg</remove_token>
<ack_token>ACfU3U2VxfS2AeWOfvSY2FmWSLPeBCRCKA</ack_token>
</library>

<html><a href="http://books.google.com/books?id=bujB2jbuZygC&dq=leonardo+da+vinci&as_brr=1&pg=PA91&ci=94,778,835,348&source=bookclip"></html>
Type the text for 'city'
Comerç electrònic a la societat de la informació (1998-1999). Depósito legal B-11505-99
[[contexts culturals 2001|http://www.bcn.es/comunitatcultura/anteriors/01/revista2.htm]]. "PENSAR. Aquesta secció convidarà a reflexionar l’entorn de temes d’actualitat sobre la cultura i la ciutat. Constarà sempre d’un article encarregat a un expert o experta de la ciutat. En el primer butlletí hem convidat Josep Saldaña perquè ens faci pensar el nou tipus d’associacions, comunitats i projectes que sorgeixen a la xarxa."

{{{>>>}}} ''contexts culturals 2001''

{{{::}}} ''el moviment cultural dels 'diyers' digitals''

Tret característic de l'evolució de la nostra espècie és el domini del tercer estat bàsic de l'univers: la informació.

En aquest sentit, més enllà de rebomboris mediàtics i de modes passatgeres, l'abast del canvi en curs és comparable al que va representar el neolític per al domini de la matèria i la revolució industrial per al domini de l'energia.

La informació codificada és essencial en la major part d'aspectes de la cultura humana de les metròpolis del món.

La representació en llenguatge matemàtic, numèric, de la informació aporta una nova base universal per a la representació dels objectes del món - inclòs el codi de la vida - però també per a la interoperabilitat amb ells.

El procés de digitalització, i la consegüent connexió digital global, és la base per a l'emergència d'una nova cultura, d'un nou "sistema de coneixement socialment organitzat".

La clau per a comprendre aquesta nova cultura no són les agendes de les institucions oficials ni els plans de màrqueting de les corporacions sinó l'apropiació i disseminació social de les noves tecnologies. Els pioners de l'apropiació activa de la tecnologia digital són els hackers i, més en general, els ~DIYers - ~Do-It-Yourself o fes-ho tu mateix-.

{{{::}}} ''el software motor d’innovació cultural''

Com és reconegut, cap altra paraula com "software" - programari - té una connotació tan completa sobre els efectes pràctics i socials de la revolució digital.

En aquest àmbit decisiu ha aparegut el fenomen del programari lliure i del codi obert, o sigui del programari desenvolupat, provat o millorat mitjançant la col·laboració pública i distribuït per compartir amb els altres. Aquest moviment ha assolit, per exemple, el desenvolupament del sistema operatiu Linux o del servidor Apache, el més utilitzat a Internet. Aquest és un exemple paradigmàtic d'emergència d'un nou tipus de comunitat cultural a la xarxa. I no qualsevol sinó una que ha substituït el copyright pel copyleft...

No tinc massa espai per anar a pams. Tanmateix cal esmentar que l'evolució de l'ordinador i la Internet han estat marcats no tant per les agendes governamentals, corporatives i universitàries - normalment abillades amb "el vestit nou de l'Emperador" - com per l'ús concebut i fet per la gent (exemples: l'ordinador personal, el correu electrònic, el web, l’mp3, etc.).

Ara dominen el paroxisme, la confusió i el col·lapse provocats per mentalitats, organitzacions i maneres de fer antiquades amb eines noves i en un entorn essencialment nou. El recés propi del cicle econòmic probablement ajudi a aclarir aquest paisatge.

Paradoxalment, la cultura de l'ordinador i la Internet ens invita a un viatge interior, a recuperar la sensibilitat, a la comunicació humana. Com assenyala el físic Basarab Nicolescu, s'obre una "nova etapa a l'historia humana, a la del coneixement, el món exterior i el món interior comencen a comunicar-se".

{{{::}}} ''el projecte *context*''

El projecte [[*context*|Context Weblog, an emerging culture observatory]], en el qual estic involucrat, és una sèrie d’iniciatives que es proposen estudiar, donar a conèixer, apropiar-se i disseminar la cultura emergent com un nou art de viure. La informació i les aplicacions digitals en xarxa són els artefactes culturals contemporanis, el terreny comú per a una cultura transdisciplinar. Una que superi el conflicte entre la cultura de la ciència i la cultura de l'art.

El concepte de *context* és el d'una recerca i desenvolupament fets a la xarxa d'aquest nou context cultural, "la cultura digital emergent". Les iniciatives emergeixen de l'activitat desenvolupada mitjançant el weblog context <http://www.straddle3.net/context/>, un innovador lloc de noticies.

El weblog context actua com un filtre i proveïdor de context, fa un seguiment de la cultura tecnològica i ofereix un resum de noticies sobre art, ciència i tecnologia, i les seves interseccions. *context* treballa aquests continguts amb codificació independent del mitjà (basada en nous estàndards de interoperabilitat), per a proporcionar materials per llibres i llibres electrònics, media i nous media, espais híbrids i events.

El model del projecte *context* per a obtenir fons econòmics per a les seves iniciatives són les donacions de fundacions, la sindicació de continguts i el patrocini. Així *context* és també una plataforma oberta per a associacions en la creació de continguts - amb empreses i organitzacions, públiques i privades, relacionades amb els mitjans de comunicació, la indústria editorial i la cultura- i per a activitats relacionades.

{{{::}}} ''01.01.01 //digital review//''

És el nom de la col·laboració entre Leonardo Digital Review i el weblog context amb motiu de l'exposició "01.01.01: Art in Technological Times. Responding to a world altered by digital media and technology" del SFMOMA (San Francisco Museum of Modern Art).

Leonardo Digital Review és part del "Leonardo Electronic Almanac (LEA), el periòdic electrònic dedicat a proporcionar un fòrum per a aquells que estan interessats en la regió en què convergeixen art, ciència i tecnologia. LEA és produït per Leonardo, la International Society for the Arts, Sciences and Technology i la MIT Press, i es publica des del 1993".

Aquesta col·laboració és una prova basada en la proposta de Leonardo Digital Review per a "reconsiderar la pràctica de la revisió a la llum de la creixent interdisciplinarietat i de les emergents tecnologies de comunicació i distribució". Alhora permet desenvolupar un debat sobre el net art i el paper dels museus a l'era digital, relacionat amb els continguts concrets de l'exposició.

La col·laboració, iniciada en la fase de proves del weblog context, és tan sols un exemple concret del tipus d'associacions que possibilita el projecte *context* i també, més en general, de la mena de comunitats culturals - interdisciplinàries, internacionals, obertes... - que es formen en la dinàmica de la xarxa.

josep saldaña cavallé
<html><object id="_ds_1042978" name="_ds_1042978" width="620" height="550" type="application/x-shockwave-flash" data="http://viewer.docstoc.com/"><param name="FlashVars" value="doc_id=1042978&mem_id=187374&doc_type=pdf&fullscreen=0&showrelated=0" /><param name="movie" value="http://viewer.docstoc.com/"/><param name="allowScriptAccess" value="always" /><param name="allowFullScreen" value="true" /></object><br /><font size="1"></font></html>
<script>GBS_insertEmbeddedViewer('ISBN:0262133385',500,500);</script>
<html><iframe src="http://straddle3.net/josep/ciutat.html" width="620" height="600"</iframe></html>
http://www.nsf.gov/news/special_reports/nsf-net/home.jsp
''[[nau21.net|http://nau21.net/]], cap a una nova concepció del domini públic'' (2006). "Nau21 és un espai de producció obert, d'intercanvi i de diàleg, destinat a projectes que requereixin de la col·laboració de diferents disciplines i de creadors dispars. Un centre de recursos i de trobada per a totes les disciplines entorn de la ciència, l'art i la tecnologia"

La tripulació de la Nau 21 ha aplegat [[Beatriz Belmonte|http://elprincipiodeincertidumbre.net/blog/]], [[Charity Blanks|http://somanyprojects.blogspot.com/]], [[Joan Escofet|http://straddle3.net/]], [[David Galligani|http://alternativamente.eu/]], [[Lupe García|http://www.goethe.de/ins/es/bar/ca3718379v.htm]], [[Òscar Guayabero|http://guayabero.net/blog]], [[Lluc Mayol|http://www.llucmayol.net/]], [[Noël Palazzo|http://www.mad-actions.com/noel/]], [[Jaume Pagés|http://predicado.com/pagina.php?usuario=barris]], [[Blanca Palou|http://www.apqr.org/]], [[José Luis Paulete|http://www.google.com/search?hl=en&q=%22Jos%C3%A9+Luis+Paulete%22&btnG=Google+Search&aq=f&oq=]], [[Margarita Pineda|http://www.margaritapineda.net/]], [[Oriol Pont|http://www.altaveu.org/media/altaveu//05artistescanricart0659.mp3]], [[Víctor Puntes|http://www.icrea.cat/web/ScientificForm.aspx?key=350]], [[Macarena de la Vega|http://www.almazen.net/]], [[Patricia Ward]] i Josep Saldaña.
{{twocolumns{
//''projectes en curs'' >//

Nanoparticles before nanotechnology
[[NanoWiki website|NanoWiki, tracking nanotechnology]]


//''projectes recents'' >//

''[[Nanotechnology: Engines On|http://www.nanowiki.info/#%5B%5BNanotechnology%3A%20Engines%20On%5D%5D]]'' (2011)
''[[Taller El evento Can Ricart 2005-2010|http://canricart.info/]]'' (2010)
''[[Nanotechnology: balancing the promises|http://nanowiki.info/#%5B%5BNanotechnology%3A%20balancing%20the%20promises%5D%5D]]'' (2010)
[[AutonomousConstruction.net]] (2009)
[[La ciutat transformada|La ciutat transformada, documental expandit]] (2008)
[[Networked Cultures|Networked Cultures. Parallel Architectures and the Politics of Space]] (2008)
[[Manual de NanoWiki|NanoWiki. Manual de Operaciones 1.0]] (2008)
[[Videoclips NanoWiki]] (2008)
[[Caucasus War 2008|Caucasus War]]


//''projectes destacats'' >//

[[Nau21|nau21.net, cap a una nova concepció del domini públic]] (2006-2007)
[[Openfridays|Openfridays, una dinàmica de col.lectiu de col.lectius]] (2002-2006)
[[Context Weblog|Context Weblog, an emerging culture observatory]] (2001-2006)
''[[Idea tracker]]'' (2001-2003)
[[Leonardo Digital Review]] (1999)
[[Accent de cultura|Accent de cultura, pla estratègic del sector cultural de Barcelona]] (1998-1999)
[[Straddle3|Straddle3, entre l'arquitectura i els nous media]]
[[Internet World Exposition|Internet World Exposition, a world's fair for the information age]] (1996)
}}}
<<rssReader asHtml http://nanowiki.info/index.xml>>
<<rssReader asHtml http://feeds.delicious.com/rss/tag/nanotechnology>>
<<rssReader asHtml http://app.feed.informer.com/digest3/6L5SWMMTIU.rss>>
<html><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0" width="374" height="343" id="fl1" align="middle"> <param name="allowScriptAccess" value="sameDomain" /> <param name="movie" value="http://media.feed.informer.com/flash/fl1.swf" /> <param name="FlashVars" value="seturl=ADSZXCV5SC" /> <param name="quality" value="high" /> <param name="bgcolor" value="#ffffff" /> <embed src="http://media.feed.informer.com/flash/fl1.swf" quality="high" bgcolor="#ffffff" FlashVars="seturl=ADSZXCV5SC" width="374" height="343" name="fl1" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" /></html>
<<gadget http://www.google.com/coop/cse/manage_gadget.xml>>

<<gadget http://customrss.googlepages.com/customrss.xml>>

[<img[http://www.google.es/intl/en/images/about_logo.gif]]



~NanoSearch Scholar: search papers on nanotechnology <html><form action="http://www.google.com/cse" id="cse-search-box">
  <div>
    <input type="hidden" name="cx" value="004490888024521477894:saircctgzwe" />
    <input type="hidden" name="ie" value="UTF-8" />
    <input type="text" name="q" size="31" />
    <input type="submit" name="sa" value="Search" />
  </div>
</form>
<script type="text/javascript" src="http://www.google.com/coop/cse/brand?form=cse-search-box&lang=en"></script></html>
~NanoSearch News: search news on nanotechnology<html><form action="" id="cse-search-box">
  <div>
    <input type="hidden" name="cx" value="004490888024521477894:lp7omq5kzsa" />
    <input type="hidden" name="cof" value="FORID:9" />
    <input type="hidden" name="ie" value="UTF-8" />
    <input type="text" name="q" size="31" />
    <input type="submit" name="sa" value="Search" />
  </div>
</form>
<script type="text/javascript" src="http://www.google.com/coop/cse/brand?form=cse-search-box&lang=en"></script></html>
~NanoSearch Videos: search videos on nanotechnology<html><form action="" id="cse-search-box">
<form action="http://www.google.com/cse" id="cse-search-box">
  <div>
    <input type="hidden" name="cx" value="004490888024521477894:h6nkyoluwye" />
    <input type="hidden" name="ie" value="UTF-8" />
    <input type="text" name="q" size="31" />
    <input type="submit" name="sa" value="Search" />
  </div>
</form>
<script type="text/javascript" src="http://www.google.com/coop/cse/brand?form=cse-search-box&lang=en"></script></html>


{{textcenter{
[img[http://www.google.com/coop/intl/en/images/custom_search_sm.gif]]
~NanoSearch Scholar: search papers on nanotechnology<html><form id="searchbox_004490888024521477894:saircctgzwe" action="http://www.google.com/cse" target="_blank"><input type="hidden" name="cx" value="004490888024521477894:saircctgzwe" /><input name="q" type="text" size="35" /><input type="submit" name="sa" value="Search" /><input type="hidden" name="cof" value="FORID:0" /></form><script type="text/javascript" src="http://www.google.com/coop/cse/brand?form=searchbox_004490888024521477894%3Asaircctgzwe"></script>
<br>
NanoSearch News: search news on nanotechnology<form id="searchbox_004490888024521477894:lp7omq5kzsa" action="http://www.google.com/cse" target="_blank"><input type="hidden" name="cx" value="004490888024521477894:lp7omq5kzsa" /><input name="q" type="text" size="35" /><input type="submit" name="sa" value="Search" /><input type="hidden" name="cof" value="FORID:0" /></form><script type="text/javascript" src="http://www.google.com/coop/cse/brand?form=searchbox_004490888024521477894%3Alp7omq5kzsa"></script>
<br>
NanoSearch Videos: search videos on nanotechnology<form id="searchbox_004490888024521477894:h6nkyoluwye" action="http://www.google.com/cse" target="_blank"><input type="hidden" name="cx" value="004490888024521477894:h6nkyoluwye" /><input name="q" type="text" size="35" /><input type="submit" name="sa" value="Search" /><input type="hidden" name="cof" value="FORID:0" /></form><script type="text/javascript" src="http://www.google.com/coop/cse/brand?form=searchbox_004490888024521477894%3Ah6nkyoluwye"></script><br></html>
With Google Custom Search Engine, NanoWiki created a search engine tailored to nanotechnology search
}}}

[img[http://www.yourequations.com/eq.latex?$$f(x)=\displaystyle\frac{(x+1)^2}{(x+1)}=(x+1)$$]] 
<html><!--START TINYCHAT EMBED CODE--> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js" language="javascript"></script> <object classid='clsid:d27cdb6e-ae6d-11cf-96b8-444553540000' codebase='http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0' width='725' height='800' id='tinyembed' align='top'> <param name='allowScriptAccess' value='always' /> <param name='allowFullScreen' value='true' /> <param name='movie' value='http://tinychat.com/tinyembed.swf' /> <param name='menu' value='false' /> <param name='quality' value='high' /> <param name='scale' value='noscale' /> <param name='salign' value='t' /> <param name='wmode' value='transparent' /> <param name='flashvars' value='roomVar=laboratori' /> <embed src='http://tinychat.com/tinyembed.swf' menu='false' quality='high' scale='noscale' salign='t' wmode='transparent' FlashVars='roomVar=laboratori' width='725' height='800' name='tinyembed' align='top' allowScriptAccess='always' allowFullScreen='false' type='application/x-shockwave-flash' pluginspage='http://www.macromedia.com/go/getflashplayer' /> </object> <script> function do_sc (user, uid, roomVar) { var un = user; var id = uid; var room = roomVar; var roompass = 'hi'; $("#cap").html ( "<applet archive='http://tinychat.com/ScreenCap.jar' code='TinyChat.Main.class' width='0' height='0' name='TinyChat ScreenCap' MAYSCRIPT>" + "<param name='username' value='" + un + "'/>" + "<param name='userid' value='" + id + "'/>" + "<param name='roomname' value='" + room + "'/>" + "<param name='roompass' value='" + roompass + "'/>" + "<param name='postdomain' value='tinychat.com'/>" + "<param name='postlocation' value='/sc'/>" + "<param name='capturefps' value='1'/>" + "<param name='java_arguments' value='-d32'/>" + "<param name='savetofile' value='false'/>" + "</applet>" ); } function undo_sc (user, uid, roomVar) { $("#cap").html ( "" ); } </script> <div id="cap"></div> <font size="2" color="#999999"><a href="http://tinychat.com" target="_blank">Tinychat</a></font> <!--END TINYCHAT EMBED CODE--> </html>
''Most recent posts:''
april 14, 2014.''[[La era de la energía renovable empieza ahora|http://goo.gl/QIzsDB]]''. Plan de trabajo para evitar un calentamiento global catastrófico. Naciones Unidas presentó el informe sobre cambio climático para reducir la emisión de gases de efecto invernadero: No es demasiado tarde, pero tenemos que darnos prisa. Hemos de triplicar la energía limpia en el 2050 para evitar un cambio climático catastrófico.El biogás contribuye a las soluciones climáticas.
april 1, 2014.''[[The Launcher of Nanosatellite|http://goo.gl/aG5YbI]]''. From Secondary Payload to Nanosat Launchers, from ISS deployer to the birth of the Spaceports, the new generation of Nanosatellites is growing up and is creating a new infrastructure for Space exploration.
march, 2014.''[[Caucasus War 2008. Redefining 21st-century warfare?|http://laboratori.ws/#%5B%5BCaucasus%20War%5D%5D]]''. Ukraina conflict background
march, 2014.''[[The Age of the Nanosatellite|http://goo.gl/OZzDTQ]]''. march 10 New spacecrafts: ~CubeSat, ~PhoneSat, ~PocketQube, Sprites... New launchers in horizon: “horizontal launchers” like planes with suborbital shuttle or air launched rocket or even balloon with rocket... New infrastructure: “~SpacePorts” in Earth and in orbit... History in the making! March 12: ''[[CubeSat:“An Unlikely Success Story”|http://goo.gl/jVjAeM]]''. March 17: ''[[Phonesat: Ringing from Space|http://goo.gl/sdegYp]]''. March 20: ''[[PocketQube: The Pocket Spacecraft|http://goo.gl/Y6Vybj]]''. March 24: ''[[Sprite: The First Spacecraft-On-A-Chip|http://goo.gl/HUJ1kk]]''
february 28, 2014. ''[[SkyCube: The Personal Spacecraft in Orbit|http://laboratori.ws/personal-spacecraft-in-orbit.html]]''. The birth of the Personal Satellites. The Space Exploration has new tools
january 9, 2014. ''[[The liftoff|http://laboratori.ws/the-liftoff.html]]''. To start the new year, and overcoming all challenges, finally we have "our" satellite in Space!
april 19, 2013. ''[[Welcome to the era of personal spacecraft|http://laboratori.ws/personal_spacecraft.html]]''. The first truly personal do-it-yourself satellite in orbit!
february 7, 2013. ''[[Creating a public park for a global village: Internet Fair Expo turns 17|http://laboratori.ws/expo_turns_17.html]]''. February 8, the Internet 1996 World Exposition was officially open.
january 29, 2013. ''[[“Nanoparticles Before Nanotechnology” ebook comment|http://laboratori.ws/nbn_intro.html]]''. Nanoparticles are all around us in all the Cosmos and for sure in our beautiful blue planet long before nanoparticles were done in today's human laboratories.
{{fourcolumns{ <<tiddler [[tweets josep saldana]]>> <<tiddler [[tweets biogasplus]]>> <<tiddler [[tweets nanowiki]]>> <<tiddler [[tweets myfirstsatellite]]>> }}}
''please, take a look! select and read now the nanowiki's ebook series...'' <html><iframe src="http://static.issuu.com/widgets/shelf/index.html?folderId=4003553f-6ff0-4337-b6a0-d46380f9e855&amp;theme=theme3&amp;rows=1&amp;thumbSize=medium&amp;roundedCorners=true&amp;showTitle=true&amp;showAuthor=true&amp;shadow=true&amp;effect3d=true" width="100%" height="185" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe></html>
<html><a class="twitter-timeline"  width="300" height="500" href="https://twitter.com/josep_saldana"  data-widget-id="346668063963369473">Tuits de @josep_saldana</a></html>
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+"://platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
<html><a class="twitter-timeline"  width="300" height="500" href="https://twitter.com/myfirstsatellit"  data-widget-id="346671412599205889">Tweets by @myfirstsatellit</a></html>
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+"://platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
<html><a class="twitter-timeline"  width="300" height="500" href="https://twitter.com/biogasplu"  data-widget-id="431005058759528448">Tweets by @nanowiki</a></html>
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+"://platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
<html><a class="twitter-timeline"  width="300" height="500" href="https://twitter.com/nanowiki"  data-widget-id="346657494476656640">Tweets by @nanowiki</a></html>
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+"://platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
<html><embed src="http://widgets.vodpod.com/podplayer2.swf?bg=182F5F&amp;fg=081C45&key=2E6B4C7&title=video&url=http://vodpod.com/w/pod_videos%2Exml?id=345685%26key=2E6B4C7%26category_id=latest%26list_id=null&vote=http://widgets.vodpod.com" bgcolor="#ffffff" width="450" height="360" type="application/x-shockwave-flash" wmode="transparent"></embed><br /><a style="font-size:8pt !important" href="http://vodpod.com/site/blog_badges">get your vodpod</a></html>